UNPKG

facturacionelectronicapy-ts-xmlgen

Version:

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

66 lines (65 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.EDocParamsSchema = void 0; const zod_1 = require("zod"); const actividadEconomica_schema_1 = require("./params/actividadEconomica.schema"); const establecimiento_schema_1 = require("./params/establecimiento.schema"); const CommonValidators_1 = __importDefault(require("../helpers/validation/CommonValidators")); const regimeTypes_table_1 = require("../data/regimeTypes.table"); const taxpayerTypes_table_1 = require("../data/taxpayerTypes.table"); const SDParser_1 = __importDefault(require("../helpers/SDParser")); exports.EDocParamsSchema = zod_1.z .object({ // D2. Campos que identifican al emisor del Documento Electrónico DE (D100-D129) // ruc con dv, para calcular D101 y D102 ruc: CommonValidators_1.default.ruc().describe(SDParser_1.default.stringify('D101 - D102')), // D103 tipoContribuyente: zod_1.z .nativeEnum(taxpayerTypes_table_1.TaxpayerType) .describe(SDParser_1.default.stringify('D103', { e: 'TaxpayerType' })), // D104 tipoRegimen: zod_1.z .nativeEnum(regimeTypes_table_1.RegimeType) .optional() .describe(SDParser_1.default.stringify('D104', { e: 'RegimeType' })), // D105 razonSocial: CommonValidators_1.default.legalName().describe(SDParser_1.default.stringify('D105')), // D106 nombreFantasia: CommonValidators_1.default.tradeName() .optional() .describe(SDParser_1.default.stringify('D106')), // D107 - D119 establecimientos: zod_1.z .array(establecimiento_schema_1.EstablecimientoSchema) .min(1) .describe(SDParser_1.default.stringify('D107 - D119')), // D2.1 Campos que describen la actividad económica del emisor (D130-D139) actividadesEconomicas: zod_1.z .array(actividadEconomica_schema_1.ActividadEconomicaSchema) .min(1) .max(9) .describe(SDParser_1.default.stringify('D2.1', { d: 'Campos que describen la actividad económica del emisor (D130-D139)', v: 'https://servicios.set.gov.py/eset-publico/consultarActividadEconomicaIService.do', })), // C004 timbradoNumero: CommonValidators_1.default.timbrado().describe(SDParser_1.default.stringify('C004')), // C008 timbradoFecha: CommonValidators_1.default.isoDate().describe(SDParser_1.default.stringify('C008')), }) .transform((data, ctx) => { const [rucID, rucDV] = data.ruc.split('-'); return { ...data, // AA. Campos que identifican el formato electrónico XML (AA001-AA009) // AA002 version: 150, // D101 rucID, // D102 rucDV, }; });