diff --git a/src/modules/item-related/item/domain/usecases/managers/update-item-rate-price.manager.ts b/src/modules/item-related/item/domain/usecases/managers/update-item-rate-price.manager.ts index e11f875..4de2209 100644 --- a/src/modules/item-related/item/domain/usecases/managers/update-item-rate-price.manager.ts +++ b/src/modules/item-related/item/domain/usecases/managers/update-item-rate-price.manager.ts @@ -22,20 +22,25 @@ export class UpdateItemRatePriceManager extends BaseCustomManager { async beforeProcess(): Promise { let query; + const bundling_items = []; const item_ids = this.data.items.map((item) => { + if (item.item.bundling_items) { + const bundlings = item.item.bundling_items.map(({ id }) => id); + bundling_items.push(...bundlings); + } return item.item.id; }); if (this.data.season_period_id) { query = { - item_id: In(item_ids), + item_id: In([...item_ids, ...bundling_items]), season_period: { id: this.data.season_period_id, }, }; } else { query = { - item_id: In(item_ids), + item_id: In([...item_ids, ...bundling_items]), season_period: { start_date: MoreThanOrEqual(this.data.booking_date), end_date: LessThanOrEqual(this.data.booking_date), @@ -54,6 +59,16 @@ export class UpdateItemRatePriceManager extends BaseCustomManager { const current_price = this.rates.find( (rate) => rate.item_id == item.item.id, ); + item.item.bundling_items = item.item.bundling_items?.map((bundling) => { + const current_price = this.rates.find( + (rate) => rate.item_id == bundling.id, + ); + + return { + ...bundling, + item_rates: current_price?.price ?? 0, + }; + }); Object.assign(item, { total_price: current_price?.price ?? item.item.base_price,