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:
@@ -254,7 +254,7 @@ class Empresa extends Main
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
public function getRfc()
|
||||
{
|
||||
return $this->rfc;
|
||||
@@ -376,15 +376,17 @@ $this->Util()->ValidateMail($value, "Email");
|
||||
{
|
||||
$generalDb = new DB(true);
|
||||
|
||||
$sql = "SELECT usuarioId FROM usuario
|
||||
// CAMBIO CRÍTICO: Obtener empresaId dinámicamente del usuario
|
||||
// Buscar usuario por email y password sin filtrar por empresaId fijo
|
||||
$sql = "SELECT usuarioId, empresaId FROM usuario
|
||||
WHERE email = '".$this->email."'
|
||||
AND password = '".$this->password."'
|
||||
AND empresaId = '".$this->empresaId."'
|
||||
AND baja = '0'";
|
||||
$generalDb->setQuery($sql);
|
||||
$usuarioId = $generalDb->GetSingle();
|
||||
$result = $generalDb->GetSingle();
|
||||
|
||||
if(!$usuarioId)
|
||||
// GetSingle puede devolver un string o array, manejar ambos casos
|
||||
if(!$result)
|
||||
{
|
||||
unset($_SESSION["loginKey"]);
|
||||
unset($_SESSION["empresaId"]);
|
||||
@@ -397,6 +399,24 @@ $this->Util()->ValidateMail($value, "Email");
|
||||
|
||||
}
|
||||
|
||||
// Si result es array, obtener valores; si es string, es usuarioId viejo
|
||||
if(is_array($result))
|
||||
{
|
||||
$usuarioId = $result['usuarioId'];
|
||||
$empresaIdFromUser = $result['empresaId'];
|
||||
}
|
||||
else
|
||||
{
|
||||
// Compatibilidad con sistema antiguo - obtener empresaId separadamente
|
||||
$usuarioId = $result;
|
||||
$sql2 = "SELECT empresaId FROM usuario WHERE usuarioId = '".$usuarioId."'";
|
||||
$generalDb->setQuery($sql2);
|
||||
$empresaIdFromUser = $generalDb->GetSingle();
|
||||
}
|
||||
|
||||
// Establecer el empresaId real del usuario
|
||||
$this->empresaId = $empresaIdFromUser;
|
||||
|
||||
$sql = "SELECT * FROM usuario
|
||||
LEFT JOIN empresa ON usuario.empresaId = empresa.empresaId
|
||||
WHERE usuarioId = '".$usuarioId."'";
|
||||
@@ -452,6 +472,7 @@ $this->Util()->ValidateMail($value, "Email");
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
function AuthUser()
|
||||
{
|
||||
@@ -502,4 +523,4 @@ $this->Util()->ValidateMail($value, "Email");
|
||||
}//empresa
|
||||
|
||||
|
||||
?>
|
||||
?>
|
||||
Reference in New Issue
Block a user