diff --git a/src/ApiResource/EmployeeOvertimeContingent.php b/src/ApiResource/EmployeeOvertimeContingent.php new file mode 100644 index 0000000..eceda1a --- /dev/null +++ b/src/ApiResource/EmployeeOvertimeContingent.php @@ -0,0 +1,27 @@ +employeeRepository->find($employeeId); + if (!$employee instanceof Employee) { + throw new NotFoundHttpException('Employee not found.'); + } + + $request = $this->requestStack->getCurrentRequest(); + $year = (int) $request?->query->get('year', (string) (int) new DateTimeImmutable('now')->format('Y')); + if ($year < 2000 || $year > 2100) { + throw new UnprocessableEntityHttpException('year must be between 2000 and 2100.'); + } + + // Année civile Y = exercice Y (mois 1-5) + exercice Y+1 (mois 6-12). + $payments = array_merge( + $this->rttPaymentRepository->findByEmployeeAndYear($employee, $year), + $this->rttPaymentRepository->findByEmployeeAndYear($employee, $year + 1), + ); + + $output = new EmployeeOvertimeContingent(); + $output->year = $year; + $output->paidMinutes = $this->calculator->totalBaseMinutes($payments, $year); + $output->isDriver = $employee->getIsDriver(); + $output->capHours = $this->calculator->capHours($output->isDriver); + + return $output; + } +}