UNPKG

facturacionelectronicapy-ts-xmlgen

Version:

Genera el contenido del archivo XML del Documento electrónico exigido por la SET

53 lines (52 loc) 1.87 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.CreditoSchema = void 0; const zod_1 = require("zod"); const infoCuota_schema_1 = require("./infoCuota.schema"); const creditTypes_table_1 = require("../../data/creditTypes.table"); const db_service_1 = __importDefault(require("../../services/db.service")); const NumberLenght_1 = __importDefault(require("../../helpers/validation/NumberLenght")); const SDParser_1 = __importDefault(require("../../helpers/SDParser")); /**E7.2. Campos que describen la operación a crédito (E640-E649) */ exports.CreditoSchema = zod_1.z .object({ // E641 tipo: zod_1.z .nativeEnum(creditTypes_table_1.CreditType) .describe(SDParser_1.default.stringify('E641', { e: 'CreditType' })), // E643 plazo: zod_1.z .string() .min(2) .max(12) .optional() .describe(SDParser_1.default.stringify('E643')), // E644 cuotas: zod_1.z .number() .optional() .superRefine((value, ctx) => { if (value == undefined) return; new NumberLenght_1.default(value, ctx).int().max(3); }) .describe(SDParser_1.default.stringify('E644')), // E645: lo calculamos en CondicionSchema // E7.2.1.Campos que describen las cuotas (E650-E659) infoCuotas: zod_1.z .array(infoCuota_schema_1.InfoCuotaSchema) .max(999) .describe(SDParser_1.default.stringify('E7.2.1', { d: 'Campos que describen las cuotas (E650-E659)', })), }) .transform((data, ctx) => { return { ...data, // E642 tipoDescripcion: db_service_1.default.creditTypes._findById(data.tipo).description, }; });