Ajoute les jours fériés, l'astreinte week-end 0h-0h et les ratios éditables
- Bouton F : marque un jour férié (dû 0, sans consommer de congé) ; il
qualifie les règles « ferie » et étend la fenêtre d'astreinte du jour.
- Samedi, dimanche et fériés : l'astreinte compte de 0h00 à 0h00 ; un jour
AS déclaré garde sa borne du lendemain 18h pour ne pas tronquer les
interventions nocturnes.
- Ratios d'astreinte éditables à la main dans Réglages (nom, jours, fenêtre,
ratio), avec ajout/suppression de règles et validation.
- Un quart d'heure entamé par deux interventions qui se suivent n'est compté
qu'une fois : les lignes d'événements somment au total du jour.
- Décompte mieux expliqué dans l'interface : quarts d'horloge (:00/:15/:30/:45),
fenêtre couverte par événement, exemple chiffré.
💘 Generated with Crush
Assisted-by: Crush:glm-5.2
This commit is contained in:
@ -9,7 +9,7 @@ from odf.text import P
|
||||
|
||||
from calcul import compute_week, minutes_to_hhmm
|
||||
from models import (
|
||||
load_week_pointages, load_conges, load_astreintes, list_all_weeks,
|
||||
load_week_pointages, load_conges, load_astreintes, load_feries, list_all_weeks,
|
||||
load_plages, heures_jour_min,
|
||||
)
|
||||
|
||||
@ -106,6 +106,7 @@ def export_semaine_ods(year: int, week: int, user_id: str) -> bytes:
|
||||
plages = load_plages(user_id)
|
||||
conges = load_conges(user_id)
|
||||
astreintes = load_astreintes(user_id)
|
||||
feries = load_feries(user_id)
|
||||
|
||||
dates = _week_dates(year, week)
|
||||
raw = load_week_pointages(year, week, user_id)
|
||||
@ -115,7 +116,7 @@ def export_semaine_ods(year: int, week: int, user_id: str) -> bytes:
|
||||
"aprem_entree": None, "aprem_sortie": None})
|
||||
for d in dates
|
||||
]
|
||||
result = compute_week(pointages, conges, h_jour, plages, astreintes)
|
||||
result = compute_week(pointages, conges, h_jour, plages, astreintes, None, feries)
|
||||
|
||||
table = Table(name=f"Semaine {week:02d}-{year}")
|
||||
_size_columns(table, wide_col)
|
||||
@ -140,6 +141,7 @@ def export_annee_ods(year: int, user_id: str) -> bytes:
|
||||
plages = load_plages(user_id)
|
||||
conges = load_conges(user_id)
|
||||
astreintes = load_astreintes(user_id)
|
||||
feries = load_feries(user_id)
|
||||
|
||||
weeks = sorted(wk for yr, wk in list_all_weeks(user_id) if yr == year)
|
||||
|
||||
@ -153,7 +155,7 @@ def export_annee_ods(year: int, user_id: str) -> bytes:
|
||||
"aprem_entree": None, "aprem_sortie": None})
|
||||
for d in dates
|
||||
]
|
||||
result = compute_week(pointages, conges, h_jour, plages, astreintes)
|
||||
result = compute_week(pointages, conges, h_jour, plages, astreintes, None, feries)
|
||||
travaille_min = sum(j["travaille_min"] for j in result["jours"])
|
||||
du_min = sum(j["du_min"] for j in result["jours"])
|
||||
par_semaine.append((week, result, travaille_min, du_min))
|
||||
|
||||
Reference in New Issue
Block a user