fix : calcule des RTT
Some checks failed
Auto Tag Develop / tag (push) Has been cancelled

This commit is contained in:
2026-03-19 18:18:06 +01:00
parent 834b4cb695
commit e85f7b6f4c
2 changed files with 17 additions and 7 deletions

View File

@@ -230,26 +230,36 @@ final class WorkHourRepository extends ServiceEntityRepository implements WorkHo
public function isWeekFullyValidated(Employee $employee, DateTimeImmutable $from, DateTimeImmutable $to): bool
{
// At least one validated day must exist
$validatedCount = (int) $this->createQueryBuilder('w')
// Count weekdays (Mon-Fri) in range
$expectedWeekdays = 0;
for ($d = $from; $d <= $to; $d = $d->modify('+1 day')) {
if ((int) $d->format('N') <= 5) {
++$expectedWeekdays;
}
}
if (0 === $expectedWeekdays) {
return false;
}
// Every weekday must have a work_hour row
$totalCount = (int) $this->createQueryBuilder('w')
->select('COUNT(w.id)')
->andWhere('w.employee = :employee')
->andWhere('w.workDate >= :from')
->andWhere('w.workDate <= :to')
->andWhere('w.isValid = :isValid')
->setParameter('employee', $employee)
->setParameter('from', $from)
->setParameter('to', $to)
->setParameter('isValid', true)
->getQuery()
->getSingleScalarResult()
;
if (0 === $validatedCount) {
if ($totalCount < $expectedWeekdays) {
return false;
}
// No non-validated day must exist in the range
// All rows must be validated
$nonValidatedCount = (int) $this->createQueryBuilder('w')
->select('COUNT(w.id)')
->andWhere('w.employee = :employee')