UNPKG

facturacionelectronicapy-ts-xmlgen

Version:

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

67 lines (66 loc) 3.26 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.AutoFacturaSchema = void 0; const zod_1 = require("zod"); const idDocsCarriers_table_1 = require("../../data/idDocsCarriers.table"); const sellerNatureSelfInvoicingCases_table_1 = require("../../data/sellerNatureSelfInvoicingCases.table"); const CommonValidators_1 = __importDefault(require("../../helpers/validation/CommonValidators")); const db_service_1 = __importDefault(require("../../services/db.service")); const ubicacion_schema_1 = require("./ubicacion.schema"); const SDParser_1 = __importDefault(require("../../helpers/SDParser")); /**E4. Campos que componen la Autofactura Electrónica AFE (E300-E399) */ exports.AutoFacturaSchema = zod_1.z .object({ // E301 tipoVendedor: zod_1.z .nativeEnum(sellerNatureSelfInvoicingCases_table_1.SellerNatureSelfInvoicing) .describe(SDParser_1.default.stringify('E301', { e: 'SellerNatureSelfInvoicing' })), // E304 documentoTipo: zod_1.z .nativeEnum(idDocsCarriers_table_1.IdentityDocumentCarrier) .describe(SDParser_1.default.stringify('E304', { e: 'IdentityDocumentCarrier' })), // E306 documentoNumero: CommonValidators_1.default.identityDocNumber().describe(SDParser_1.default.stringify('E306')), // E307 nombre: CommonValidators_1.default.name().describe(SDParser_1.default.stringify('E307')), // E308 direccion: CommonValidators_1.default.address().describe(SDParser_1.default.stringify('E308')), // E309 numeroCasa: CommonValidators_1.default.houseNumber().describe(SDParser_1.default.stringify('E309')), // E310 departamento: CommonValidators_1.default.department().describe(SDParser_1.default.stringify('E310', { e: 'Department' })), // E312 distrito: CommonValidators_1.default.district() .optional() .describe(SDParser_1.default.stringify('E312', { t: 'distritos' })), // E314 ciudad: CommonValidators_1.default.city().describe(SDParser_1.default.stringify('E314', { t: 'ciudades' })), // E316 - E322 ubicacion: ubicacion_schema_1.UbicacionSchema.describe(SDParser_1.default.stringify('E316 - E322')), }) .transform((data, ctx) => { CommonValidators_1.default.location(ctx, data.departamento, data.distrito, data.ciudad); return { ...data, // E302 tipoVendedorDescripcion: db_service_1.default.sellerNatureSelfInvoicingCases._findById(data.tipoVendedor) .description, // E305 documentoTipoDescripcion: db_service_1.default.idDocsCarriers._findById(data.documentoTipo).description, // E311 departamentoDescripcion: db_service_1.default.departments._findById(data.departamento).description, // E313 distritoDescripcion: db_service_1.default.districts._findByIdIfExist(data.distrito, { ctx, fieldName: 'distrito', })?.description, // E315 ciudadDescripcion: db_service_1.default.districts._findById(data.ciudad, { ctx, fieldName: 'distrito', })?.description, }; });