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);