Correcciones

This commit is contained in:
2025-06-27 07:30:16 -06:00
parent 4416fe6f20
commit 3da996350c
11 changed files with 574 additions and 384 deletions

View File

@@ -48,6 +48,108 @@ function lista()
include __DIR__ . '/../../views/locaciones/lista.php';
}
function nuevaVinculacion()
{
if (!isset($_SESSION['usuario_id']) || $_SESSION['tipo_usuario'] !== 'importador') {
header('Location: /IMPORTADORES/login');
exit;
}
$conn = getConnection();
$sql = "
SELECT
a.*,
s.estado AS estado_solicitud
FROM agencias_aduanales a
LEFT JOIN solicitudes_vinculacion s
ON s.id_agencia = a.id_agencia AND s.id_importador = ?
AND s.estado = 'PENDIENTE'
WHERE NOT EXISTS (
SELECT 1
FROM importador_agencia ia
WHERE ia.id_agencia = a.id_agencia
AND ia.id_importador = ?
AND ia.activo = 1
)
ORDER BY a.creado_en DESC
";
$params = [$_SESSION['usuario_id'], $_SESSION['usuario_id']];
$stmt = sqlsrv_query($conn, $sql, $params);
$agencias = [];
while ($row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC)) {
$agencias[] = $row;
}
include __DIR__ . '/../../views/vinculaciones/nueva.php';
}
function vincular()
{
if (!isset($_SESSION['usuario_id']) || $_SESSION['tipo_usuario'] !== 'importador') {
header('Location: /IMPORTADORES/login');
exit;
}
$conn = getConnection();
$id_importador = $_SESSION['usuario_id'];
$id_agencia = (int) $_GET['id'];
// Verificar si ya existe una solicitud pendiente
$checkSql = "SELECT COUNT(*) AS total FROM solicitudes_vinculacion
WHERE id_importador = ? AND id_agencia = ? AND estado = 'PENDIENTE'";
$checkParams = [$id_importador, $id_agencia];
$checkStmt = sqlsrv_query($conn, $checkSql, $checkParams);
if ($checkStmt && $row = sqlsrv_fetch_array($checkStmt, SQLSRV_FETCH_ASSOC)) {
if ($row['total'] > 0) {
header('Location: /IMPORTADORES/vinculaciones/nuevaVinculacion?error=pending_request');
exit;
}
}
// Insertar la nueva solicitud
$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);
if ($stmt && sqlsrv_execute($stmt)) {
header('Location: /IMPORTADORES/vinculaciones/nuevaVinculacion?success=sended_request');
exit;
} else {
header('Location: /IMPORTADORES/vinculaciones/nuevaVinculacion?error=failed_request');
exit;
}
}
function cancelarVinculacion()
{
if (!isset($_SESSION['usuario_id']) || $_SESSION['tipo_usuario'] !== 'importador') {
header('Location: /IMPORTADORES/login');
exit;
}
$conn = getConnection();
$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'";
$params = [$id_importador, $id_agencia];
$stmt = sqlsrv_prepare($conn, $sql, $params);
if ($stmt && sqlsrv_execute($stmt)) {
header('Location: /IMPORTADORES/vinculaciones/nuevaVinculacion?success=cancelled');
exit;
}
}
function desvincularUsuario()
{
if (!isset($_SESSION['usuario_id']) || $_SESSION['tipo_usuario'] !== 'importador') {