From f047e3ed4bcd200816b9c43c479053ba9571e668 Mon Sep 17 00:00:00 2001 From: tristan Date: Wed, 18 Mar 2026 15:40:31 +0100 Subject: [PATCH] =?UTF-8?q?feat=20:=20ajout=20d'une=20colonne=20montant=20?= =?UTF-8?q?dans=20les=20Frais=20employ=C3=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/sqldialects.xml | 6 ++++ doc/functional-rules.md | 19 ++++++++++- frontend/components/employees/MileageTab.vue | 35 ++++++++++++++++---- frontend/composables/useEmployeeMileage.ts | 5 +-- frontend/pages/employees/[id].vue | 4 +-- frontend/services/dto/mileage-allowance.ts | 1 + frontend/services/mileage-allowances.ts | 4 +++ migrations/Version20260318143503.php | 26 +++++++++++++++ src/Entity/MileageAllowance.php | 16 +++++++++ 9 files changed, 104 insertions(+), 12 deletions(-) create mode 100644 .idea/sqldialects.xml create mode 100644 migrations/Version20260318143503.php diff --git a/.idea/sqldialects.xml b/.idea/sqldialects.xml new file mode 100644 index 0000000..3fadc3d --- /dev/null +++ b/.idea/sqldialects.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/doc/functional-rules.md b/doc/functional-rules.md index b0b191d..ead88f8 100644 --- a/doc/functional-rules.md +++ b/doc/functional-rules.md @@ -344,7 +344,24 @@ 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 | -## 12) Notifications +## 12) Frais + +- Onglet "Frais" sur la fiche employé (icône `mdi:account-cash-outline`) +- Entité `MileageAllowance` (table `mileage_allowances`) +- Champs: + - `month` (mois, obligatoire) + - `kilometers` (nombre de km, optionnel) + - `amount` (montant en €, optionnel) + - `comment` (commentaire, optionnel) + - `receiptPath` / `receiptName` (justificatif PDF) +- Règle de validation: + - le mois est obligatoire + - au moins un des deux champs `kilometers` ou `amount` doit être > 0 + - les deux peuvent être remplis simultanément +- Tableau: colonnes Mois, Nombre de Km, Montant €, Commentaire, Justificatif +- Justificatif: upload PDF uniquement, téléchargement via endpoint dédié + +## 13) Notifications - Icône cloche en topbar: - badge = nombre de notifications non lues diff --git a/frontend/components/employees/MileageTab.vue b/frontend/components/employees/MileageTab.vue index 7c033e3..8fd7937 100644 --- a/frontend/components/employees/MileageTab.vue +++ b/frontend/components/employees/MileageTab.vue @@ -2,9 +2,10 @@
+ class="grid grid-cols-5 border border-black bg-tertiary-500 px-6 py-3 text-[20px] font-semibold text-black rounded-t-md">

Mois

Nombre de Km

+

Montant €

Commentaire

Justificatif

@@ -15,11 +16,12 @@

{{ formatMonth(item.month) }}

{{ item.kilometers }}

+

{{ item.amount ? item.amount + ' €' : '-' }}

{{ item.comment ?? '-' }}

- +