diff --git a/src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/ActivityTypeFilter.php b/src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/ActivityTypeFilter.php index 4ffc3b38c..e036535fc 100644 --- a/src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/ActivityTypeFilter.php +++ b/src/Bundle/ChillActivityBundle/Export/Filter/ACPFilters/ActivityTypeFilter.php @@ -42,13 +42,14 @@ class ActivityTypeFilter implements FilterInterface public function alterQuery(QueryBuilder $qb, $data) { - $qb->andWhere( - $qb->expr()->exists( - 'SELECT 1 FROM ' . Activity::class . ' act_type_filter_activity - WHERE act_type_filter_activity.activityType IN (:act_type_filter_activity_types) AND act_type_filter_activity.accompanyingPeriod = acp' - ) - ); - $qb->setParameter('act_type_filter_activity_types', $data['accepted_activitytypes']); + if (!in_array('activity', $qb->getAllAliases(), true)) { + $qb->join(Activity::class, 'activity', Expr\Join::WITH, 'activity.accompanyingPeriod = acp'); + } + + $clause = $qb->expr()->in('activity.activityType', ':selected_activity_types'); + + $qb->andWhere($clause); + $qb->setParameter('selected_activity_types', $data['accepted_activitytypes']); } public function applyOn()