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>
|
* @extends ServiceEntityRepository<EmployeeRttPayment>
|
||||||
*/
|
*/
|
||||||
final class EmployeeRttPaymentRepository extends ServiceEntityRepository
|
class EmployeeRttPaymentRepository extends ServiceEntityRepository
|
||||||
{
|
{
|
||||||
public function __construct(ManagerRegistry $registry)
|
public function __construct(ManagerRegistry $registry)
|
||||||
{
|
{
|
||||||
@@ -60,4 +60,31 @@ final class EmployeeRttPaymentRepository extends ServiceEntityRepository
|
|||||||
->getResult()
|
->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