UNPKG

facturacionelectronicapy-ts-xmlgen

Version:

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

55 lines (54 loc) 2.24 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.UsuarioSchema = void 0; const zod_1 = require("zod"); const idDocsUsers_table_1 = require("../../data/idDocsUsers.table"); const CommonValidators_1 = __importDefault(require("../../helpers/validation/CommonValidators")); const ZodValidator_1 = __importDefault(require("../../helpers/validation/ZodValidator")); const db_service_1 = __importDefault(require("../../services/db.service")); const SDParser_1 = __importDefault(require("../../helpers/SDParser")); /** D2.2 Campos que identifican al responsable de la generación del DE (D140-D160) */ exports.UsuarioSchema = zod_1.z .object({ // D141 documentoTipo: zod_1.z .nativeEnum(idDocsUsers_table_1.IdentityDocumentUser) .describe(SDParser_1.default.stringify('D141', { e: 'IdentityDocumentUser' })), // D142 documentoTipoDescripcion: zod_1.z .string() .min(9) .max(41) .optional() .describe(SDParser_1.default.stringify('D142')), // D143 documentoNumero: CommonValidators_1.default.identityDocNumber().describe(SDParser_1.default.stringify('D143')), // D144 nombre: CommonValidators_1.default.name().describe(SDParser_1.default.stringify('D144')), // D145 cargo: zod_1.z.string().min(4).max(100).describe(SDParser_1.default.stringify('D145')), }) .transform((data, ctx) => { const validator = new ZodValidator_1.default(ctx, data); const isOtherDocument = data.documentoTipo == idDocsUsers_table_1.IdentityDocumentUser.OTRO; // D141 - documentoTipoDescripcion { /* Si D141 = 9 informar el tipo de documento de identidad del responsable de la generación del DE */ if (isOtherDocument) { validator.requiredField('documentoTipoDescripcion'); } } return { ...data, documentoTipoDescripcion: !isOtherDocument ? db_service_1.default.idDocsUsers._findById(data.documentoTipo).description : data.documentoTipoDescripcion, }; });