EducationalProjectRepository.php 1.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <?php
  2. namespace AppBundle\Entity\Booking\Repository;
  3. use Doctrine\ORM\EntityRepository;
  4. use Recurr\Rule;
  5. use Recurr\Transformer\ArrayTransformer;
  6. use Recurr\Transformer\Constraint\BetweenConstraint;
  7. use Doctrine\ORM\Tools\Pagination\Paginator;
  8. use Dunglas\ApiBundle\Api\ResourceInterface;
  9. use Symfony\Component\HttpFoundation\Request;
  10. class EducationalProjectRepository extends EntityRepository {
  11. public function searchByIntervenants($teachersIds, $dateStart, $dateEnd, $organization) {
  12. $queryBuilder= $this->createQueryBuilder('o')
  13. ->andWhere('o.organization=:org')
  14. ->andWhere('(o.datetimeStart BETWEEN :dateStart AND :dateEnd)')
  15. ->leftjoin('o.public','pub')
  16. ->addselect('pub')
  17. ->leftjoin('o.silentPartner','sil')
  18. ->addselect('sil')
  19. ->leftjoin('o.intervenants', 'int')
  20. ->addselect('int')
  21. ->leftjoin('o.addressPostal', 'add')
  22. ->addselect('add')
  23. ->andWhere('int.id IN (:int)')
  24. ->leftjoin('o.ageDistribution', 'age')
  25. ->addselect('age')
  26. ->leftjoin('o.eventRecur', 'er')
  27. ->addselect('er')
  28. ->setParameters([
  29. ':org' => $organization,
  30. ':int' => $teachersIds,
  31. ':dateStart'=>new \DateTime($dateStart),
  32. ':dateEnd'=> new \DateTime($dateEnd)
  33. ]);
  34. return $queryBuilder->getQuery()->getResult();
  35. }
  36. }