Files
ventas_php/test_login_final.php
nickpons666 4b5ecdfb1a FASE 2 COMPLETADA: Login dinámico funcionando perfectamente
ÉXITOS ALCANZADOS:
 Eliminado hardcodeo empresaId = 15 en ajax/login.php
 Método DoLogin() corregido para obtener empresaId dinámico
 Conexión a BD real (evita MockDatabase problemático)
 Lógica de BD dinámica: empresaId=1→ventas_nm, empresaId>1→ventas_nm{id}

TESTS VERIFICADOS:
 admin@novomoda.com.mx → empresaId:1 → BD:ventas_nm
 sonia.velezquez@novomoda.com.mx → empresaId:15 → BD:ventas_nm15
 gerente@novomoda.com.mx → empresaId:15 → BD:ventas_nm15

CAMBIOS PRINCIPALES:
- classes/empresa.class.php: DoLogin() con DatabaseManager
- classes/system-config.class.php: Lógica BD dinámica
- ajax/login.php: Eliminado hardcodeo
- md/plan-accion-multi-empresa.md: Actualizado con éxito

PRÓXIMO: Fase 3 - Actualización de módulos restantes
2026-01-07 18:56:28 -06:00

75 lines
2.5 KiB
PHP

<?php
/**
* Test final del login dinámico con Empresa.class.php corregido
*/
require_once 'config.php';
require_once 'classes/error.class.php';
require_once 'classes/util.class.php';
require_once 'classes/main.class.php';
require_once 'classes/database-manager.class.php';
require_once 'classes/empresa.class.php';
echo "=== TEST FINAL LOGIN DINÁMICO ===\n\n";
// Usuarios con contraseñas correctas
$usuariosCorrectos = [
['email' => 'admin@novomoda.com.mx', 'password' => 'MiPo6425@@', 'expectedEmpresaId' => 1],
['email' => 'sonia.velezquez@novomoda.com.mx', 'password' => 'sonia.v', 'expectedEmpresaId' => 15],
['email' => 'gerente@novomoda.com.mx', 'password' => 'gerente', 'expectedEmpresaId' => 15],
];
foreach ($usuariosCorrectos as $test) {
echo "Test con email: {$test['email']}\n";
// Crear instancia de empresa con método corregido
$empresa = new Empresa();
$empresa->setEmail($test['email']);
$empresa->setPassword($test['password']);
// Intentar login con el método DoLogin() actualizado
if ($empresa->DoLogin()) {
$actualEmpresaId = $_SESSION['empresaId'];
$loginKey = $_SESSION['loginKey'];
echo "✅ Login exitoso\n";
echo " empresaId obtenido: $actualEmpresaId\n";
echo " empresaId esperado: {$test['expectedEmpresaId']}\n";
echo " loginKey: $loginKey\n";
// Verificar base de datos correspondiente
require_once 'classes/system-config.class.php';
$config = SystemConfig::getEmpresaDatabaseConfig($actualEmpresaId);
echo " Base de datos: {$config['database']}\n";
if ($actualEmpresaId == $test['expectedEmpresaId']) {
echo "✅ CORRECTO: empresaId coincide\n";
} else {
echo "❌ ERROR: empresaId no coincide\n";
}
// Limpiar sesión para siguiente test
unset($_SESSION['loginKey']);
unset($_SESSION['empresaId']);
} else {
echo "❌ Login fallido\n";
echo " Revisar credenciales o disponibilidad del usuario\n";
}
echo str_repeat("-", 60) . "\n";
}
echo "\n=== VERIFICACIÓN DE LÓGICA DE BASE DE DATOS ===\n";
require_once 'classes/system-config.class.php';
echo "Regla implementada: empresaId=1 usa 'ventas_nm', empresaId>1 usa 'ventas_nm{id}'\n\n";
$testIds = [1, 2, 15, 20];
foreach ($testIds as $id) {
$config = SystemConfig::getEmpresaDatabaseConfig($id);
echo "empresaId=$id → BD: {$config['database']}\n";
}
echo "\n=== FIN DEL TEST FINAL ===\n";
?>