From 232bdb8ec43fa9b94f0d103afbacc7442dddf872 Mon Sep 17 00:00:00 2001 From: tristan Date: Mon, 9 Mar 2026 14:59:36 +0100 Subject: [PATCH] =?UTF-8?q?feat=20:=20ajout=20des=20jours=20fractionn?= =?UTF-8?q?=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .idea/db-forest-config.xml | 2 +- doc/functional-rules.md | 2 +- frontend/components/CalendarGrid.vue | 8 +- frontend/components/employees/LeaveTab.vue | 77 ++++++++++++++-- frontend/components/employees/RttTab.vue | 6 +- frontend/composables/useEmployeeDetailPage.ts | 12 ++- frontend/pages/employees/[id].vue | 4 +- frontend/services/employee-leave-summary.ts | 8 ++ migrations/Version20260309120000.php | 26 ++++++ .../EmployeeFractionedDaysInput.php | 27 ++++++ src/Command/LeaveRolloverCommand.php | 2 +- src/Entity/EmployeeLeaveBalance.php | 15 ++++ .../Leave/LeaveBalanceComputationService.php | 22 +++-- src/State/EmployeeFractionedDaysProcessor.php | 88 +++++++++++++++++++ src/State/EmployeeFractionedDaysProvider.php | 17 ++++ src/State/EmployeeLeaveSummaryProvider.php | 15 +++- 16 files changed, 305 insertions(+), 26 deletions(-) create mode 100644 migrations/Version20260309120000.php create mode 100644 src/ApiResource/EmployeeFractionedDaysInput.php create mode 100644 src/State/EmployeeFractionedDaysProcessor.php create mode 100644 src/State/EmployeeFractionedDaysProvider.php diff --git a/.idea/db-forest-config.xml b/.idea/db-forest-config.xml index 651867c..c621ddf 100644 --- a/.idea/db-forest-config.xml +++ b/.idea/db-forest-config.xml @@ -1,6 +1,6 @@ - \ No newline at end of file diff --git a/doc/functional-rules.md b/doc/functional-rules.md index ac5aae9..3e4829d 100644 --- a/doc/functional-rules.md +++ b/doc/functional-rules.md @@ -180,7 +180,7 @@ Tous les filtres checkbox sont cochés par défaut à l'ouverture du drawer. - reste à prendre: `acquis - absences` (toutes absences, demi-journées incluses) - pas de samedi (`0`) - pas de jours en cours d'acquisition (`0`) - - fractionné: `0` (saisie RH ultérieure, non calculée automatiquement) + - fractionné: saisie manuelle par la RH via `PATCH /employees/{id}/fractioned-days`, stocké dans `employee_leave_balances.fractioned_days`. Les jours fractionnés sont ajoutés aux acquis et au reste à prendre. - pour `CDI`/`CDD` non forfait: - pris CP: basé sur absences de type code `C` (CONGÉ), en tenant compte des demi-journées - samedi pris: absences `C` posées le samedi (demi-journée incluse) diff --git a/frontend/components/CalendarGrid.vue b/frontend/components/CalendarGrid.vue index cef459e..fbd734f 100644 --- a/frontend/components/CalendarGrid.vue +++ b/frontend/components/CalendarGrid.vue @@ -11,12 +11,12 @@ v-for="day in daysInMonth" :key="day.date" class="sticky top-0 z-20 border-b border-neutral-200 px-2 py-3 text-center text-xs font-semibold transition-colors" - :class="isHoveredColumn(day.date) ? 'bg-primary-500 text-white' : 'bg-tertiary-500 text-neutral-700'" + :class="isHoveredColumn(day.date) || day.date === today ? 'bg-primary-500 text-white' : 'bg-tertiary-500 text-neutral-700'" >
{{ day.label }}
{{ day.weekday }}
@@ -91,6 +91,10 @@