diff --git a/app/controllers/administrador.php b/app/controllers/administrador.php index a7c4d97..8c1b98c 100644 --- a/app/controllers/administrador.php +++ b/app/controllers/administrador.php @@ -418,6 +418,7 @@ function guardar_usuario() exit; } + $conn = getConnection(); // 1. Capturar y validar datos diff --git a/app/controllers/importadores.php b/app/controllers/importadores.php index 44dbb40..2080886 100644 --- a/app/controllers/importadores.php +++ b/app/controllers/importadores.php @@ -2,6 +2,12 @@ require_once __DIR__ . '/../helpers/session.php'; require_once __DIR__ . '/../../config/database.php'; require_once __DIR__ . '/../helpers/crypto.php'; +require_once __DIR__ . '/../../vendor/autoload.php'; + +use PHPMailer\PHPMailer\PHPMailer; +use PHPMailer\PHPMailer\Exception; + +loadEnv(); // Función para obtener catálogos visibles del usuario function obtenerCatalogosVisibles($idUsuario) @@ -228,6 +234,21 @@ function vincular() } } + // Obtener información del importador y la agencia para el correo + $infoSql = "SELECT + u.nombre AS nombre_importador, u.email AS email_importador, + a.nombre_agencia, a.email AS email_agencia, + admin.email AS admin_email, admin.nombre AS admin_nombre + FROM usuarios_sistema u + CROSS JOIN agencias_aduanales a + LEFT JOIN usuarios_sistema admin + ON a.id_administrador = admin.id_usuario + WHERE u.id_usuario = ? + AND a.id_agencia = ? + "; + $infoStmt = sqlsrv_query($conn, $infoSql, [$id_importador, $id_agencia]); + $info = sqlsrv_fetch_array($infoStmt, SQLSRV_FETCH_ASSOC); + // Insertar la nueva solicitud $sql = "INSERT INTO solicitudes_vinculacion (id_importador, id_agencia, mensaje, estado, fecha_solicitud) @@ -237,6 +258,48 @@ function vincular() $stmt = sqlsrv_prepare($conn, $sql, $params); if ($stmt && sqlsrv_execute($stmt)) { + // Enviar notificación al administrador de la agencia + if (!empty($info['admin_email'])) { + $mail = new PHPMailer(true); + try { + $mail->isSMTP(); + $mail->Host = 'secure.emailsrvr.com'; + $mail->SMTPAuth = true; + $mail->Username = 'noreply@aduanasoft.com.mx'; + $mail->Password = $_ENV['SMTP_PASS']; + $mail->SMTPSecure = PHPMailer::ENCRYPTION_STARTTLS; + $mail->Port = 587; + + $mail->setFrom('noreply@aduanasoft.com.mx', 'SIIH | Sistema Integral para Importadores de Hidrocarburos'); + $mail->addAddress($info['admin_email']); + $mail->CharSet = 'UTF-8'; + $mail->isHTML(true); + $mail->Subject = 'Nueva solicitud de vinculación en SIIH'; + + $mail->Body = " +
Hola " . htmlspecialchars($nombreUsuario) . ",
-Tu solicitud de importación ha sido registrada correctamente con los siguientes datos:
- -| ID Solicitud: | -$idSolicitud | -
| Número de Factura: | -$numeroFactura | -
| Fecha: | -$fechaFactura | -
| Valor: | -$valorFactura $tipoMoneda | -
Hola " . htmlspecialchars($nombreUsuario) . ",
+Tu solicitud de importación ha sido registrada correctamente con los siguientes datos:
+ +| ID Solicitud: | +$idSolicitud | +
| Número de Factura: | +$numeroFactura | +
| Fecha: | +$fechaFactura | +
| Valor: | +$valorFactura $tipoMoneda | +
Puedes consultar el estado de tu solicitud accediendo a tu panel de control.
+Si no realizaste esta acción, contacta al administrador del sistema.
+Puedes consultar el estado de tu solicitud accediendo a tu panel de control.
-Si no realizaste esta acción, contacta al administrador del sistema.
- ![]() - |
-
- ' . htmlspecialchars($solicitud['importador_nombre']) . '
- ' . htmlspecialchars($direccion_completa ?: 'Dirección no disponible') . '
- RFC: ' . htmlspecialchars($solicitud['importador_rfc'] ?? 'No disponible') . '
- Tel: ' . htmlspecialchars($solicitud['telefono'] ?? 'No disponible') . '
- Email: ' . htmlspecialchars($solicitud['correo'] ?? 'No disponible') . '
- |
-
- ' . htmlspecialchars($configuracion['nombre_plataforma'] ?? 'Sistema Integral para Importadores de Hidrocarburos') . ' - Solicitud de Importación
- No. ' . htmlspecialchars($solicitud['id_solicitud']) . '
- |
-
+ ![]() + |
+
+ ' . htmlspecialchars($solicitud['importador_nombre']) . '
+ ' . htmlspecialchars($direccion_completa ?: 'Dirección no disponible') . '
+ RFC: ' . htmlspecialchars($solicitud['importador_rfc'] ?? 'No disponible') . '
+ Tel: ' . htmlspecialchars($solicitud['telefono'] ?? 'No disponible') . '
+ Email: ' . htmlspecialchars($solicitud['correo'] ?? 'No disponible') . '
+ |
+
+ ' . htmlspecialchars($configuracion['nombre_plataforma'] ?? 'Sistema Integral para Importadores de Hidrocarburos') . ' + Solicitud de Importación
+ No. ' . htmlspecialchars($solicitud['id_solicitud']) . '
+ |
+
-
- |
-
-
|
| Producto | -Unidad de Medida | -Precio Unitario | -Cantidad | -Total | -
|---|---|---|---|---|
| ' . htmlspecialchars($partida['descripcion']) . ' | +' . htmlspecialchars($partida['unidad_descripcion'] ?? 'Unidad de servicio (E48)') . ' | +' . $moneda_codigo . ' ' . number_format($precio_unitario > 0 ? $precio_unitario : $valor_partida, 2) . ' | +' . number_format($cantidad > 0 ? $cantidad : 1, 0) . ' | +' . $moneda_codigo . ' ' . number_format($valor_partida, 2) . ' | +
| ' . htmlspecialchars($partida['descripcion']) . ' | -' . htmlspecialchars($partida['unidad_descripcion'] ?? 'Unidad de servicio (E48)') . ' | -' . $moneda_codigo . ' ' . number_format($precio_unitario > 0 ? $precio_unitario : $valor_partida, 2) . ' | -' . number_format($cantidad > 0 ? $cantidad : 1, 0) . ' | -' . $moneda_codigo . ' ' . number_format($valor_partida, 2) . ' | -
Aprueba los usuarios que solicitaron un registro.