| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849 |
- <?php
- declare(strict_types=1);
- namespace App\Repository\Booking;
- use App\Entity\Booking\Course;
- use App\Entity\Organization\Organization;
- use App\Service\Doctrine\FiltersConfigurationService;
- use Doctrine\Bundle\DoctrineBundle\Repository\ServiceEntityRepository;
- use Doctrine\Persistence\ManagerRegistry;
- class CourseRepository extends ServiceEntityRepository
- {
- public function __construct(
- ManagerRegistry $registry,
- private FiltersConfigurationService $filtersConfigurationService,
- ) {
- parent::__construct($registry, Course::class);
- }
- /**
- * Récupère les cours d'une organisation d'une date à une autre.
- *
- * @return list<Course>
- */
- public function getCoursesToFrom(Organization $organization, \DateTimeInterface $start, \DateTimeInterface $end): array
- {
- $this->filtersConfigurationService->suspendTimeConstraintFilters();
- $queryBuilder = $this->createQueryBuilder('course');
- $queryBuilder
- ->andWhere(
- $queryBuilder->expr()->between('course.datetimeStart', ':dateStart', ':dateEnd')
- )
- ->andWhere('course.organization = :organization')
- ->setParameter('dateStart', $start)
- ->setParameter('dateEnd', $end)
- ->setParameter('organization', $organization)
- ;
- $results = $queryBuilder->getQuery()->getResult();
- $this->filtersConfigurationService->restoreTimeConstraintFilters();
- return $results;
- }
- }
|