ContactPointRepository.php 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293
  1. <?php
  2. namespace AppBundle\Entity\Core\Repository;
  3. use AppBundle\Entity\Organization\Organization;
  4. use Doctrine\ORM\EntityRepository;
  5. /**
  6. * Description of BankAccountRepository
  7. *
  8. */
  9. class ContactPointRepository extends EntityRepository
  10. {
  11. public function findInvalidContactPointByOrganization(Organization $organization)
  12. {
  13. $queryBuilder = $this->createQueryBuilder('o');
  14. $queryBuilder
  15. ->innerJoin('o.organization', 'organization')
  16. ->andWhere('organization.id = :organization')
  17. ->andWhere(
  18. $queryBuilder->expr()->orX(
  19. $queryBuilder->expr()->andX($queryBuilder->expr()->isNotNull('o.emailInvalid'), $queryBuilder->expr()->neq('o.emailInvalid', ':empty')),
  20. $queryBuilder->expr()->andX($queryBuilder->expr()->isNotNull('o.faxNumberInvalid'), $queryBuilder->expr()->neq('o.faxNumberInvalid', ':empty')),
  21. $queryBuilder->expr()->andX($queryBuilder->expr()->isNotNull('o.telphoneInvalid'), $queryBuilder->expr()->neq('o.telphoneInvalid', ':empty')),
  22. $queryBuilder->expr()->andX($queryBuilder->expr()->isNotNull('o.mobilPhoneInvalid'), $queryBuilder->expr()->neq('o.mobilPhoneInvalid', ':empty'))
  23. ))
  24. ->setParameter('organization', $organization->getId())
  25. ->setParameter('empty', '');
  26. return $queryBuilder->getQuery()->getResult();
  27. }
  28. public function findInvalidContactPointByAccess(Organization $organization)
  29. {
  30. $queryBuilder = $this->_em->createQueryBuilder();
  31. $queryBuilder
  32. ->select('access')
  33. ->from('AppBundle:AccessAndFunction\Access', 'access')
  34. ->andWhere('access.organization = :organization')
  35. ->setParameter('organization', $organization->getId());
  36. $ids = array_map(function ($o) {
  37. return $o->getPerson()->getId();
  38. }, $queryBuilder->getQuery()->getResult());
  39. $queryBuilder = $this->createQueryBuilder('o');
  40. $queryBuilder
  41. ->innerJoin('o.person', 'person')
  42. ->andWhere(
  43. $queryBuilder->expr()->in('person', ':ids'),
  44. $queryBuilder->expr()->orX(
  45. $queryBuilder->expr()->andX($queryBuilder->expr()->isNotNull('o.emailInvalid'), $queryBuilder->expr()->neq('o.emailInvalid', ':empty')),
  46. $queryBuilder->expr()->andX($queryBuilder->expr()->isNotNull('o.faxNumberInvalid'), $queryBuilder->expr()->neq('o.faxNumberInvalid', ':empty')),
  47. $queryBuilder->expr()->andX($queryBuilder->expr()->isNotNull('o.telphoneInvalid'), $queryBuilder->expr()->neq('o.telphoneInvalid', ':empty')),
  48. $queryBuilder->expr()->andX($queryBuilder->expr()->isNotNull('o.mobilPhoneInvalid'), $queryBuilder->expr()->neq('o.mobilPhoneInvalid', ':empty'))
  49. ))
  50. ->setParameter('ids', $ids)
  51. ->setParameter('empty', '');
  52. return $queryBuilder->getQuery()->getResult();
  53. }
  54. public function findInvalidContactPointByPlace(Organization $organization)
  55. {
  56. $queryBuilder = $this->_em->createQueryBuilder();
  57. $queryBuilder
  58. ->select('place')
  59. ->from('AppBundle:Place\Place', 'place')
  60. ->andWhere('place.organization = :organization')
  61. ->setParameter('organization', $organization->getId());
  62. $ids = array_map(function ($o) {
  63. return $o->getId();
  64. }, $queryBuilder->getQuery()->getResult());
  65. $queryBuilder = $this->createQueryBuilder('o');
  66. $queryBuilder
  67. ->innerJoin('o.place', 'place')
  68. ->andWhere(
  69. $queryBuilder->expr()->in('place', ':ids'),
  70. $queryBuilder->expr()->orX(
  71. $queryBuilder->expr()->andX($queryBuilder->expr()->isNotNull('o.emailInvalid'), $queryBuilder->expr()->neq('o.emailInvalid', ':empty')),
  72. $queryBuilder->expr()->andX($queryBuilder->expr()->isNotNull('o.faxNumberInvalid'), $queryBuilder->expr()->neq('o.faxNumberInvalid', ':empty')),
  73. $queryBuilder->expr()->andX($queryBuilder->expr()->isNotNull('o.telphoneInvalid'), $queryBuilder->expr()->neq('o.telphoneInvalid', ':empty')),
  74. $queryBuilder->expr()->andX($queryBuilder->expr()->isNotNull('o.mobilPhoneInvalid'), $queryBuilder->expr()->neq('o.mobilPhoneInvalid', ':empty'))
  75. ))
  76. ->setParameter('ids', $ids)
  77. ->setParameter('empty', '');
  78. return $queryBuilder->getQuery()->getResult();
  79. }
  80. }