From c154af6cb7f25efc5eeb32436e4e4b259905bceb Mon Sep 17 00:00:00 2001 From: Aswin Ashar Abdullah Date: Tue, 30 Jul 2024 18:26:50 +0700 Subject: [PATCH] fix(SPG-708) Muncul error saat meng cancel status pending - warninnya hanya bisa meng cancel status pending juga --- .../managers/base-batch-update-status.manager.ts | 4 ++-- .../usecases/managers/batch-cancel-refund.manager.ts | 2 +- .../domain/usecases/managers/cancel-refund.manager.ts | 4 ++-- .../managers/batch-cancel-transaction.manager.ts | 2 +- .../domain/usecases/transaction-data.orchestrator.ts | 11 +++++++++++ 5 files changed, 17 insertions(+), 6 deletions(-) diff --git a/src/core/modules/domain/usecase/managers/base-batch-update-status.manager.ts b/src/core/modules/domain/usecase/managers/base-batch-update-status.manager.ts index 4125276..1d3909a 100644 --- a/src/core/modules/domain/usecase/managers/base-batch-update-status.manager.ts +++ b/src/core/modules/domain/usecase/managers/base-batch-update-status.manager.ts @@ -49,14 +49,14 @@ export abstract class BaseBatchUpdateStatusManager extends BaseManager { }); } this.oldData = _.cloneDeep(entity); + await this.validateData(entity); + Object.assign(entity, { status: this.dataStatus, editor_id: this.user.id, editor_name: this.user.name, updated_at: new Date().getTime(), }); - - await this.validateData(entity); await new ValidateRelationHelper( id, this.dataService, diff --git a/src/modules/transaction/refund/domain/usecases/managers/batch-cancel-refund.manager.ts b/src/modules/transaction/refund/domain/usecases/managers/batch-cancel-refund.manager.ts index 280c940..0ab375f 100644 --- a/src/modules/transaction/refund/domain/usecases/managers/batch-cancel-refund.manager.ts +++ b/src/modules/transaction/refund/domain/usecases/managers/batch-cancel-refund.manager.ts @@ -27,7 +27,7 @@ export class BatchCancelRefundManager extends BaseBatchUpdateStatusManager { STATUS.PENDING, STATUS.PROCESS_REFUND, STATUS.PARTIAL_REFUND, - ].includes(this.data.status) + ].includes(this.oldData.status) ) { throw new UnprocessableEntityException({ statusCode: HttpStatus.UNPROCESSABLE_ENTITY, - message: `Failed! only data with status ${STATUS.REFUNDED}, ${STATUS.PROCESS_REFUND} , ${STATUS.PARTIAL_REFUND} and ${STATUS.PENDING} can be cancelled`, + message: `Gagal! hanya data dengan status ${STATUS.REFUNDED}, ${STATUS.PROCESS_REFUND} , ${STATUS.PARTIAL_REFUND} dan ${STATUS.PENDING} yang dapat dicancel`, error: 'Unprocessable Entity', }); } diff --git a/src/modules/transaction/transaction/domain/usecases/managers/batch-cancel-transaction.manager.ts b/src/modules/transaction/transaction/domain/usecases/managers/batch-cancel-transaction.manager.ts index 4fb4157..6f44101 100644 --- a/src/modules/transaction/transaction/domain/usecases/managers/batch-cancel-transaction.manager.ts +++ b/src/modules/transaction/transaction/domain/usecases/managers/batch-cancel-transaction.manager.ts @@ -20,7 +20,7 @@ export class BatchCancelTransactionManager extends BaseBatchUpdateStatusManager< if (![STATUS.EXPIRED, STATUS.PENDING].includes(data.status)) { throw new UnprocessableEntityException({ statusCode: HttpStatus.UNPROCESSABLE_ENTITY, - message: `Failed! only data booking with status ${STATUS.ACTIVE} can be confirm`, + message: `Gagal! hanya tranksaksi dengan status ${STATUS.PENDING} dan ${STATUS.EXPIRED} yang dapat di${this.dataStatus}`, error: 'Unprocessable Entity', }); } diff --git a/src/modules/transaction/transaction/domain/usecases/transaction-data.orchestrator.ts b/src/modules/transaction/transaction/domain/usecases/transaction-data.orchestrator.ts index 3aa32a8..ed75512 100644 --- a/src/modules/transaction/transaction/domain/usecases/transaction-data.orchestrator.ts +++ b/src/modules/transaction/transaction/domain/usecases/transaction-data.orchestrator.ts @@ -15,6 +15,7 @@ import { BatchCancelTransactionManager } from './managers/batch-cancel-transacti import { ConfirmDataTransactionManager } from './managers/confirm-data-transaction.manager'; import { BatchConfirmDataTransactionManager } from './managers/batch-confirm-data-transaction.manager'; import { MidtransService } from 'src/modules/configuration/midtrans/data/services/midtrans.service'; +import { InvoiceTransactionManager } from './managers/download-invoice-transaction.manager'; @Injectable() export class TransactionDataOrchestrator { @@ -29,6 +30,7 @@ export class TransactionDataOrchestrator { private batchDeleteManager: BatchDeleteTransactionManager, private cancelManager: CancelTransactionManager, private batchCancelManager: BatchCancelTransactionManager, + private invoiceManager: InvoiceTransactionManager, private serviceData: TransactionDataService, private midtransService: MidtransService, ) {} @@ -47,6 +49,15 @@ export class TransactionDataOrchestrator { return this.updateManager.getResult(); } + async invoice(dataId): Promise { + this.invoiceManager.setData({ + id: dataId, + }); + this.invoiceManager.setService(this.serviceData, TABLE_NAME.TRANSACTION); + await this.invoiceManager.execute(); + return this.invoiceManager.getResult(); + } + async delete(dataId): Promise { this.deleteManager.setData(dataId); this.deleteManager.setService(this.serviceData, TABLE_NAME.TRANSACTION);