Merge branch 'development' of ssh://git.eigen.co.id:2222/eigen/pos-be into fix/bug-firman
commit
7c0df75670
|
@ -44,7 +44,10 @@ import { ItemRateModel } from './modules/item-related/item-rate/data/models/item
|
||||||
import { GoogleCalendarModule } from './modules/configuration/google-calendar/google-calendar.module';
|
import { GoogleCalendarModule } from './modules/configuration/google-calendar/google-calendar.module';
|
||||||
import { TransactionModule } from './modules/transaction/transaction/transaction.module';
|
import { TransactionModule } from './modules/transaction/transaction/transaction.module';
|
||||||
import { TransactionModel } from './modules/transaction/transaction/data/models/transaction.model';
|
import { TransactionModel } from './modules/transaction/transaction/data/models/transaction.model';
|
||||||
import { TransactionItemModel } from './modules/transaction/transaction/data/models/transaction-item.model';
|
import {
|
||||||
|
TransactionItemBreakdownModel,
|
||||||
|
TransactionItemModel,
|
||||||
|
} from './modules/transaction/transaction/data/models/transaction-item.model';
|
||||||
import { TransactionTaxModel } from './modules/transaction/transaction/data/models/transaction-tax.model';
|
import { TransactionTaxModel } from './modules/transaction/transaction/data/models/transaction-tax.model';
|
||||||
import { ReconciliationModule } from './modules/transaction/reconciliation/reconciliation.module';
|
import { ReconciliationModule } from './modules/transaction/reconciliation/reconciliation.module';
|
||||||
import { ReportModule } from './modules/reports/report/report.module';
|
import { ReportModule } from './modules/reports/report/report.module';
|
||||||
|
@ -111,6 +114,7 @@ import { TransactionDemographyModel } from './modules/transaction/transaction/da
|
||||||
TransactionItemModel,
|
TransactionItemModel,
|
||||||
TransactionTaxModel,
|
TransactionTaxModel,
|
||||||
TransactionDemographyModel,
|
TransactionDemographyModel,
|
||||||
|
TransactionItemBreakdownModel,
|
||||||
UserModel,
|
UserModel,
|
||||||
VipCategoryModel,
|
VipCategoryModel,
|
||||||
VipCodeModel,
|
VipCodeModel,
|
||||||
|
|
|
@ -20,6 +20,7 @@ export enum TABLE_NAME {
|
||||||
TENANT = 'tenants',
|
TENANT = 'tenants',
|
||||||
TRANSACTION = 'transactions',
|
TRANSACTION = 'transactions',
|
||||||
TRANSACTION_ITEM = 'transaction_items',
|
TRANSACTION_ITEM = 'transaction_items',
|
||||||
|
TRANSACTION_ITEM_BREAKDOWN = 'transaction_item_breakdowns',
|
||||||
TRANSACTION_TAX = 'transaction_taxes',
|
TRANSACTION_TAX = 'transaction_taxes',
|
||||||
TRANSACTION_DEMOGRAPHY = 'transaction_demographies',
|
TRANSACTION_DEMOGRAPHY = 'transaction_demographies',
|
||||||
USER = 'users',
|
USER = 'users',
|
||||||
|
|
|
@ -13,7 +13,7 @@ export class FixDemographyNationality1723716561482
|
||||||
`ALTER TABLE "transaction_demographies" DROP COLUMN "foreign"`,
|
`ALTER TABLE "transaction_demographies" DROP COLUMN "foreign"`,
|
||||||
);
|
);
|
||||||
await queryRunner.query(
|
await queryRunner.query(
|
||||||
`CREATE TYPE "public"."transaction_demographies_nationality_enum" AS ENUM('local', 'foreign')`,
|
`CREATE TYPE "public"."transaction_demographies_nationality_enum" AS ENUM('local', 'foreign', 'mix')`,
|
||||||
);
|
);
|
||||||
await queryRunner.query(
|
await queryRunner.query(
|
||||||
`ALTER TABLE "transaction_demographies" ADD "nationality" "public"."transaction_demographies_nationality_enum" NOT NULL DEFAULT 'local'`,
|
`ALTER TABLE "transaction_demographies" ADD "nationality" "public"."transaction_demographies_nationality_enum" NOT NULL DEFAULT 'local'`,
|
||||||
|
|
|
@ -0,0 +1,23 @@
|
||||||
|
import { MigrationInterface, QueryRunner } from 'typeorm';
|
||||||
|
|
||||||
|
export class AddBreakdownItemTransaction1724127202672
|
||||||
|
implements MigrationInterface
|
||||||
|
{
|
||||||
|
name = 'AddBreakdownItemTransaction1724127202672';
|
||||||
|
|
||||||
|
public async up(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(
|
||||||
|
`CREATE TABLE "transaction_item_breakdowns" ("id" uuid NOT NULL DEFAULT uuid_generate_v4(), "item_id" character varying NOT NULL, "item_name" character varying NOT NULL, "hpp" bigint, "base_price" bigint, "item_rates" bigint, "transaction_item_id" uuid, CONSTRAINT "PK_e04a30c648d3ba8778e9fb67fdd" PRIMARY KEY ("id"))`,
|
||||||
|
);
|
||||||
|
await queryRunner.query(
|
||||||
|
`ALTER TABLE "transaction_item_breakdowns" ADD CONSTRAINT "FK_b8c63b1f3ecace500587da713ae" FOREIGN KEY ("transaction_item_id") REFERENCES "transaction_items"("id") ON DELETE CASCADE ON UPDATE CASCADE`,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
public async down(queryRunner: QueryRunner): Promise<void> {
|
||||||
|
await queryRunner.query(
|
||||||
|
`ALTER TABLE "transaction_item_breakdowns" DROP CONSTRAINT "FK_b8c63b1f3ecace500587da713ae"`,
|
||||||
|
);
|
||||||
|
await queryRunner.query(`DROP TABLE "transaction_item_breakdowns"`);
|
||||||
|
}
|
||||||
|
}
|
|
@ -4,14 +4,64 @@ import { ItemRateEntity } from '../../domain/entities/item-rate.entity';
|
||||||
import { InjectRepository } from '@nestjs/typeorm';
|
import { InjectRepository } from '@nestjs/typeorm';
|
||||||
import { ItemRateModel } from '../models/item-rate.model';
|
import { ItemRateModel } from '../models/item-rate.model';
|
||||||
import { CONNECTION_NAME } from 'src/core/strings/constants/base.constants';
|
import { CONNECTION_NAME } from 'src/core/strings/constants/base.constants';
|
||||||
import { Repository } from 'typeorm';
|
import { In, Repository } from 'typeorm';
|
||||||
|
import { ItemModel } from 'src/modules/item-related/item/data/models/item.model';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ItemRateDataService extends BaseDataService<ItemRateEntity> {
|
export class ItemRateDataService extends BaseDataService<ItemRateEntity> {
|
||||||
constructor(
|
constructor(
|
||||||
@InjectRepository(ItemRateModel, CONNECTION_NAME.DEFAULT)
|
@InjectRepository(ItemRateModel, CONNECTION_NAME.DEFAULT)
|
||||||
private repo: Repository<ItemRateModel>,
|
private repo: Repository<ItemRateModel>,
|
||||||
|
@InjectRepository(ItemModel, CONNECTION_NAME.DEFAULT)
|
||||||
|
private itemRepo: Repository<ItemModel>,
|
||||||
) {
|
) {
|
||||||
super(repo);
|
super(repo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async itemsRateTotal(season_id: string, items: string[]): Promise<number> {
|
||||||
|
const rates = await this.repo.find({
|
||||||
|
where: {
|
||||||
|
season_period_id: season_id,
|
||||||
|
item_id: In(items),
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return rates.reduce((total, current) => total + Number(current.price), 0);
|
||||||
|
}
|
||||||
|
|
||||||
|
async updateRatesBySeasonItem(
|
||||||
|
season_id: string,
|
||||||
|
item_id: string,
|
||||||
|
price: number,
|
||||||
|
): Promise<void> {
|
||||||
|
this.repo.update(
|
||||||
|
{
|
||||||
|
season_period_id: season_id,
|
||||||
|
item_id,
|
||||||
|
},
|
||||||
|
{ price },
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
async findBundlingByItem(item_id: string): Promise<ItemModel[]> {
|
||||||
|
const bundlings = await this.itemRepo.find({
|
||||||
|
where: {
|
||||||
|
breakdown_bundling: true,
|
||||||
|
bundling_items: {
|
||||||
|
id: item_id,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
return Promise.all(
|
||||||
|
await bundlings.map(async (bundling) => {
|
||||||
|
return await this.itemRepo.findOne({
|
||||||
|
relations: ['bundling_items'],
|
||||||
|
where: {
|
||||||
|
id: bundling.id,
|
||||||
|
},
|
||||||
|
});
|
||||||
|
}),
|
||||||
|
);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,7 +5,6 @@ import { ItemRateEntity } from '../entities/item-rate.entity';
|
||||||
import { DeleteItemRateManager } from './managers/delete-item-rate.manager';
|
import { DeleteItemRateManager } from './managers/delete-item-rate.manager';
|
||||||
import { UpdateItemRateManager } from './managers/update-item-rate.manager';
|
import { UpdateItemRateManager } from './managers/update-item-rate.manager';
|
||||||
import { BaseDataOrchestrator } from 'src/core/modules/domain/usecase/orchestrators/base-data.orchestrator';
|
import { BaseDataOrchestrator } from 'src/core/modules/domain/usecase/orchestrators/base-data.orchestrator';
|
||||||
import { STATUS } from 'src/core/strings/constants/base.constants';
|
|
||||||
import { BatchResult } from 'src/core/response/domain/ok-response.interface';
|
import { BatchResult } from 'src/core/response/domain/ok-response.interface';
|
||||||
import { BatchDeleteItemRateManager } from './managers/batch-delete-item-rate.manager';
|
import { BatchDeleteItemRateManager } from './managers/batch-delete-item-rate.manager';
|
||||||
import { TABLE_NAME } from 'src/core/strings/constants/table.constants';
|
import { TABLE_NAME } from 'src/core/strings/constants/table.constants';
|
||||||
|
|
|
@ -20,6 +20,7 @@ export class UpdateItemRateManager extends BaseUpdateManager<ItemRateEntity> {
|
||||||
}
|
}
|
||||||
|
|
||||||
async afterProcess(): Promise<void> {
|
async afterProcess(): Promise<void> {
|
||||||
|
this.updateBundlingBreakdown(this.dataId);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -42,4 +43,25 @@ export class UpdateItemRateManager extends BaseUpdateManager<ItemRateEntity> {
|
||||||
},
|
},
|
||||||
];
|
];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async updateBundlingBreakdown(id: string) {
|
||||||
|
const { item_id, season_period_id } =
|
||||||
|
await this.dataService.getOneByOptions({
|
||||||
|
where: { id },
|
||||||
|
});
|
||||||
|
const bundlings = await this.dataService.findBundlingByItem(item_id);
|
||||||
|
|
||||||
|
for (const bundling of bundlings) {
|
||||||
|
const ids = bundling.bundling_items.map((item) => item.id);
|
||||||
|
const totalRates = await this.dataService.itemsRateTotal(
|
||||||
|
season_period_id,
|
||||||
|
ids,
|
||||||
|
);
|
||||||
|
this.dataService.updateRatesBySeasonItem(
|
||||||
|
season_period_id,
|
||||||
|
bundling.id,
|
||||||
|
totalRates,
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,11 +1,9 @@
|
||||||
import { Body, Controller, Delete, Param, Post, Put } from '@nestjs/common';
|
import { Body, Controller, Get, Param, Put } from '@nestjs/common';
|
||||||
import { ItemRateDataOrchestrator } from '../domain/usecases/item-rate-data.orchestrator';
|
import { ItemRateDataOrchestrator } from '../domain/usecases/item-rate-data.orchestrator';
|
||||||
import { ItemRateDto } from './dto/item-rate.dto';
|
import { ItemRateDto } from './dto/item-rate.dto';
|
||||||
import { MODULE_NAME } from 'src/core/strings/constants/module.constants';
|
import { MODULE_NAME } from 'src/core/strings/constants/module.constants';
|
||||||
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
|
import { ApiBearerAuth, ApiTags } from '@nestjs/swagger';
|
||||||
import { ItemRateEntity } from '../domain/entities/item-rate.entity';
|
import { ItemRateEntity } from '../domain/entities/item-rate.entity';
|
||||||
import { BatchResult } from 'src/core/response/domain/ok-response.interface';
|
|
||||||
import { BatchIdsDto } from 'src/core/modules/infrastructure/dto/base-batch.dto';
|
|
||||||
import { Public } from 'src/core/guards';
|
import { Public } from 'src/core/guards';
|
||||||
|
|
||||||
@ApiTags(`${MODULE_NAME.ITEM_RATE.split('-').join(' ')} - data`)
|
@ApiTags(`${MODULE_NAME.ITEM_RATE.split('-').join(' ')} - data`)
|
||||||
|
|
|
@ -19,13 +19,14 @@ import { ItemRateModel } from './data/models/item-rate.model';
|
||||||
import { SeasonPeriodHolidayHandler } from './domain/usecases/handlers/item-created.handler';
|
import { SeasonPeriodHolidayHandler } from './domain/usecases/handlers/item-created.handler';
|
||||||
import { SeasonPeriodDataService } from 'src/modules/season-related/season-period/data/services/season-period-data.service';
|
import { SeasonPeriodDataService } from 'src/modules/season-related/season-period/data/services/season-period-data.service';
|
||||||
import { SeasonPeriodModel } from 'src/modules/season-related/season-period/data/models/season-period.model';
|
import { SeasonPeriodModel } from 'src/modules/season-related/season-period/data/models/season-period.model';
|
||||||
|
import { ItemModel } from '../item/data/models/item.model';
|
||||||
|
|
||||||
@Global()
|
@Global()
|
||||||
@Module({
|
@Module({
|
||||||
imports: [
|
imports: [
|
||||||
ConfigModule.forRoot(),
|
ConfigModule.forRoot(),
|
||||||
TypeOrmModule.forFeature(
|
TypeOrmModule.forFeature(
|
||||||
[ItemRateModel, SeasonPeriodModel],
|
[ItemRateModel, SeasonPeriodModel, ItemModel],
|
||||||
CONNECTION_NAME.DEFAULT,
|
CONNECTION_NAME.DEFAULT,
|
||||||
),
|
),
|
||||||
CqrsModule,
|
CqrsModule,
|
||||||
|
|
|
@ -28,6 +28,7 @@ export class DetailRefundManager extends BaseDetailManager<RefundEntity> {
|
||||||
selectRelations: [
|
selectRelations: [
|
||||||
'transaction',
|
'transaction',
|
||||||
'transaction.items',
|
'transaction.items',
|
||||||
|
'items.bundling_items',
|
||||||
'items.refunds item_refunds',
|
'items.refunds item_refunds',
|
||||||
'item_refunds.refund item_refunds_refund',
|
'item_refunds.refund item_refunds_refund',
|
||||||
],
|
],
|
||||||
|
@ -60,6 +61,7 @@ export class DetailRefundManager extends BaseDetailManager<RefundEntity> {
|
||||||
|
|
||||||
'transaction',
|
'transaction',
|
||||||
'items',
|
'items',
|
||||||
|
'bundling_items',
|
||||||
'item_refunds',
|
'item_refunds',
|
||||||
'item_refunds_refund.id',
|
'item_refunds_refund.id',
|
||||||
'item_refunds_refund.status',
|
'item_refunds_refund.status',
|
||||||
|
|
|
@ -33,4 +33,5 @@ export const TransactionModels = [
|
||||||
export enum DemographyNationality {
|
export enum DemographyNationality {
|
||||||
LOCAL = 'local',
|
LOCAL = 'local',
|
||||||
FOREIGN = 'foreign',
|
FOREIGN = 'foreign',
|
||||||
|
MIX = 'mix',
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,10 @@
|
||||||
import { TABLE_NAME } from 'src/core/strings/constants/table.constants';
|
import { TABLE_NAME } from 'src/core/strings/constants/table.constants';
|
||||||
import { Column, Entity, JoinColumn, ManyToOne, OneToMany } from 'typeorm';
|
import { Column, Entity, JoinColumn, ManyToOne, OneToMany } from 'typeorm';
|
||||||
import { BaseCoreModel } from 'src/core/modules/data/model/base-core.model';
|
import { BaseCoreModel } from 'src/core/modules/data/model/base-core.model';
|
||||||
import { TransactionItemEntity } from '../../domain/entities/transaction-item.entity';
|
import {
|
||||||
|
TransactionBundlingItemEntity,
|
||||||
|
TransactionItemEntity,
|
||||||
|
} from '../../domain/entities/transaction-item.entity';
|
||||||
import { TransactionModel } from './transaction.model';
|
import { TransactionModel } from './transaction.model';
|
||||||
import { RefundItemModel } from 'src/modules/transaction/refund/data/models/refund-item.model';
|
import { RefundItemModel } from 'src/modules/transaction/refund/data/models/refund-item.model';
|
||||||
|
|
||||||
|
@ -86,4 +89,40 @@ export class TransactionItemModel
|
||||||
onUpdate: 'CASCADE',
|
onUpdate: 'CASCADE',
|
||||||
})
|
})
|
||||||
refunds: RefundItemModel[];
|
refunds: RefundItemModel[];
|
||||||
|
|
||||||
|
@OneToMany(
|
||||||
|
() => TransactionItemBreakdownModel,
|
||||||
|
(model) => model.transaction_item,
|
||||||
|
{
|
||||||
|
cascade: true,
|
||||||
|
onDelete: 'CASCADE',
|
||||||
|
onUpdate: 'CASCADE',
|
||||||
|
},
|
||||||
|
)
|
||||||
|
bundling_items: TransactionItemBreakdownModel[];
|
||||||
|
}
|
||||||
|
|
||||||
|
@Entity(TABLE_NAME.TRANSACTION_ITEM_BREAKDOWN)
|
||||||
|
export class TransactionItemBreakdownModel extends BaseCoreModel<TransactionBundlingItemEntity> {
|
||||||
|
@Column('varchar')
|
||||||
|
item_id: string;
|
||||||
|
|
||||||
|
@Column('varchar')
|
||||||
|
item_name: string;
|
||||||
|
|
||||||
|
@Column('bigint', { nullable: true })
|
||||||
|
hpp: number;
|
||||||
|
|
||||||
|
@Column('bigint', { nullable: true })
|
||||||
|
base_price: number;
|
||||||
|
|
||||||
|
@Column('bigint', { nullable: true })
|
||||||
|
item_rates: number;
|
||||||
|
|
||||||
|
@ManyToOne(() => TransactionItemModel, (model) => model.bundling_items, {
|
||||||
|
onDelete: 'CASCADE',
|
||||||
|
onUpdate: 'CASCADE',
|
||||||
|
})
|
||||||
|
@JoinColumn({ name: 'transaction_item_id' })
|
||||||
|
transaction_item: TransactionItemModel;
|
||||||
}
|
}
|
||||||
|
|
|
@ -25,4 +25,13 @@ export interface TransactionItemEntity extends BaseCoreEntity {
|
||||||
qty: number;
|
qty: number;
|
||||||
qty_remaining: number;
|
qty_remaining: number;
|
||||||
taxes: string;
|
taxes: string;
|
||||||
|
bundling_items?: TransactionBundlingItemEntity[];
|
||||||
|
}
|
||||||
|
|
||||||
|
export interface TransactionBundlingItemEntity extends BaseCoreEntity {
|
||||||
|
item_id: string;
|
||||||
|
item_name: string;
|
||||||
|
hpp: number;
|
||||||
|
base_price: number;
|
||||||
|
item_rates: number;
|
||||||
}
|
}
|
||||||
|
|
|
@ -5,6 +5,7 @@ import {
|
||||||
TransactionUserType,
|
TransactionUserType,
|
||||||
} from '../../constants';
|
} from '../../constants';
|
||||||
import { STATUS } from 'src/core/strings/constants/base.constants';
|
import { STATUS } from 'src/core/strings/constants/base.constants';
|
||||||
|
import { TransactionItemEntity } from './transaction-item.entity';
|
||||||
|
|
||||||
export interface TransactionEntity extends BaseStatusEntity {
|
export interface TransactionEntity extends BaseStatusEntity {
|
||||||
// general info
|
// general info
|
||||||
|
@ -84,4 +85,6 @@ export interface TransactionEntity extends BaseStatusEntity {
|
||||||
|
|
||||||
calendar_id?: string;
|
calendar_id?: string;
|
||||||
calendar_link?: string;
|
calendar_link?: string;
|
||||||
|
|
||||||
|
items: TransactionItemEntity[];
|
||||||
}
|
}
|
||||||
|
|
|
@ -16,6 +16,7 @@ import { TransactionPaymentType } from '../../../constants';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ConfirmDataTransactionManager extends BaseUpdateStatusManager<TransactionEntity> {
|
export class ConfirmDataTransactionManager extends BaseUpdateStatusManager<TransactionEntity> {
|
||||||
|
protected relations = ['items', 'items.bundling_items'];
|
||||||
getResult(): string {
|
getResult(): string {
|
||||||
return `Success active data ${this.result.invoice_code}`;
|
return `Success active data ${this.result.invoice_code}`;
|
||||||
}
|
}
|
||||||
|
|
|
@ -18,7 +18,7 @@ import { apm } from 'src/core/apm';
|
||||||
|
|
||||||
@Injectable()
|
@Injectable()
|
||||||
export class ConfirmTransactionManager extends BaseUpdateStatusManager<TransactionEntity> {
|
export class ConfirmTransactionManager extends BaseUpdateStatusManager<TransactionEntity> {
|
||||||
protected relations = ['items'];
|
protected relations = ['items', 'items.bundling_items'];
|
||||||
|
|
||||||
getResult(): string {
|
getResult(): string {
|
||||||
return `Success active data ${this.result.invoice_code}`;
|
return `Success active data ${this.result.invoice_code}`;
|
||||||
|
|
|
@ -27,6 +27,7 @@ export class DetailTransactionManager extends BaseDetailManager<TransactionEntit
|
||||||
// relation join and select (relasi yang ingin ditampilkan),
|
// relation join and select (relasi yang ingin ditampilkan),
|
||||||
selectRelations: [
|
selectRelations: [
|
||||||
'items',
|
'items',
|
||||||
|
'items.bundling_items',
|
||||||
'items.refunds item_refunds',
|
'items.refunds item_refunds',
|
||||||
'item_refunds.refund item_refunds_refund',
|
'item_refunds.refund item_refunds_refund',
|
||||||
'refunds',
|
'refunds',
|
||||||
|
@ -84,6 +85,7 @@ export class DetailTransactionManager extends BaseDetailManager<TransactionEntit
|
||||||
`${this.tableName}.payment_midtrans_url`,
|
`${this.tableName}.payment_midtrans_url`,
|
||||||
|
|
||||||
'items',
|
'items',
|
||||||
|
'bundling_items',
|
||||||
'item_refunds',
|
'item_refunds',
|
||||||
'item_refunds_refund.id',
|
'item_refunds_refund.id',
|
||||||
'item_refunds_refund.status',
|
'item_refunds_refund.status',
|
||||||
|
|
|
@ -3,6 +3,7 @@ import {
|
||||||
TransactionPaymentType,
|
TransactionPaymentType,
|
||||||
TransactionType,
|
TransactionType,
|
||||||
} from 'src/modules/transaction/transaction/constants';
|
} from 'src/modules/transaction/transaction/constants';
|
||||||
|
import { v4 as uuidv4 } from 'uuid';
|
||||||
|
|
||||||
export function mappingTransaction(data, refundId?: string) {
|
export function mappingTransaction(data, refundId?: string) {
|
||||||
try {
|
try {
|
||||||
|
@ -54,6 +55,7 @@ export function mappingTransaction(data, refundId?: string) {
|
||||||
id: itemData.item_category_id,
|
id: itemData.item_category_id,
|
||||||
name: itemData.item_category_name,
|
name: itemData.item_category_name,
|
||||||
},
|
},
|
||||||
|
bundling_items: itemData.bundling_items,
|
||||||
},
|
},
|
||||||
id: itemData.id,
|
id: itemData.id,
|
||||||
refund: refund,
|
refund: refund,
|
||||||
|
@ -187,6 +189,15 @@ export function mappingRevertTransaction(data, type) {
|
||||||
item_bundlings: item.item.bundling_items?.map(
|
item_bundlings: item.item.bundling_items?.map(
|
||||||
(bundling) => bundling.name,
|
(bundling) => bundling.name,
|
||||||
),
|
),
|
||||||
|
bundling_items: item.item.bundling_items?.map((bundling) => {
|
||||||
|
if (bundling.item_id) return bundling;
|
||||||
|
return {
|
||||||
|
...bundling,
|
||||||
|
item_id: bundling.id,
|
||||||
|
item_name: bundling.name,
|
||||||
|
id: uuidv4(),
|
||||||
|
};
|
||||||
|
}),
|
||||||
|
|
||||||
item_tenant_id: item.item.tenant?.id ?? null,
|
item_tenant_id: item.item.tenant?.id ?? null,
|
||||||
item_tenant_name: item.item.tenant?.id ?? null,
|
item_tenant_name: item.item.tenant?.id ?? null,
|
||||||
|
|
|
@ -18,7 +18,10 @@ import { DetailTransactionManager } from './domain/usecases/managers/detail-tran
|
||||||
import { BatchDeleteTransactionManager } from './domain/usecases/managers/batch-delete-transaction.manager';
|
import { BatchDeleteTransactionManager } from './domain/usecases/managers/batch-delete-transaction.manager';
|
||||||
import { BatchConfirmTransactionManager } from './domain/usecases/managers/batch-confirm-transaction.manager';
|
import { BatchConfirmTransactionManager } from './domain/usecases/managers/batch-confirm-transaction.manager';
|
||||||
import { TransactionModel } from './data/models/transaction.model';
|
import { TransactionModel } from './data/models/transaction.model';
|
||||||
import { TransactionItemModel } from './data/models/transaction-item.model';
|
import {
|
||||||
|
TransactionItemBreakdownModel,
|
||||||
|
TransactionItemModel,
|
||||||
|
} from './data/models/transaction-item.model';
|
||||||
import { TransactionTaxModel } from './data/models/transaction-tax.model';
|
import { TransactionTaxModel } from './data/models/transaction-tax.model';
|
||||||
import { CancelTransactionManager } from './domain/usecases/managers/cancel-transaction.manager';
|
import { CancelTransactionManager } from './domain/usecases/managers/cancel-transaction.manager';
|
||||||
import { BatchCancelTransactionManager } from './domain/usecases/managers/batch-cancel-transaction.manager';
|
import { BatchCancelTransactionManager } from './domain/usecases/managers/batch-cancel-transaction.manager';
|
||||||
|
@ -46,6 +49,7 @@ import { TransactionDemographyModel } from './data/models/transaction-demography
|
||||||
TransactionModel,
|
TransactionModel,
|
||||||
TransactionItemModel,
|
TransactionItemModel,
|
||||||
TransactionDemographyModel,
|
TransactionDemographyModel,
|
||||||
|
TransactionItemBreakdownModel,
|
||||||
TransactionTaxModel,
|
TransactionTaxModel,
|
||||||
TaxModel,
|
TaxModel,
|
||||||
SalesPriceFormulaModel,
|
SalesPriceFormulaModel,
|
||||||
|
|
Loading…
Reference in New Issue