From 86cdec50c6871eaa695d371ef057e22b6288ab1d Mon Sep 17 00:00:00 2001 From: tristan Date: Mon, 16 Mar 2026 16:26:06 +0100 Subject: [PATCH] =?UTF-8?q?feat=20:=20ajout=20de=20l'export=20r=C3=A9cap?= =?UTF-8?q?=20cong=C3=A9s=20et=20RTT?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .claude/settings.local.json | 3 +- doc/functional-rules.md | 22 +- frontend/pages/employees/index.vue | 13 +- src/ApiResource/LeaveRecapPrint.php | 20 ++ src/Entity/Employee.php | 1 + src/Repository/EmployeeRepository.php | 3 +- src/State/EmployeeLeaveSummaryProvider.php | 12 +- src/State/LeaveRecapPrintProvider.php | 230 +++++++++++++++++++++ templates/leave-recap/print.html.twig | 124 +++++++++++ 9 files changed, 421 insertions(+), 7 deletions(-) create mode 100644 src/ApiResource/LeaveRecapPrint.php create mode 100644 src/State/LeaveRecapPrintProvider.php create mode 100644 templates/leave-recap/print.html.twig diff --git a/.claude/settings.local.json b/.claude/settings.local.json index 148322c..9b99ab7 100644 --- a/.claude/settings.local.json +++ b/.claude/settings.local.json @@ -23,7 +23,8 @@ "Bash(sudo apt-get:*)", "Bash(npx xlsx-cli:*)", "Bash(cat /home/m-tristan/.claude/projects/-home-m-tristan-workspace-SIRH/4b53d9d7-d8ae-451f-a5cc-5d4fd55f2eef/tool-results/toolu_019hng9Cu2m9wiNACuC2Wm3F.json | python3 -c \"import json,sys; data=json.load\\(sys.stdin\\); print\\(data[0]['text']\\)\" 2>/dev/null | head -2000)", - "Bash(pip3 install:*)" + "Bash(pip3 install:*)", + "Bash(find:*)" ] } } diff --git a/doc/functional-rules.md b/doc/functional-rules.md index 90938b4..90b511b 100644 --- a/doc/functional-rules.md +++ b/doc/functional-rules.md @@ -281,7 +281,25 @@ Tous les filtres checkbox sont cochés par défaut à l'ouverture du drawer. - affichage: - le compteur global RTT est affiché en **heures** (format `Xh00`) -## 10) Récapitulatif Salaire (PDF mensuel) +## 10) Export récap. congés & RTT (PDF) + +- Accessible depuis la page Employés via le bouton "Export récap. congés" (réservé `ROLE_ADMIN`) +- Clic direct (pas de drawer), génère un PDF A4 portrait à la date du jour +- Endpoint: `GET /api/leave-recap/print` +- Seuls les employés avec contrat actif sont inclus +- Données groupées par site + +### Colonnes du tableau + +| Colonne | Logique | +|---------|---------| +| Nom | lastName + firstName | +| Contrat | Contract.name | +| CP Acquis (N-1) | Report de l'exercice précédent (acquiredDays du computeYearSummary) | +| Samedi acquis | Report N-1 samedis. Forfait: `-` | +| RTT | Minutes disponibles (report N-1 + acquis N - payés). Format `X h Y m`. Forfait et INTERIM: `-` | + +## 11) Récapitulatif Salaire (PDF mensuel) - Accessible depuis la page Employés via le bouton "Récap. Salaire" (réservé `ROLE_ADMIN`) - Sélecteur de mois (défaut = mois courant), génère un PDF A3 paysage @@ -308,7 +326,7 @@ Tous les filtres checkbox sont cochés par défaut à l'ouverture du drawer. | CHAUFFEUR - samedi | WorkHour (samedi) | Samedis travaillés (chauffeurs uniquement) | | Observations | — | Colonne vide pour saisie manuelle | -## 11) Notifications +## 12) Notifications - Icône cloche en topbar: - badge = nombre de notifications non lues diff --git a/frontend/pages/employees/index.vue b/frontend/pages/employees/index.vue index 1a7dc1c..12745d9 100644 --- a/frontend/pages/employees/index.vue +++ b/frontend/pages/employees/index.vue @@ -4,6 +4,13 @@

Employés

+