From 9c164fe78e9eb80d587d5ac4327a200d76c946f2 Mon Sep 17 00:00:00 2001 From: tristan Date: Tue, 10 Mar 2026 17:07:09 +0100 Subject: [PATCH] =?UTF-8?q?fix=20:=20prise=20en=20compte=20de=20la=20balan?= =?UTF-8?q?ce=20des=20cong=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/State/EmployeeLeaveSummaryProvider.php | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/State/EmployeeLeaveSummaryProvider.php b/src/State/EmployeeLeaveSummaryProvider.php index aef813f..5ee8c76 100644 --- a/src/State/EmployeeLeaveSummaryProvider.php +++ b/src/State/EmployeeLeaveSummaryProvider.php @@ -193,6 +193,13 @@ final readonly class EmployeeLeaveSummaryProvider implements ProviderInterface $leavePolicy['countOnlyCp'], $leavePolicy['splitSaturdays'] ); + + // Bootstrap support: if the opening balance has pre-filled taken days + // (e.g. manual data entry for production bootstrap), add them as an offset. + if (null !== $openingBalance) { + $takenDays += $openingBalance->getTakenDays(); + $takenSaturdays += $openingBalance->getTakenSaturdays(); + } if (LeaveRuleCode::CDI_CDD_NON_FORFAIT->value === $leavePolicy['ruleCode']) { $availableAcquired = max(0.0, $carryDays); $takenFromAcquired = min($availableAcquired, $takenDays);