127 lines
4.4 KiB
JavaScript
127 lines
4.4 KiB
JavaScript
/**
|
|
* 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 };
|