From 0be293288de297ca7ed83ee0f9e9ce6a6ec11200 Mon Sep 17 00:00:00 2001 From: Mayank Mishra Date: Tue, 14 Apr 2026 13:22:00 +0530 Subject: [PATCH] fix isuue --- .../user/services/itinerary.service.ts | 76 ++++++++++++++++--- 1 file changed, 66 insertions(+), 10 deletions(-) diff --git a/src/modules/user/services/itinerary.service.ts b/src/modules/user/services/itinerary.service.ts index f4ecae8..7d2aacc 100644 --- a/src/modules/user/services/itinerary.service.ts +++ b/src/modules/user/services/itinerary.service.ts @@ -695,6 +695,45 @@ export class ItineraryService { }, }, }, + ActivityVenues: { + where: { isActive: true, deletedAt: null }, + select: { + id: true, + venueName: true, + venueLabel: true, + venueCapacity: true, + availableSeats: true, + ActivityPrices: { + where: { isActive: true, deletedAt: null }, + orderBy: { createdAt: 'asc' }, + select: { + id: true, + noOfSession: true, + isPackage: true, + sessionValidity: true, + sessionValidityFrequency: true, + basePrice: true, + sellPrice: true, + ActivityPriceTaxes: { + where: { isActive: true, deletedAt: null }, + select: { + id: true, + taxXid: true, + taxPer: true, + taxAmount: true, + taxes: { + select: { + id: true, + taxName: true, + taxPer: true, + }, + }, + }, + }, + }, + }, + }, + }, }, }, itineraryActivitySelections: { @@ -833,10 +872,34 @@ export class ItineraryService { throw new ApiError(404, 'Itinerary not found.'); } - const activities = await Promise.all( + const activities = await Promise.all( (itinerary.ItineraryActivities ?? []).map(async (item) => { const coverImage = item.activity?.ActivitiesMedia?.[0]?.mediaFileName ?? null; const coverImagePresignedUrl = await attachPresignedUrl(coverImage); + const selectedVenue = item.activity?.ActivityVenues?.find( + (venue) => venue.id === item.venueXid, + ) ?? null; + const venueForPricing = + selectedVenue ?? item.activity?.ActivityVenues?.[0] ?? null; + const venuePrices = venueForPricing?.ActivityPrices ?? []; + const activityPriceDetails = venuePrices.reduce( + (lowest, current) => + !lowest || current.sellPrice < lowest.sellPrice ? current : lowest, + null as (typeof venuePrices)[number] | null, + ); + const selectedVenueCharge = activityPriceDetails + ? summarizeCheckoutRows([ + { + id: activityPriceDetails.id, + baseAmount: Number(activityPriceDetails.basePrice) || 0, + totalAmount: + activityPriceDetails.sellPrice === null + ? null + : Number(activityPriceDetails.sellPrice), + taxes: mapCheckoutTaxes(activityPriceDetails.ActivityPriceTaxes ?? []), + }, + ]) + : { items: [], baseAmount: 0, taxAmount: 0, totalAmount: 0 }; const details = item.ItineraryDetails ?? []; const memberSelectionGroups = new Map(); @@ -863,12 +926,7 @@ export class ItineraryService { const activityCharge = pickCheckoutSummary(detailGroups, ['ACTIVITY']) ?? - { - items: [], - baseAmount: Number(item.totalAmount) || 0, - taxAmount: 0, - totalAmount: Number(item.totalAmount) || 0, - }; + selectedVenueCharge; const foodCharge = pickCheckoutSummary(detailGroups, ['FOOD']) ?? @@ -1030,9 +1088,7 @@ export class ItineraryService { }; }); - const activityTotalAmount = sumCheckoutValues( - memberSelections.map((selection) => selection.pricing.totalAmount), - ); + const activityTotalAmount = Number(selectedVenueCharge.totalAmount) || 0; return { itineraryActivityXid: item.id,