fix(rate) perbaikan update rate
parent
e68524380a
commit
82105e8214
|
@ -0,0 +1,43 @@
|
||||||
|
import { EventsHandler, IEventHandler } from '@nestjs/cqrs';
|
||||||
|
import { EMPTY_UUID } from 'src/core/strings/constants/base.constants';
|
||||||
|
import { ItemCreatedEvent } from 'src/modules/item-related/item/domain/entities/event/item-created.event';
|
||||||
|
import { SeasonPeriodDataService } from 'src/modules/season-related/season-period/data/services/season-period-data.service';
|
||||||
|
import { Not } from 'typeorm';
|
||||||
|
import { ItemRateModel } from '../../../data/models/item-rate.model';
|
||||||
|
import { ItemRateDataService } from '../../../data/services/item-rate-data.service';
|
||||||
|
|
||||||
|
@EventsHandler(ItemCreatedEvent)
|
||||||
|
export class SeasonPeriodHolidayHandler
|
||||||
|
implements IEventHandler<ItemCreatedEvent>
|
||||||
|
{
|
||||||
|
constructor(
|
||||||
|
private seasonService: SeasonPeriodDataService,
|
||||||
|
private dataService: ItemRateDataService,
|
||||||
|
) {}
|
||||||
|
|
||||||
|
async handle(event: ItemCreatedEvent) {
|
||||||
|
const rates = [];
|
||||||
|
const seasons = await this.seasonService.getManyByOptions({
|
||||||
|
where: {
|
||||||
|
id: Not(EMPTY_UUID),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
const queryRunner = this.dataService
|
||||||
|
.getRepository()
|
||||||
|
.manager.connection.createQueryRunner();
|
||||||
|
|
||||||
|
if (seasons.length) {
|
||||||
|
for (const season of seasons) {
|
||||||
|
const rate = new ItemRateModel();
|
||||||
|
rate.item_id = event.data.id;
|
||||||
|
rate.season_period_id = season.id;
|
||||||
|
|
||||||
|
rates.push(rate);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
// create batch
|
||||||
|
await this.dataService.createBatch(queryRunner, ItemRateModel, rates);
|
||||||
|
}
|
||||||
|
}
|
|
@ -16,16 +16,24 @@ import { UpdateItemRateManager } from './domain/usecases/managers/update-item-ra
|
||||||
import { DetailItemRateManager } from './domain/usecases/managers/detail-item-rate.manager';
|
import { DetailItemRateManager } from './domain/usecases/managers/detail-item-rate.manager';
|
||||||
import { BatchDeleteItemRateManager } from './domain/usecases/managers/batch-delete-item-rate.manager';
|
import { BatchDeleteItemRateManager } from './domain/usecases/managers/batch-delete-item-rate.manager';
|
||||||
import { ItemRateModel } from './data/models/item-rate.model';
|
import { ItemRateModel } from './data/models/item-rate.model';
|
||||||
|
import { SeasonPeriodHolidayHandler } from './domain/usecases/handlers/item-created.handler';
|
||||||
|
import { SeasonPeriodDataService } from 'src/modules/season-related/season-period/data/services/season-period-data.service';
|
||||||
|
import { SeasonPeriodModel } from 'src/modules/season-related/season-period/data/models/season-period.model';
|
||||||
|
|
||||||
@Global()
|
@Global()
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
ConfigModule.forRoot(),
|
ConfigModule.forRoot(),
|
||||||
TypeOrmModule.forFeature([ItemRateModel], CONNECTION_NAME.DEFAULT),
|
TypeOrmModule.forFeature(
|
||||||
|
[ItemRateModel, SeasonPeriodModel],
|
||||||
|
CONNECTION_NAME.DEFAULT,
|
||||||
|
),
|
||||||
CqrsModule,
|
CqrsModule,
|
||||||
],
|
],
|
||||||
controllers: [ItemRateDataController, ItemRateReadController],
|
controllers: [ItemRateDataController, ItemRateReadController],
|
||||||
providers: [
|
providers: [
|
||||||
|
SeasonPeriodHolidayHandler,
|
||||||
|
|
||||||
IndexItemRateManager,
|
IndexItemRateManager,
|
||||||
DetailItemRateManager,
|
DetailItemRateManager,
|
||||||
CreateItemRateManager,
|
CreateItemRateManager,
|
||||||
|
@ -33,6 +41,7 @@ import { ItemRateModel } from './data/models/item-rate.model';
|
||||||
UpdateItemRateManager,
|
UpdateItemRateManager,
|
||||||
BatchDeleteItemRateManager,
|
BatchDeleteItemRateManager,
|
||||||
|
|
||||||
|
SeasonPeriodDataService,
|
||||||
ItemRateDataService,
|
ItemRateDataService,
|
||||||
ItemRateReadService,
|
ItemRateReadService,
|
||||||
|
|
||||||
|
|
|
@ -46,7 +46,7 @@ export class SeasonPeriodDataOrchestrator extends BaseDataTransactionOrchestrato
|
||||||
async update(dataId, data, updatePrice = false): Promise<SeasonPeriodEntity> {
|
async update(dataId, data, updatePrice = false): Promise<SeasonPeriodEntity> {
|
||||||
this.updateManager.setData(dataId, {
|
this.updateManager.setData(dataId, {
|
||||||
...data,
|
...data,
|
||||||
isUpdatePrice: updatePrice
|
isUpdatePrice: updatePrice,
|
||||||
});
|
});
|
||||||
this.updateManager.setService(this.serviceData, TABLE_NAME.SEASON_PERIOD);
|
this.updateManager.setService(this.serviceData, TABLE_NAME.SEASON_PERIOD);
|
||||||
await this.updateManager.execute();
|
await this.updateManager.execute();
|
||||||
|
|
Loading…
Reference in New Issue