diff --git a/src/Form/Activity/ActivityFilterForm.php b/src/Form/Activity/ActivityFilterForm.php index 61353fb..f1318ba 100644 --- a/src/Form/Activity/ActivityFilterForm.php +++ b/src/Form/Activity/ActivityFilterForm.php @@ -35,6 +35,9 @@ 'status' => null, 'active' => false, 'notClosed' => true, + + 'endAfter' => null, + 'startBefore' => null, ]); parent::__construct($formBuilder, $data, $usesToken); } @@ -76,6 +79,20 @@ ->neq('activity.status', StatusEnum::CLOSED)); } + // Filter dates + if (!is_null($data['endAfter'])) { + $criteria->andWhere($criteria->expr() + ->orX($criteria->expr() + ->isNull('activity.realEndDate'), $criteria->expr() + ->gt('activity.realEndDate', $data['endAfter']))); + } + if (!is_null($data['startBefore'])) { + $criteria->andWhere($criteria->expr() + ->orX($criteria->expr() + ->isNull('activity.realStartDate'), $criteria->expr() + ->lt('activity.realStartDate', $data['startBefore']))); + } + // Create query $query = $activityRepository->createQueryBuilder('activity'); $query->join(ActorEntity::class, 'actor', Join::WITH, 'activity.actor = actor');