From d9bbe1290d746f5a5b75e4d0245d0ca26d84ccbe Mon Sep 17 00:00:00 2001 From: Aswin Ashar Abdullah Date: Tue, 30 Jul 2024 13:08:50 +0700 Subject: [PATCH] fix(SPG-675) Error saat confirm status pending ( hanya bisa refund status settled ) padahal status sudah berubah ke proces refund --- .../usecases/managers/batch-confirm-refund.manager.ts | 7 ++++++- .../domain/usecases/managers/confirm-refund.manager.ts | 7 ++++++- 2 files changed, 12 insertions(+), 2 deletions(-) diff --git a/src/modules/transaction/refund/domain/usecases/managers/batch-confirm-refund.manager.ts b/src/modules/transaction/refund/domain/usecases/managers/batch-confirm-refund.manager.ts index 678566a..3657a0f 100644 --- a/src/modules/transaction/refund/domain/usecases/managers/batch-confirm-refund.manager.ts +++ b/src/modules/transaction/refund/domain/usecases/managers/batch-confirm-refund.manager.ts @@ -17,7 +17,12 @@ import { STATUS } from 'src/core/strings/constants/base.constants'; @Injectable() export class BatchConfirmRefundManager extends BaseBatchUpdateStatusManager { async validateData(data: RefundEntity): Promise { - if (data?.['transaction']?.status != STATUS.SETTLED) { + if ( + this.data.status == STATUS.DRAFT && + data['trnsaction']?.status != STATUS.SETTLED && + this.data.status == STATUS.PENDING && + data['trnsaction']?.status != STATUS.PROCESS_REFUND + ) { throw new UnprocessableEntityException({ statusCode: HttpStatus.UNPROCESSABLE_ENTITY, message: `Failed! only transaction with status ${STATUS.SETTLED} can be refund`, diff --git a/src/modules/transaction/refund/domain/usecases/managers/confirm-refund.manager.ts b/src/modules/transaction/refund/domain/usecases/managers/confirm-refund.manager.ts index 1de469c..2d1e8a3 100644 --- a/src/modules/transaction/refund/domain/usecases/managers/confirm-refund.manager.ts +++ b/src/modules/transaction/refund/domain/usecases/managers/confirm-refund.manager.ts @@ -38,7 +38,12 @@ export class ConfirmRefundManager extends BaseUpdateStatusManager relations: ['transaction'], }); - if (data.transaction.status != STATUS.SETTLED) { + if ( + data.status == STATUS.DRAFT && + data.transaction.status != STATUS.SETTLED && + data.status == STATUS.PENDING && + data.transaction.status != STATUS.PROCESS_REFUND + ) { throw new UnprocessableEntityException({ statusCode: HttpStatus.UNPROCESSABLE_ENTITY, message: `Failed! only transaction with status ${STATUS.SETTLED} can be refund`,