diff --git a/src/Bundle/ChillBudgetBundle/Repository/ChargeRepository.php b/src/Bundle/ChillBudgetBundle/Repository/ChargeRepository.php index 957b0dd77..01b0c7ad8 100644 --- a/src/Bundle/ChillBudgetBundle/Repository/ChargeRepository.php +++ b/src/Bundle/ChillBudgetBundle/Repository/ChargeRepository.php @@ -11,8 +11,10 @@ declare(strict_types=1); namespace Chill\BudgetBundle\Repository; +use Chill\PersonBundle\Entity\Household\Household; use Chill\PersonBundle\Entity\Person; use DateTime; +use Doctrine\ORM\EntityRepository; /** * ChargeRepository. @@ -20,13 +22,35 @@ use DateTime; * This class was generated by the Doctrine ORM. Add your own custom * repository methods below. */ -class ChargeRepository extends \Doctrine\ORM\EntityRepository +class ChargeRepository extends EntityRepository { - public function findByPersonAndDate(Person $person, DateTime $date, $sort = null) + // public function findByPersonAndDate(Person $person, DateTime $date, $sort = null) + // { + // $qb = $this->createQueryBuilder('c'); + + // $qb->where('c.person = :person') + // ->andWhere('c.startDate < :date') + // ->andWhere('c.startDate < :date OR c.startDate IS NULL'); + + // if (null !== $sort) { + // $qb->orderBy($sort); + // } + + // $qb->setParameters([ + // 'person' => $person, + // 'date' => $date, + // ]); + + // return $qb->getQuery()->getResult(); + // } + + public function findByEntityAndDate($entity, DateTime $date, $sort = null) { $qb = $this->createQueryBuilder('c'); - $qb->where('c.person = :person') + $entityStr = $entity instanceof Person ? 'person' : 'household'; + + $qb->where("c.$entityStr = :$entityStr") ->andWhere('c.startDate < :date') ->andWhere('c.startDate < :date OR c.startDate IS NULL'); @@ -35,10 +59,25 @@ class ChargeRepository extends \Doctrine\ORM\EntityRepository } $qb->setParameters([ - 'person' => $person, + $entityStr => $entity, 'date' => $date, ]); return $qb->getQuery()->getResult(); } + + // public function findByHouseholdAndDate(Household $household, DateTime $date) + // { + // $qb = $this->createQueryBuilder('c'); + + // $qb->where('c.household = :household') + // ->andWhere('c.startDate < :date OR c.startDate IS NULL'); + + // $qb->setParameters([ + // 'person' => $household, + // 'date' => $date, + // ]); + + // return $qb->getQuery()->getResult(); + // } } diff --git a/src/Bundle/ChillBudgetBundle/Repository/ResourceRepository.php b/src/Bundle/ChillBudgetBundle/Repository/ResourceRepository.php index a9cb958f0..0248536df 100644 --- a/src/Bundle/ChillBudgetBundle/Repository/ResourceRepository.php +++ b/src/Bundle/ChillBudgetBundle/Repository/ResourceRepository.php @@ -11,8 +11,10 @@ declare(strict_types=1); namespace Chill\BudgetBundle\Repository; +use Chill\PersonBundle\Entity\Household\Household; use Chill\PersonBundle\Entity\Person; use DateTime; +use Doctrine\ORM\EntityRepository; /** * ResourceRepository. @@ -20,13 +22,21 @@ use DateTime; * This class was generated by the Doctrine ORM. Add your own custom * repository methods below. */ -class ResourceRepository extends \Doctrine\ORM\EntityRepository +class ResourceRepository extends EntityRepository { - public function findByPersonAndDate(Person $person, DateTime $date, $sort = null) + + // public function findByEntity($entity) + // { + + // } + + public function findByEntityAndDate($entity, DateTime $date, $sort = null) { $qb = $this->createQueryBuilder('c'); - $qb->where('c.person = :person') + $entityStr = $entity instanceof Person ? 'person' : 'household'; + + $qb->where("c.$entityStr = :$entityStr") ->andWhere('c.startDate < :date') ->andWhere('c.startDate < :date OR c.startDate IS NULL'); @@ -35,10 +45,11 @@ class ResourceRepository extends \Doctrine\ORM\EntityRepository } $qb->setParameters([ - 'person' => $person, + $entityStr => $entity, 'date' => $date, ]); return $qb->getQuery()->getResult(); } + }