Compare commits

..

12 Commits

Author SHA1 Message Date
Aswin Ashar Abdullah b08325a53c fix(email) checkpoint email service 2024-08-02 18:59:31 +07:00
Aswin Ashar Abdullah a1f7108bc5 feat(SPG-233) Integration Google Calendar API 2024-08-02 18:36:42 +07:00
Aswin Ashar Abdullah 2e4d5df17a fix(SPG-762) BE - integrasi dengan API Midtrans - untuk update status pembayaran 2024-08-02 18:11:36 +07:00
Aswin Ashar Abdullah 4fcd852d8d fix(SPG-769) save edit data terkena validasi status transaksi settled 2024-08-02 17:59:30 +07:00
Aswin Ashar Abdullah 0f05656ca2 fix(booking) perbaikan column payment type counter 2024-08-02 17:54:12 +07:00
Aswin Ashar Abdullah 0bec3c6590 fix(SPG-750) Ketika sales di PoS di cancel, pada rekondiliasi - recap, valuenya tidak berkurang 2024-08-02 17:53:29 +07:00
Aswin Ashar Abdullah 8eee99fce5 fix(SPG-745) Data booking status active dan settled (tipe pembayaran selain counter) belum masuk PoS 2024-08-02 17:49:11 +07:00
Aswin Ashar Abdullah 239e2d778a feat(SPG-760) Validasi Bundling dan Item active inactive 2024-08-02 17:12:12 +07:00
Aswin Ashar Abdullah cc01b23e2a fix(SPG-754) Di hak akses PoS, penjualan seharusnya tidak ada check box delete 2024-08-02 16:56:34 +07:00
Aswin Ashar Abdullah 0b502188af fix(SPG-687) Booking status pending seharusnya bisa di cancel 2024-08-02 16:08:26 +07:00
Aswin Ashar Abdullah e38fbc65bd fix(SPG-759) Ketika ada item baru dibuat ( kondisi sudah ada data item rate untuk product lain ) 2024-08-02 16:00:05 +07:00
Aswin Ashar Abdullah 0e47b99ca7 fix(SPG-756) Untuk value field sales margin (%) seharusnya bisa mempunyai value dibelakang koma 2024-08-02 15:28:56 +07:00
34 changed files with 281 additions and 137 deletions

7
env/env.development vendored
View File

@ -24,8 +24,11 @@ CRON_EVERY_HOUR="0 * * * *"
EMAIL_HOST=smtp.gmail.com
EMAIL_POST=465
EMAIL_USER=developer@eigen.co.id
EMAIL_TOKEN=bitqkbkzjzfywxqx
EMAIL_USER=weplayground.app@gmail.com
EMAIL_TOKEN=sonvvwiukhsevtmv
// nama email yang akan muncul ke user sebagai pengirim
EMAIL_SENDER=no-reply@eigen.co.id
MIDTRANS_URL=https://app.sandbox.midtrans.com
MIDTRANS_PRODUCTION=false

View File

@ -145,7 +145,6 @@ export const PrivilegePOSConstant = [
actions: [
PrivilegeAction.VIEW,
PrivilegeAction.CREATE,
PrivilegeAction.DELETE,
PrivilegeAction.EDIT,
PrivilegeAction.CANCEL,
],

View File

@ -0,0 +1,17 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class UpdateTypeColumnItemTable1722587128195
implements MigrationInterface
{
name = 'UpdateTypeColumnItemTable1722587128195';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "items" DROP COLUMN "sales_margin"`);
await queryRunner.query(`ALTER TABLE "items" ADD "sales_margin" numeric`);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(`ALTER TABLE "items" DROP COLUMN "sales_margin"`);
await queryRunner.query(`ALTER TABLE "items" ADD "sales_margin" integer`);
}
}

View File

@ -0,0 +1,23 @@
import { MigrationInterface, QueryRunner } from 'typeorm';
export class UpdateTableTransaction1722595038215 implements MigrationInterface {
name = 'UpdateTableTransaction1722595038215';
public async up(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`CREATE TYPE "public"."transactions_payment_type_counter_enum" AS ENUM('midtrans', 'bank transfer', 'qris', 'counter', 'cash', 'credit card', 'debit', 'e-money')`,
);
await queryRunner.query(
`ALTER TABLE "transactions" ADD "payment_type_counter" "public"."transactions_payment_type_counter_enum"`,
);
}
public async down(queryRunner: QueryRunner): Promise<void> {
await queryRunner.query(
`ALTER TABLE "transactions" DROP COLUMN "payment_type_counter"`,
);
await queryRunner.query(
`DROP TYPE "public"."transactions_payment_type_counter_enum"`,
);
}
}

View File

@ -38,36 +38,41 @@ export class BookingHandler
const old_data = event.data.old;
const data = event.data.data;
if (data.payment_type != TransactionPaymentType.COUNTER) return;
const booking = await this.bookingService.getOneByOptions({
where: {
id: data.id,
},
relations: ['items'],
});
mappingTransaction(booking);
if (
old_data?.status != data.status &&
[STATUS.PENDING, STATUS.ACTIVE].includes(data.status)
data.payment_type == TransactionPaymentType.COUNTER ||
([STATUS.ACTIVE, STATUS.SETTLED].includes(data.status) &&
data.payment_type != TransactionPaymentType.COUNTER)
) {
await this.couchService.createDoc(
{
_id: booking.id,
...booking,
const booking = await this.bookingService.getOneByOptions({
where: {
id: data.id,
},
'booking',
);
} else {
await this.couchService.updateDoc(
{
_id: booking.id,
...booking,
},
'booking',
);
relations: ['items'],
});
mappingTransaction(booking);
if (
(old_data?.status != data.status ||
data.payment_type != TransactionPaymentType.COUNTER) &&
[STATUS.PENDING, STATUS.ACTIVE, STATUS.SETTLED].includes(data.status)
) {
await this.couchService.createDoc(
{
_id: booking.id,
...booking,
},
'booking',
);
} else {
await this.couchService.updateDoc(
{
_id: booking.id,
...booking,
},
'booking',
);
}
}
}
}

View File

@ -61,8 +61,12 @@ export async function CreateEventCalendarHelper(
function mappingData(transaction) {
return {
summary: transaction.invoice_code,
description: `Booking for invoice ${transaction.invoice_code}`,
summary: transaction.customer_name ?? transaction.invoice_code,
description: `<b>Booking for invoice ${
transaction.invoice_code
}</b><p>List Items :</p><ul>${transaction.items.map(
(item) => `<li>${item.item_name}</li>`,
)}</ul>`,
start: {
dateTime: new Date(transaction.booking_date).toISOString(),
timeZone: 'Asia/Jakarta',

View File

@ -20,9 +20,9 @@ export async function sendEmail(receivers, subject) {
if (receiver.payment_type == TransactionPaymentType.MIDTRANS)
templateName = 'payment-confirmation-midtrans';
let templatePath = path.resolve(
let templatePath = path.join(
__dirname,
`../email-template/${ templateName }.html`,
`../email-template/${templateName}.html`,
);
templatePath = templatePath.replace(/dist/g, 'src');
const templateSource = fs.readFileSync(templatePath, 'utf8');
@ -31,7 +31,7 @@ export async function sendEmail(receivers, subject) {
const htmlToSend = template(receiver);
const emailContext = {
from: 'no-reply@eigen.co.id',
from: process.env.EMAIL_SENDER ?? 'no-reply@weplayground.app',
to: receiver.email,
subject: subject,
html: htmlToSend,
@ -42,13 +42,13 @@ export async function sendEmail(receivers, subject) {
smtpTransport.sendMail(emailContext, function (err, data) {
if (err) {
console.log(err, `Error occurs on send to ${ receiver.email }`);
console.log(err, `Error occurs on send to ${receiver.email}`);
} else {
console.log(`Email sent to ${ receiver.email }`);
console.log(`Email sent to ${receiver.email}`);
}
});
} catch (error) {
console.log(error, `Error occurs on send to ${ receiver.email }`)
console.log(error, `Error occurs on send to ${receiver.email}`);
}
}
}

View File

@ -0,0 +1,57 @@
import { Controller, Get, Injectable } from '@nestjs/common';
import { ApiTags } from '@nestjs/swagger';
import { Public } from 'src/core/guards';
import * as path from 'path';
import * as fs from 'fs';
@ApiTags(`email templates`)
@Controller('v1/email-templates')
@Public()
@Injectable()
export class MailTemplateController {
constructor() {}
getTemplate(templateName) {
const templatePath = path.join(
__dirname,
'../../../../../',
`src/modules/configuration/mail/domain/email-template/${templateName}.html`,
);
return fs.readFileSync(templatePath, 'utf8');
}
@Get('date-change')
async getDateChange() {
return this.getTemplate('change-date');
}
@Get('invoice')
async getBookingInvoice() {
return this.getTemplate('invoice');
}
@Get('payment-confirmation-bank')
async getPaymentConfirmation() {
return this.getTemplate('payment-confirmation-bank');
}
@Get('payment-confirmation-midtrans')
async getPaymentConfirmationMidtrans() {
return this.getTemplate('payment-confirmation-midtrans');
}
@Get('invoice-expired')
async getInvoiceExpired() {
return this.getTemplate('invoice-expired');
}
@Get('refund-confirmation')
async getRefundConfirmation() {
return this.getTemplate('refund-confirmation');
}
@Get('refund-request')
async getRefundRequest() {
return this.getTemplate('refunr-request');
}
}

View File

@ -8,6 +8,7 @@ import { CONNECTION_NAME } from 'src/core/strings/constants/base.constants';
import { TransactionModel } from 'src/modules/transaction/transaction/data/models/transaction.model';
import { TransactionDataService } from 'src/modules/transaction/transaction/data/services/transaction-data.service';
import { PaymentTransactionHandler } from './domain/handlers/payment-transaction.handler';
import { MailTemplateController } from './infrastructure/mail.controller';
@Module({
imports: [
@ -18,7 +19,7 @@ import { PaymentTransactionHandler } from './domain/handlers/payment-transaction
),
CqrsModule,
],
controllers: [],
controllers: [MailTemplateController],
providers: [
PaymentTransactionHandler,
PaymentMethodDataService,

View File

@ -18,7 +18,20 @@ export class MidtransController {
@Get(':id/status')
async getStatus(@Param('id') id: string) {
return await this.dataService.getStatus(id);
try {
const data = await this.dataService.getStatus(id);
this.eventBus.publishAll([
new MidtransCallbackEvent({
id: id,
data: data,
}),
]);
return 'Berhasil update status transaksi';
} catch (error) {
console.log(error.message);
throw new Error('Gagal update status transaksi');
}
}
@Post('callback')

View File

@ -32,7 +32,10 @@ export class SeasonPeriodHolidayHandler
const rate = new ItemRateModel();
rate.item_id = event.data.id;
rate.season_period_id = season.id;
rate.price = event.data.data.total_price ?? event.data.data.base_price;
rate.price =
Number(event.data.data.total_price) != 0
? event.data.data.total_price
: event.data.data.base_price;
rates.push(rate);
}

View File

@ -38,7 +38,7 @@ export class ItemModel
@Column('bigint', { name: 'hpp', nullable: true })
hpp: number;
@Column('int', { name: 'sales_margin', nullable: true })
@Column('decimal', { name: 'sales_margin', nullable: true })
sales_margin: number;
@Column('bigint', { name: 'total_price', nullable: true })

View File

@ -36,7 +36,12 @@ export class ActiveItemManager extends BaseUpdateStatusManager<ItemEntity> {
{
relation: 'tenant',
singleQuery: ['status', '!=', STATUS.ACTIVE],
message: `Gagal! Belum ada item yang aktif`,
message: `Gagal! tenant tidak aktif`,
},
{
relation: 'bundling_items',
singleQuery: ['status', '!=', STATUS.ACTIVE],
message: `Gagal! Terdapat item yang belum aktif`,
},
];
}

View File

@ -7,11 +7,7 @@ import {
import { ItemModel } from '../../../data/models/item.model';
import { ItemChangeStatusEvent } from '../../entities/event/item-change-status.event';
import { BatchResult } from 'src/core/response/domain/ok-response.interface';
import {
HttpStatus,
Injectable,
UnprocessableEntityException,
} from '@nestjs/common';
import { Injectable } from '@nestjs/common';
import { STATUS } from 'src/core/strings/constants/base.constants';
@Injectable()
@ -33,7 +29,12 @@ export class BatchActiveItemManager extends BaseBatchUpdateStatusManager<ItemEnt
{
relation: 'tenant',
singleQuery: ['status', '!=', STATUS.ACTIVE],
message: `Gagal! Belum ada item yang aktif`,
message: `Gagal! tenant tidak aktif`,
},
{
relation: 'bundling_items',
singleQuery: ['status', '!=', STATUS.ACTIVE],
message: `Gagal! Terdapat item yang belum aktif`,
},
];
}

View File

@ -29,7 +29,12 @@ export class BatchConfirmItemManager extends BaseBatchUpdateStatusManager<ItemEn
{
relation: 'tenant',
singleQuery: ['status', '!=', STATUS.ACTIVE],
message: `Gagal! Belum ada item yang aktif`,
message: `Gagal! tenant tidak aktif`,
},
{
relation: 'bundling_items',
singleQuery: ['status', '!=', STATUS.ACTIVE],
message: `Gagal! Terdapat item yang belum aktif`,
},
];
}

View File

@ -32,7 +32,12 @@ export class ConfirmItemManager extends BaseUpdateStatusManager<ItemEntity> {
{
relation: 'tenant',
singleQuery: ['status', '!=', STATUS.ACTIVE],
message: `Gagal! Belum ada item yang aktif`,
message: `Gagal! tenant tidak aktif`,
},
{
relation: 'bundling_items',
singleQuery: ['status', '!=', STATUS.ACTIVE],
message: `Gagal! Terdapat item yang belum aktif`,
},
];
}

View File

@ -1,8 +1,11 @@
import { HttpStatus, UnprocessableEntityException } from '@nestjs/common';
import { STATUS } from 'src/core/strings/constants/base.constants';
import { In } from 'typeorm';
export async function validateRelation(dataService, id) {
const haveRelation = await dataService.getOneByOptions({
where: {
status: In([STATUS.ACTIVE]),
bundling_items: {
id: id,
},

View File

@ -36,6 +36,7 @@ export class DetailReconciliationManager extends BaseDetailManager<TransactionEn
`${this.tableName}.reconciliation_mdr`,
`${this.tableName}.payment_type`,
`${this.tableName}.payment_type_counter`,
`${this.tableName}.payment_type_method_id`,
`${this.tableName}.payment_type_method_name`,
`${this.tableName}.payment_type_method_number`,

View File

@ -51,6 +51,7 @@ export class IndexReconciliationManager extends BaseIndexManager<TransactionEnti
`${this.tableName}.invoice_code`,
`${this.tableName}.booking_date`,
`${this.tableName}.payment_type`,
`${this.tableName}.payment_type_counter`,
`${this.tableName}.payment_type_method_id`,
`${this.tableName}.payment_type_method_name`,
`${this.tableName}.payment_type_method_number`,

View File

@ -35,27 +35,24 @@ export class RecapReconciliationManager extends BaseCustomManager<TransactionEnt
const transactions = await this.dataService.getManyByOptions({
where: {
is_recap_transaction: false,
type: TransactionType.COUNTER,
paymnet_type: TransactionType.COUNTER,
status: STATUS.SETTLED,
created_at: Between(this.startOfDay, this.endOfDay),
},
});
const payCounserTransactions = await this.dataService.getManyByOptions({
where: {
is_recap_transaction: false,
payment_code: ILike('%SLS%'),
status: STATUS.SETTLED,
created_at: Between(this.startOfDay, this.endOfDay),
},
});
transactions.push(...payCounserTransactions);
for (const transaction of transactions) {
const { creator_counter_no, payment_type, payment_type_method_id } =
transaction;
const {
creator_counter_no,
payment_type_counter,
payment_type_method_id,
} = transaction;
const group_by =
creator_counter_no + '-' + payment_type + '-' + payment_type_method_id;
creator_counter_no +
'-' +
payment_type_counter +
'-' +
payment_type_method_id;
if (!this.recapTransactions[group_by]) {
this.recapTransactions[group_by] = [];
}
@ -69,17 +66,20 @@ export class RecapReconciliationManager extends BaseCustomManager<TransactionEnt
const total_recap = Object.keys(this.recapTransactions);
for (const recap of total_recap) {
const first_transaction = this.recapTransactions[recap][0];
const { creator_counter_no, payment_type, payment_type_method_id } =
first_transaction;
const {
creator_counter_no,
payment_type_counter,
payment_type_method_id,
} = first_transaction;
let query = {
is_recap_transaction: true,
created_at: Between(this.startOfDay, this.endOfDay),
creator_counter_no: creator_counter_no,
payment_type: payment_type,
payment_type: payment_type_counter,
};
if (payment_type != 'cash')
if (payment_type_counter != 'cash')
query['payment_type_method_id'] = payment_type_method_id ?? EMPTY_UUID;
const exist = await this.dataService.getOneByOptions({
@ -110,7 +110,8 @@ export class RecapReconciliationManager extends BaseCustomManager<TransactionEnt
booking_date: new Date(),
payment_date: new Date(),
creator_counter_no: first_transaction.creator_counter_no,
payment_type: first_transaction.payment_type,
payment_type: first_transaction.payment_type_counter,
payment_type_counter: first_transaction.payment_type_counter,
payment_type_method_id: first_transaction.payment_type_method_id,
payment_type_method_number:
first_transaction.payment_type_method_number,

View File

@ -12,25 +12,10 @@ import {
columnUniques,
validateRelations,
} from 'src/core/strings/constants/interface.constants';
import { STATUS } from 'src/core/strings/constants/base.constants';
@Injectable()
export class UpdateRefundManager extends BaseUpdateManager<RefundEntity> {
async validateProcess(): Promise<void> {
const transaction = await this.dataServiceFirstOpt.getOneByOptions({
where: {
id: this.data.transaction.id,
status: STATUS.SETTLED,
},
});
if (!transaction) {
throw new UnprocessableEntityException({
statusCode: HttpStatus.UNPROCESSABLE_ENTITY,
message: `Gagal! hanya pemesanan dengan status ${STATUS.SETTLED} yang dapat dikembalikan`,
error: 'Unprocessable Entity',
});
}
return;
}

View File

@ -107,6 +107,13 @@ export class TransactionModel
})
payment_type: TransactionPaymentType;
@Column('enum', {
name: 'payment_type_counter',
enum: TransactionPaymentType,
nullable: true,
})
payment_type_counter: TransactionPaymentType;
@Column('varchar', { name: 'payment_code', nullable: true })
payment_code: string;

View File

@ -41,6 +41,7 @@ export interface TransactionEntity extends BaseStatusEntity {
// payment data
payment_type: TransactionPaymentType;
payment_type_counter: TransactionPaymentType;
payment_type_method_id: string;
payment_type_method_name: string;
payment_type_method_number: string;

View File

@ -37,57 +37,59 @@ export class SettledTransactionHandler
relations: ['items'],
});
if (!settled || !oldSettled) return;
if (settled || oldSettled) {
const queryRunner = this.dataService
.getRepository()
.manager.connection.createQueryRunner();
const queryRunner = this.dataService
.getRepository()
.manager.connection.createQueryRunner();
if (settled) {
const profit_formula = await this.formulaService.getOneByOptions({
where: {
type: FormulaType.PROFIT_SHARE,
},
});
if (settled) {
const profit_formula = await this.formulaService.getOneByOptions({
where: {
type: FormulaType.PROFIT_SHARE,
},
});
const sales_price = await this.formulaService.getOneByOptions({
where: {
type: FormulaType.SALES_PRICE,
},
});
const sales_price = await this.formulaService.getOneByOptions({
where: {
type: FormulaType.SALES_PRICE,
},
});
const taxes = await this.taxService.getManyByOptions({
where: {
status: STATUS.ACTIVE,
},
});
const taxes = await this.taxService.getManyByOptions({
where: {
status: STATUS.ACTIVE,
},
});
// const profit_share_value = this.calculateFormula(profit_formula.formula_string, taxes, data.payment_total_net_profit ?? 0);
const { dpp_value, tax_datas } = calculateSalesFormula(
sales_price.formula_string,
taxes,
data.payment_total_net_profit ?? 0,
);
// const profit_share_value = this.calculateFormula(profit_formula.formula_string, taxes, data.payment_total_net_profit ?? 0);
const { dpp_value, tax_datas } = calculateSalesFormula(
sales_price.formula_string,
taxes,
data.payment_total_net_profit ?? 0,
);
console.log(data, 'dsa');
const google_calendar = await CreateEventCalendarHelper(data);
const google_calendar = await CreateEventCalendarHelper(data);
Object.assign(data, {
payment_total_dpp: dpp_value,
profit_share_formula: profit_formula.formula_string,
sales_price_formula: sales_price.formula_string,
taxes: tax_datas,
calendar_id: google_calendar?.id,
calendar_link: google_calendar?.htmlLink,
});
} else if (oldSettled) {
console.log(data, 'data oldSettled');
const google_calendar = await CreateEventCalendarHelper(data);
Object.assign(data, {
payment_total_dpp: dpp_value,
profit_share_formula: profit_formula.formula_string,
sales_price_formula: sales_price.formula_string,
taxes: tax_datas,
calendar_id: google_calendar?.id,
calendar_link: google_calendar?.htmlLink,
});
} else if (oldSettled) {
const google_calendar = await CreateEventCalendarHelper(data);
Object.assign(data, {
calendar_id: null,
calendar_link: null,
});
}
Object.assign(data, {
calendar_id: null,
calendar_link: null,
});
await this.dataService.create(queryRunner, TransactionModel, data);
}
await this.dataService.create(queryRunner, TransactionModel, data);
}
}

View File

@ -11,7 +11,7 @@ import { TransactionChangeStatusEvent } from '../../entities/event/transaction-c
@Injectable()
export class ActiveTransactionManager extends BaseUpdateStatusManager<TransactionEntity> {
getResult(): string {
return `Success active data ${this.result.invoice_code}`;
return `Success ${this.dataStatus} data ${this.result.invoice_code}`;
}
async validateProcess(): Promise<void> {

View File

@ -16,11 +16,11 @@ import { STATUS } from 'src/core/strings/constants/base.constants';
@Injectable()
export class CancelTransactionManager extends BaseUpdateStatusManager<TransactionEntity> {
getResult(): string {
return `Success active data ${this.result.invoice_code}`;
return `Success ${this.dataStatus} data ${this.result.invoice_code}`;
}
async validateProcess(): Promise<void> {
if (![STATUS.EXPIRED, STATUS.PENDING].includes(this.data.status)) {
if (![STATUS.EXPIRED, STATUS.PENDING].includes(this.oldData.status)) {
throw new UnprocessableEntityException({
statusCode: HttpStatus.UNPROCESSABLE_ENTITY,
message: `Gagal! hanya tranksaksi dengan status ${STATUS.PENDING} dan ${STATUS.EXPIRED} yang dapat di${this.dataStatus}`,

View File

@ -67,6 +67,7 @@ export class DetailTransactionManager extends BaseDetailManager<TransactionEntit
`${this.tableName}.discount_value`,
`${this.tableName}.payment_type`,
`${this.tableName}.payment_type_counter`,
`${this.tableName}.payment_date`,
`${this.tableName}.payment_total_pay`,
`${this.tableName}.payment_type_method_id`,

View File

@ -98,6 +98,7 @@ export function mappingRevertTransaction(data, type) {
});
} else {
Object.assign(data, {
type: type,
creator_id: data.pos_admin?.id,
creator_name: data.pos_admin?.name,
invoice_code: data.code,
@ -107,11 +108,11 @@ export function mappingRevertTransaction(data, type) {
Object.assign(data, {
id: data.booking_id ?? data._id,
creator_counter_no: Number(data.pos_number),
status: STATUS.SETTLED,
settlement_date: new Date(data.created_at),
payment_date: new Date(data.created_at),
invoice_date: new Date(data.created_at),
payment_type:
payment_type: TransactionPaymentType.COUNTER,
payment_type_counter:
data.payment_type == 'cc'
? TransactionPaymentType.CC
: data.payment_type,
@ -122,13 +123,12 @@ export function mappingRevertTransaction(data, type) {
discount_percentage: data.discount_code?.discount,
});
} else {
// Object.assign(data, {
// payment_type:
// })
Object.assign(data, {
type: type,
});
}
Object.assign(data, {
type: type,
payment_total_net_profit: data.payment_total,
customer_category_id: data.customer_category?.id ?? null,
customer_category_name: data.customer_category?.name ?? null,

View File

@ -75,6 +75,7 @@ export class IndexTransactionManager extends BaseIndexManager<TransactionEntity>
`${this.tableName}.payment_code`,
`${this.tableName}.payment_card_information`,
`${this.tableName}.payment_type`,
`${this.tableName}.payment_type_counter`,
`${this.tableName}.payment_date`,
`${this.tableName}.payment_total_pay`,
`${this.tableName}.payment_type_method_id`,