Astreinte : durée réelle arrondie au quart d'heure supérieur

Le décompte ne compte plus les quarts d'horloge (:00, :15, :30, :45)
entamés mais la durée réelle de chaque intervention arrondie au quart
d'heure supérieur (2, 5 ou 12 min → 15 ; 22 ou 28 → 30), même si
l'arrondi ne tombe pas juste sur l'horloge. Les minutes communes à deux
interventions restent comptées une seule fois, le repos de 11h s'appuie
sur la durée arrondie, et l'interface/README expliquent la nouvelle
méthode.

💘 Generated with Crush

Assisted-by: Crush:glm-5.2
This commit is contained in:
Jacquin Antoine
2026-09-09 20:12:39 +02:00
parent 5506f1ba39
commit 791b48b320
7 changed files with 142 additions and 126 deletions

View File

@ -205,11 +205,11 @@ pointer si besoin — les exports `.ods` suivent.
L'app en déduit l'heure de retour au bureau : **fin du dernier événement + 11h de
repos consécutif** (exigées par période de 24h), affichée sous la liste (« retour
≥ 13:00 »). Tout quart d'heure entamé est travaillé : la fin est arrondie au quart
d'heure supérieur (fin 23:37 → comptée 23:45) ; les interventions hors fenêtre
18:00→18:00 ne sont pas de l'astreinte. Fin 23:30 → retour 10:30 le lendemain ;
fin 02:00 → retour 13:00 le jour même. Un repos qui se termine avant l'ouverture
ne contraint rien.
≥ 13:00 »). Comme pour le décompte, la durée réelle de l'intervention est arrondie
au quart d'heure supérieur (début 21:00, fin 23:37 → durée comptée 2h45) ; les
interventions hors fenêtre 18:00→18:00 ne sont pas de l'astreinte. Fin 23:30 →
retour 10:30 le lendemain ; fin 02:00 → retour 13:00 le jour même. Un repos qui se
termine avant l'ouverture ne contraint rien.
À partir de cette heure de retour, tout ce qui la précède sur la journée quitte le
décompte de la semaine :
@ -222,12 +222,14 @@ décompte de la semaine :
- une demi-journée entièrement couverte par le repos est considérée comme remplie.
Les heures d'astreinte ne comptent **jamais** dans les heures de semaine : elles
sont décomptées à part, par quarts d'heure de l'horloge (:00, :15, :30, :45) —
toute tranche entamée compte en totalité, et un quart partagé par deux
interventions qui se suivent ou se chevauchent n'est compté **qu'une fois**
(attribué à la première, les lignes d'événements somment au total du jour) — dans
des compteurs pondérés selon le jour et l'heure. Sous le bandeau de la semaine
s'affiche le détail par événement, les totaux par compteur et le total pondéré.
sont décomptées à part — la **durée réelle** de chaque intervention est **arrondie
au quart d'heure supérieur** (2, 5 ou 12 min réelles → 15 min ; 22 ou 28 → 30 min),
même si l'arrondi ne tombe pas juste sur un quart d'heure de l'horloge (:00, :15,
:30, :45), et les minutes réelles communes à deux interventions qui se suivent ou
se chevauchent ne sont comptées **qu'une fois** (attribuées à la première, les
lignes d'événements somment au total du jour) — dans des compteurs pondérés selon
le jour et l'heure. Sous le bandeau de la semaine s'affiche le détail par
événement, les totaux par compteur et le total pondéré.
Par défaut : **Nuit** (20:00→08:00, tous types de jours) ×1,5 ; **Journée** (semaine
Lun-Ven, 08:00→20:00) ×1 ; **Samedi** (08:00→20:00) ×1,5 ; **Dimanche / férié**
@ -236,11 +238,11 @@ Pentecôte) sont calculés automatiquement, et s'ajoutent les jours marqués **F
Ces règles sont **éditables à la main** sur la page **Réglages** (section « Ratios
des heures d'astreinte ») : nom, types de jours, fenêtre horaire et ratio de chaque
règle, ajout et suppression de lignes. La première règle qui couvre un quart
règle, ajout et suppression de lignes. La première règle qui couvre une minute
gagne — place les fenêtres spécifiques avant les générales. Elles restent aussi
ajustables dans `data/config.json`, clé `astreinte_facteurs` : chaque règle porte
un `nom`, les `jours` concernés (`semaine`, `sam`, `dim`, `ferie`), un `debut`,
une `fin` et un `facteur`. Une tranche qui ne correspond à aucune règle est rangée
une `fin` et un `facteur`. Une minute qui ne correspond à aucune règle est rangée
dans « Autre » avec un facteur ×1.
Les événements ne s'appliquent que les jours qualifiés (astreinte ou lendemain) :