# Export PDF des heures — vue Jour Bouton **Exporter** à droite du titre « Heures », visible pour les **administrateurs** (`ROLE_ADMIN`) **et les chefs de site** (`ROLE_USER`), **uniquement en vue Jour** (masqué en vue Semaine, masqué pour les profils employé `ROLE_SELF`). ## Périmètre - **Administrateur** : peut exporter tous les sites. - **Chef de site** : ne voit dans le drawer que **ses sites** et ne peut exporter que ceux-ci. Le périmètre est appliqué côté backend (`EmployeeRepository::findScoped`) — un `siteIds` forcé hors de son périmètre est ignoré, aucune donnée d'un autre site ne fuit. ## Comportement - Ouvre un drawer : un champ **date** (préremplit la date affichée) et des **cases à cocher des sites** (limitées au périmètre de l'utilisateur). - 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 et **dans le périmètre de l'utilisateur**. 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_USER`). - Provider : `App\State\WorkHourDayExportProvider` — résout le périmètre via `EmployeeRepository::findScoped($user)` (admin → tous, chef de site → ses sites). - 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`.