diff --git a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadHousehold.php b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadHousehold.php index 8b1a1b8ec..342dfb020 100644 --- a/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadHousehold.php +++ b/src/Bundle/ChillPersonBundle/DataFixtures/ORM/LoadHousehold.php @@ -11,11 +11,13 @@ declare(strict_types=1); namespace Chill\PersonBundle\DataFixtures\ORM; +use Chill\MainBundle\DataFixtures\ORM\LoadCenters; use Chill\MainBundle\DataFixtures\ORM\LoadPostalCodes; use Chill\MainBundle\Entity\Address; use Chill\MainBundle\Entity\PostalCode; use Chill\PersonBundle\Entity\Household\Household; use Chill\PersonBundle\Entity\Person; +use Chill\PersonBundle\Entity\Person\PersonCenterHistory; use Chill\PersonBundle\Household\MembersEditorFactory; use DateInterval; use DateTime; @@ -192,14 +194,20 @@ class LoadHousehold extends Fixture implements DependentFixtureInterface private function preparePersonIds() { + $centers = LoadCenters::$centers; + // @TODO: Remove this and make this service stateless $this->personIds = $this->em ->createQuery( 'SELECT p.id FROM ' . Person::class . ' p ' . - 'JOIN p.center c ' . - 'WHERE c.name = :center ' + 'WHERE EXISTS( ' . + 'SELECT 1 FROM ' . PersonCenterHistory::class . ' pch ' . + 'JOIN pch.center c ' . + 'WHERE pch.person = p.id ' . + 'AND c.name IN (:authorized_centers)' . + ')' ) - ->setParameter('center', 'Center A') + ->setParameter('authorized_centers', $centers) ->getScalarResult(); shuffle($this->personIds);