feat(leave) : resolve phase immediately preceding a given phase
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -545,6 +545,25 @@ final readonly class EmployeeLeaveSummaryProvider implements ProviderInterface
|
||||
return $phases[0];
|
||||
}
|
||||
|
||||
/**
|
||||
* Phase dont la date de début est la plus proche en deçà de celle de $phase
|
||||
* (la phase qui précède immédiatement). Null si $phase est la première.
|
||||
*/
|
||||
private function resolvePhaseImmediatelyBefore(Employee $employee, ContractPhase $phase): ?ContractPhase
|
||||
{
|
||||
$prior = null;
|
||||
foreach ($this->phaseResolver->resolvePhases($employee) as $candidate) {
|
||||
if ($candidate->startDate >= $phase->startDate) {
|
||||
continue;
|
||||
}
|
||||
if (null === $prior || $candidate->startDate > $prior->startDate) {
|
||||
$prior = $candidate;
|
||||
}
|
||||
}
|
||||
|
||||
return $prior;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param list<ContractSuspension> $suspensions
|
||||
* @param list<array{start: DateTimeImmutable, end: DateTimeImmutable}> $longMaladiePeriods
|
||||
|
||||
Reference in New Issue
Block a user