Sintaxis
This commit is contained in:
@@ -4,7 +4,8 @@ require_once __DIR__ . '/../../config/database.php';
|
||||
require_once __DIR__ . '/../helpers/crypto.php';
|
||||
|
||||
// Función para obtener catálogos visibles del usuario
|
||||
function obtenerCatalogosVisibles($idUsuario) {
|
||||
function obtenerCatalogosVisibles($idUsuario)
|
||||
{
|
||||
$conn = getConnection();
|
||||
|
||||
// Obtener configuración general y tipo de usuario
|
||||
@@ -132,7 +133,8 @@ function obtenerCatalogosVisibles($idUsuario) {
|
||||
}
|
||||
|
||||
// Función para obtener icono según el nombre del catálogo
|
||||
function obtenerIconoCatalogo($nombre) {
|
||||
function obtenerIconoCatalogo($nombre)
|
||||
{
|
||||
$iconos = [
|
||||
'Locaciones' => '📍',
|
||||
'Vinculación' => '🔗',
|
||||
@@ -169,28 +171,30 @@ function dashboard()
|
||||
function lista()
|
||||
{
|
||||
$conn = getConnection();
|
||||
$locaciones = [];
|
||||
|
||||
// Consulta conjunta para evitar múltiples queries anidadas
|
||||
$sql = "
|
||||
SELECT
|
||||
p.id_pais, p.nombre AS nombre_pais, p.iso2, p.iso3,
|
||||
e.id_estado, e.nombre AS nombre_estado, e.abreviatura,
|
||||
c.id_ciudad, c.nombre AS nombre_ciudad
|
||||
FROM paises p
|
||||
LEFT JOIN estados e ON p.id_pais = e.pais_id
|
||||
LEFT JOIN ciudades c ON e.id_estado = c.estado_id
|
||||
ORDER BY p.id_pais, e.id_estado, c.id_ciudad
|
||||
";
|
||||
|
||||
$sql = "SELECT
|
||||
p.id_pais, p.nombre AS nombre_pais, p.iso2, p.iso3,
|
||||
e.id_estado, e.nombre AS nombre_estado, e.abreviatura,
|
||||
c.id_ciudad, c.nombre AS nombre_ciudad
|
||||
FROM paises p
|
||||
LEFT JOIN estados e
|
||||
ON p.id_pais = e.pais_id
|
||||
LEFT JOIN ciudades c
|
||||
ON e.id_estado = c.estado_id
|
||||
ORDER BY p.id_pais, e.id_estado, c.id_ciudad
|
||||
";
|
||||
$stmt = sqlsrv_query($conn, $sql);
|
||||
|
||||
$locaciones = [];
|
||||
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
|
||||
$locaciones[] = $row;
|
||||
}
|
||||
|
||||
// Obtener países para los selects del modal
|
||||
$sql_paises_select = "SELECT id_pais, nombre FROM paises ORDER BY nombre";
|
||||
$sql_paises_select = "SELECT id_pais, nombre FROM paises ORDER BY nombre";
|
||||
$stmt_paises_select = sqlsrv_query($conn, $sql_paises_select);
|
||||
|
||||
$paises = [];
|
||||
while ($row = sqlsrv_fetch_array($stmt_paises_select, SQLSRV_FETCH_ASSOC)) {
|
||||
$paises[] = $row;
|
||||
@@ -225,7 +229,10 @@ function vincular()
|
||||
}
|
||||
|
||||
// Insertar la nueva solicitud
|
||||
$sql = "INSERT INTO solicitudes_vinculacion (id_importador, id_agencia, mensaje, estado, fecha_solicitud) VALUES (?, ?, 'Solicitud de vinculación', 'PENDIENTE', GETDATE())";
|
||||
$sql = "INSERT INTO solicitudes_vinculacion
|
||||
(id_importador, id_agencia, mensaje, estado, fecha_solicitud)
|
||||
VALUES (?, ?, 'Solicitud de vinculación', 'PENDIENTE', GETDATE())
|
||||
";
|
||||
$params = [$id_importador, $id_agencia];
|
||||
$stmt = sqlsrv_prepare($conn, $sql, $params);
|
||||
|
||||
@@ -250,12 +257,14 @@ function cancelarVinculacion()
|
||||
$id_importador = $_SESSION['usuario_id'];
|
||||
$id_agencia = (int) $_GET['id'];
|
||||
|
||||
$sql = "UPDATE solicitudes_vinculacion
|
||||
SET estado = 'CANCELADA', fecha_respuesta = GETDATE()
|
||||
WHERE id_importador = ? AND id_agencia = ? AND estado = 'PENDIENTE'";
|
||||
|
||||
$sql = "UPDATE solicitudes_vinculacion
|
||||
SET estado = 'CANCELADA', fecha_respuesta = GETDATE()
|
||||
WHERE id_importador = ?
|
||||
AND id_agencia = ?
|
||||
AND estado = 'PENDIENTE'
|
||||
";
|
||||
$params = [$id_importador, $id_agencia];
|
||||
$stmt = sqlsrv_prepare($conn, $sql, $params);
|
||||
$stmt = sqlsrv_prepare($conn, $sql, $params);
|
||||
|
||||
if ($stmt && sqlsrv_execute($stmt)) {
|
||||
header('Location: /IMPORTADORES/vinculaciones/nuevaVinculacion?success=cancelled');
|
||||
@@ -284,15 +293,16 @@ function desvincularUsuario()
|
||||
sqlsrv_begin_transaction($conn);
|
||||
|
||||
// 1. Verificar que la relación existe y pertenece a la agencia del admin
|
||||
$sqlVerificar = "
|
||||
SELECT
|
||||
ia.*,
|
||||
u.id_usuario, u.nombre as importador_nombre, aa.nombre_agencia
|
||||
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
|
||||
WHERE ia.id_relacion = ? AND ia.id_importador = ?
|
||||
";
|
||||
$sqlVerificar = "SELECT
|
||||
ia.*, u.id_usuario, u.nombre as importador_nombre, aa.nombre_agencia
|
||||
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
|
||||
WHERE ia.id_relacion = ?
|
||||
AND ia.id_importador = ?
|
||||
";
|
||||
$stmtVerificar = sqlsrv_query($conn, $sqlVerificar, [$id_relacion, $_SESSION['usuario_id']]);
|
||||
|
||||
// Verificar si la consulta fue exitosa
|
||||
@@ -313,14 +323,13 @@ function desvincularUsuario()
|
||||
}
|
||||
|
||||
// 2. Desactivar la relación (no eliminar, mantener historial)
|
||||
$sqlDesactivar = "
|
||||
UPDATE importador_agencia
|
||||
SET activo = 0,
|
||||
fecha_desvinculacion = GETDATE(),
|
||||
estado = 'DESVINCULADO'
|
||||
WHERE id_relacion = ? AND id_importador = ?
|
||||
";
|
||||
|
||||
$sqlDesactivar = "UPDATE importador_agencia
|
||||
SET activo = 0,
|
||||
fecha_desvinculacion = GETDATE(),
|
||||
estado = 'DESVINCULADO'
|
||||
WHERE id_relacion = ?
|
||||
AND id_importador = ?
|
||||
";
|
||||
$stmtDesactivar = sqlsrv_query($conn, $sqlDesactivar, [$id_relacion, $_SESSION['usuario_id']]);
|
||||
|
||||
if ($stmtDesactivar === false) {
|
||||
@@ -337,11 +346,7 @@ function desvincularUsuario()
|
||||
|
||||
// 3. Actualizar el campo id_agencia_en_uso del usuario si es necesario
|
||||
if ($_SESSION['id_agencia_en_uso'] == $relacion['id_agencia']) {
|
||||
$sqlActualizarAgencia = "
|
||||
UPDATE usuarios_sistema
|
||||
SET id_agencia_en_uso = NULL
|
||||
WHERE id_usuario = ?
|
||||
";
|
||||
$sqlActualizarAgencia = "UPDATE usuarios_sistema SET id_agencia_en_uso = NULL WHERE id_usuario = ?";
|
||||
$stmtActualizarAgencia = sqlsrv_query($conn, $sqlActualizarAgencia, [$_SESSION['usuario_id']]);
|
||||
|
||||
if ($stmtActualizarAgencia === false) {
|
||||
@@ -392,11 +397,7 @@ function cambiarAgenciaActiva()
|
||||
$conn = getConnection();
|
||||
|
||||
// Validar que el importador está vinculado a esta agencia
|
||||
$sqlVerificacion = "
|
||||
SELECT 1
|
||||
FROM importador_agencia
|
||||
WHERE id_importador = ? AND id_agencia = ? AND activo = 1
|
||||
";
|
||||
$sqlVerificacion = "SELECT 1 FROM importador_agencia WHERE id_importador = ? AND id_agencia = ? AND activo = 1";
|
||||
$stmtVerificacion = sqlsrv_query($conn, $sqlVerificacion, [$id_usuario, $id_agencia]);
|
||||
|
||||
if ($stmtVerificacion === false || !sqlsrv_fetch($stmtVerificacion)) {
|
||||
@@ -405,11 +406,7 @@ function cambiarAgenciaActiva()
|
||||
}
|
||||
|
||||
// Actualizar campo id_agencia_en_uso
|
||||
$sqlUpdate = "
|
||||
UPDATE usuarios_sistema
|
||||
SET id_agencia_en_uso = ?
|
||||
WHERE id_usuario = ?
|
||||
";
|
||||
$sqlUpdate = "UPDATE usuarios_sistema SET id_agencia_en_uso = ? WHERE id_usuario = ?";
|
||||
$stmtUpdate = sqlsrv_query($conn, $sqlUpdate, [$id_agencia, $id_usuario]);
|
||||
|
||||
if ($stmtUpdate === false) {
|
||||
|
||||
Reference in New Issue
Block a user