fix(SPG-595) Pemesanan - Penyesuaian flow booking
continuous-integration/drone/tag Build is passing Details

pull/27/head devel_10.6.11
Aswin Ashar Abdullah 2024-07-11 21:51:08 +07:00
parent 9242f43760
commit 66fd9c16b2
3 changed files with 24 additions and 9 deletions

View File

@ -8,10 +8,6 @@ import { Equation, parse } from 'algebra.js';
import { STATUS } from 'src/core/strings/constants/base.constants'; import { STATUS } from 'src/core/strings/constants/base.constants';
import { TransactionDataService } from '../../../data/services/transaction-data.service'; import { TransactionDataService } from '../../../data/services/transaction-data.service';
import { TransactionModel } from '../../../data/models/transaction.model'; import { TransactionModel } from '../../../data/models/transaction.model';
import {
generateCodeDate,
generateRandom,
} from 'src/modules/transaction/vip-code/domain/usecases/managers/helpers/generate-random.helper';
@EventsHandler(TransactionChangeStatusEvent) @EventsHandler(TransactionChangeStatusEvent)
export class SettledTransactionHandler export class SettledTransactionHandler
@ -69,13 +65,8 @@ export class SettledTransactionHandler
data.payment_total_net_profit ?? 0, data.payment_total_net_profit ?? 0,
); );
const month_year = generateCodeDate();
const char = generateRandom(1);
const number = generateRandom(1, true);
Object.assign(data, { Object.assign(data, {
payment_total_dpp: dpp_value, payment_total_dpp: dpp_value,
invoice_code: `${month_year}${char}${number}`,
profit_share_formula: profit_formula.formula_string, profit_share_formula: profit_formula.formula_string,
sales_price_formula: sales_price.formula_string, sales_price_formula: sales_price.formula_string,
taxes: tax_datas, taxes: tax_datas,

View File

@ -12,6 +12,7 @@ import {
import { TransactionModel } from '../../../data/models/transaction.model'; import { TransactionModel } from '../../../data/models/transaction.model';
import { TransactionChangeStatusEvent } from '../../entities/event/transaction-change-status.event'; import { TransactionChangeStatusEvent } from '../../entities/event/transaction-change-status.event';
import { STATUS } from 'src/core/strings/constants/base.constants'; import { STATUS } from 'src/core/strings/constants/base.constants';
import { generateInvoiceCodeHelper } from './helpers/generate-invoice-code.helper';
@Injectable() @Injectable()
export class ConfirmTransactionManager extends BaseUpdateStatusManager<TransactionEntity> { export class ConfirmTransactionManager extends BaseUpdateStatusManager<TransactionEntity> {
@ -33,6 +34,7 @@ export class ConfirmTransactionManager extends BaseUpdateStatusManager<Transacti
async beforeProcess(): Promise<void> { async beforeProcess(): Promise<void> {
const freeTransaction = this.data.payment_total < 1; const freeTransaction = this.data.payment_total < 1;
Object.assign(this.data, { Object.assign(this.data, {
invoice_code: await generateInvoiceCodeHelper(this.dataService),
status: freeTransaction ? STATUS.ACTIVE : STATUS.PENDING, status: freeTransaction ? STATUS.ACTIVE : STATUS.PENDING,
}); });
return; return;

View File

@ -0,0 +1,22 @@
import {
generateCodeDate,
generateRandom,
} from 'src/modules/transaction/vip-code/domain/usecases/managers/helpers/generate-random.helper';
import { ILike } from 'typeorm';
export async function generateInvoiceCodeHelper(dataService) {
const month_year = generateCodeDate();
const char = generateRandom(1);
const number = generateRandom(1, true);
const invoice_code = await dataService.getOneByOptions({
where: {
invoice_code: ILike(`%${month_year}%`),
},
});
return `INV-${month_year}${char}${number}/${invoice_code
.count()
.toString()
.padStart(5, '0')}`;
}