From ef18210bf7e8dbe9e82e8672ae79d56e65df6378 Mon Sep 17 00:00:00 2001 From: tristan Date: Tue, 14 Apr 2026 08:24:43 +0200 Subject: [PATCH] =?UTF-8?q?fix=20:=20export=20du=20r=C3=A9cap=20cong=C3=A9?= =?UTF-8?q?s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/State/EmployeeLeaveSummaryProvider.php | 14 +++++++------- src/State/LeaveRecapPrintProvider.php | 7 +++++++ 2 files changed, 14 insertions(+), 7 deletions(-) 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 = '-';