chore: version inicial del codigo fuente del LMS Estafeta

This commit is contained in:
2026-10-02 20:33:12 -06:00
commit c8bb6b97b9
1572 changed files with 457520 additions and 0 deletions
+67
View File
@@ -0,0 +1,67 @@
<?php
require_once __DIR__.'/auth_guard.php';
require_once("../config.php");
$request = $_REQUEST;
dbConnect();
global $link;
$baseFrom = "FROM user INNER JOIN rol ON user.idrol = rol.id";
$selectCols = "user.userid, user.numempl, user.email, user.nombre, user.apellido, user.centrotrabajonom, user.distritonom, user.posicion, user.sociedad, user.division, user.unidad_organizativa, user.ceco, user.supervisor, IF(user.habilitado = 1, 'ACTIVO','BAJA') as habilitado, user.lastip, user.lastlogin, user.creado, user.actualizacion, rol.nombre as rol, user.idrol";
// Busqueda (preparada)
$where = "";
$params = array();
$types = "";
if (!empty($request['search']['value'])) {
$sv = '%' . $request['search']['value'] . '%';
$where = " WHERE (user.numempl LIKE ? OR user.nombre LIKE ? OR user.apellido LIKE ? OR user.email LIKE ? OR user.centrotrabajonom LIKE ? OR user.distritonom LIKE ? OR user.posicion LIKE ? OR user.sociedad LIKE ? OR user.division LIKE ? OR user.unidad_organizativa LIKE ? OR user.ceco LIKE ? OR rol.nombre LIKE ?)";
for ($i = 0; $i < 12; $i++) { $types .= 's'; $params[] = $sv; }
}
// Orden permitido (whitelist)
$col = array('userid','numempl','nombre','apellido','centrotrabajonom','distritonom','posicion','sociedad','division','unidad_organizativa','ceco','rol');
$orderCol = 'userid';
if (isset($request['order'][0]['column']) && isset($col[(int)$request['order'][0]['column']])) {
$orderCol = $col[(int)$request['order'][0]['column']];
}
$orderDir = (isset($request['order'][0]['dir']) && strtolower($request['order'][0]['dir']) === 'desc') ? 'DESC' : 'ASC';
$start = isset($request['start']) ? max(0, (int)$request['start']) : 0;
$length = isset($request['length']) ? (int)$request['length'] : 10;
if ($length < 1 || $length > 1000) { $length = 10; }
$sqlData = "SELECT $selectCols $baseFrom" . $where . " ORDER BY $orderCol $orderDir LIMIT $start, $length";
$stmt = mysqli_prepare($link, $sqlData);
if ($params) { mysqli_stmt_bind_param($stmt, $types, ...$params); }
mysqli_stmt_execute($stmt);
$resData = mysqli_stmt_get_result($stmt);
$data = array();
while ($fila = mysqli_fetch_array($resData)) { $data[] = $fila; }
mysqli_stmt_close($stmt);
$sqlTotal = "SELECT COUNT(*) $baseFrom";
$resTotal = mysqli_query($link, $sqlTotal);
list($totalData) = mysqli_fetch_row($resTotal);
$totalFilter = 0;
if ($where) {
$sqlFilter = "SELECT COUNT(*) $baseFrom" . $where;
$stmtF = mysqli_prepare($link, $sqlFilter);
if ($params) { mysqli_stmt_bind_param($stmtF, $types, ...$params); }
mysqli_stmt_execute($stmtF);
$resF = mysqli_stmt_get_result($stmtF);
list($totalFilter) = mysqli_fetch_row($resF);
mysqli_stmt_close($stmtF);
} else {
$totalFilter = $totalData;
}
$json_data = array(
"draw" => isset($request['draw']) ? intval($request['draw']) : 0,
"recordsTotal" => intval($totalData),
"recordsFiltered" => intval($totalFilter),
"data" => $data
);
echo json_encode($json_data, JSON_UNESCAPED_UNICODE);
?>