feat(overtime-contingent) : contingent d'heures supplémentaires payées #29

Merged
tristan merged 12 commits from feat/overtime-paid-contingent into develop 2026-06-11 15:47:19 +00:00
Owner

Résumé

Suivi par année civile (Janv–Déc) des heures supplémentaires payées des employés non-forfait (chauffeurs inclus) face au plafond légal (350 h chauffeurs / 220 h autres).

  • Fiche employé : encart header Total H.payés {année} : X h / plafond h (année civile courante, rouge si dépassement), via GET /employees/{id}/overtime-contingent.
  • Export PDF GET /overtime-contingent/print?year=&siteIds= (ROLE_USER, périmètre findScoped) : groupé par site, colonnes Janv–Déc + colonne Total payé / payable. Drawer liste employés (année + sites).
  • Heures payées = base25 + base50 (hors majoration). Mapping exercice→civil : mois ≥ 6 ? exercice−1 : exercice.
  • Cœur partagé pur OvertimePaidContingentCalculator.
  • Ajout « Année civile » dans le titre des deux exports PDF (contingent H.supp. et heures de nuit).

Tests

  • 214 tests PHPUnit verts (calculateur : mapping civil, base-only, plafond ; builder : ventilation mensuelle, ligne à zéro).

Hors périmètre (consigné)

  • Bug latent SalaryRecapPrintProvider : rattachement des paiements RTT des mois Juin–Déc par année civile sur un stockage par exercice. À traiter séparément.

🤖 Generated with Claude Code

## Résumé Suivi par **année civile** (Janv–Déc) des heures supplémentaires payées des employés non-forfait (chauffeurs inclus) face au plafond légal (**350 h** chauffeurs / **220 h** autres). - **Fiche employé** : encart header `Total H.payés {année} : X h / plafond h` (année civile courante, rouge si dépassement), via `GET /employees/{id}/overtime-contingent`. - **Export PDF** `GET /overtime-contingent/print?year=&siteIds=` (ROLE_USER, périmètre `findScoped`) : groupé par site, colonnes Janv–Déc + colonne `Total payé / payable`. Drawer liste employés (année + sites). - Heures payées = `base25 + base50` (hors majoration). Mapping exercice→civil : `mois ≥ 6 ? exercice−1 : exercice`. - Cœur partagé pur `OvertimePaidContingentCalculator`. - Ajout « Année civile » dans le titre des deux exports PDF (contingent H.supp. et heures de nuit). ## Tests - 214 tests PHPUnit verts (calculateur : mapping civil, base-only, plafond ; builder : ventilation mensuelle, ligne à zéro). ## Hors périmètre (consigné) - Bug latent `SalaryRecapPrintProvider` : rattachement des paiements RTT des mois Juin–Déc par année civile sur un stockage par exercice. À traiter séparément. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
tristan added 12 commits 2026-06-11 15:44:43 +00:00
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
tristan merged commit 327c10fda4 into develop 2026-06-11 15:47:19 +00:00
tristan deleted branch feat/overtime-paid-contingent 2026-06-11 15:47:19 +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/SIRH#29