UNPKG

facturacionelectronicapy-ts-xmlgen

Version:

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

57 lines (56 loc) 2.11 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.FacturaSchema = void 0; const zod_1 = require("zod"); const presenceIndicators_table_1 = require("../../data/presenceIndicators.table"); const CommonValidators_1 = __importDefault(require("../../helpers/validation/CommonValidators")); const db_service_1 = __importDefault(require("../../services/db.service")); const ZodValidator_1 = __importDefault(require("../../helpers/validation/ZodValidator")); const SDParser_1 = __importDefault(require("../../helpers/SDParser")); /** (E010) E1. Campos que componen la Factura Electrónica FE (E002-E099) */ exports.FacturaSchema = zod_1.z .object({ // E011 presencia: zod_1.z .nativeEnum(presenceIndicators_table_1.PresenceIndicator) .describe(SDParser_1.default.stringify('E011', { e: 'PresenceIndicator' })), // E012 descripcionPresencia: zod_1.z .string() .min(10) .max(30) .optional() .describe(SDParser_1.default.stringify('E012', { d: 'Obligatorio si E011 = 9 (presencia = OTRO)', })), // E013 fechaEnvio: CommonValidators_1.default.isoDate() .optional() .describe(SDParser_1.default.stringify('E013')), }) .transform((data, ctx) => { const validator = new ZodValidator_1.default(ctx, data); const presenceIsOther = data.presencia == presenceIndicators_table_1.PresenceIndicator.OTRO; // E012 - descripcionPresencia let descripcionPresencia = data.descripcionPresencia; { /* Si E011 = 9 informar el indicador de presencia */ if (presenceIsOther) { validator.requiredField('descripcionPresencia'); } else { descripcionPresencia = db_service_1.default.presenceIndicators._findByIdIfExist(data.presencia)?.description; } } return { ...data, // E012 descripcionPresencia, }; });