fix: apply logic for full prices filter

This commit is contained in:
Simon Emanuelsson
2025-04-03 10:09:59 +02:00
committed by Michael Zetterberg
parent 3942ab1ff4
commit 8a7c55edff
8 changed files with 65 additions and 19 deletions

View File

@@ -15,7 +15,10 @@ import { RoomPackageCodeEnum } from "@/types/components/hotelReservation/selectR
import { BookingCodeFilterEnum } from "@/types/enums/bookingCodeFilter"
import { RateTypeEnum } from "@/types/enums/rateType"
import type { InitialState, RatesState } from "@/types/stores/rates"
import type { RoomConfiguration } from "@/types/trpc/routers/hotel/roomAvailability"
import type {
PriceProduct,
RoomConfiguration,
} from "@/types/trpc/routers/hotel/roomAvailability"
export function createRatesStore({
booking,
@@ -169,12 +172,23 @@ export function createRatesStore({
)
if (incomingRoom) {
let campaign = currentRoom.campaign
if (incomingRoom.campaign.length) {
const newCampaign = [
...campaign,
...incomingRoom.campaign,
].reduce((cpns, cpn) => {
if (cpns.has(cpn.rateDefinition.rateCode)) {
return cpns
}
cpns.set(cpn.rateDefinition.rateCode, cpn)
return cpns
}, new Map<string, PriceProduct>())
campaign = Array.from(newCampaign.values())
}
return {
...currentRoom,
campaign: [
...currentRoom.campaign,
...incomingRoom.campaign,
],
campaign,
products: [
...currentRoom.products,
...incomingRoom.products,