UNPKG

facturacionelectronicapy-ts-xmlgen

Version:

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

104 lines (103 loc) 4.14 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.TransportistaSchema = void 0; const zod_1 = require("zod"); const idDocsCarriers_table_1 = require("../../data/idDocsCarriers.table"); const CommonValidators_1 = __importDefault(require("../../helpers/validation/CommonValidators")); const ZodValidator_1 = __importDefault(require("../../helpers/validation/ZodValidator")); const agente_schema_1 = require("./agente.schema"); const chofer_schema_1 = require("./chofer.schema"); const db_service_1 = __importDefault(require("../../services/db.service")); const taxpayerNotTaxpayer_table_1 = require("../../data/taxpayerNotTaxpayer.table"); const SDParser_1 = __importDefault(require("../../helpers/SDParser")); /**E10.4. Campos que identifican al transportista (persona física o jurídica) (E980-E999) */ exports.TransportistaSchema = zod_1.z .object({ // E981 contribuyente: CommonValidators_1.default.taxpayer().describe(SDParser_1.default.stringify('E981')), // E982 nombre: CommonValidators_1.default.name().describe(SDParser_1.default.stringify('E982')), // para obtener E983 y E984 ruc: CommonValidators_1.default.ruc().describe(SDParser_1.default.stringify('E983')), // E985 documentoTipo: zod_1.z .nativeEnum(idDocsCarriers_table_1.IdentityDocumentCarrier) .optional() .describe(SDParser_1.default.stringify('E985', { e: 'IdentityDocumentCarrier' })), // E987 documentoNumero: CommonValidators_1.default.identityDocNumber() .optional() .describe(SDParser_1.default.stringify('E987')), // E988 pais: CommonValidators_1.default.country().describe(SDParser_1.default.stringify('E988', { d: 'País de nacimiento', e: 'Country' })), // E990 - E993 (excluyendo E992) chofer: chofer_schema_1.ChoferSchema.describe(SDParser_1.default.stringify('E990 - E993 (excluyendo E992)')), // E992 // VER: https://www.dnit.gov.py/documents/20123/420595/NT_E_KUATIA_010_MT_V150.pdf/d64a693b-6c63-86e1-ec6a-d4fe5ec4eeea?t=1687353747196 direccion: zod_1.z .string() .min(1) .max(150) .describe(SDParser_1.default.stringify('E992', { v: 'https://www.dnit.gov.py/documents/20123/420595/NT_E_KUATIA_010_MT_V150.pdf/d64a693b-6c63-86e1-ec6a-d4fe5ec4eeea?t=1687353747196', })), // E994 - E997 agente: agente_schema_1.AgenteSchema.optional().describe(SDParser_1.default.stringify('E994 - E997')), }) .transform((data, ctx) => { const validator = new ZodValidator_1.default(ctx, data); /**E981 = 1 */ const isTaxpayer = data.contribuyente == taxpayerNotTaxpayer_table_1.TaxpayerNotTaxpayer.CONTRIBUYENTE; /**E981 = 2 */ const isNotTaxpayer = data.contribuyente == taxpayerNotTaxpayer_table_1.TaxpayerNotTaxpayer.NO_CONTRIBUYENTE; // E983 - ruc { /* Obligatorio si E981 = 1 No informar si E981 ≠ 1 */ if (isTaxpayer) { validator.requiredField('ruc'); } else { validator.undesiredField('ruc'); } } // E985 - documentoTipo { /* Obligatorio si E981 = 2 No informar si E981 = 1 */ if (isNotTaxpayer) { validator.requiredField('documentoTipo'); } else if (isTaxpayer) { validator.undesiredField('documentoTipo'); } } // E987 - documentoNumero { /* Obligatorio si existe el campo E985 */ if (data.documentoTipo) { validator.requiredField('documentoNumero'); } } const [rucID, rucDV] = data.ruc.split('-'); return { ...data, // E983 rucID, // E984 rucDV, // E986 documentoTipoDescripcion: db_service_1.default.idDocsCarriers._findByIdIfExist(data.documentoTipo)?.description, // E789 paisDescripcion: db_service_1.default.countries._findById(data.pais), }; });