Merged in fix/add-multinight-breakfast (pull request #1705)

The number of breakfasts and total sums weren’t correctly calculated. This fixes that.

Also changes display logic of when the ancillaries sections are shown

Approved-by: Bianca Widstam
This commit is contained in:
Niclas Edenvin
2025-04-02 16:03:50 +00:00
parent a222ecfc5c
commit a34951e075
5 changed files with 66 additions and 39 deletions

View File

@@ -46,8 +46,12 @@ export default function PriceDetails({
}
const totalPrice = isBreakfast
? breakfastData!.priceAdult * breakfastData!.nrOfAdults +
breakfastData!.priceChild * breakfastData!.nrOfPayingChildren
? breakfastData!.priceAdult *
breakfastData!.nrOfAdults *
breakfastData!.nrOfNights +
breakfastData!.priceChild *
breakfastData!.nrOfPayingChildren *
breakfastData!.nrOfNights
: quantityWithCard && selectedAncillary
? selectedAncillary.price.total * quantityWithCard
: null
@@ -73,7 +77,7 @@ export default function PriceDetails({
title: `${selectedAncillary.title} / ${intl.formatMessage({ id: "Adult" })}`,
totalPrice: breakfastData.priceAdult,
currency: breakfastData.currency,
quantityWithCard: breakfastData.nrOfAdults,
quantityWithCard: breakfastData.nrOfAdults * breakfastData.nrOfNights,
},
]
@@ -82,7 +86,8 @@ export default function PriceDetails({
title: `${selectedAncillary.title} / ${intl.formatMessage({ id: "Children" })} 4-12`,
totalPrice: breakfastData.priceChild,
currency: breakfastData.currency,
quantityWithCard: breakfastData.nrOfPayingChildren,
quantityWithCard:
breakfastData.nrOfPayingChildren * breakfastData.nrOfNights,
})
}
@@ -91,7 +96,8 @@ export default function PriceDetails({
title: `${selectedAncillary.title} / ${intl.formatMessage({ id: "Children under {age}" }, { age: 4 })}`,
totalPrice: 0,
currency: breakfastData.currency,
quantityWithCard: breakfastData.nrOfFreeChildren,
quantityWithCard:
breakfastData.nrOfFreeChildren * breakfastData.nrOfNights,
})
}

View File

@@ -11,6 +11,7 @@ import { Typography } from "@scandic-hotels/design-system/Typography"
import { PaymentMethodEnum } from "@/constants/booking"
import { guaranteeCallback } from "@/constants/routes/hotelReservation"
import { env } from "@/env/client"
import { dt } from "@/lib/dt"
import { trpc } from "@/lib/trpc/client"
import {
AncillaryStepEnum,
@@ -300,11 +301,16 @@ export default function AddAncillaryFlowModal({
isBreakfast,
packages,
booking.adults,
booking.childrenAges
booking.childrenAges,
dt(booking.checkOutDate)
.startOf("day")
.diff(dt(booking.checkInDate).startOf("day"), "days")
)
)
}, [
booking.adults,
booking.checkInDate,
booking.checkOutDate,
booking.childrenAges,
isBreakfast,
packages,
@@ -471,7 +477,8 @@ function calculateBreakfastData(
isBreakfast: boolean,
packages: Packages | null,
nrOfAdults: number,
childrenAges: number[]
childrenAges: number[],
nrOfNights: number
): BreakfastData | null {
if (!isBreakfast) {
return null
@@ -503,6 +510,7 @@ function calculateBreakfastData(
nrOfAdults,
nrOfPayingChildren,
nrOfFreeChildren,
nrOfNights,
priceAdult,
priceChild,
currency,