diff --git a/public/typo3conf/ext/ep_products/Classes/Domain/Repository/ProductRepository.php b/public/typo3conf/ext/ep_products/Classes/Domain/Repository/ProductRepository.php index 5970370f..63fa7940 100644 --- a/public/typo3conf/ext/ep_products/Classes/Domain/Repository/ProductRepository.php +++ b/public/typo3conf/ext/ep_products/Classes/Domain/Repository/ProductRepository.php @@ -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') ; diff --git a/public/typo3conf/ext/ep_products/Classes/Service/DateImportService.php b/public/typo3conf/ext/ep_products/Classes/Service/DateImportService.php index 7278d31d..205f61c4 100644 --- a/public/typo3conf/ext/ep_products/Classes/Service/DateImportService.php +++ b/public/typo3conf/ext/ep_products/Classes/Service/DateImportService.php @@ -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;