Fix systematic errors in pagination, sucursal warnings, and fatal count() errors across multiple modules

This commit is contained in:
2026-01-07 01:06:27 -06:00
parent aaa77e870e
commit 3a5afa82fe
354 changed files with 9022 additions and 15093 deletions

104
classes/mock-database.class.php Executable file
View File

@@ -0,0 +1,104 @@
<?php
/**
* Mock Database para desarrollo sin servidor MySQL
* Permite que el sistema funcione durante desarrollo/pruebas
*/
class MockDatabase {
public $connect_error = null;
public $errno = 0;
public $error = '';
public function __construct() {
// Constructor vacío para simular conexión exitosa
}
public function set_charset($charset) {
// Simulación de set charset
return true;
}
public function query($sql) {
// Simulación de consulta - devuelve objeto mock
error_log("Mock Query: " . $sql);
return new MockResult();
}
public function prepare($sql) {
return new MockStatement($sql);
}
public function real_escape_string($string) {
return addslashes($string);
}
public function insert_id() {
return 1;
}
public function affected_rows() {
return 1;
}
public function close() {
return true;
}
public function begin_transaction() {
return true;
}
public function commit() {
return true;
}
public function rollback() {
return true;
}
}
class MockResult {
public $num_rows = 0;
public $data = [];
public function fetch_assoc() {
$this->num_rows--;
return array_shift($this->data);
}
public function fetch_array() {
$this->num_rows--;
return array_shift($this->data);
}
public function data_seek($offset) {
// Simulación de data seek
return true;
}
public function free() {
// Simulación de free result
return true;
}
}
class MockStatement {
private $sql;
public function __construct($sql) {
$this->sql = $sql;
}
public function bind_param($types, &...$vars) {
return true;
}
public function execute() {
return true;
}
public function get_result() {
return new MockResult();
}
}
?>