This commit is contained in:
2025-07-09 16:14:22 -06:00
parent 91b6806898
commit 287ad27274
39 changed files with 2517 additions and 2000 deletions

View File

@@ -17,11 +17,13 @@ function sistema()
}
$conn = getConnection();
$sql = "SELECT bl.*, u.nombre
FROM bitacora_login bl
INNER JOIN usuarios_sistema u
ON bl.id_usuario = u.id_usuario
ORDER BY fecha DESC";
ORDER BY fecha DESC
";
$stmt = sqlsrv_query($conn, $sql);
if ($stmt === false) {
@@ -44,10 +46,11 @@ function sistemaAgencia()
}
$conn = getConnection();
$id_usuario = $_SESSION['usuario_id'];
// Obtener ID de agencia asociada
$sql_agencia = "SELECT id_agencia FROM agente_agencia WHERE id_agente = ? AND activo = 1";
$sql_agencia = "SELECT id_agencia FROM agente_agencia WHERE id_agente = ? AND activo = 1";
$stmt_agencia = sqlsrv_query($conn, $sql_agencia, [$id_usuario]);
$id_agencia = null;
@@ -60,14 +63,13 @@ function sistemaAgencia()
}
// Obtener todos los usuarios ligados a la misma agencia (agentes + importadores)
$sql_usuarios = "
SELECT DISTINCT id_usuario FROM usuarios_sistema
WHERE id_usuario IN (
SELECT id_agente FROM agente_agencia WHERE id_agencia = ? AND activo = 1
UNION
SELECT id_importador FROM importador_agencia WHERE id_agencia = ? AND activo = 1
)
";
$sql_usuarios = "SELECT DISTINCT id_usuario
FROM usuarios_sistema
WHERE id_usuario IN (
SELECT id_agente FROM agente_agencia WHERE id_agencia = ? AND activo = 1
UNION
SELECT id_importador FROM importador_agencia WHERE id_agencia = ? AND activo = 1)
";
$stmt_usuarios = sqlsrv_query($conn, $sql_usuarios, [$id_agencia, $id_agencia]);
$usuarios = [];
@@ -80,15 +82,14 @@ function sistemaAgencia()
if (!empty($usuarios)) {
$placeholders = implode(',', array_fill(0, count($usuarios), '?'));
$sql_bitacora = "
SELECT bl.*, u.nombre
FROM bitacora_login bl
INNER JOIN usuarios_sistema u ON bl.id_usuario = u.id_usuario
WHERE bl.id_usuario IN ($placeholders)
ORDER BY fecha DESC
";
$stmt = sqlsrv_query($conn, $sql_bitacora, $usuarios);
$sql_bitacora = "SELECT bl.*, u.nombre
FROM bitacora_login bl
INNER JOIN usuarios_sistema u
ON bl.id_usuario = u.id_usuario
WHERE bl.id_usuario IN ($placeholders)
ORDER BY fecha DESC
";
$stmt = sqlsrv_query($conn, $sql_bitacora, $usuarios);
if ($stmt === false) {
die(print_r(sqlsrv_errors(), true));
@@ -110,6 +111,7 @@ function cambios()
}
$conn = getConnection();
$sql = "SELECT * FROM bitacora_usuarios ORDER BY fecha DESC";
$stmt = sqlsrv_query($conn, $sql);
@@ -133,10 +135,13 @@ function usuarios()
}
$conn = getConnection();
$sql = "SELECT u.*, creador.nombre AS nombre_creador
FROM usuarios_sistema u
LEFT JOIN usuarios_sistema creador ON u.creado_por = creador.id_usuario
ORDER BY creado_en DESC";
LEFT JOIN usuarios_sistema creador
ON u.creado_por = creador.id_usuario
ORDER BY creado_en DESC
";
$stmt = sqlsrv_query($conn, $sql);
if ($stmt === false) {
@@ -159,10 +164,11 @@ function vinculaciones()
}
$conn = getConnection();
$usuario_id = $_SESSION['usuario_id'];
// 1. Obtener la agencia asociada al usuario actual
$sql_agencia = "SELECT id_agencia FROM agente_agencia WHERE id_agente = ? AND activo = 1";
$sql_agencia = "SELECT id_agencia FROM agente_agencia WHERE id_agente = ? AND activo = 1";
$stmt_agencia = sqlsrv_query($conn, $sql_agencia, [$usuario_id]);
$id_agencia = null;
@@ -175,19 +181,20 @@ function vinculaciones()
}
// 2. Consulta de vinculaciones SOLO de esa agencia
$sql = "
SELECT ia.*,
u.nombre AS nombre_importador,
aa.nombre_agencia,
ap.nombre AS nombre_aprobador
FROM importador_agencia ia
INNER JOIN usuarios_sistema u ON ia.id_importador = u.id_usuario
INNER JOIN agencias_aduanales aa ON ia.id_agencia = aa.id_agencia
LEFT JOIN usuarios_sistema ap ON ia.aprobado_por = ap.id_usuario
WHERE ia.id_agencia = ?
ORDER BY ia.fecha_vinculacion DESC
";
$sql = "SELECT ia.*,
u.nombre AS nombre_importador,
aa.nombre_agencia,
ap.nombre AS nombre_aprobador
FROM importador_agencia ia
INNER JOIN usuarios_sistema u
ON ia.id_importador = u.id_usuario
INNER JOIN agencias_aduanales aa
ON ia.id_agencia = aa.id_agencia
LEFT JOIN usuarios_sistema ap
ON ia.aprobado_por = ap.id_usuario
WHERE ia.id_agencia = ?
ORDER BY ia.fecha_vinculacion DESC
";
$stmt = sqlsrv_query($conn, $sql, [$id_agencia]);
if ($stmt === false) {
@@ -198,10 +205,10 @@ function vinculaciones()
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
if ($row['fecha_desvinculacion'] !== null) {
$row['accion'] = 'Desvinculación';
$row['fecha'] = $row['fecha_desvinculacion'];
$row['fecha'] = $row['fecha_desvinculacion'];
} else {
$row['accion'] = 'Vinculación';
$row['fecha'] = $row['fecha_vinculacion'];
$row['fecha'] = $row['fecha_vinculacion'];
}
$registros[] = $row;
}
@@ -217,22 +224,24 @@ function vinculacionesUsuario()
}
$conn = getConnection();
$id_importador = $_SESSION['usuario_id'];
// Traer todas las relaciones del importador actual
$sql = "
SELECT ia.*,
u.nombre AS nombre_importador,
aa.nombre_agencia,
ap.nombre AS nombre_aprobador
FROM importador_agencia ia
INNER JOIN usuarios_sistema u ON ia.id_importador = u.id_usuario
INNER JOIN agencias_aduanales aa ON ia.id_agencia = aa.id_agencia
LEFT JOIN usuarios_sistema ap ON ia.aprobado_por = ap.id_usuario
WHERE ia.id_importador = ?
ORDER BY ia.fecha_vinculacion DESC
";
$sql = "SELECT ia.*,
u.nombre AS nombre_importador,
aa.nombre_agencia,
ap.nombre AS nombre_aprobador
FROM importador_agencia ia
INNER JOIN usuarios_sistema u
ON ia.id_importador = u.id_usuario
INNER JOIN agencias_aduanales aa
ON ia.id_agencia = aa.id_agencia
LEFT JOIN usuarios_sistema ap
ON ia.aprobado_por = ap.id_usuario
WHERE ia.id_importador = ?
ORDER BY ia.fecha_vinculacion DESC
";
$stmt = sqlsrv_query($conn, $sql, [$id_importador]);
if ($stmt === false) {
@@ -244,12 +253,11 @@ function vinculacionesUsuario()
// Determinar tipo de acción
if (!empty($row['fecha_desvinculacion'])) {
$row['accion'] = 'Desvinculación';
$row['fecha'] = $row['fecha_desvinculacion'];
$row['fecha'] = $row['fecha_desvinculacion'];
} else {
$row['accion'] = 'Vinculación';
$row['fecha'] = $row['fecha_vinculacion'];
$row['fecha'] = $row['fecha_vinculacion'];
}
$registros[] = $row;
}
@@ -264,13 +272,15 @@ function agencias()
}
$conn = getConnection();
$sql = "SELECT ba.*, aa.nombre_agencia, u.nombre
FROM bitacora_agencias ba
INNER JOIN agencias_aduanales aa
ON ba.id_agencia = aa.id_agencia
INNER JOIN usuarios_sistema u
ON ba.realizado_por = u.id_usuario
ORDER BY fecha DESC";
ORDER BY fecha DESC
";
$stmt = sqlsrv_query($conn, $sql);
if ($stmt === false) {
@@ -292,6 +302,7 @@ function miAcceso()
}
$conn = getConnection();
$id_usuario = $_SESSION['usuario_id'];
$sql = "SELECT bl.id, bl.id_usuario, bl.email, bl.ip, bl.fecha, bl.exito, bl.detalle, u.nombre
@@ -299,7 +310,8 @@ function miAcceso()
INNER JOIN usuarios_sistema u
ON bl.id_usuario = u.id_usuario
WHERE bl.id_usuario = ?
ORDER BY bl.fecha DESC";
ORDER BY bl.fecha DESC
";
$stmt = sqlsrv_query($conn, $sql, [$id_usuario]);
if ($stmt === false) {