From 2beba213231e2fd7f5995109af886ee3ee3355f1 Mon Sep 17 00:00:00 2001 From: Pontus Dreij Date: Wed, 13 Nov 2024 20:27:53 +0100 Subject: [PATCH] feat(SW-874): Updated logic for getLowestPricedDuplicateRooms --- .../SelectRate/Rooms/utils.ts | 47 ++++++++++++++----- 1 file changed, 36 insertions(+), 11 deletions(-) diff --git a/components/HotelReservation/SelectRate/Rooms/utils.ts b/components/HotelReservation/SelectRate/Rooms/utils.ts index 3c0507371..d7f7d2d85 100644 --- a/components/HotelReservation/SelectRate/Rooms/utils.ts +++ b/components/HotelReservation/SelectRate/Rooms/utils.ts @@ -46,7 +46,7 @@ export function getLowestPricedDuplicateRooms( localPrice: memberLocalPrice, } = memberProduct - const currentLowest = roomMap.get(roomType) + const previousLowest = roomMap.get(roomType) const currentRequestedPrice = Math.min( Number(publicRequestedPrice.pricePerNight) ?? Infinity, @@ -58,17 +58,42 @@ export function getLowestPricedDuplicateRooms( ) if ( - !currentLowest || - currentRequestedPrice < currentLowest.requestedPrice || - (currentRequestedPrice === currentLowest.requestedPrice && - currentLocalPrice < currentLowest.localPrice) + !previousLowest || + currentRequestedPrice < + Math.min( + Number( + previousLowest.products[0].productType.public.requestedPrice + .pricePerNight + ) ?? Infinity, + Number( + previousLowest.products[0].productType.member?.requestedPrice + ?.pricePerNight + ) ?? Infinity + ) || + (currentRequestedPrice === + Math.min( + Number( + previousLowest.products[0].productType.public.requestedPrice + .pricePerNight + ) ?? Infinity, + Number( + previousLowest.products[0].productType.member?.requestedPrice + ?.pricePerNight + ) ?? Infinity + ) && + currentLocalPrice < + Math.min( + Number( + previousLowest.products[0].productType.public.localPrice + .pricePerNight + ) ?? Infinity, + Number( + previousLowest.products[0].productType.member?.localPrice + ?.pricePerNight + ) ?? Infinity + )) ) { - roomMap.set(roomType, { - ...room, - product, - requestedPrice: currentRequestedPrice, - localPrice: currentLocalPrice, - }) + roomMap.set(roomType, room) } }) })