fix(absence) : déduire les jours pris du report CP au changement de période #22

Merged
matthieu merged 1 commits from fix/absence-cp-carryover into develop 2026-06-24 08:57:25 +00:00
Owner

Problème

Au passage d'une période de référence (1er juin), le report de l'« en cours d'acquisition » (N) vers l'« acquis » (N-1) ne déduisait pas les jours déjà pris. Un salarié récupérait donc les CP qu'il avait consommés.

Constaté en prod : Tristan, 1 jour de CP posé et approuvé, voyait 9,75 j reportés au lieu de 8,75.

Correctif

AccrueLeaveCommand ne reporte plus que les jours non pris. Les congés sont imputés au plus ancien bucket d'abord (l'acquis N-2, qui expire de toute façon au changement de période), donc seuls les jours pris au-delà réduisent le report.

Tests

Ajout de AccrueLeaveCommandTest (3 cas) :

  • report avec jour pris (cas Tristan) → 8,75
  • imputation oldest-first (pris ⊂ N-2) → report intégral
  • report intégral sans jour pris

Suite complète verte (179 tests).

Note

Les soldes prod déjà créés ont été régularisés à la main (Tristan : 9,75 → 8,75). Ce correctif garantit que le prochain changement de période sera juste automatiquement.

## Problème Au passage d'une période de référence (1er juin), le report de l'« en cours d'acquisition » (N) vers l'« acquis » (N-1) ne déduisait **pas** les jours déjà pris. Un salarié récupérait donc les CP qu'il avait consommés. Constaté en prod : Tristan, 1 jour de CP posé et approuvé, voyait 9,75 j reportés au lieu de 8,75. ## Correctif `AccrueLeaveCommand` ne reporte plus que les jours **non pris**. Les congés sont imputés au plus ancien bucket d'abord (l'acquis N-2, qui expire de toute façon au changement de période), donc seuls les jours pris au-delà réduisent le report. ## Tests Ajout de `AccrueLeaveCommandTest` (3 cas) : - report avec jour pris (cas Tristan) → 8,75 - imputation oldest-first (pris ⊂ N-2) → report intégral - report intégral sans jour pris Suite complète verte (179 tests). ## Note Les soldes prod déjà créés ont été régularisés à la main (Tristan : 9,75 → 8,75). Ce correctif garantit que le **prochain** changement de période sera juste automatiquement.
matthieu added 1 commit 2026-06-24 08:53:10 +00:00
fix(absence) : déduire les jours pris du report CP au changement de période
Pull Request — Quality gate / Frontend (build) (pull_request) Successful in 1m19s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 1m32s
cf3d11a8a3
Au passage d'une période de référence, le report de l'"en cours
d'acquisition" (N) vers l'"acquis" (N-1) ne déduisait pas les jours
déjà pris : un salarié récupérait les CP qu'il avait consommés.

Le report ne porte désormais que les jours non pris. Les congés sont
imputés au plus ancien bucket d'abord (l'acquis N-2, qui expire de toute
façon au changement de période), donc seuls les jours pris au-delà
réduisent le report.

Ajoute AccrueLeaveCommandTest couvrant le report avec jour pris,
l'imputation oldest-first et le report intégral sans jour pris.
matthieu merged commit 302d2c7221 into develop 2026-06-24 08:57:25 +00:00
Sign in to join this conversation.
No Reviewers
No Label
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: MALIO-DEV/Lesstime#22