33 lines
1018 B
TypeScript
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;
|
|
};*/
|
|
}
|
|
}
|