fix: update item to update item rate

pull/74/head
shancheas 2024-08-21 18:42:53 +07:00
parent 9815c667f0
commit 464c10722c
3 changed files with 37 additions and 0 deletions

View File

@ -6,6 +6,7 @@ import { ItemModel } from '../models/item.model';
import { CONNECTION_NAME } from 'src/core/strings/constants/base.constants';
import { Repository } from 'typeorm';
import { ItemRateModel } from 'src/modules/item-related/item-rate/data/models/item-rate.model';
import { ItemRateDataService } from 'src/modules/item-related/item-rate/data/services/item-rate-data.service';
@Injectable()
export class ItemDataService extends BaseDataService<ItemEntity> {
@ -15,6 +16,7 @@ export class ItemDataService extends BaseDataService<ItemEntity> {
@InjectRepository(ItemRateModel, CONNECTION_NAME.DEFAULT)
private repoItemRate: Repository<ItemRateModel>,
private rateService: ItemRateDataService,
) {
super(repo);
}
@ -31,4 +33,34 @@ export class ItemDataService extends BaseDataService<ItemEntity> {
{ price: newPrice },
);
}
async updateBreakdownBundling(id: string): Promise<void> {
const item_rates = await this.repoItemRate.find({
where: {
item_id: id,
},
});
for (const rate of item_rates) {
const { item_id, season_period_id } = rate;
const bundling = await this.repo.findOne({
relations: ['bundling_items'],
where: {
id: item_id,
},
});
console.log(bundling.name);
const ids = bundling.bundling_items.map((item) => item.id);
const totalRates = await this.rateService.itemsRateTotal(
season_period_id,
ids,
);
this.rateService.updateRatesBySeasonItem(
season_period_id,
bundling.id,
totalRates,
);
}
}
}

View File

@ -16,4 +16,5 @@ export interface ItemEntity extends BaseStatusEntity {
use_queue: boolean;
show_to_booking: boolean;
breakdown_bundling?: boolean;
}

View File

@ -31,6 +31,10 @@ export class UpdateItemManager extends BaseUpdateManager<ItemEntity> {
newBasePrice,
itemId,
);
if (this.result.breakdown_bundling) {
this.dataService.updateBreakdownBundling(itemId);
}
return;
}