From dea998991453858c81af051263c45b1cee9e2283 Mon Sep 17 00:00:00 2001 From: shancheas Date: Wed, 30 Oct 2024 13:54:09 +0700 Subject: [PATCH] fix: queue not generate from POS --- .../handlers/transaction.handler.ts | 7 +++++-- .../event/transaction-change-status.event.ts | 4 ++++ .../handlers/pos-transaction.handler.ts | 19 ++++++++++++++++++- 3 files changed, 27 insertions(+), 3 deletions(-) diff --git a/src/modules/queue/infrastructure/handlers/transaction.handler.ts b/src/modules/queue/infrastructure/handlers/transaction.handler.ts index 365a7ca..49d69c3 100644 --- a/src/modules/queue/infrastructure/handlers/transaction.handler.ts +++ b/src/modules/queue/infrastructure/handlers/transaction.handler.ts @@ -1,12 +1,15 @@ import { EventsHandler, IEventHandler } from '@nestjs/cqrs'; import { TransactionDataService } from 'src/modules/transaction/transaction/data/services/transaction-data.service'; -import { TransactionChangeStatusEvent } from 'src/modules/transaction/transaction/domain/entities/event/transaction-change-status.event'; +import { + TransactionChangeStatusEvent, + TransactionCreateQueueEvent, +} from 'src/modules/transaction/transaction/domain/entities/event/transaction-change-status.event'; import { TicketDataService } from '../../data/services/ticket.service'; import { QueueOrder } from '../../domain/entities/order.entity'; import { QueueTicket } from '../../domain/entities/ticket.entity'; import { QueueItem } from '../../domain/entities/queue-item.entity'; -@EventsHandler(TransactionChangeStatusEvent) +@EventsHandler(TransactionChangeStatusEvent, TransactionCreateQueueEvent) export class QueueTransactionHandler implements IEventHandler { diff --git a/src/modules/transaction/transaction/domain/entities/event/transaction-change-status.event.ts b/src/modules/transaction/transaction/domain/entities/event/transaction-change-status.event.ts index 53ffa35..a2bbab5 100644 --- a/src/modules/transaction/transaction/domain/entities/event/transaction-change-status.event.ts +++ b/src/modules/transaction/transaction/domain/entities/event/transaction-change-status.event.ts @@ -3,3 +3,7 @@ import { IEvent } from 'src/core/strings/constants/interface.constants'; export class TransactionChangeStatusEvent { constructor(public readonly data: IEvent) {} } + +export class TransactionCreateQueueEvent { + constructor(public readonly data: IEvent) {} +} diff --git a/src/modules/transaction/transaction/domain/usecases/handlers/pos-transaction.handler.ts b/src/modules/transaction/transaction/domain/usecases/handlers/pos-transaction.handler.ts index 1207198..fce39cc 100644 --- a/src/modules/transaction/transaction/domain/usecases/handlers/pos-transaction.handler.ts +++ b/src/modules/transaction/transaction/domain/usecases/handlers/pos-transaction.handler.ts @@ -14,7 +14,10 @@ import { TransactionModel } from '../../../data/models/transaction.model'; import { mappingRevertTransaction } from '../managers/helpers/mapping-transaction.helper'; import { apm } from '../../../../../../core/apm'; import { TABLE_NAME } from 'src/core/strings/constants/table.constants'; -import { TransactionChangeStatusEvent } from '../../entities/event/transaction-change-status.event'; +import { + TransactionChangeStatusEvent, + TransactionCreateQueueEvent, +} from '../../entities/event/transaction-change-status.event'; import { PriceCalculator } from '../calculator/price.calculator'; @EventsHandler(ChangeDocEvent) @@ -120,6 +123,20 @@ export class PosTransactionHandler implements IEventHandler { }), ); } + + if (data.status == STATUS.SETTLED) { + this.eventBus.publish( + new TransactionCreateQueueEvent({ + id: data.id, + old: event.data.data, + data: data, + user: BLANK_USER, + description: '', + module: TABLE_NAME.TRANSACTION, + op: OPERATION.UPDATE, + }), + ); + } apmTransactions.result = 'Success'; } } catch (error) {