fix(leave) : refresh header présence on phase switch; document gap limitation

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-21 08:18:14 +02:00
parent d5565ae8c3
commit 480f2a4d4e
2 changed files with 12 additions and 1 deletions

View File

@@ -106,11 +106,14 @@ export const useEmployeeDetailPage = () => {
if (!showRttTab.value && activeTab.value === 'rtt') {
activeTab.value = 'leave'
}
// Recharger l'onglet courant
// Recharger l'onglet courant ; sinon recharger quand même le récap congés
// pour que le libellé de présence / jours à travailler du header reste à jour.
if (activeTab.value === 'leave' && showLeaveTab.value) {
leave.loadLeaveData()
} else if (activeTab.value === 'rtt' && showRttTab.value) {
rtt.loadRttData()
} else if (showLeaveTab.value) {
leave.loadLeaveData()
}
})

View File

@@ -426,6 +426,14 @@ final readonly class EmployeeLeaveSummaryProvider implements ProviderInterface
return $start;
}
/**
* Début de contrat le plus ancien chevauchant [$from, $to], capé à $from.
*
* NB : ne tient pas compte des trous entre deux périodes de contrat à l'intérieur de
* l'intervalle (une période qui chevauche $from fixe l'ancre à $from même s'il existe
* un trou ensuite). Suffisant pour borner la présence au début d'emploi ; un employé
* avec un trou de contrat intra-exercice verrait les jours du trou comptés en présence.
*/
private function resolveEarliestContractStartWithinRange(
Employee $employee,
DateTimeImmutable $from,