UNPKG

facturacionelectronicapy-ts-xmlgen

Version:

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

80 lines (79 loc) 2.84 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.VehiculoSchema = void 0; const zod_1 = require("zod"); const vehicleIdentifications_table_1 = require("../../data/vehicleIdentifications.table"); const ZodValidator_1 = __importDefault(require("../../helpers/validation/ZodValidator")); const SDParser_1 = __importDefault(require("../../helpers/SDParser")); /**E10.3. Campos que identifican el vehículo de traslado de mercaderías (E960-E979) */ exports.VehiculoSchema = zod_1.z .object({ // E961: Debe ser acorde al atributo modalidad (E903) tipo: zod_1.z .string() .min(4) .max(10) .describe(SDParser_1.default.stringify('E961', { d: 'Debe ser acorde al atributo modalidad (E903)', })), // E962 marca: zod_1.z.string().min(1).max(10).describe(SDParser_1.default.stringify('E962')), // E963 documentoNumero: zod_1.z .string() .min(1) .max(20) .optional() .describe(SDParser_1.default.stringify('E963')), // E964 obs: zod_1.z .string() .min(1) .max(20) .optional() .describe(SDParser_1.default.stringify('E964')), // E965 // VER: https://www.dnit.gov.py/documents/20123/420595/NT_E_KUATIA_005_MT_V150.pdf/098e75de-e878-7bcd-49ec-55c33a45a0a7?t=1687353746324 numeroMatricula: zod_1.z .string() .min(6) .max(7) .optional() .describe(SDParser_1.default.stringify('E965')), // E966 numeroVuelo: zod_1.z.string().optional().describe(SDParser_1.default.stringify('E966')), // E967 documentoTipo: zod_1.z .nativeEnum(vehicleIdentifications_table_1.VehicleIdentification) .describe(SDParser_1.default.stringify('E967', { e: 'VehicleIdentification' })), }) .superRefine((data, ctx) => { const validator = new ZodValidator_1.default(ctx, data); /**E967 = 1 */ const docTypeIsIdentificationNumber = data.documentoTipo == vehicleIdentifications_table_1.VehicleIdentification.NUMERO_DE_IDENTIFICACION_DEL_VEHICULO; /**E967 = 2 */ const docTypeIsMatricula = data.documentoTipo == vehicleIdentifications_table_1.VehicleIdentification.NUMERO_DE_MATRICULA_DEL_VEHICULO; // E963 - documentoNumero { /* Debe informarse cuando el E967=1 */ if (docTypeIsIdentificationNumber) { validator.requiredField('documentoNumero'); } } // E965 - numeroMatricula { /* Debe informarse cuando el E967=2 */ if (docTypeIsMatricula) { validator.requiredField('numeroMatricula'); } } });