diff --git a/src/ApiResource/EmployeeLeaveSummary.php b/src/ApiResource/EmployeeLeaveSummary.php index a3f6338..d538782 100644 --- a/src/ApiResource/EmployeeLeaveSummary.php +++ b/src/ApiResource/EmployeeLeaveSummary.php @@ -20,17 +20,20 @@ use App\State\EmployeeLeaveSummaryProvider; )] final class EmployeeLeaveSummary { - public int $year = 0; - public bool $isSupported = false; - public string $ruleCode = ''; - public float $acquiredDays = 0.0; - public float $remainingDays = 0.0; - public float $takenDays = 0.0; - public float $acquiredSaturdays = 0.0; - public float $remainingSaturdays = 0.0; - public float $takenSaturdays = 0.0; - public float $fractionedDays = 0.0; - public float $accruingDays = 0.0; + public int $year = 0; + public bool $isSupported = false; + public string $ruleCode = ''; + public float $acquiredDays = 0.0; + public float $remainingDays = 0.0; + public float $takenDays = 0.0; + public float $acquiredSaturdays = 0.0; + public float $remainingSaturdays = 0.0; + public float $takenSaturdays = 0.0; + public float $fractionedDays = 0.0; + public float $accruingDays = 0.0; + + /** Brut généré sur l'exercice à ce jour (= accruingDays + congés pris en anticipé). Dénominateur de l'affichage « net / brut ». */ + public float $accruingDaysTotal = 0.0; public float $previousYearAcquiredDays = 0.0; public float $previousYearTakenDays = 0.0; public float $previousYearRemainingDays = 0.0; diff --git a/src/State/EmployeeLeaveSummaryProvider.php b/src/State/EmployeeLeaveSummaryProvider.php index 0ef7688..6195080 100644 --- a/src/State/EmployeeLeaveSummaryProvider.php +++ b/src/State/EmployeeLeaveSummaryProvider.php @@ -123,6 +123,7 @@ final readonly class EmployeeLeaveSummaryProvider implements ProviderInterface $summary->acquiredSaturdays = $yearSummary['acquiredSaturdays']; $summary->fractionedDays = $fractionedDays; $summary->accruingDays = $yearSummary['accruingDays']; + $summary->accruingDaysTotal = $yearSummary['accruingDaysTotal']; $summary->takenDays = $yearSummary['takenDays']; $summary->takenSaturdays = $yearSummary['takenSaturdays']; $summary->remainingDays = $yearSummary['remainingDays'] + $fractionedDays; @@ -186,6 +187,7 @@ final readonly class EmployeeLeaveSummaryProvider implements ProviderInterface * acquiredDays: float, * acquiredSaturdays: float, * accruingDays: float, + * accruingDaysTotal: float, * takenDays: float, * takenSaturdays: float, * remainingDays: float, @@ -336,8 +338,11 @@ final readonly class EmployeeLeaveSummaryProvider implements ProviderInterface $remainingSaturdaysToImpute = max(0.0, $takenSaturdays - $takenFromAcquiredSaturdays); $remainingGeneratedSaturdays = $generatedSaturdays - $remainingSaturdaysToImpute; - $acquiredDays = $carryDays; - $accruingDays = $remainingGenerated + $remainingGeneratedSaturdays; + $acquiredDays = $carryDays; + $accruingDays = $remainingGenerated + $remainingGeneratedSaturdays; + // Brut généré à ce jour, AVANT imputation des congés pris en anticipé + // (dénominateur de l'affichage « net / brut » sur l'onglet Congés). + $accruingDaysTotal = $generatedDays + $generatedSaturdays; $remainingDays = $remainingAcquired; $acquiredSaturdays = $carrySaturdays; $remainingSaturdays = max(0.0, $remainingAcquiredSaturdays); @@ -359,6 +364,7 @@ final readonly class EmployeeLeaveSummaryProvider implements ProviderInterface $acquiredDays = $leavePolicy['acquiredDays']; $accruingDays = 0.0; + $accruingDaysTotal = 0.0; $remainingDays = max(0.0, $acquiredDays - $takenFromCurrent); $acquiredSaturdays = 0.0; $remainingSaturdays = 0.0; @@ -373,6 +379,7 @@ final readonly class EmployeeLeaveSummaryProvider implements ProviderInterface 'acquiredDays' => $acquiredDays, 'acquiredSaturdays' => $acquiredSaturdays, 'accruingDays' => $accruingDays, + 'accruingDaysTotal' => $accruingDaysTotal, 'takenDays' => $takenDays, 'takenSaturdays' => $takenSaturdays, 'remainingDays' => $remainingDays,