}
- title={title}
- subtitle={paymentTerm}
+ title={rateTitle ? rateTitle : title}
+ subtitle={rateTitle ? `${title} (${paymentTerm})` : paymentTerm}
>
{priceInformation?.map((info) => (
diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomSelectionPanel/RoomCard/index.tsx b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomSelectionPanel/RoomCard/index.tsx
index 8058902f5..e0d66ff63 100644
--- a/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomSelectionPanel/RoomCard/index.tsx
+++ b/apps/scandic-web/components/HotelReservation/SelectRate/RoomsContainer/Rooms/RoomSelectionPanel/RoomCard/index.tsx
@@ -147,34 +147,34 @@ export default function RoomCard({ roomConfiguration }: RoomCardProps) {
const payNow = intl.formatMessage({ id: "Pay now" })
function getRate(rateCode: string, rateDefinition?: RateDefinition) {
+ const rateObj = {
+ terms: rateDefinition?.generalTerms,
+ rateTitle:
+ rateDefinition?.rateType !== RateTypeEnum.Regular
+ ? rateDefinition?.title
+ : undefined,
+ }
switch (rateCode) {
case "change":
return {
isFlex: false,
notAvailable: false,
title: freeBooking,
- terms: rateDefinition?.generalTerms,
+ ...rateObj,
}
case "flex":
return {
isFlex: true,
notAvailable: false,
title: freeCancelation,
- terms: rateDefinition?.generalTerms,
+ ...rateObj,
}
case "save":
return {
isFlex: false,
notAvailable: false,
title: nonRefundable,
- terms: rateDefinition?.generalTerms,
- }
- case "special":
- return {
- isFlex: rateDefinition?.cancellationRule === "CancellableBefore6PM",
- notAvailable: false,
- title: rateDefinition?.title ?? "",
- terms: rateDefinition?.generalTerms,
+ ...rateObj,
}
default:
throw new Error(
@@ -207,6 +207,7 @@ export default function RoomCard({ roomConfiguration }: RoomCardProps) {
notAvailable: true,
title: "",
terms: undefined,
+ rateTitle: undefined,
}
}
@@ -331,23 +332,30 @@ export default function RoomCard({ roomConfiguration }: RoomCardProps) {
>
) : (
<>
-
{breakfastMessage}
- {bookingCode ? (
-
-
- {bookingCode}
-
- ) : null}
+
+ {breakfastMessage}
+ {bookingCode ? (
+
+
+ {bookingCode}
+
+ ) : null}
+
{roomConfiguration.products.map((product) => {
const rate = getRateInfo(product)
const isSelectedRateCode =
selectedRate?.product.productType.public.rateCode ===
product.productType.public.rateCode ||
- selectedRate?.product.productType.member?.rateCode ===
- product.productType.member?.rateCode
+ (selectedRate?.product.productType.member?.rateCode ===
+ product.productType.member?.rateCode &&
+ product.productType.member?.rateCode !== undefined)
return (
)
})}
diff --git a/apps/scandic-web/components/HotelReservation/SelectRate/utils.ts b/apps/scandic-web/components/HotelReservation/SelectRate/utils.ts
index e3a3db3ac..abab1f575 100644
--- a/apps/scandic-web/components/HotelReservation/SelectRate/utils.ts
+++ b/apps/scandic-web/components/HotelReservation/SelectRate/utils.ts
@@ -2,7 +2,6 @@ import { trpc } from "@/lib/trpc/client"
import { RoomPackageCodeEnum } from "@/types/components/hotelReservation/selectRate/roomFilter"
import type { Child } from "@/types/components/hotelReservation/selectRate/selectRate"
-import { RateTypeEnum } from "@/types/enums/rateType"
import type { RoomsAvailability } from "@/types/trpc/routers/hotel/roomAvailability"
import type { Lang } from "@/constants/languages"
@@ -39,17 +38,14 @@ export function getRates(
) {
return {
change: rateDefinitions.filter(
- (rate) => rate.cancellationRule === "Changeable" && rate.rateType === RateTypeEnum.Regular
+ (rate) => rate.cancellationRule === "Changeable"
),
flex: rateDefinitions.filter(
- (rate) => rate.cancellationRule === "CancellableBefore6PM" && rate.rateType === RateTypeEnum.Regular
+ (rate) => rate.cancellationRule === "CancellableBefore6PM"
),
save: rateDefinitions.filter(
- (rate) => rate.cancellationRule === "NotCancellable" && rate.rateType === RateTypeEnum.Regular
+ (rate) => rate.cancellationRule === "NotCancellable"
),
- special: rateDefinitions.filter(
- (rate) => rate.rateType !== RateTypeEnum.Regular
- )
}
}
diff --git a/apps/scandic-web/types/components/hotelReservation/selectRate/flexibilityOption.ts b/apps/scandic-web/types/components/hotelReservation/selectRate/flexibilityOption.ts
index 37d5c8baa..3da8369de 100644
--- a/apps/scandic-web/types/components/hotelReservation/selectRate/flexibilityOption.ts
+++ b/apps/scandic-web/types/components/hotelReservation/selectRate/flexibilityOption.ts
@@ -23,6 +23,7 @@ export type FlexibilityOptionProps = {
roomType: RoomConfiguration["roomType"]
roomTypeCode: RoomConfiguration["roomTypeCode"]
title: string
+ rateTitle?: string // This is for special rates via booking codes
}
export interface PriceListProps {