diff --git a/src/database/migrations/1720077765890-update-default-column-transaction.ts b/src/database/migrations/1720077765890-update-default-column-transaction.ts new file mode 100644 index 0000000..bc8fc89 --- /dev/null +++ b/src/database/migrations/1720077765890-update-default-column-transaction.ts @@ -0,0 +1,19 @@ +import { MigrationInterface, QueryRunner } from 'typeorm'; + +export class UpdateDefaultColumnTransaction1720077765890 + implements MigrationInterface +{ + name = 'UpdateDefaultColumnTransaction1720077765890'; + + public async up(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "transactions" ALTER COLUMN "is_recap_transaction" SET DEFAULT false`, + ); + } + + public async down(queryRunner: QueryRunner): Promise { + await queryRunner.query( + `ALTER TABLE "transactions" ALTER COLUMN "is_recap_transaction" SET DEFAULT true`, + ); + } +} diff --git a/src/modules/transaction/reconciliation/domain/usecases/managers/batch-confirm-reconciliation.manager.ts b/src/modules/transaction/reconciliation/domain/usecases/managers/batch-confirm-reconciliation.manager.ts index e074b10..36d8fd3 100644 --- a/src/modules/transaction/reconciliation/domain/usecases/managers/batch-confirm-reconciliation.manager.ts +++ b/src/modules/transaction/reconciliation/domain/usecases/managers/batch-confirm-reconciliation.manager.ts @@ -7,6 +7,7 @@ import { BatchResult } from 'src/core/response/domain/ok-response.interface'; import { Injectable } from '@nestjs/common'; import { TransactionEntity } from 'src/modules/transaction/transaction/domain/entities/transaction.entity'; import { TransactionModel } from 'src/modules/transaction/transaction/data/models/transaction.model'; +import { STATUS } from 'src/core/strings/constants/base.constants'; @Injectable() export class BatchConfirmReconciliationManager extends BaseBatchUpdateStatusManager { @@ -19,7 +20,7 @@ export class BatchConfirmReconciliationManager extends BaseBatchUpdateStatusMana reconciliation_mdr: this.data.reconciliation_mdr ?? null, reconciliation_confirm_by: this.user.name, reconciliation_confirm_date: new Date().getTime(), - status: this.oldData.status, + status: STATUS.SETTLED, reconciliation_status: this.dataStatus, payment_total_net_profit: net_profit, payment_date: this.data.payment_date, diff --git a/src/modules/transaction/reconciliation/domain/usecases/managers/confirm-reconciliation.manager.ts b/src/modules/transaction/reconciliation/domain/usecases/managers/confirm-reconciliation.manager.ts index bca70d8..a0885a0 100644 --- a/src/modules/transaction/reconciliation/domain/usecases/managers/confirm-reconciliation.manager.ts +++ b/src/modules/transaction/reconciliation/domain/usecases/managers/confirm-reconciliation.manager.ts @@ -1,5 +1,6 @@ import { Injectable } from '@nestjs/common'; import { BaseUpdateStatusManager } from 'src/core/modules/domain/usecase/managers/base-update-status.manager'; +import { STATUS } from 'src/core/strings/constants/base.constants'; import { EventTopics, validateRelations, @@ -21,7 +22,7 @@ export class ConfirmReconciliationManager extends BaseUpdateStatusManager { validateData(data: TransactionEntity): Promise { if ( - [STATUS.PENDING, STATUS.REJECTED, STATUS.EXPIRED].includes(data.status) + ![STATUS.PENDING, STATUS.REJECTED, STATUS.EXPIRED].includes(data.status) ) { throw new UnprocessableEntityException({ statusCode: HttpStatus.UNPROCESSABLE_ENTITY, @@ -27,31 +27,9 @@ export class BatchConfirmDataTransactionManager extends BaseBatchUpdateStatusMan }); } - switch (data.status) { - // jika confirm status pending - // maka akan kebuat reconsiliasi - case STATUS.PENDING: - data.reconciliation_status = STATUS.PENDING; - break; - - // jika confirm status rejected - case STATUS.REJECTED: - data.reconciliation_status = STATUS.PENDING; - break; - - // jika confirm status expired - case STATUS.EXPIRED: - break; - - default: - data.reconciliation_status = STATUS.PENDING; - break; - } - - const freeTransaction = data.payment_total < 1; - Object.assign(data, { - status: freeTransaction ? STATUS.ACTIVE : STATUS.PENDING, + status: STATUS.WAITING, + reconciliation_status: STATUS.PENDING, }); return; diff --git a/src/modules/transaction/transaction/domain/usecases/managers/batch-confirm-transaction.manager.ts b/src/modules/transaction/transaction/domain/usecases/managers/batch-confirm-transaction.manager.ts index 4c0a11d..33a70d6 100644 --- a/src/modules/transaction/transaction/domain/usecases/managers/batch-confirm-transaction.manager.ts +++ b/src/modules/transaction/transaction/domain/usecases/managers/batch-confirm-transaction.manager.ts @@ -24,6 +24,11 @@ export class BatchConfirmTransactionManager extends BaseBatchUpdateStatusManager error: 'Unprocessable Entity', }); } + + const freeTransaction = data.payment_total < 1; + Object.assign(data, { + status: freeTransaction ? STATUS.ACTIVE : STATUS.PENDING, + }); return; } diff --git a/src/modules/transaction/transaction/domain/usecases/managers/confirm-data-transaction.manager.ts b/src/modules/transaction/transaction/domain/usecases/managers/confirm-data-transaction.manager.ts index 20d07da..46a720f 100644 --- a/src/modules/transaction/transaction/domain/usecases/managers/confirm-data-transaction.manager.ts +++ b/src/modules/transaction/transaction/domain/usecases/managers/confirm-data-transaction.manager.ts @@ -27,7 +27,7 @@ export class ConfirmDataTransactionManager extends BaseUpdateStatusManager