feat(overtime-contingent) : findByEmployeesAndYears + repo non-final pour les tests
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -12,7 +12,7 @@ use Doctrine\Persistence\ManagerRegistry;
|
||||
/**
|
||||
* @extends ServiceEntityRepository<EmployeeRttPayment>
|
||||
*/
|
||||
final class EmployeeRttPaymentRepository extends ServiceEntityRepository
|
||||
class EmployeeRttPaymentRepository extends ServiceEntityRepository
|
||||
{
|
||||
public function __construct(ManagerRegistry $registry)
|
||||
{
|
||||
@@ -60,4 +60,31 @@ final class EmployeeRttPaymentRepository extends ServiceEntityRepository
|
||||
->getResult()
|
||||
;
|
||||
}
|
||||
|
||||
/**
|
||||
* Paiements de plusieurs employés sur plusieurs exercices (fetch groupé,
|
||||
* évite le N+1 sur l'export PDF). Jointure employé chargée.
|
||||
*
|
||||
* @param list<Employee> $employees
|
||||
* @param list<int> $years années d'exercice
|
||||
*
|
||||
* @return EmployeeRttPayment[]
|
||||
*/
|
||||
public function findByEmployeesAndYears(array $employees, array $years): array
|
||||
{
|
||||
if ([] === $employees || [] === $years) {
|
||||
return [];
|
||||
}
|
||||
|
||||
return $this->createQueryBuilder('p')
|
||||
->andWhere('p.employee IN (:employees)')
|
||||
->andWhere('p.year IN (:years)')
|
||||
->setParameter('employees', $employees)
|
||||
->setParameter('years', $years)
|
||||
->innerJoin('p.employee', 'e')
|
||||
->addSelect('e')
|
||||
->getQuery()
|
||||
->getResult()
|
||||
;
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user