From 7a8666987806bf8575c26a6e743964b1270bc4d1 Mon Sep 17 00:00:00 2001 From: tristan Date: Tue, 26 May 2026 10:25:09 +0200 Subject: [PATCH] =?UTF-8?q?docs=20:=20pr=C3=A9ciser=20que=20le=20verrouill?= =?UTF-8?q?age=20des=20=C3=A9ditions=20vaut=20aussi=20pour=20l'exercice=20?= =?UTF-8?q?futur?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Suite à l'ajout de l'exercice suivant dans les sélecteurs, isHistoricalYear (selectedYear !== currentYear) s'applique aussi à l'exercice futur. Les docs parlaient uniquement d'exercice passé/antérieur ; clarifié pour couvrir passé ET futur. Co-Authored-By: Claude Opus 4.7 (1M context) --- CLAUDE.md | 4 ++-- doc/leave-tab.md | 6 +++--- doc/rtt-tab.md | 4 ++-- 3 files changed, 7 insertions(+), 7 deletions(-) diff --git a/CLAUDE.md b/CLAUDE.md index 4653da7..efb07e5 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -75,14 +75,14 @@ - Calendrier annuel des congés (`frontend/components/employees/LeaveTab.vue`) — période = Janvier→Décembre pour FORFAIT, Juin(N-1)→Mai(N) pour les autres contrats. Règle pilotée par le **contrat courant** (cf. `EmployeeLeaveSummaryProvider::resolveYear`), même quand on consulte une année passée. - **Sélecteur d'année** en pied de calendrier (zone scrollable, à gauche). Plage : de l'exercice **suivant** (exercice courant + 1 sur une phase ouverte ; exercice de fin de phase si clôturée) jusqu'à `max(floor_contrat, floor_data_start_date)` — `floor_contrat` = premier exercice avec contrat ouvert (`employee.contractHistory[].startDate`) ; `floor_data_start_date` = exercice contenant `RTT_START_DATE` (env, ex. `2026-02-23` → exercice 2026). Le double plancher empêche de remonter avant la mise en service du logiciel. Format : `2026` pour FORFAIT, `Juin 2025 → Mai 2026` sinon. - Changement d'année → recharge complète de l'onglet via `useEmployeeLeave.setSelectedLeaveYear(year)` (reload de `getEmployeeLeaveSummary?year=YYYY` + `listAbsences` + `listPublicHolidays`). Backend : filtre `?year=YYYY` validé 2000-2100, et `EmployeeLeaveSummary` expose `dataStartDate` (env `RTT_START_DATE`, injecté via `services.yaml`). -- Sur un exercice passé (`selectedYear !== currentYear`), les boutons crayon **Jours fractionnés** et **Année N-1 payés** sont **désactivés** : pas d'édition rétroactive des stocks de report. +- Sur un exercice **autre que l'exercice courant** (`selectedYear !== currentYear`, passé ou futur), les boutons crayon **Jours fractionnés** et **Année N-1 payés** sont **désactivés** : pas d'édition rétroactive des stocks de report (ni d'édition anticipée sur un exercice futur). - Doc : `doc/leave-tab.md`. ## Onglet RTT (fiche employé) - Tableau hebdomadaire (`frontend/components/employees/RttTab.vue`) — exercice fixe Juin(N-1)→Mai(N). Onglet **masqué pour les FORFAIT** (`showRttTab`). - **Sélecteur d'année** sous le tableau dans la zone scrollable. Même mécanique que l'onglet Congés : borne haute = exercice suivant (courant + 1) sur phase ouverte, double plancher `max(floor_contrat, floor_rttStartDate)`. Format unique : `Juin 2025 → Mai 2026`. - Changement d'année → recharge via `useEmployeeRtt.setSelectedRttYear(year)` (`getEmployeeRttSummary?year=YYYY`). `EmployeeRttSummary.rttStartDate` est déjà exposé (champ existant) — il sert à la fois au floor du sélecteur et au masquage des lignes Report avant la mise en service. -- Sur un exercice passé, le bouton **+ Payer les RTT** est désactivé (pas de paiement rétroactif). +- Sur un exercice autre que l'exercice courant (passé ou futur), le bouton **+ Payer les RTT** est désactivé (pas de paiement rétroactif ; rien à payer sur un exercice futur). - Doc : `doc/rtt-tab.md`. ## Vue contrat (sélecteur de phase) diff --git a/doc/leave-tab.md b/doc/leave-tab.md index 45dd0b4..e271c0a 100644 --- a/doc/leave-tab.md +++ b/doc/leave-tab.md @@ -39,13 +39,13 @@ Comportement : - changer d'année recharge l'intégralité de l'onglet (`getEmployeeLeaveSummary?year=YYYY` + `listAbsences` + `listPublicHolidays`) ; - les compteurs du bandeau reflètent l'année sélectionnée. -## Verrouillage des éditions sur années passées +## Verrouillage des éditions hors exercice courant -Quand `selectedYear !== currentYear` (consultation d'une année antérieure) : +Quand `selectedYear !== currentYear` (consultation d'une année **différente de l'exercice courant**, passée ou future) : - le bouton crayon **Jours fractionnés** (non-FORFAIT) est désactivé ; - le bouton crayon **Année N-1 payés** (FORFAIT) est désactivé. -Justification : modifier rétroactivement les stocks de report ou les jours fractionnés d'un exercice clos décalerait silencieusement les soldes de toutes les années postérieures. La consultation reste possible, l'édition non. +Justification : modifier les stocks de report ou les jours fractionnés d'un exercice clos décalerait silencieusement les soldes des années postérieures ; les éditer sur un exercice futur (pas encore démarré) n'aurait pas de sens. La consultation reste possible, l'édition non. ## Sélecteur de phase de contrat diff --git a/doc/rtt-tab.md b/doc/rtt-tab.md index 91d640c..9d014e2 100644 --- a/doc/rtt-tab.md +++ b/doc/rtt-tab.md @@ -32,9 +32,9 @@ Comportement : - changer d'exercice recharge `getEmployeeRttSummary?year=YYYY` (le backend valide 2000–2100) ; - la table redéploie les semaines de l'exercice sélectionné, navigation par mois conservée. -## Verrouillage des édition sur exercices passés +## Verrouillage des éditions hors exercice courant -Quand `selectedYear !== currentYear` (consultation d'un exercice antérieur), le bouton **+ Payer les RTT** est désactivé. Justification : un paiement rétroactif sur un exercice clos décalerait les soldes courants et le report N-1 calculé. +Quand `selectedYear !== currentYear` (consultation d'un exercice **différent de l'exercice courant**, passé ou futur), le bouton **+ Payer les RTT** est désactivé. Justification : un paiement rétroactif sur un exercice clos décalerait les soldes courants et le report N-1 calculé ; sur un exercice futur, il n'y a rien à payer. La consultation reste possible, l'édition non.