diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomSelectionPanel/RoomCard/FlexibilityOption/PriceList/index.tsx b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomSelectionPanel/RoomCard/FlexibilityOption/PriceList/index.tsx index a421c93c2..c605baa21 100644 --- a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomSelectionPanel/RoomCard/FlexibilityOption/PriceList/index.tsx +++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomSelectionPanel/RoomCard/FlexibilityOption/PriceList/index.tsx @@ -63,6 +63,11 @@ export default function PriceList({ nights, }) + // When it is Promotion rate either booking code rate or public + // Show striked Regular rate which is overtaken by the Promotional rate when member rate is not available + const showOvertakingPrice = + !memberLocalPrice && publicLocalPrice.regularPricePerNight + return (
{isUserLoggedIn && isMainRoom && memberLocalPrice ? null : ( @@ -129,7 +134,7 @@ export default function PriceList({ )} - {publicLocalPrice.regularPricePerNight && ( + {showOvertakingPrice && (
diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomSelectionPanel/index.tsx b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomSelectionPanel/index.tsx index 882450e63..2dd064350 100644 --- a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomSelectionPanel/index.tsx +++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomSelectionPanel/index.tsx @@ -34,8 +34,8 @@ export default function RoomSelectionPanel() { (state) => state.activeCodeFilter ) - // With Booking code rates we will always obtain public rate and never a member rate, - // so we should ignore it from the logic below. + // Regular Rates (Save, Change and Flex) always should send both public and member rates + // so we can check public rates for availability const isRegularRatesAvailableWithCode = bookingCode && rooms.some( @@ -49,6 +49,8 @@ export default function RoomSelectionPanel() { // Booking codes rate comes with various rate types but Regular is reserved // for non-booking code rates (Save, Change & Flex) + // With Booking code rates we will always obtain public rate and maybe a member rate + // so we check for public rate and ignore member rate const isBookingCodeRatesAvailable = bookingCode && rooms.some( diff --git a/apps/scandic-web/server/routers/hotels/schemas/roomAvailability/configuration.ts b/apps/scandic-web/server/routers/hotels/schemas/roomAvailability/configuration.ts index 56acc0e14..9c5ed5ae7 100644 --- a/apps/scandic-web/server/routers/hotels/schemas/roomAvailability/configuration.ts +++ b/apps/scandic-web/server/routers/hotels/schemas/roomAvailability/configuration.ts @@ -44,7 +44,8 @@ export const roomConfigurationSchema = z return product } - // Return rate even if single when booking code rate which can be any one of other rate types + // Return rate with only public available when it is a booking code rate + // which can be any one of other rate types if (product.productType.public.rateType !== RateTypeEnum.Regular) { return product }