fix: limit destination autocomplete results to upcoming dates

This commit is contained in:
Björn Fromme
2024-01-13 11:44:58 +01:00
parent 1654ab9903
commit b279646780
+12 -3
View File
@@ -24,12 +24,11 @@ class DestinationRepository extends ServiceEntityRepository
parent::__construct($registry, Destination::class); parent::__construct($registry, Destination::class);
} }
public function getAutocompletionData(string $search): array public function getAutocompletionData(string $search, bool $upcomingOnly = true): array
{ {
$qb = $this->createQueryBuilder('destination'); $qb = $this->createQueryBuilder('destination');
$dates = $qb $qb->where(
->where(
$qb->expr()->andX( $qb->expr()->andX(
$qb->expr()->isNull('destination.deletedAt'), $qb->expr()->isNull('destination.deletedAt'),
$qb->expr()->orX( $qb->expr()->orX(
@@ -40,6 +39,16 @@ class DestinationRepository extends ServiceEntityRepository
)) ))
) )
->setParameter('search', '%'.$this->escapeLikeWildcards($search).'%') ->setParameter('search', '%'.$this->escapeLikeWildcards($search).'%')
;
if (true === $upcomingOnly) {
$qb
->andWhere($qb->expr()->gt('destination.dateFrom', ':now'))
->setParameter('now', new \DateTimeImmutable())
;
}
$dates = $qb
->orderBy('destination.dateFrom', 'ASC') ->orderBy('destination.dateFrom', 'ASC')
->addOrderBy('destination.product', 'ASC') ->addOrderBy('destination.product', 'ASC')
->getQuery() ->getQuery()