diff --git a/CLAUDE.md b/CLAUDE.md index abe8e70..a9aa367 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -30,6 +30,7 @@ - Contracts: `trackingMode` (TIME=hours, PRESENCE=half-days), `weeklyHours` - Contract types: FORFAIT, THIRTY_FIVE_HOURS, THIRTY_NINE_HOURS, INTERIM, CUSTOM - Contract nature (per period): CDI, CDD, INTERIM +- **Agence d'intérim** (`InterimAgency` entity, table `interim_agencies`): optionnelle sur `EmployeeContractPeriod` quand nature = INTERIM. Pas de CRUD UI — gérée en BDD. API lecture seule `GET /interim_agencies`. Affichée "Intérim (NomAgence)" sur la liste employés et l'historique contrat. - Employee contract history: `employee_contract_periods`, resolved by `EmployeeContractResolver` - **Planning jours travaillés** (`EmployeeContractPeriod.workDaysHours` : JSON `{iso_day: minutes}`) : obligatoire pour tout contrat TIME **hors 35h/39h/INTERIM** (ex. 4h, 25h, 28h). Somme = `weeklyHours × 60`. Utilisé par `HolidayVirtualHoursResolver` (crédit férié) et `WorkedHoursCreditPolicy` (crédit absence) pour ne créditer que les jours effectivement travaillés. Validation : `EmployeeContractPeriodValidator::assertWorkDaysHours`. - Absences: stored per day (auto-split), AM/PM/full day, clear corresponding hour slots diff --git a/doc/functional-rules.md b/doc/functional-rules.md index 7d8bbc8..e732e9f 100644 --- a/doc/functional-rules.md +++ b/doc/functional-rules.md @@ -130,6 +130,7 @@ Documents complementaires: - pas de bonus 25% - pas de bonus 50% - pas de total récup + - agence d'intérim optionnelle (table `interim_agencies`): affichée sur la fiche employé et le détail contrat sous la forme "Intérim (NomAgence)" ## 6bis) Heures Conducteurs diff --git a/frontend/components/driver-hours/DriverHoursDayView.vue b/frontend/components/driver-hours/DriverHoursDayView.vue index ffcf5c2..4aebc0a 100644 --- a/frontend/components/driver-hours/DriverHoursDayView.vue +++ b/frontend/components/driver-hours/DriverHoursDayView.vue @@ -6,7 +6,7 @@ :style="{ gridTemplateColumns: dayGridCols }" > Nom - Absence + Statut Heure de jour Heure de nuit Heure atelier diff --git a/frontend/components/employees/ContractTab.vue b/frontend/components/employees/ContractTab.vue index 230bf7c..dfe2fbd 100644 --- a/frontend/components/employees/ContractTab.vue +++ b/frontend/components/employees/ContractTab.vue @@ -16,7 +16,7 @@ :key="`${item.startDate}-${item.endDate ?? 'open'}-${item.contractId ?? item.contractName}`" class="grid grid-cols-4 border-b border-primary-500 px-6 py-3 text-md font-bold text-primary-500 last:border-b-0 hover:bg-tertiary-500" > -

{{ contractNatureLabel(item.contractNature) }}

+

{{ item.interimAgencyName ? `${contractNatureLabel(item.contractNature)} (${item.interimAgencyName})` : contractNatureLabel(item.contractNature) }}

{{ contractHistoryLabel(item) }}

{{ formatDate(item.startDate) }}

{{ formatDate(item.endDate) }}

@@ -221,6 +221,22 @@ +
+ + +
+