Files
SIRH/doc/hours-day-export.md
T
tristan b6c0dfb90b
Auto Tag Develop / tag (push) Successful in 7s
feat(heures) : codes d'absence, total en gras et légende sur l'export PDF jour (#25)
Affinements de l'export PDF des heures (vue Jour) :

- **Colonne Statut** : affiche le **code** du type d'absence (ex. `AT`) au lieu du libellé, sur sa couleur de fond. Férié sans absence inchangé (nom du férié sur fond bleu clair).
- **Colonne Total** en gras.
- **Légende** sous le tableau : carré coloré contenant le code + libellé à droite, 6 éléments par ligne, triée et dédupliquée (hors férié).
- **Bouton Exporter masqué en vue Semaine** (visible uniquement en vue Jour).

Docs mises à jour : `doc/hours-day-export.md`, `frontend/data/documentation-content.ts`, `CLAUDE.md`. Tests backend verts (173/361).

Reviewed-on: #25
Co-authored-by: tristan <tristan@yuno.malio.fr>
Co-committed-by: tristan <tristan@yuno.malio.fr>
2026-06-09 14:04:50 +00:00

1.7 KiB

Export PDF des heures — vue Jour

Bouton Exporter à droite du titre « Heures », visible uniquement pour les administrateurs (ROLE_ADMIN) et uniquement en vue Jour (masqué en vue Semaine).

Comportement

  • Ouvre un drawer : un champ date (préremplit la date affichée) et des cases à cocher des sites (présélectionnées sur le filtre courant).
  • Génère un PDF A4 portrait d'une seule journée, regroupé par site.

Données

  • Mêmes employés que la vue Jour : non-conducteurs, sous contrat à la date choisie, des sites cochés. Les employés sous contrat sans saisie apparaissent (lignes vides).
  • Colonnes : Nom · Statut · Début matin · Fin matin · Début après-midi · Fin après-midi · Début soir · Fin soir · Jour · Nuit · Total (en gras). Pas de colonne « Valider ».
  • Colonne Statut : affiche le code du type d'absence (ex. AT), pas le libellé, sur la couleur de fond du type. Un jour férié sans absence affiche le nom du férié sur fond bleu clair (#b3e5fc).
  • Jour / Nuit / Total : identiques à l'écran (crédit d'absence countAsWorkedHours et crédit virtuel férié inclus).
  • Légende sous le tableau : pour chaque code d'absence présent (hors férié), un carré de couleur contenant le code et le libellé du type à droite. Triée par code, dédupliquée.

Technique

  • Endpoint : GET /work-hours/day-export?workDate=YYYY-MM-DD&siteIds=1,2,3 (ROLE_ADMIN).
  • Provider : App\State\WorkHourDayExportProvider.
  • Calcul des cellules : YearlyHoursExportBuilder::buildDayRowsForEmployees (source unique de vérité, partagée avec les exports annuels).
  • Gabarit : templates/work-hour-day-export/print.html.twig.