Uecko_ERP/modules/customer-invoices/src/api/infrastructure/mappers/item-taxes.mapper.ts
2025-09-09 17:48:12 +02:00

33 lines
1018 B
TypeScript

import { MapperParamsType, Taxes } from "@erp/core/api";
import { InferCreationAttributes } from "sequelize";
import { CustomerInvoiceItemModel, CustomerInvoiceItemTaxModel } from "../sequelize";
export class ItemTaxesMapper {
public mapArrayToDomain(item: CustomerInvoiceItemModel, params?: MapperParamsType) {
const taxes = Taxes.create({ items: [] });
item.taxes.split(",").every((tax_code, taxIndex) => {
const taxResult = Tax.createFromCode(tax_code, this.taxCatalog);
if (taxResult.isSuccess) {
taxes.add(taxResult.data);
} else {
this.errors.push({
path: `items[${itemIndex}].taxes[${taxIndex}]`,
message: taxResult.error.message,
});
}
});
return taxes;
}
public mapToPersistence(
source: Taxes,
params?: MapperParamsType
): InferCreationAttributes<CustomerInvoiceItemTaxModel, {}> {
/*const { index, sourceParent } = params as {
index: number;
sourceParent: CustomerInvoice;
};*/
}
}