FASE 2 PARCIAL: Implementación core - Cambios críticos realizados

CAMBIOS REALIZADOS:
 ajax/login.php - Eliminado hardcodeo empresaId = 15
 classes/empresa.class.php - Método DoLogin() ahora obtiene empresaId dinámico
 classes/system-config.class.php - Lógica de BD dinámica (1=ventas_nm, >1=ventas_nm{id})

PROBLEMAS DETECTADOS:
⚠️ GetSingle() devuelve escalar no array
⚠️ empresaId obtenido = 0 (incorrecto)
⚠️ Warnings PHP en acceso a arrays nulos
⚠️ Compatibilidad sistema viejo vs nuevo

ARCHIVOS MODIFICADOS:
- ajax/login.php
- classes/empresa.class.php
- classes/system-config.class.php
- md/plan-accion-multi-empresa.md
- test_login_dinamico.php

SIGUIENTE PASO: Revisar GetSingle() y compatibilidad
This commit is contained in:
2026-01-07 18:36:59 -06:00
parent 1b723f0643
commit ee4945578e
6 changed files with 130 additions and 25 deletions

View File

@@ -19,11 +19,12 @@ Eliminar código hardcodeado con `empresaId = 15` y implementar sistema dinámic
- [ ] Analizar cómo se obtiene el `empresaId` del usuario
- [ ] Revisar configuración actual de base de datos
### Fase 2: Implementación Core (Pendiente)
- [ ] Modificar `SystemConfig` para manejo dinámico de `empresaId`
- [ ] Actualizar `DatabaseManager` para selección dinámica de BD
- [ ] Implementar lógica de prefijo de base de datos
- [ ] Crear función para obtener `empresaId` del usuario actual
### Fase 2: Implementación Core (En Progreso)
- [x] Modificar `ajax/login.php` para obtener empresaId dinámico
- [ ] Actualizar `Empresa.class.php` para manejo dinámico
- [ ] Implementar lógica de base de datos dinámica
- [ ] Actualizar `SystemConfig` para empresaId dinámico
- [ ] Probar login dinámico con diferentes empresas
### Fase 3: Actualización de Módulos (Pendiente)
- [ ] Actualizar módulos de catálogos
@@ -94,7 +95,25 @@ El login debe:
2. NO forzar empresaId=15
3. Usar el `empresaId` real del usuario para conectar a su base de datos
## Resultados de Pruebas Fase 2
### ⚠️ Problemas Identificados
- Login funciona pero obtiene `empresaId = 0` (incorrecto)
- Errores de PHP warnings en acceso a arrays nulos
- Mensaje de "usuario o contraseña incorrecta" pero login continúa
- Base de datos resultante: `ventas_nm0` (incorrecto)
### 🔍 Análisis de Problemas
1. **GetSingle()**: Devuelve valor escalar no array como se esperaba
2. **Compatibilidad**: Sistema viejo vs nuevo en consulta SQL
3. **Warnings**: Acceso a arrays nulos en db.class.php
### 🛠️ Soluciones Requeridas
- Revisar método `GetSingle()` en DB class
- Ajustar compatibilidad en consulta SQL
- Corregir manejo de nulos
---
**Estado**: Fase 1 en progreso - Problema identificado
**Estado**: Fase 2 en progreso - Problemas de compatibilidad detectados
**Creado**: 07-01-2026
**Última actualización**: 07-01-2026