From d23e2a5a3f05708dec69cc5005cecfddcaedacbf Mon Sep 17 00:00:00 2001 From: tristan Date: Thu, 2 Apr 2026 10:54:05 +0200 Subject: [PATCH] feat : Revoir l'affichage des RTT pour les semaines qui se chevauchent --- doc/functional-rules.md | 7 +- doc/rtt-rollover.md | 6 +- frontend/pages/audit-logs.vue | 2 + src/Dto/Rtt/WeekRecoveryDetail.php | 4 + .../Rtt/RttRecoveryComputationService.php | 13 ++- src/State/EmployeeLeaveSummaryProvider.php | 27 ++++-- src/State/EmployeeRttSummaryProvider.php | 94 +++++++++++++++---- 7 files changed, 112 insertions(+), 41 deletions(-) diff --git a/doc/functional-rules.md b/doc/functional-rules.md index a15f719..0f3d26b 100644 --- a/doc/functional-rules.md +++ b/doc/functional-rules.md @@ -245,7 +245,7 @@ Tous les filtres checkbox sont cochés par défaut à l'ouverture du drawer. - pour `FORFAIT`: - pris: basé sur toutes les absences (demi-journées incluses) - restants = acquis - pris (borné à 0) - - paiement congés N-1: saisie RH via `PATCH /employees/{id}/paid-leave-days` (body: `paidLeaveDays`, `year`). Stocké dans `employee_leave_balances.paid_leave_days`. Les jours payés sont soustraits du reste à prendre N-1 (`previousYearRemainingDays = max(0, acquis_N-1 - pris_N-1 - payés)`). Uniquement pour les contrats forfait. + - paiement congés N-1: saisie RH via `PATCH /employees/{id}/paid-leave-days` (body: `paidLeaveDays`, `year`). Stocké dans `employee_leave_balances.paid_leave_days`. Les jours payés réduisent le stock N-1 **avant** l'attribution des jours pris : `disponible_N-1 = max(0, acquis_N-1 - payés)`, puis `pris_N-1 = min(disponible_N-1, total_pris)`, surplus pris basculé sur N. Reste à prendre N-1 = `max(0, disponible_N-1 - pris_N-1)`. Uniquement pour les contrats forfait. - report annuel: - le reliquat (`restants`) de l'exercice précédent est reporté dans les acquis de l'exercice courant - pour `CDI`/`CDD` non forfait: report séparé jours + samedis @@ -275,8 +275,9 @@ Tous les filtres checkbox sont cochés par défaut à l'ouverture du drawer. - total mensuel des minutes de récupération - compteur global exercice = `report N-1 + acquis N` - attribution mensuelle des semaines: - - une semaine ISO est affichée une seule fois, dans le mois qui contient le **samedi** de cette semaine - - si le weekend tombe en début de mois suivant, c'est le mois suivant qui porte la semaine + - une semaine ISO qui chevauche deux mois est affichée dans **les deux mois**, avec les valeurs réparties proportionnellement aux minutes travaillées de chaque portion + - le calcul des heures supplémentaires reste hebdomadaire (seuils 35h/39h/43h appliqués sur la semaine entière), seul l'affichage est scindé + - exemple: S14 lundi-mardi en mars, mercredi-dimanche en avril → la S14 apparaît en mars (avec la part des heures de lun-mar) et en avril (avec la part mer-dim) - logique de calcul: - base identique aux calculs d'heures supplémentaires de la vue semaine Heures - minutes de récupération hebdomadaires = `HS totales + bonus 25% + bonus 50%` diff --git a/doc/rtt-rollover.md b/doc/rtt-rollover.md index 3c3792f..3beaa64 100644 --- a/doc/rtt-rollover.md +++ b/doc/rtt-rollover.md @@ -32,9 +32,9 @@ Principe: ## 4) Attribution mensuelle des semaines -- une semaine ISO est affichee une seule fois, dans le mois qui contient le **samedi** de cette semaine -- si le weekend tombe en debut du mois suivant, c'est ce mois qui porte la semaine -- pas de prorata: la totalite des minutes de recuperation de la semaine est comptee dans un seul mois +- une semaine ISO qui chevauche deux mois est affichee dans **les deux mois**, avec les valeurs reparties proportionnellement aux minutes travaillees de chaque portion +- le calcul des heures supplementaires reste hebdomadaire (seuils 35h/39h/43h appliques sur la semaine entiere), seul l'affichage est scinde +- exemple: S14 lundi-mardi en mars, mercredi-dimanche en avril → la S14 apparait en mars (part lun-mar) et en avril (part mer-dim) ## 5) Table cible diff --git a/frontend/pages/audit-logs.vue b/frontend/pages/audit-logs.vue index 44c433d..983ba93 100644 --- a/frontend/pages/audit-logs.vue +++ b/frontend/pages/audit-logs.vue @@ -44,6 +44,7 @@ +