diff --git a/src/State/EmployeeLeaveSummaryProvider.php b/src/State/EmployeeLeaveSummaryProvider.php index 9d2b812..9734b12 100644 --- a/src/State/EmployeeLeaveSummaryProvider.php +++ b/src/State/EmployeeLeaveSummaryProvider.php @@ -330,6 +330,13 @@ final readonly class EmployeeLeaveSummaryProvider implements ProviderInterface return $this->resolveCurrentLeaveYear($today); } + public function resolvePaidLeaveDays(Employee $employee, string $ruleCode, int $year): float + { + $balance = $this->leaveBalanceRepository->findOneByEmployeeRuleAndYear($employee, $ruleCode, $year); + + return null !== $balance ? $balance->getPaidLeaveDays() : 0.0; + } + private function resolveEffectivePeriodStart( Employee $employee, DateTimeImmutable $from, @@ -778,13 +785,6 @@ final readonly class EmployeeLeaveSummaryProvider implements ProviderInterface return null !== $balance ? $balance->getFractionedDays() : 0.0; } - private function resolvePaidLeaveDays(Employee $employee, string $ruleCode, int $year): float - { - $balance = $this->leaveBalanceRepository->findOneByEmployeeRuleAndYear($employee, $ruleCode, $year); - - return null !== $balance ? $balance->getPaidLeaveDays() : 0.0; - } - private function resolveCurrentLeaveYear(DateTimeImmutable $today): int { $year = (int) $today->format('Y'); diff --git a/src/State/LeaveRecapPrintProvider.php b/src/State/LeaveRecapPrintProvider.php index 70615a5..d03064e 100644 --- a/src/State/LeaveRecapPrintProvider.php +++ b/src/State/LeaveRecapPrintProvider.php @@ -104,6 +104,13 @@ class LeaveRecapPrintProvider implements ProviderInterface if (null !== $yearSummary) { if ($isForfait) { + $paidLeaveDays = $this->leaveSummaryProvider->resolvePaidLeaveDays($employee, $yearSummary['ruleCode'], $leaveYear); + if ($paidLeaveDays > 0.0) { + $recomputed = $this->leaveSummaryProvider->computeYearSummary($employee, $leaveYear, $paidLeaveDays); + if (null !== $recomputed) { + $yearSummary = $recomputed; + } + } $cpN1Remaining = round($yearSummary['previousYearRemainingDays'], 2); $cpN = (string) round($yearSummary['acquiredDays'], 2); $acquiredSaturdays = '-';