From 52d11119a1cb8ac194e7c21137203b9aa5f4cd2d Mon Sep 17 00:00:00 2001 From: tristan Date: Wed, 20 May 2026 16:24:57 +0200 Subject: [PATCH] feat(leave) : keep posted saturdays credited in forfait carried CP Co-Authored-By: Claude Opus 4.7 (1M context) --- src/State/EmployeeLeaveSummaryProvider.php | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/src/State/EmployeeLeaveSummaryProvider.php b/src/State/EmployeeLeaveSummaryProvider.php index f221417..fedeb41 100644 --- a/src/State/EmployeeLeaveSummaryProvider.php +++ b/src/State/EmployeeLeaveSummaryProvider.php @@ -569,10 +569,12 @@ final readonly class EmployeeLeaveSummaryProvider implements ProviderInterface * précédant immédiatement une entrée en FORFAIT. 0 si aucune phase précédente * ou si la précédente est elle-même un FORFAIT (nouvel embauché → cas 2). * - * Le total disponible = remainingDays (acquis restant) + accruingDays (généré - * restant, samedis générés inclus) + remainingSaturdays (samedis acquis restant). - * Les congés déjà posés sous la phase précédente sont déjà déduits par - * computeYearSummary, donc on récupère bien le NET (ex. Grégory : 12 acquis − 5 pris ≈ 7). + * Règle (validée comptable) : seuls les congés en JOURS OUVRÉS déjà posés réduisent + * le report ; les SAMEDIS déjà posés ne le réduisent pas. Le NET disponible calculé + * par computeYearSummary (remainingDays + accruingDays + remainingSaturdays) déduit + * tous les congés posés, samedis inclus ; on ré-ajoute donc takenSaturdays pour ne + * garder déduits que les jours ouvrés (ex. Grégory : 12 acquis − 5 jours ouvrés pris + * = 7, dont le samedi posé reste crédité). * * Les jours fractionnés (fractionedDays, ajustement manuel ajouté par provide() à * l'affichage) sont volontairement EXCLUS : on ne reporte que le solde CP acquis/généré @@ -593,7 +595,10 @@ final readonly class EmployeeLeaveSummaryProvider implements ProviderInterface return 0.0; } - return $summary['remainingDays'] + $summary['accruingDays'] + $summary['remainingSaturdays']; + return $summary['remainingDays'] + + $summary['accruingDays'] + + $summary['remainingSaturdays'] + + $summary['takenSaturdays']; } /**