fix(SPG-595) Pemesanan - Penyesuaian flow booking
continuous-integration/drone/tag Build is passing
Details
continuous-integration/drone/tag Build is passing
Details
parent
9242f43760
commit
66fd9c16b2
|
@ -8,10 +8,6 @@ import { Equation, parse } from 'algebra.js';
|
|||
import { STATUS } from 'src/core/strings/constants/base.constants';
|
||||
import { TransactionDataService } from '../../../data/services/transaction-data.service';
|
||||
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)
|
||||
export class SettledTransactionHandler
|
||||
|
@ -69,13 +65,8 @@ export class SettledTransactionHandler
|
|||
data.payment_total_net_profit ?? 0,
|
||||
);
|
||||
|
||||
const month_year = generateCodeDate();
|
||||
const char = generateRandom(1);
|
||||
const number = generateRandom(1, true);
|
||||
|
||||
Object.assign(data, {
|
||||
payment_total_dpp: dpp_value,
|
||||
invoice_code: `${month_year}${char}${number}`,
|
||||
profit_share_formula: profit_formula.formula_string,
|
||||
sales_price_formula: sales_price.formula_string,
|
||||
taxes: tax_datas,
|
||||
|
|
|
@ -12,6 +12,7 @@ import {
|
|||
import { TransactionModel } from '../../../data/models/transaction.model';
|
||||
import { TransactionChangeStatusEvent } from '../../entities/event/transaction-change-status.event';
|
||||
import { STATUS } from 'src/core/strings/constants/base.constants';
|
||||
import { generateInvoiceCodeHelper } from './helpers/generate-invoice-code.helper';
|
||||
|
||||
@Injectable()
|
||||
export class ConfirmTransactionManager extends BaseUpdateStatusManager<TransactionEntity> {
|
||||
|
@ -33,6 +34,7 @@ export class ConfirmTransactionManager extends BaseUpdateStatusManager<Transacti
|
|||
async beforeProcess(): Promise<void> {
|
||||
const freeTransaction = this.data.payment_total < 1;
|
||||
Object.assign(this.data, {
|
||||
invoice_code: await generateInvoiceCodeHelper(this.dataService),
|
||||
status: freeTransaction ? STATUS.ACTIVE : STATUS.PENDING,
|
||||
});
|
||||
return;
|
||||
|
|
|
@ -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')}`;
|
||||
}
|
Loading…
Reference in New Issue