[#SIRH-36] corriger calcule rtt contrat custom (#27)
Auto Tag Develop / tag (push) Successful in 7s
Auto Tag Develop / tag (push) Successful in 7s
| Numéro du ticket | Titre du ticket | |------------------|-----------------| | | | ## Description de la PR ## Modification du .env ## Check list - [ ] Pas de régression - [ ] TU/TI/TF rédigée - [ ] TU/TI/TF OK - [ ] CHANGELOG modifié Reviewed-on: #27 Co-authored-by: tristan <tristan@yuno.malio.fr> Co-committed-by: tristan <tristan@yuno.malio.fr>
This commit was merged in pull request #27.
This commit is contained in:
+14
-1
@@ -140,7 +140,20 @@ Documents complementaires:
|
||||
- Contrats CUSTOM (heures hebdo ≠ 35h et ≠ 39h, hors INTERIM/FORFAIT):
|
||||
- référence heures sup = heures contractuelles réelles (ex: 4h → référence 4h)
|
||||
- pas de bonus 25% ni 50% : 1 heure sup = 1 heure de récupération
|
||||
- le déficit (travail < contrat) ne génère pas de récup mais n'impacte pas le solde
|
||||
- le déficit (travail < contrat) réduit le cumul RTT 1:1 (peut devenir négatif, reporté N+1)
|
||||
|
||||
### Jour de solidarité (contrats CUSTOM < 35h)
|
||||
|
||||
Le Lundi de Pentecôte (jour de solidarité) impose une contribution proratisée aux temps
|
||||
partiels < 35h. La RH pose un RTT sur ce jour pour tous les salariés ; pour les contrats
|
||||
standard (35h/39h) cela draine ~7h du cumul RTT (comportement inchangé). Pour les CUSTOM
|
||||
< 35h, poser un RTT entier n'a pas de sens : le logiciel **neutralise** le jour (quel que
|
||||
soit ce qui y est saisi) et applique un déficit forfaitaire `7/35 × heuresHebdo`
|
||||
(= 12 min par heure hebdo : 4h → 48 min, 28h → 5h36). Ce déficit réduit le cumul RTT
|
||||
(peut le rendre négatif, reporté à l'exercice suivant) et se cumule avec les autres
|
||||
déficits/surplus de la semaine. Date calculée par computus (Pâques + 50 jours),
|
||||
indépendante de la liste `EXCLUDED_PUBLIC_HOLIDAYS`.
|
||||
|
||||
- Nature `INTERIM`:
|
||||
- pas de bonus 25%
|
||||
- pas de bonus 50%
|
||||
|
||||
@@ -96,6 +96,12 @@ Traitement par employe:
|
||||
|
||||
> Regle clef : le report d'un exercice a l'autre reprend exactement le **disponible** affiche sur l'onglet RTT (cf. `EmployeeRttSummaryProvider`). Le report deja present au debut de l'exercice precedent n'est jamais perdu, et les heures deja payees ne sont pas re-creditees. Service mutualise : `App\Service\Rtt\RttClosingBalanceService`.
|
||||
|
||||
> Contrats CUSTOM : le solde de clôture intègre désormais les **déficits** hebdomadaires
|
||||
> (semaines travaillées sous les heures contractuelles), via `RttClosingBalanceService::fold`
|
||||
> qui gère les totaux négatifs. La clôture (donc le report d'ouverture N+1) peut être négative.
|
||||
> Après une mise à jour de cette règle, rejouer `app:rtt:rollover --force --recompute` pour
|
||||
> recalculer les lignes `employee_rtt_balances` non verrouillées calculées avec l'ancienne règle.
|
||||
|
||||
> Bug historique corrige : la version initiale ne reportait que `acquis N-1` (ni report d'ouverture, ni deduction des paiements), ce qui faisait disparaitre le solde de depart. Pour corriger des lignes deja creees a tort, relancer avec `--force --recompute`.
|
||||
|
||||
## 7) Donnees a fournir au go-live
|
||||
|
||||
@@ -16,6 +16,25 @@ L'onglet est **masqué pour les contrats FORFAIT** (filtre `showRttTab` dans `us
|
||||
|
||||
Toujours **Juin (Y-1) → Mai (Y)**. Le champ `EmployeeRttSummary.year` correspond à `Y` (année de fin d'exercice) ; ex. `year=2026` = `01/06/2025 → 31/05/2026`.
|
||||
|
||||
## Règle de calcul — contrats CUSTOM (4h, 25h…)
|
||||
|
||||
Pour un contrat CUSTOM, la récupération est **plate** (1h sup = 1h récup, sans bonus 25 %/50 %).
|
||||
Depuis 2026-06, une semaine **travaillée sous les heures contractuelles** produit un **déficit
|
||||
signé** dans la colonne « Heure » qui **réduit le « Total » et le « Cumul »** (1h manquante =
|
||||
-1h). Les colonnes Base/25 %/50 % restent à **0** (pas de tranches pour ces contrats). Le cumul
|
||||
peut devenir négatif ; il est reporté à l'exercice suivant.
|
||||
|
||||
Techniquement : `WeekRecoveryDetail::isFlatRecovery` marque ces semaines ;
|
||||
`EmployeeRttSummaryProvider::applyDeficitCascade` les exclut du drainage des tranches 25/50.
|
||||
|
||||
#### Jour de solidarité (CUSTOM < 35h)
|
||||
|
||||
Sur la semaine du Lundi de Pentecôte, un contrat CUSTOM < 35h porte un déficit
|
||||
forfaitaire de `7/35 × heuresHebdo` (12 min/h hebdo, ex. 4h → −0h48) dans les colonnes
|
||||
Heure / Total / Cumul (25 %/50 % restent à 0). Le montant est fixe et inconditionnel :
|
||||
il ne dépend pas des heures saisies ni du RTT que la RH pose ce jour-là. Les contrats
|
||||
35h/39h ne sont pas concernés ici (leur RTT posé draine le cumul normalement).
|
||||
|
||||
## Sélecteur d'année
|
||||
|
||||
Position : sous la table, à l'intérieur de la zone scrollable, à gauche.
|
||||
|
||||
Reference in New Issue
Block a user