docs(leave) : document forfait mid-year entry leave calculation
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -59,6 +59,21 @@ Le cumul 218 jours est **par année civile**. Toute consultation FORFAIT cape :
|
||||
|
||||
Ex. switch 39h → FORFAIT au 01/05/2026, vue FORFAIT année 2026 → période = [01/05/2026, 31/12/2026].
|
||||
|
||||
#### Entrée en FORFAIT en cours d'année civile
|
||||
|
||||
L'**année d'entrée** (période partielle, ex. 01/05 → 31/12) ne calcule pas `max(0, businessDays − 218)` (qui donnerait 0) mais :
|
||||
|
||||
jours_repos_année = jours_ouvrés_année − 218 − 25
|
||||
jours_repos_proratisés = jours_repos_année × (jours_ouvrés_période / jours_ouvrés_année)
|
||||
congés_à_poser = jours_repos_proratisés + CP_reportés_phase_précédente
|
||||
|
||||
- jours ouvrés = Lun-Ven − fériés en semaine (liste brute, incl. Pentecôte) ; prorata par jours ouvrés.
|
||||
- `CP_reportés` = solde de la phase non-forfait précédente : jours ouvrés **nets** (acquis + en cours − jours ouvrés posés) + samedis **bruts**. Un **samedi déjà posé ne réduit pas** le report (seuls les jours ouvrés posés le réduisent — règle comptable). Jours fractionnés exclus. Nouvel embauché forfait (pas de phase précédente) → 0, donc repos proratisés seuls.
|
||||
- Périmètre : **uniquement l'année d'entrée**. Les années pleines suivantes et les forfaits démarrant un 1er janvier gardent le calcul 218 (→ 34).
|
||||
- Détection : `EmployeeLeaveSummaryProvider::isForfaitEntryYear` ; calcul : `computeProratedForfaitRepoDays` + `resolveCarriedCpFromPriorPhase`.
|
||||
|
||||
Exemple Grégory BARRIBAULT (forfait 01/05/2026 après 39h, exercice 2026) : `6 repos + ~7 CP = ≈ 13 jours`.
|
||||
|
||||
### Phase non-forfait (35h / 39h / CUSTOM / INTERIM)
|
||||
|
||||
L'exercice CP est **annuel** (Juin N-1 → Mai N) et continu à travers les changements d'heures contractuelles dans le même régime non-forfait. La cap **n'applique pas** sur `from` :
|
||||
|
||||
Reference in New Issue
Block a user