From 9e017b0d668aaf835a7af3d7e75e71fabb9b85a7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Tue, 12 Sep 2023 15:10:23 +0200 Subject: [PATCH] Export: fix filter household by composition --- .../HouseholdFilters/CompositionFilter.php | 26 +++++++++---------- .../CompositionFilterTest.php | 1 - 2 files changed, 13 insertions(+), 14 deletions(-) diff --git a/src/Bundle/ChillPersonBundle/Export/Filter/HouseholdFilters/CompositionFilter.php b/src/Bundle/ChillPersonBundle/Export/Filter/HouseholdFilters/CompositionFilter.php index 3a2cb5337..ab86ca1bd 100644 --- a/src/Bundle/ChillPersonBundle/Export/Filter/HouseholdFilters/CompositionFilter.php +++ b/src/Bundle/ChillPersonBundle/Export/Filter/HouseholdFilters/CompositionFilter.php @@ -45,23 +45,23 @@ class CompositionFilter implements FilterInterface public function alterQuery(QueryBuilder $qb, $data) { - if (!in_array('composition_type_filter', $qb->getAllAliases(), true)) { - $clause = - $qb->expr()->andX( - $qb->expr()->lte('composition_type_filter.startDate', ':ondate_composition_type_filter'), - $qb->expr()->orX( - $qb->expr()->gt('composition_type_filter.endDate', ':ondate_composition_type_filter'), - $qb->expr()->isNull('composition_type_filter.endDate') - ) - ); + dump(__METHOD__); + // there is no test on the aliases here: the name should be unique + $clause = + $qb->expr()->andX( + $qb->expr()->lte('composition_type_filter_composition.startDate', ':ondate_composition_type_filter'), + $qb->expr()->orX( + $qb->expr()->gt('composition_type_filter_composition.endDate', ':ondate_composition_type_filter'), + $qb->expr()->isNull('composition_type_filter_composition.endDate') + ) + ); - $qb->join('household.compositions', 'composition', Expr\Join::WITH, $clause); - } + $qb->join('household.compositions', 'composition_type_filter_composition', Expr\Join::WITH, $clause); - $whereClause = $qb->expr()->in('composition_type_filter.householdCompositionType', ':compositions'); + $whereClause = $qb->expr()->in('composition_type_filter_composition.householdCompositionType', ':compositions_composition_type_filter'); $qb->andWhere($whereClause); - $qb->setParameter('compositions', $data['accepted_composition']); + $qb->setParameter('compositions_composition_type_filter', $data['accepted_composition']); $qb->setParameter( 'ondate_composition_type_filter', $this->rollingDateConverter->convert($data['on_date']) diff --git a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/HouseholdFilters/CompositionFilterTest.php b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/HouseholdFilters/CompositionFilterTest.php index aa8ec6c2c..8e8bf2206 100644 --- a/src/Bundle/ChillPersonBundle/Tests/Export/Filter/HouseholdFilters/CompositionFilterTest.php +++ b/src/Bundle/ChillPersonBundle/Tests/Export/Filter/HouseholdFilters/CompositionFilterTest.php @@ -15,7 +15,6 @@ use Chill\MainBundle\Test\Export\AbstractFilterTest; use Chill\PersonBundle\Entity\Household\Household; use Chill\PersonBundle\Entity\Household\HouseholdCompositionType; use Chill\PersonBundle\Export\Filter\HouseholdFilters\CompositionFilter; -use DateTime; use Doctrine\ORM\EntityManagerInterface; /**