# 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`.