fix: initial fix of modify dates

This commit is contained in:
Simon Emanuelsson
2025-04-02 21:52:31 +02:00
committed by Michael Zetterberg
parent a34951e075
commit 4e36fecd6e
3 changed files with 80 additions and 67 deletions

View File

@@ -189,7 +189,7 @@ export default function PriceDetailsModal() {
})} })}
value={formatPrice( value={formatPrice(
intl, intl,
room.breakfast.totalPrice * room.adults, room.breakfast.totalPrice,
currencyCode currencyCode
)} )}
/> />

View File

@@ -282,79 +282,91 @@ export default function PaymentClient({
status: "attempt", status: "attempt",
}) })
initiateBooking.mutate({ const payload = {
checkInDate: fromDate, checkInDate: fromDate,
checkOutDate: toDate, checkOutDate: toDate,
hotelId, hotelId,
language: lang, language: lang,
payment, payment,
rooms: rooms.map(({ room }, idx) => ({ rooms: rooms.map(({ room }, idx) => {
adults: room.adults, const isMainRoom = idx === 0
bookingCode: room.roomRate.bookingCode, let rateCode = ""
childrenAges: room.childrenInRoom?.map((child) => ({ if (isMainRoom && isUserLoggedIn) {
age: child.age, rateCode = booking.rooms[idx].rateCode
bedType: bedTypeMap[parseInt(child.bed.toString())], } else if (
})),
guest: {
becomeMember: room.guest.join,
countryCode: room.guest.countryCode,
email: room.guest.email,
firstName: room.guest.firstName,
lastName: room.guest.lastName,
membershipNumber: room.guest.membershipNo,
phoneNumber: room.guest.phoneNumber,
// Only allowed for room one
...(idx === 0 && {
dateOfBirth:
"dateOfBirth" in room.guest && room.guest.dateOfBirth
? room.guest.dateOfBirth
: undefined,
postalCode:
"zipCode" in room.guest && room.guest.zipCode
? room.guest.zipCode
: undefined,
}),
},
packages: {
accessibility:
room.roomFeatures?.some(
(feature) =>
feature.code === RoomPackageCodeEnum.ACCESSIBILITY_ROOM
) ?? false,
allergyFriendly:
room.roomFeatures?.some(
(feature) => feature.code === RoomPackageCodeEnum.ALLERGY_ROOM
) ?? false,
breakfast: !!(room.breakfast && room.breakfast.code),
petFriendly:
room.roomFeatures?.some(
(feature) => feature.code === RoomPackageCodeEnum.PET_ROOM
) ?? false,
},
rateCode:
(room.guest.join || room.guest.membershipNo) && (room.guest.join || room.guest.membershipNo) &&
booking.rooms[idx].counterRateCode booking.rooms[idx].counterRateCode
? booking.rooms[idx].counterRateCode ) {
: booking.rooms[idx].rateCode, rateCode = booking.rooms[idx].counterRateCode
roomPrice: { } else {
memberPrice: rateCode = booking.rooms[idx].rateCode
"member" in room.roomRate }
? room.roomRate.member?.localPrice.pricePerStay return {
adults: room.adults,
bookingCode: room.roomRate.bookingCode,
childrenAges: room.childrenInRoom?.map((child) => ({
age: child.age,
bedType: bedTypeMap[parseInt(child.bed.toString())],
})),
guest: {
becomeMember: room.guest.join,
countryCode: room.guest.countryCode,
email: room.guest.email,
firstName: room.guest.firstName,
lastName: room.guest.lastName,
membershipNumber: room.guest.membershipNo,
phoneNumber: room.guest.phoneNumber,
// Only allowed for room one
...(idx === 0 && {
dateOfBirth:
"dateOfBirth" in room.guest && room.guest.dateOfBirth
? room.guest.dateOfBirth
: undefined,
postalCode:
"zipCode" in room.guest && room.guest.zipCode
? room.guest.zipCode
: undefined,
}),
},
packages: {
accessibility:
room.roomFeatures?.some(
(feature) =>
feature.code === RoomPackageCodeEnum.ACCESSIBILITY_ROOM
) ?? false,
allergyFriendly:
room.roomFeatures?.some(
(feature) => feature.code === RoomPackageCodeEnum.ALLERGY_ROOM
) ?? false,
breakfast: !!(room.breakfast && room.breakfast.code),
petFriendly:
room.roomFeatures?.some(
(feature) => feature.code === RoomPackageCodeEnum.PET_ROOM
) ?? false,
},
rateCode,
roomPrice: {
memberPrice:
"member" in room.roomRate
? room.roomRate.member?.localPrice.pricePerStay
: undefined,
publicPrice:
"public" in room.roomRate
? room.roomRate.public?.localPrice.pricePerStay
: undefined,
},
roomTypeCode: room.bedType!.roomTypeCode, // A selection has been made in order to get to this step.
smsConfirmationRequested: data.smsConfirmation,
specialRequest: {
comment: room.specialRequest.comment
? room.specialRequest.comment
: undefined, : undefined,
publicPrice: },
"public" in room.roomRate }
? room.roomRate.public?.localPrice.pricePerStay }),
: undefined, }
},
roomTypeCode: room.bedType!.roomTypeCode, // A selection has been made in order to get to this step. initiateBooking.mutate(payload)
smsConfirmationRequested: data.smsConfirmation,
specialRequest: {
comment: room.specialRequest.comment
? room.specialRequest.comment
: undefined,
},
})),
})
}, },
[ [
savedCreditCards, savedCreditCards,
@@ -368,6 +380,7 @@ export default function PaymentClient({
getPaymentMethod, getPaymentMethod,
hasOnlyFlexRates, hasOnlyFlexRates,
bookingMustBeGuaranteed, bookingMustBeGuaranteed,
isUserLoggedIn,
] ]
) )

View File

@@ -90,7 +90,7 @@ export default function useModifyStay({
let totalNewPrice = 0 let totalNewPrice = 0
try { try {
const data = await utils.client.hotel.availability.room.query({ const data = await utils.hotel.availability.room.fetch({
hotelId: bookedRoom.hotelId, hotelId: bookedRoom.hotelId,
roomStayStartDate: formValues.checkInDate, roomStayStartDate: formValues.checkInDate,
roomStayEndDate: formValues.checkOutDate, roomStayEndDate: formValues.checkOutDate,