UNPKG

facturacionelectronicapy-ts-xmlgen

Version:

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

100 lines (99 loc) 3.44 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.SectorAdicionalSchema = void 0; const zod_1 = require("zod"); const NumberLenght_1 = __importDefault(require("../../helpers/validation/NumberLenght")); const ZodValidator_1 = __importDefault(require("../../helpers/validation/ZodValidator")); const CommonValidators_1 = __importDefault(require("../../helpers/validation/CommonValidators")); const Path_1 = require("../../helpers/Path"); const SDParser_1 = __importDefault(require("../../helpers/SDParser")); /**E9.5. Grupo de datos adicionales de uso comercial (E820-E829) */ exports.SectorAdicionalSchema = zod_1.z .object({ // E821 ciclo: zod_1.z .string() .min(1) .max(15) .optional() .describe(SDParser_1.default.stringify('E821')), // E822 inicioCiclo: CommonValidators_1.default.isoDate() .optional() .describe(SDParser_1.default.stringify('E822')), // E823 finCiclo: CommonValidators_1.default.isoDate() .optional() .describe(SDParser_1.default.stringify('E823')), // E824 vencimientoPago: CommonValidators_1.default.isoDate() .optional() .describe(SDParser_1.default.stringify('E824')), // E825 numeroContrato: zod_1.z .string() .min(1) .max(30) .optional() .describe(SDParser_1.default.stringify('E825')), // E826 saldoAnterior: zod_1.z .number() .optional() .superRefine((value, ctx) => { if (value == undefined) return; new NumberLenght_1.default(value, ctx).max(15).maxDecimals(4); }) .describe(SDParser_1.default.stringify('E826')), // E827: VER: https://www.dnit.gov.py/documents/20123/420595/NT_E_KUATIA_020_MT_V150.pdf/f9a47078-748e-db87-bf2f-e6826ef048b9?t=1700242734040 codigoContratacionDncp: zod_1.z .string() .min(1) .max(30) .optional() .describe(SDParser_1.default.stringify('E827', { v: 'https://www.dnit.gov.py/documents/20123/420595/NT_E_KUATIA_020_MT_V150.pdf/f9a47078-748e-db87-bf2f-e6826ef048b9?t=1700242734040', })), }) .superRefine((data, ctx) => { const validator = new ZodValidator_1.default(ctx, data); // E822 - inicioCiclo { /* Obligatorio si se informa el campo E821 No completar si no se informa el campo E821 */ if (data.ciclo) { validator.requiredField('inicioCiclo'); } else { validator.undesiredField('inicioCiclo'); } } // E823 - finCiclo { /* Obligatorio si se informa el campo E822 No completar si no se informa el campo E822 */ if (data.inicioCiclo) { validator.requiredField('finCiclo'); } else { validator.undesiredField('finCiclo'); } } // ⚠️ esto no es del manual { if (data.inicioCiclo && data.finCiclo) { const inicio = new Date(data.inicioCiclo); const fin = new Date(data.finCiclo); const endPath = new Path_1.Path('finCiclo'); validator.validate('inicioCiclo', inicio > fin, `$path no puede ser mayor que '${endPath}'`); } } });