Aprobación de Agencias

This commit is contained in:
2025-07-14 13:27:15 -06:00
parent e820f81d31
commit 0e88fea37e
36 changed files with 2807 additions and 1128 deletions

View File

@@ -463,13 +463,14 @@ function aprobarAgencias()
function aprobar_agencia()
{
$conn = getConnection();
$conn = getConnection();
$id = $_GET['id'] ?? null;
$usuario_id = $_SESSION['usuario_id'];
if (!$id || !is_numeric($id)) {
die("❌ ID inválido.");
header("Location: /IMPORTADORES/administrador/aprobarAgencias?error=invalid_id");
exit;
}
// Obtener la solicitud
@@ -477,8 +478,9 @@ function aprobar_agencia()
$stmt = sqlsrv_query($conn, $sql, [$id]);
$solicitud = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
if (!$solicitud) {
die("❌ Solicitud no encontrada.");
if (!$solicitud) {
header("Location: /IMPORTADORES/administrador/aprobarAgencias?error=invalid_request");
exit;
}
// Validar que no haya sido aprobada ya
@@ -511,6 +513,7 @@ function aprobar_agencia()
// Insertar en agencias_aduanales
$sqlInsert = "INSERT INTO agencias_aduanales
(nombre_agencia, rfc_agencia, direccion, telefono, email, creado_en, creado_por)
OUTPUT INSERTED.id_agencia
VALUES (?, ?, ?, ?, ?, GETDATE(), ?)
";
$stmtInsert = sqlsrv_query($conn, $sqlInsert, [
@@ -518,37 +521,38 @@ function aprobar_agencia()
]);
if (!$stmtInsert) {
die("❌ Error al crear agencia: " . print_r(sqlsrv_errors(), true));
header("Location: /IMPORTADORES/administrador/aprobarAgencias?error=save_agencia_failed");
exit;
}
// Obtener ID de la agencia recién creada
$sqlGetAgenciaId = "SELECT SCOPE_IDENTITY() AS id_agencia";
$stmtGetAgenciaId = sqlsrv_query($conn, $sqlGetAgenciaId);
$agenciaIdRow = sqlsrv_fetch_array($stmtGetAgenciaId, SQLSRV_FETCH_ASSOC);
$id_agencia = $agenciaIdRow['id_agencia'] ?? null;
$agenciaIdRow = sqlsrv_fetch_array($stmtInsert, SQLSRV_FETCH_ASSOC);
$id_agencia = $agenciaIdRow['id_agencia'] ?? null;
if (!$id_agencia) {
die("❌ No se pudo obtener el ID de la agencia recién creada.");
header("Location: /IMPORTADORES/administrador/aprobarAgencias?error=get_id_failed");
exit;
}
// Insertar en usuarios_sistema
$sqlInsert2 = "INSERT INTO usuarios_sistema (nombre, email, password_hash, tipo_usuario, activo, creado_en, dos_factores, creado_por)
OUTPUT INSERTED.id_usuario
VALUES (?, ?, ?, ?, 1, GETDATE(), 0, ?)
";
$stmtInsert2 = sqlsrv_query($conn, $sqlInsert2, [$admin_name_encrypt, $admin_email_encrypt, $password_hash, $tipo, $usuario_id]);
if (!$stmtInsert2) {
die("❌ Error al crear usuario administrador: " . print_r(sqlsrv_errors(), true));
header("Location: /IMPORTADORES/administrador/aprobarAgencias?error=error_user");
exit;
}
// Obtener ID del nuevo usuario
$sqlGetId = "SELECT SCOPE_IDENTITY() AS id_usuario";
$stmtGetId = sqlsrv_query($conn, $sqlGetId);
$idUsuarioRow = sqlsrv_fetch_array($stmtGetId, SQLSRV_FETCH_ASSOC);
$idUsuarioRow = sqlsrv_fetch_array($stmtInsert2, SQLSRV_FETCH_ASSOC);
$id_usuario = $idUsuarioRow['id_usuario'] ?? null;
if (!$id_usuario) {
die("❌ No se pudo obtener el ID del usuario recién creado.");
header("Location: /IMPORTADORES/administrador/aprobarAgencias?error=error_id");
exit;
}
// Actualizar agencia con el ID del administrador
@@ -556,7 +560,8 @@ function aprobar_agencia()
$stmtUpdateAgencia = sqlsrv_query($conn, $sqlUpdateAgencia, [$id_usuario, $id_agencia]);
if (!$stmtUpdateAgencia) {
die("❌ Error al actualizar agencia con administrador: " . print_r(sqlsrv_errors(), true));
header("Location: /IMPORTADORES/administrador/aprobarAgencias?error=update_failed");
exit;
}
// Insertar en informacion_general
@@ -564,7 +569,8 @@ function aprobar_agencia()
$stmtInfo = sqlsrv_query($conn, $sqlInfo, [$id_usuario, $admin_name, $admin_email]);
if (!$stmtInfo) {
die("❌ Error al insertar información general: " . print_r(sqlsrv_errors(), true));
header("Location: /IMPORTADORES/administrador/aprobarAgencias?error=update_failed");
exit;
}
// Actualizar solicitud
@@ -577,7 +583,8 @@ function aprobar_agencia()
$stmtUpdate = sqlsrv_query($conn, $sqlUpdate, [$usuario_id, $id]);
if (!$stmtUpdate) {
die("❌ Error al actualizar solicitud: " . print_r(sqlsrv_errors(), true));
header("Location: /IMPORTADORES/administrador/aprobarAgencias?error=update_request_failed");
exit;
}
// Enviar correo a la agencia
@@ -624,7 +631,7 @@ function aprobar_agencia()
// Registrar en bitácora
registrar_bitacora_agencia($id_agencia, $nombre, 'CREACION', $usuario_id);
header("Location: /IMPORTADORES/administrador/agenciasActivas");
header("Location: /IMPORTADORES/administrador/agenciasActivas?success=created");
exit;
}