/** * Test para obtener terceros (parties) de Tryton * Muestra el nombre de cada tercero y el total de terceros */ const { TrytonClient } = require("../src/client"); async function testParties() { console.log("🏢 Test de Terceros (Parties) en Tryton"); console.log("=======================================\n"); // Configuración del servidor Tryton // Modifica estos valores según tu servidor // // Ejemplos de configuración: // // Para servidor local: // hostname: "localhost" o "127.0.0.1" // // Para servidor remoto HTTP: // hostname: "mi-servidor.com" // // Para servidor remoto HTTPS: // hostname: "https://mi-servidor.com" // // Para servidor demo: // hostname: "https://demo7.6.tryton.org", database: "demo7.6" const config = { hostname: "https://naliia.onecluster.com.co", // Sin barra final database: "tryton", // Cambia por el nombre de tu base de datos username: "admin", // Tu usuario de Tryton password: "admin", // Tu contraseña port: 8000, // Puerto del servidor (8000 para HTTP, 8443 para HTTPS) language: "es", // Idioma (es, en, fr, etc.) options: { verbose: true, // Activar para ver qué está pasando }, }; // Crear cliente const client = new TrytonClient(config); try { console.log("📡 Conectando al servidor Tryton..."); await client.connect(); console.log("✅ Conexión exitosa!\n"); // 1. Obtener el total de terceros console.log("🔢 Obteniendo cantidad total de terceros..."); const totalParties = await client.searchCount("party.party", []); console.log(`📊 Total de terceros en el sistema: ${totalParties}\n`); // 2. Obtener todos los terceros con información básica console.log("👥 Obteniendo lista de todos los terceros..."); const parties = await client.searchRead( "party.party", [], // Sin filtros, obtener todos ["id", "name", "code"], // Campos que queremos 0, // offset null, // sin límite para obtener todos null, // sin orden específico {} // contexto vacío ); console.log( `\n📋 Lista completa de terceros (${parties.length} encontrados):` ); console.log("=" + "=".repeat(60)); // Mostrar cada tercero parties.forEach((party, index) => { const number = (index + 1).toString().padStart(3, " "); const id = party.id.toString().padStart(4, " "); const code = party.code ? `[${party.code}]` : "[Sin código]"; const name = party.name || "Sin nombre"; console.log(`${number}. ID:${id} ${code.padEnd(12)} ${name}`); }); console.log("=" + "=".repeat(60)); console.log(`\n✨ Resumen:`); console.log(` • Total de terceros: ${totalParties}`); console.log(` • Terceros mostrados: ${parties.length}`); console.log( ` • Terceros con nombre: ${ parties.filter((p) => p.name && p.name.trim()).length }` ); console.log( ` • Terceros con código: ${ parties.filter((p) => p.code && p.code.trim()).length }` ); // Mostrar algunos terceros destacados si los hay const partiesWithNames = parties.filter( (p) => p.name && p.name.trim().length > 0 ); if (partiesWithNames.length > 0) { console.log(`\n🌟 Algunos terceros destacados:`); partiesWithNames.slice(0, 5).forEach((party) => { console.log(` • ${party.name} (ID: ${party.id})`); }); if (partiesWithNames.length > 5) { console.log(` • ... y ${partiesWithNames.length - 5} más`); } } } catch (error) { console.error("\n❌ Error durante la ejecución:", error.message); if (error.stack) { console.error("\n📍 Stack trace:"); console.error(error.stack); } } finally { console.log("\n🔌 Cerrando conexión..."); client.close(); console.log("👋 ¡Adiós!"); } } // Ejecutar si se llama directamente if (require.main === module) { testParties().catch(console.error); } module.exports = { testParties };