OrganizationFunctionRepository.php 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354
  1. <?php
  2. namespace AppBundle\Entity\AccessAndFunction\Repository;
  3. use AppBundle\Entity\AccessAndFunction\Access;
  4. use Doctrine\ORM\EntityRepository;
  5. /**
  6. * Description of OrganizationFunctionRepository
  7. *
  8. */
  9. class OrganizationFunctionRepository extends EntityRepository
  10. {
  11. /**
  12. * @param Access $access
  13. * @return array
  14. */
  15. public function getArchivedOrganizationFunction($enDate, $organizationId)
  16. {
  17. $filter = $this->_em->getFilters()->enable('activity_year');
  18. $filter->setParameter('disabledFilter', 1);
  19. $qb = $this->createQueryBuilder('organization_function');
  20. $qb
  21. ->innerJoin('organization_function.access', 'access')
  22. ->innerJoin('access.organization', 'organization')
  23. ->andWhere('organization_function.endDate = :enDate')
  24. ->andWhere('organization.id = :id')
  25. ->setParameter('id', $organizationId)
  26. ->setParameter('enDate', $enDate)
  27. ;
  28. $filter->setParameter('disabledFilter', 0);
  29. return $qb->getQuery()->getResult();
  30. }
  31. public function getAllOrganizationFunctionByAccessAndDates(Access $access,$startDate,$endDate)
  32. {
  33. $filter = $this->_em->getFilters()->enable('activity_year');
  34. $filter->setParameter('disabledFilter', 1);
  35. $qb = $this->createQueryBuilder('organization_function');
  36. $qb
  37. ->innerJoin('organization_function.access', 'access')
  38. ->andWhere('access.id = :access')
  39. ->andWhere('(organization_function.startDate <= :startDate and (organization_function.endDate is null or organization_function.endDate > :startDate)) or (organization_function.startDate > :startDate and organization_function.startDate < :endDate)')
  40. ->setParameter('access', $access)
  41. ->setParameter('startDate', $startDate)
  42. ->setParameter('endDate', $endDate)
  43. ;
  44. $filter->setParameter('disabledFilter', 0);
  45. return $qb->getQuery()->getResult();
  46. }
  47. }