feat(leave) : detect forfait mid-year entry exercise

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
2026-05-20 16:06:49 +02:00
parent 2718d05cfe
commit 7570b3b19f
2 changed files with 51 additions and 0 deletions

View File

@@ -786,6 +786,20 @@ final readonly class EmployeeLeaveSummaryProvider implements ProviderInterface
return $repoDaysYear * $businessDaysPeriod / $businessDaysYear;
}
/**
* Vrai si la phase FORFAIT démarre en cours de l'année civile consultée
* (donc avec une période partielle), faux pour une année pleine ou un démarrage le 1er janvier.
*/
private function isForfaitEntryYear(ContractPhase $phase, int $year): bool
{
if (ContractType::FORFAIT !== $phase->contractType) {
return false;
}
return (int) $phase->startDate->format('Y') === $year
&& '01-01' !== $phase->startDate->format('m-d');
}
/**
* @param null|array<string, string> $publicHolidays pre-built map (built if null)
*/