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\Date;
|
||||||
use EP\EpProducts\Domain\Model\Hotel;
|
use EP\EpProducts\Domain\Model\Hotel;
|
||||||
use EP\EpProducts\Domain\Model\Product;
|
use EP\EpProducts\Domain\Model\Product;
|
||||||
|
use EP\EpProducts\Domain\Model\Room;
|
||||||
use TYPO3\CMS\Core\Database\Connection;
|
use TYPO3\CMS\Core\Database\Connection;
|
||||||
|
|
||||||
class ProductRepository extends AbstractRepository
|
class ProductRepository extends AbstractRepository
|
||||||
@@ -203,7 +204,8 @@ class ProductRepository extends AbstractRepository
|
|||||||
'date.season as season', 'date.product_detail_page as productDetailPage',
|
'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.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.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')
|
->from('tx_epproducts_domain_model_date', 'date')
|
||||||
->innerJoin('date', 'tx_epproducts_domain_model_room', 'room', 'date.uid = room.date')
|
->innerJoin('date', 'tx_epproducts_domain_model_room', 'room', 'date.uid = room.date')
|
||||||
@@ -222,6 +224,10 @@ class ProductRepository extends AbstractRepository
|
|||||||
'date.hotel',
|
'date.hotel',
|
||||||
$qb->createNamedParameter($hotel->getUid(), Connection::PARAM_INT))
|
$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']) {
|
if ($filterSettings['productsPid']) {
|
||||||
@@ -274,6 +280,10 @@ class ProductRepository extends AbstractRepository
|
|||||||
'date.hotel',
|
'date.hotel',
|
||||||
$qb->createNamedParameter($hotel->getUid(), Connection::PARAM_INT))
|
$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')
|
->groupBy('date.date_start')
|
||||||
;
|
;
|
||||||
|
|
||||||
@@ -341,6 +351,10 @@ class ProductRepository extends AbstractRepository
|
|||||||
'date.hotel',
|
'date.hotel',
|
||||||
$qb->createNamedParameter($hotel->getUid(), Connection::PARAM_INT))
|
$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
|
return $qb
|
||||||
@@ -372,6 +386,10 @@ class ProductRepository extends AbstractRepository
|
|||||||
'date.product',
|
'date.product',
|
||||||
$qb->createNamedParameter($product->getUid(), Connection::PARAM_INT))
|
$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')
|
->orderBy('room.available', 'DESC')
|
||||||
->addOrderBy('room.name', 'ASC')
|
->addOrderBy('room.name', 'ASC')
|
||||||
;
|
;
|
||||||
|
|||||||
@@ -634,7 +634,7 @@ class DateImportService implements SingletonInterface, LoggerAwareInterface
|
|||||||
$minPriceOverall = $price;
|
$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;
|
$status = Room::ROOM_STATUS_FULLY_BOOKED;
|
||||||
} elseif ($roomXml->attributes()['status'] === static::STATUS_ON_REQUEST) {
|
} elseif ($roomXml->attributes()['status'] === static::STATUS_ON_REQUEST) {
|
||||||
$status = Room::ROOM_STATUS_ON_REQUEST;
|
$status = Room::ROOM_STATUS_ON_REQUEST;
|
||||||
|
|||||||
Reference in New Issue
Block a user