Fix usuarios module: resolve PHP 8 warnings and fatal errors

- Fixed undefined array key warnings in usuarios-agregar.php
- Fixed undefined variable warnings (, , )
- Fixed null array offset warnings in db.class.php GetSingle()
- Added default parameter to ValidateMail() in util.class.php
- Fixed PrintErrors() return value for proper error handling
- Fixed integer constraint errors for codigoPostal and sucursalId
- Added missing identificacion and comprobante fields to INSERT query
- Fixed undefined  variable in IsEmailTaked()
This commit is contained in:
2026-01-07 21:54:54 -06:00
parent 49b17f420d
commit ea0e3ff9be
4 changed files with 63 additions and 43 deletions

View File

@@ -205,11 +205,9 @@ public function DatabaseConnect()
} else { } else {
$row = mysqli_fetch_array($this->sqlResult); $row = mysqli_fetch_array($this->sqlResult);
} }
$rs = $row[0];
if(!$rs) $rs = ($row && isset($row[0])) ? $row[0] : 0;
$rs = 0;
$this->CleanQuery(); $this->CleanQuery();
return $rs; return $rs;

View File

@@ -117,7 +117,7 @@ class Usuario extends Main
public function setCodigoPostal($value) public function setCodigoPostal($value)
{ {
$this->Util()->ValidateString($value, $max_chars=50, $minChars = 0, "Codigo Postal"); $this->Util()->ValidateString($value, $max_chars=50, $minChars = 0, "Codigo Postal");
$this->codigoPostal = $value; $this->codigoPostal = empty($value) ? 0 : $value;
} }
public function setTelefono($value) public function setTelefono($value)
@@ -156,10 +156,10 @@ class Usuario extends Main
$this->tipo = $value; $this->tipo = $value;
} }
public function setSucursalId($value) public function setSucursalId($value)
{ {
$this->Util()->ValidateString($value, $max_chars=300, $minChars = 0, 'Sucursal'); $this->Util()->ValidateString($value, $max_chars=300, $minChars = 0, 'Sucursal');
$this->sucursalId = $value; $this->sucursalId = empty($value) ? 0 : $value;
} }
public function setEmail($value) public function setEmail($value)
@@ -227,40 +227,45 @@ class Usuario extends Main
public function Save() public function Save()
{ {
if($this->Util()->PrintErrors()){ if($this->Util()->PrintErrors()){
return false; return false;
} }
$identificacion = isset($this->identificacion) ? $this->identificacion : '';
$comprobante = isset($this->comprobante) ? $this->comprobante : '';
$db = new DB(true); $db = new DB(true);
$db->setQuery(" $db->setQuery("
INSERT INTO usuario ( INSERT INTO usuario (
empresaId, empresaId,
nombre, nombre,
apellidos, apellidos,
calle, calle,
noInt, noInt,
noExt, noExt,
referencia, referencia,
colonia, colonia,
localidad, localidad,
municipio, municipio,
estado, estado,
pais, pais,
codigoPostal, codigoPostal,
telefono, telefono,
celular, celular,
noImss, noImss,
curp, curp,
rfc, rfc,
email, identificacion,
password, comprobante,
email,
password,
`type`, `type`,
sucursalId sucursalId
) )
VALUES ( VALUES (
'".$_SESSION["empresaId"]."', '".$_SESSION["empresaId"]."',
'".$this->nombre."', '".$this->nombre."',
'".$this->apellidos."', '".$this->apellidos."',
'".$this->calle."', '".$this->calle."',
'".$this->noInt."', '".$this->noInt."',
'".$this->noExt."', '".$this->noExt."',
@@ -276,11 +281,12 @@ class Usuario extends Main
'".$this->noImss."', '".$this->noImss."',
'".$this->curp."', '".$this->curp."',
'".$this->rfc."', '".$this->rfc."',
'".$identificacion."',
'".$comprobante."',
'".$this->email."', '".$this->email."',
'".$this->passwd."', '".$this->passwd."',
'".$this->tipo."', '".$this->tipo."',
'".$this->sucursalId."')" '".$this->sucursalId."')");
);
$usuarioId = $db->InsertData(); $usuarioId = $db->InsertData();
$this->Util()->setError(20017, "complete"); $this->Util()->setError(20017, "complete");
@@ -494,10 +500,12 @@ class Usuario extends Main
} }
function IsEmailTaked(){ function IsEmailTaked(){
$sqlAdd = '';
if($this->usuarioId) if($this->usuarioId)
$sqlAdd = ' AND usuarioId <> "'.$this->usuarioId.'"'; $sqlAdd = ' AND usuarioId <> "'.$this->usuarioId.'"';
$sql = 'SELECT usuarioId FROM usuario $sql = 'SELECT usuarioId FROM usuario
WHERE email = "'.$this->email.'" WHERE email = "'.$this->email.'"
'.$sqlAdd.' '.$sqlAdd.'

View File

@@ -168,15 +168,15 @@ class Util extends SystemError
return true; return true;
} }
}//ValidateFloat }//ValidateFloat
function ValidateMail($mail, $field) function ValidateMail($mail, $field = 'Email')
{ {
$mail = strtolower($mail); $mail = strtolower($mail);
if (!preg_match('/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',trim($mail))) if (!preg_match('/^[_a-zA-Z0-9-]+(\.[_a-zA-Z0-9-]+)*@[a-zA-Z0-9-]+(\.[a-zA-Z0-9-]+)+$/',trim($mail)))
{ {
return $this->setError(10002, "error", "", $field); return $this->setError(10002, "error", "", $field);
} }
} }
function ValidateUrl($url) function ValidateUrl($url)
{ {
@@ -477,12 +477,16 @@ class Util extends SystemError
function PrintErrors() function PrintErrors()
{ {
if(empty($this->error)){
return false;
}
$errorStr = "<div id='error-box'>"; $errorStr = "<div id='error-box'>";
foreach($this->error as $key => $val) foreach($this->error as $key => $val)
{ {
$msg = $this->errorMessage($val); $msg = $this->errorMessage($val);
$field = $this->errorField[$key]; $field = isset($this->errorField[$key]) ? $this->errorField[$key] : '';
$errorStr .= "<div class='error-item'>"; $errorStr .= "<div class='error-item'>";
if($field != "") if($field != "")
{ {
@@ -493,6 +497,7 @@ class Util extends SystemError
} }
$errorStr .= "</div>"; $errorStr .= "</div>";
echo $errorStr; echo $errorStr;
return true;
} }
function errorMessage($code) function errorMessage($code)

View File

@@ -7,10 +7,10 @@
exit; exit;
} }
if($_POST['type'] == 'saveUsuario'){ if(isset($_POST['type']) && $_POST['type'] == 'saveUsuario'){
$tipo = $_POST['tipo']; $tipo = $_POST['tipo'];
$idSuc = $_POST['idSuc']; $idSuc = isset($_POST['idSuc']) ? $_POST['idSuc'] : array();
$usuario->setTipo($tipo); $usuario->setTipo($tipo);
$usuario->setNombre($_POST['nombre']); $usuario->setNombre($_POST['nombre']);
@@ -109,20 +109,29 @@
exit; exit;
} }
$nomSuc = '';
$info = array('type' => '', 'sucursalId' => '');
$post = array('sucursalId' => '');
if($Usr['type'] == 'gerente'){ if($Usr['type'] == 'gerente'){
$sucursal->setSucursalId($Usr['sucursalId']); $sucursal->setSucursalId($Usr['sucursalId']);
$nomSuc = $sucursal->GetNameById(); $nomSuc = $sucursal->GetNameById();
$nomSuc = strtoupper(utf8_decode(urldecode($nomSuc))); $nomSuc = strtoupper(utf8_decode(urldecode($nomSuc)));
} }
$sucursales = $sucursal->GetSucursalesByEmpresaId(); $sucursales = $sucursal->GetSucursalesByEmpresaId();
foreach ($sucursales as $key => $sucursal ){ $sucursalesFiltered = array();
$sucursales[$key]['nombre'] = utf8_decode(urldecode($sucursal['nombre'])); foreach ($sucursales as $item ){
if($item){
$item['nombre'] = utf8_decode(urldecode($item['nombre']));
$sucursalesFiltered[] = $item;
}
} }
$smarty->assign('info', $info);
$smarty->assign('post', $post);
$smarty->assign('nomSuc', $nomSuc); $smarty->assign('nomSuc', $nomSuc);
$smarty->assign('usuarios', $usuarios); $smarty->assign('sucursales', $sucursalesFiltered);
$smarty->assign('sucursales', $sucursales);
?> ?>