feat(leave) : keep posted saturdays credited in forfait carried CP

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-20 16:24:57 +02:00
parent 7bc3cd6d25
commit 52d11119a1

View File

@@ -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 * 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). * 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é * Règle (validée comptable) : seuls les congés en JOURS OUVRÉS déjà posés réduisent
* restant, samedis générés inclus) + remainingSaturdays (samedis acquis restant). * le report ; les SAMEDIS déjà posés ne le réduisent pas. Le NET disponible calculé
* Les congés déjà posés sous la phase précédente sont déjà déduits par * par computeYearSummary (remainingDays + accruingDays + remainingSaturdays) déduit
* computeYearSummary, donc on récupère bien le NET (ex. Grégory : 12 acquis 5 pris ≈ 7). * 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() à * 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é * 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 0.0;
} }
return $summary['remainingDays'] + $summary['accruingDays'] + $summary['remainingSaturdays']; return $summary['remainingDays']
+ $summary['accruingDays']
+ $summary['remainingSaturdays']
+ $summary['takenSaturdays'];
} }
/** /**