6f9d19bda3
Auto Tag Develop / tag (push) Successful in 7s
## Résumé Ajoute un bouton **Exporter** (admin uniquement) à droite du titre « Heures » qui génère un **PDF d'une journée**, regroupé par site, reprenant les colonnes de la vue Jour **sans la colonne « Valider »**. - Drawer : champ date (préremplit la date affichée) + cases à cocher des sites (préselectionnées sur le filtre courant). - Portée identique à l'écran : non-conducteurs, sous contrat à la date, sites cochés (lignes vides incluses). - Jour/Nuit/Total incluent le crédit d'absence et le crédit virtuel férié. ## Implémentation - Back : `WorkHourDayExport` (ApiResource) + `WorkHourDayExportProvider`, endpoint `GET /work-hours/day-export?workDate=&siteIds=` (ROLE_ADMIN). - Calcul des cellules mutualisé via `YearlyHoursExportBuilder::buildDayRowsForEmployees` (source unique de vérité). - Gabarit `templates/work-hour-day-export/print.html.twig` (A4 portrait compact). - Front : `HoursDayExportDrawer.vue` + câblage dans `pages/hours.vue`. - Docs : `doc/hours-day-export.md`, `documentation-content.ts`, `CLAUDE.md`. ## Tests - Test unitaire `YearlyHoursDayRowsTest` ajouté. - Suite complète verte : 173 tests, 359 assertions. 🤖 Generated with [Claude Code](https://claude.com/claude-code) Reviewed-on: #24 Co-authored-by: tristan <tristan@yuno.malio.fr> Co-committed-by: tristan <tristan@yuno.malio.fr>
26 lines
1.3 KiB
Markdown
26 lines
1.3 KiB
Markdown
# Export PDF des heures — vue Jour
|
|
|
|
Bouton **Exporter** à droite du titre « Heures », visible **uniquement pour les
|
|
administrateurs** (`ROLE_ADMIN`).
|
|
|
|
## 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. **Pas de colonne « Valider ».**
|
|
- Jour / Nuit / Total : identiques à l'écran (crédit d'absence `countAsWorkedHours` et
|
|
crédit virtuel férié inclus).
|
|
|
|
## 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`.
|