UNPKG

facturacionelectronicapy-ts-xmlgen

Version:

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

75 lines (74 loc) 3.02 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.RemisionSchema = void 0; const zod_1 = require("zod"); const freightResponsibles_table_1 = require("../../data/freightResponsibles.table"); const remissionReasons_table_1 = require("../../data/remissionReasons.table"); const CommonValidators_1 = __importDefault(require("../../helpers/validation/CommonValidators")); const NumberLenght_1 = __importDefault(require("../../helpers/validation/NumberLenght")); const ZodValidator_1 = __importDefault(require("../../helpers/validation/ZodValidator")); const db_service_1 = __importDefault(require("../../services/db.service")); const SDParser_1 = __importDefault(require("../../helpers/SDParser")); /**E6. Campos que componen la Nota de Remisión Electrónica (E500-E599) */ exports.RemisionSchema = zod_1.z .object({ // E501 motivo: zod_1.z .nativeEnum(remissionReasons_table_1.RemissionReason) .describe(SDParser_1.default.stringify('E501', { e: 'RemissionReason' })), // E502 motivoDescripcion: zod_1.z .string() .min(5) .max(60) .optional() .describe(SDParser_1.default.stringify('E502')), // E503, tipoResponsable: zod_1.z .nativeEnum(freightResponsibles_table_1.FreightResponsible) .describe(SDParser_1.default.stringify('E503', { e: 'FreightResponsible' })), // E505 kms: zod_1.z .number() .superRefine((value, ctx) => { new NumberLenght_1.default(value, ctx).int().max(5); }) .describe(SDParser_1.default.stringify('E505')), // E506 fechaFactura: CommonValidators_1.default.isoDate() .optional() .describe(SDParser_1.default.stringify('E506')), // E507 // VER: https://www.dnit.gov.py/documents/20123/420595/NT_E_KUATIA_010_MT_V150.pdf/d64a693b-6c63-86e1-ec6a-d4fe5ec4eeea?t=1687353747196 costoFlete: zod_1.z .number() .optional() .superRefine((value, ctx) => { if (value == undefined) return; new NumberLenght_1.default(value, ctx).max(15).maxDecimals(8); }) .describe(SDParser_1.default.stringify('E507', { v: 'https://www.dnit.gov.py/documents/20123/420595/NT_E_KUATIA_010_MT_V150.pdf/d64a693b-6c63-86e1-ec6a-d4fe5ec4eeea?t=1687353747196', })), }) .transform((data, ctx) => { const validator = new ZodValidator_1.default(ctx, data); // E502 - motivoDescripcion { /* Si E501=99 describir el motivo de la emisión */ if (data.motivo == remissionReasons_table_1.RemissionReason.OTRO) { validator.requiredField('motivoDescripcion'); } } return { ...data, // E504 descripcionTipoResponsable: db_service_1.default.freightResponsibles._findById(data.tipoResponsable).description, }; });