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 { 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,
|
||||||
|
|
|
@ -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;
|
||||||
|
|
|
@ -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