Util()->ValidateString($value, $max_chars=300, $minChars = 1, "Folios"); $this->folios = $value; } public function getFolios() { return $this->folios; } public function setComprobanteId($value) { $this->Util()->ValidateString($value, $max_chars=100, $minChars = 1, "ID Comprobante"); $this->Util()->ValidateInteger($value); $this->comprobanteId = $value; } public function getComprobanteId() { return $this->comprobanteId; } public function setMotivoCancelacion($value) { $this->Util()->ValidateString($value, $max_chars=300, $minChars = 1, "Motivo de Cancelacion"); $this->motivoCancelacion = $value; } public function getMotivoCancelacion() { return $this->motivoCancelacion; } public function setProveedorId($value) { $this->Util()->ValidateInteger($value); $this->proveedorId = $value; } public function getProveedorId() { return $this->proveedorId; } public function setSocioId($value) { $this->Util()->ValidateInteger($value); $this->socioId = $value; } public function getSocioId() { return $this->socioId; } public function setEmpresaId($value, $checkIfExists = 0) { $this->Util()->ValidateInteger($value); $this->Util()->DB()->setQuery("SELECT COUNT(*) FROM empresa WHERE empresaId ='".$value."'"); if($checkIfExists) { if($this->Util()->DB()->GetSingle() <= 0) { $this->Util()->setError(10030, "error", ""); return; } } else { if($this->Util()->DB()->GetSingle() > 0) { $this->Util()->setError(10030, "error", ""); return; } } $this->empresaId = $value; } public function getEmpresaId() { return $this->empresaId; } public function setRazonSocial($value, $checkIfExists = 0) { $this->Util()->ValidateString($value, $max_chars=300, $minChars = 3, "Razón Social"); $this->razonSocial = $value; } public function getRazonSocial() { return $this->razonSocial; } public function setSucursalId($value) { $this->Util()->ValidateInteger($value); $this->sucursalId = $value; } public function getSucursalId() { return $this->sucursalId; } public function getCalle() { return $this->calle; } public function setColonia($value) { $this->Util()->ValidateString($value, $max_chars=50, $minChars = 0, "Colonia"); $this->colonia = $value; } public function getColonia() { return $this->colonia; } public function setReferencia($value) { $this->Util()->ValidateString($value, $max_chars=50, $minChars = 0, "Referencia"); $this->referencia = $value; } public function getReferencia() { return $this->referencia; } public function setMunicipio($value) { $this->Util()->ValidateString($value, $max_chars=50, $minChars = 0, "Municipio"); $this->municipio = $value; } public function getMunicipio() { return $this->municipio; } public function setCiudad($value) { $this->Util()->ValidateString($value, $max_chars=50, $minChars = 0, "Ciudad"); $this->ciudad = $value; } public function getCiudad() { return $this->ciudad; } public function setEstado($value) { $this->Util()->ValidateString($value, $max_chars=50, $minChars = 0, "Estado"); $this->estado = $value; } public function getEstado() { return $this->estado; } public function getPais() { return $this->pais; } public function getRegimenFiscal() { return $this->regimenFiscal; } public function setRegimenFiscal($value) { $this->Util()->ValidateString($value, $max_chars=255, $minChars = 1, "Regimen Fiscal"); $this->regimenFiscal = $value; } public function setNoInt($value) { $this->Util()->ValidateString($value, $max_chars=255, $minChars = 0, "noInt"); $this->noInt = $value; } public function getNoInt() { return $this->noInt; } public function setNoExt($value) { $this->Util()->ValidateString($value, $max_chars=255, $minChars = 1, "noExt"); $this->noExt = $value; } public function getNoExt() { return $this->noExt; } public function setLocalidad($value) { $this->Util()->ValidateString($value, $max_chars=50, $minChars = 1, "Localidad"); $this->localidad = $value; } public function getLocalidad() { return $this->localidad; } public function getRfc() { return $this->rfc; } public function getPassword() { return $this->password; } public function setEmail($value) { $this->Util()->ValidateMail($value); $this->Util()->DB()->setQuery("SELECT COUNT(*) FROM usuario WHERE email ='".$value."'"); if($this->Util()->DB()->GetSingle() > 0) { $this->Util()->setError(10005, "error", ""); } $this->email = $value; } public function getEmail() { return $this->email; } public function getEmailLogin() { return $this->email; } public function setCp($value) { $this->Util()->ValidateInteger($value); $this->cp = $value; } public function getCp() { return $this->cp; } public function setProductId($value) { $this->Util()->ValidateInteger($value); $this->productId = $value; } public function getProductId() { return $this->productId; } */ public function setPais($value) { $this->Util()->ValidateString($value, $max_chars=50, $minChars = 1, "Pais"); $this->pais = $value; } public function setCalle($value) { $this->Util()->ValidateString($value, $max_chars=200, $minChars = 1, "Dirección"); $this->calle = $value; } public function setRfc($value) { $value = strtoupper($value); $this->Util()->ValidateString($value, $max_chars=13, $minChars = 12, "RFC"); $this->rfc = $value; } public function setEmpresaId($value) { $this->Util()->ValidateInteger($value); $this->empresaId = $value; } public function setPassword($value) { $this->Util()->ValidateString($value, $max_chars=50, $minChars = 1, 'Password'); $this->password = $value; } public function setEmail($value) { $this->Util()->ValidateString($value, $max_chars=50, $minChars = 1, 'Email'); if($value != '') $this->Util()->ValidateMail($value, "Email"); $this->email = $value; } public function Info() { $generalDb = new DB(true); $sql = "SELECT * FROM empresa WHERE empresaId = '".$this->empresaId."'"; $generalDb->setQuery($sql); $row = $generalDb->GetRow(); return $row; } function InfoAll() { $generalDb = new DB(true); $sql = "SELECT * FROM usuario LEFT JOIN empresa ON usuario.empresaId = empresa.empresaId WHERE usuarioId = '".$_SESSION["loginKey"]."'"; $generalDb->setQuery($sql); $row = $generalDb->GetRow(); return $row; } function DoLogin() { // CAMBIO CRÍTICO: Usar DatabaseManager para conexión real (evitar MockDatabase) $dbManager = DatabaseManager::getInstance(); $masterConnection = $dbManager->getMasterConnection(); // Verificar conexión real if ($masterConnection->connect_error) { unset($_SESSION["loginKey"]); unset($_SESSION["empresaId"]); $this->Util()->setError(10006, "error"); if($this->Util()->PrintErrors()) { return false; } } // CAMBIO CRÍTICO: Obtener empresaId dinámicamente del usuario con BD real $sql = "SELECT usuarioId, empresaId FROM usuario WHERE email = '".$this->email."' AND password = '".$this->password."' AND baja = '0'"; $result = $masterConnection->query($sql); // Validar que se encontró el usuario if(!$result || !($row = $result->fetch_assoc())) { unset($_SESSION["loginKey"]); unset($_SESSION["empresaId"]); $this->Util()->setError(10006, "error"); if($this->Util()->PrintErrors()) { return false; } } // Obtener datos del usuario de forma segura $usuarioId = $row['usuarioId']; $empresaIdFromUser = $row['empresaId']; // Establecer el empresaId real del usuario $this->empresaId = $empresaIdFromUser; // Obtener información adicional del usuario $sql2 = "SELECT * FROM usuario LEFT JOIN empresa ON usuario.empresaId = empresa.empresaId WHERE usuarioId = '".$usuarioId."'"; $result2 = $masterConnection->query($sql2); $info = $result2 ? $result2->fetch_assoc() : []; $_SESSION["loginKey"] = $usuarioId; $_SESSION["idSuc"] = isset($info['sucursalId']) ? $info['sucursalId'] : 0; $_SESSION["empresaId"] = $this->empresaId; $_SESSION["version"] = isset($info["version"]) ? $info["version"] : ''; return true; } function DoLogout() { unset($_SESSION["loginKey"]); unset($_SESSION["empresaId"]); } function IsLoggedIn() { if($_SESSION["loginKey"]) { $GLOBALS["smarty"]->assign('user', $this->Info()); return true; } return false; } /* function Info($userId = 0) { $generalDb = new DB; $generalDb->setQuery("SELECT * FROM usuario LEFT JOIN empresa ON usuario.empresaId = empresa.empresaId WHERE userId = '".$userId."'"); if($userId == 0) { $generalDb->setQuery("SELECT * FROM usuario LEFT JOIN empresa ON usuario.empresaId = empresa.empresaId WHERE email = '".$_SESSION["loginKey"]."'"); } $user = $generalDb->GetRow(); if(!$user) { return; } return $user; } */ function AuthUser() { if(!$this->IsLoggedIn()) { header('Location: '.($_ENV['WEB_ROOT'] ?? '/').'/login'); exit; return; } }//AuthUser /* function ListSucursales() { $this->Util()->DB()->setQuery("SELECT * FROM sucursal WHERE empresaId = ".$this->empresaId." ORDER BY identificador"); $result = $this->Util()->DB()->GetResult(); foreach($result as $key => $periodo) { } return $result; } function GetSucursalInfo() { $this->Util()->DBSelect($_SESSION["empresaId"])->setQuery("SELECT * FROM sucursal WHERE empresaId = ".$this->empresaId." AND sucursalId = ".$this->sucursalId); $result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetRow(); return $result; } function GetPublicEmpresaInfo() { $this->Util()->DBSelect($_SESSION["empresaId"])->setQuery("SELECT * FROM rfc LIMIT 1"); $result = $this->Util()->DBSelect($_SESSION["empresaId"])->GetRow(); return $result; } */ }//empresa ?>