feat: multiple hotelcodes assignable to users

This commit is contained in:
Björn Fromme
2025-01-08 10:07:19 +01:00
parent 5a07d95837
commit c15188c43c
16 changed files with 256 additions and 67 deletions
+17 -7
View File
@@ -148,8 +148,10 @@ class DispositionRepository extends ServiceEntityRepository
;
}
public function findNewDispositionsByHotelCode(string $hotelCode): array
public function findNewDispositionsByHotelCodes(mixed $hotelCode): array
{
$hotelCodes = (array) $hotelCode;
$qb = $this->createQueryBuilder('disposition');
return $qb
@@ -157,12 +159,15 @@ class DispositionRepository extends ServiceEntityRepository
->innerJoin('disposition.assignment', 'assignment')
->innerJoin('assignment.destination', 'destination')
->where($qb->expr()->andX(
$qb->expr()->like('destination.hotelCode', ':hotelCode'),
$qb->expr()->orX(
$qb->expr()->in($qb->expr()->substring('destination.hotelCode', 1, 3), ':hotelCodes'),
$qb->expr()->in($qb->expr()->substring('destination.hotelCode', -3, 3), ':hotelCodes'),
),
$qb->expr()->gte('destination.dateTo', ':dateTo'),
$qb->expr()->eq('disposition.status', ':status')
))
->orderBy('destination.dateFrom', 'ASC')
->setParameter('hotelCode', '%'.$hotelCode.'%')
->setParameter('hotelCodes', $hotelCodes)
->setParameter('dateTo', new \DateTimeImmutable())
->setParameter('status', Disposition::STATUS_CONFIRMED)
->getQuery()
@@ -170,8 +175,10 @@ class DispositionRepository extends ServiceEntityRepository
;
}
public function getDispositionsWithPendingFeedbackQuery(?string $hotelCode = null, ?int $offsetDays = null): Query
public function getDispositionsWithPendingFeedbackQuery(mixed $hotelCode = null, ?int $offsetDays = null): Query
{
$hotelCodes = (array) $hotelCode;
$qb = $this->createQueryBuilder('disposition');
$qb
@@ -201,8 +208,11 @@ class DispositionRepository extends ServiceEntityRepository
if (null !== $hotelCode) {
$qb
->andWhere($qb->expr()->like('destination.hotelCode', ':hotelCode'))
->setParameter('hotelCode', '%'.$hotelCode.'%')
->andWhere($qb->expr()->orX(
$qb->expr()->in($qb->expr()->substring('destination.hotelCode', 1, 3), ':hotelCodes'),
$qb->expr()->in($qb->expr()->substring('destination.hotelCode', -3, 3), ':hotelCodes'),
))
->setParameter('hotelCodes', $hotelCodes)
;
}
@@ -217,7 +227,7 @@ class DispositionRepository extends ServiceEntityRepository
;
}
public function findDispositionsWithPendingFeedbackByHotelCode(string $hotelCode): array
public function findDispositionsWithPendingFeedbackByHotelCodes(mixed $hotelCode): array
{
return $this
->getDispositionsWithPendingFeedbackQuery($hotelCode)