fix: respect booking stop flag in price tables
This commit is contained in:
@@ -5,6 +5,7 @@ namespace EP\EpProducts\Domain\Repository;
|
||||
use EP\EpProducts\Domain\Model\Date;
|
||||
use EP\EpProducts\Domain\Model\Hotel;
|
||||
use EP\EpProducts\Domain\Model\Product;
|
||||
use EP\EpProducts\Domain\Model\Room;
|
||||
use TYPO3\CMS\Core\Database\Connection;
|
||||
|
||||
class ProductRepository extends AbstractRepository
|
||||
@@ -203,7 +204,8 @@ class ProductRepository extends AbstractRepository
|
||||
'date.season as season', 'date.product_detail_page as productDetailPage',
|
||||
'room.uid as roomUid', 'room.bus_pro_id as roomBusProId', 'room.name as roomName',
|
||||
'room.price as roomPrice', 'date.discount as roomDiscount', 'date.bus_price as busPrice',
|
||||
'room.services as roomOptionalServices', 'room.nights as roomNights', 'room.available as roomAvailable'
|
||||
'room.services as roomOptionalServices', 'room.nights as roomNights', 'room.available as roomAvailable',
|
||||
'room.status as roomStatus'
|
||||
)
|
||||
->from('tx_epproducts_domain_model_date', 'date')
|
||||
->innerJoin('date', 'tx_epproducts_domain_model_room', 'room', 'date.uid = room.date')
|
||||
@@ -222,6 +224,10 @@ class ProductRepository extends AbstractRepository
|
||||
'date.hotel',
|
||||
$qb->createNamedParameter($hotel->getUid(), Connection::PARAM_INT))
|
||||
)
|
||||
->andWhere($qb->expr()->neq(
|
||||
'room.status',
|
||||
$qb->createNamedParameter(Room::ROOM_STATUS_FULLY_BOOKED, Connection::PARAM_INT))
|
||||
)
|
||||
;
|
||||
|
||||
if ($filterSettings['productsPid']) {
|
||||
@@ -274,6 +280,10 @@ class ProductRepository extends AbstractRepository
|
||||
'date.hotel',
|
||||
$qb->createNamedParameter($hotel->getUid(), Connection::PARAM_INT))
|
||||
)
|
||||
->andWhere($qb->expr()->neq(
|
||||
'room.status',
|
||||
$qb->createNamedParameter(Room::ROOM_STATUS_FULLY_BOOKED, Connection::PARAM_INT))
|
||||
)
|
||||
->groupBy('date.date_start')
|
||||
;
|
||||
|
||||
@@ -341,6 +351,10 @@ class ProductRepository extends AbstractRepository
|
||||
'date.hotel',
|
||||
$qb->createNamedParameter($hotel->getUid(), Connection::PARAM_INT))
|
||||
)
|
||||
->andWhere($qb->expr()->neq(
|
||||
'room.status',
|
||||
$qb->createNamedParameter(Room::ROOM_STATUS_FULLY_BOOKED, Connection::PARAM_INT))
|
||||
)
|
||||
;
|
||||
|
||||
return $qb
|
||||
@@ -372,6 +386,10 @@ class ProductRepository extends AbstractRepository
|
||||
'date.product',
|
||||
$qb->createNamedParameter($product->getUid(), Connection::PARAM_INT))
|
||||
)
|
||||
->andWhere($qb->expr()->neq(
|
||||
'room.status',
|
||||
$qb->createNamedParameter(Room::ROOM_STATUS_FULLY_BOOKED, Connection::PARAM_INT))
|
||||
)
|
||||
->orderBy('room.available', 'DESC')
|
||||
->addOrderBy('room.name', 'ASC')
|
||||
;
|
||||
|
||||
@@ -634,7 +634,7 @@ class DateImportService implements SingletonInterface, LoggerAwareInterface
|
||||
$minPriceOverall = $price;
|
||||
}
|
||||
|
||||
if ($roomXml->attributes()['status'] === static::STATUS_STOP && $price && !$available) {
|
||||
if ($roomXml->attributes()['status'] === static::STATUS_STOP && $price) {
|
||||
$status = Room::ROOM_STATUS_FULLY_BOOKED;
|
||||
} elseif ($roomXml->attributes()['status'] === static::STATUS_ON_REQUEST) {
|
||||
$status = Room::ROOM_STATUS_ON_REQUEST;
|
||||
|
||||
Reference in New Issue
Block a user