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 { BatchDeleteItemRateManager } from './domain/usecases/managers/batch-delete-item-rate.manager';
|
||||
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()
|
||||
@Module({
|
||||
imports: [
|
||||
ConfigModule.forRoot(),
|
||||
TypeOrmModule.forFeature([ItemRateModel], CONNECTION_NAME.DEFAULT),
|
||||
TypeOrmModule.forFeature(
|
||||
[ItemRateModel, SeasonPeriodModel],
|
||||
CONNECTION_NAME.DEFAULT,
|
||||
),
|
||||
CqrsModule,
|
||||
],
|
||||
controllers: [ItemRateDataController, ItemRateReadController],
|
||||
providers: [
|
||||
SeasonPeriodHolidayHandler,
|
||||
|
||||
IndexItemRateManager,
|
||||
DetailItemRateManager,
|
||||
CreateItemRateManager,
|
||||
|
@ -33,6 +41,7 @@ import { ItemRateModel } from './data/models/item-rate.model';
|
|||
UpdateItemRateManager,
|
||||
BatchDeleteItemRateManager,
|
||||
|
||||
SeasonPeriodDataService,
|
||||
ItemRateDataService,
|
||||
ItemRateReadService,
|
||||
|
||||
|
|
|
@ -46,7 +46,7 @@ export class SeasonPeriodDataOrchestrator extends BaseDataTransactionOrchestrato
|
|||
async update(dataId, data, updatePrice = false): Promise<SeasonPeriodEntity> {
|
||||
this.updateManager.setData(dataId, {
|
||||
...data,
|
||||
isUpdatePrice: updatePrice
|
||||
isUpdatePrice: updatePrice,
|
||||
});
|
||||
this.updateManager.setService(this.serviceData, TABLE_NAME.SEASON_PERIOD);
|
||||
await this.updateManager.execute();
|
||||
|
|
Loading…
Reference in New Issue