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 ?? '-' }}

- +