Sintaxis
This commit is contained in:
@@ -10,7 +10,8 @@ function index()
|
||||
|
||||
function notificaciones()
|
||||
{
|
||||
$conn = getConnection();
|
||||
$conn = getConnection();
|
||||
|
||||
$idUsuario = $_SESSION['usuario_id'] ?? null;
|
||||
|
||||
if (!$idUsuario) {
|
||||
@@ -353,7 +354,7 @@ function guardarPreferenciasAjax()
|
||||
try {
|
||||
// Obtener tipo de usuario
|
||||
$query = "SELECT tipo_usuario FROM usuarios_sistema WHERE id_usuario = ?";
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$id_usuario]);
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$id_usuario]);
|
||||
if (!$stmt || !sqlsrv_execute($stmt)) {
|
||||
throw new Exception("Error al obtener tipo de usuario");
|
||||
}
|
||||
@@ -385,7 +386,7 @@ function guardarPreferenciasAjax()
|
||||
$notificaciones_extra = $notificaciones ? ($input['notificaciones_extra'] ?? 0) : 0;
|
||||
|
||||
$query = "UPDATE usuarios_sistema SET notificaciones = ?, notificaciones_extra = ? WHERE id_usuario = ?";
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$notificaciones, $notificaciones_extra, $id_usuario]);
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$notificaciones, $notificaciones_extra, $id_usuario]);
|
||||
|
||||
if (!$stmt || !sqlsrv_execute($stmt)) {
|
||||
throw new Exception("Error al actualizar configuración general");
|
||||
@@ -397,7 +398,7 @@ function guardarPreferenciasAjax()
|
||||
$tabla_preferencias = getTablaPreferencias($tipo_usuario);
|
||||
if ($tabla_preferencias) {
|
||||
$query_delete = "DELETE FROM $tabla_preferencias WHERE id_usuario = ?";
|
||||
$stmt_delete = sqlsrv_prepare($conn, $query_delete, [$id_usuario]);
|
||||
$stmt_delete = sqlsrv_prepare($conn, $query_delete, [$id_usuario]);
|
||||
if ($stmt_delete) {
|
||||
sqlsrv_execute($stmt_delete);
|
||||
sqlsrv_free_stmt($stmt_delete);
|
||||
@@ -406,7 +407,7 @@ function guardarPreferenciasAjax()
|
||||
}
|
||||
|
||||
$response_data = [
|
||||
'notificaciones' => $notificaciones,
|
||||
'notificaciones' => $notificaciones,
|
||||
'notificaciones_extra' => $notificaciones_extra
|
||||
];
|
||||
break;
|
||||
@@ -417,7 +418,7 @@ function guardarPreferenciasAjax()
|
||||
// Validar que existe correo extra si se quiere activar
|
||||
if ($notificaciones_extra) {
|
||||
$query_check = "SELECT correo FROM correo_extra WHERE id_usuario = ?";
|
||||
$stmt_check = sqlsrv_prepare($conn, $query_check, [$id_usuario]);
|
||||
$stmt_check = sqlsrv_prepare($conn, $query_check, [$id_usuario]);
|
||||
if ($stmt_check && sqlsrv_execute($stmt_check)) {
|
||||
$row = sqlsrv_fetch_array($stmt_check, SQLSRV_FETCH_ASSOC);
|
||||
sqlsrv_free_stmt($stmt_check);
|
||||
@@ -431,7 +432,7 @@ function guardarPreferenciasAjax()
|
||||
}
|
||||
|
||||
$query = "UPDATE usuarios_sistema SET notificaciones_extra = ? WHERE id_usuario = ?";
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$notificaciones_extra, $id_usuario]);
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$notificaciones_extra, $id_usuario]);
|
||||
|
||||
if (!$stmt || !sqlsrv_execute($stmt)) {
|
||||
throw new Exception("Error al actualizar configuración de correo extra");
|
||||
@@ -445,16 +446,16 @@ function guardarPreferenciasAjax()
|
||||
|
||||
case 'tipo_notificacion':
|
||||
$tipo_nombre = $input['nombre'] ?? '';
|
||||
$valor = $input['valor'] ? 1 : 0;
|
||||
$valor = $input['valor'] ? 1 : 0;
|
||||
|
||||
if (empty($tipo_nombre)) {
|
||||
throw new Exception("Tipo de notificación no especificado");
|
||||
}
|
||||
|
||||
// Obtener configuración específica según tipo de usuario
|
||||
$config = getConfiguracionTipoUsuario($tipo_usuario);
|
||||
$config = getConfiguracionTipoUsuario($tipo_usuario);
|
||||
$tabla_preferencias = $config['tabla'];
|
||||
$tipos_validos = $config['tipos_validos'];
|
||||
$tipos_validos = $config['tipos_validos'];
|
||||
|
||||
// Validar que el tipo de notificación es válido para este tipo de usuario
|
||||
if (!in_array($tipo_nombre, $tipos_validos)) {
|
||||
@@ -463,7 +464,7 @@ function guardarPreferenciasAjax()
|
||||
|
||||
// Verificar que las notificaciones generales estén activadas
|
||||
$query_check = "SELECT notificaciones FROM usuarios_sistema WHERE id_usuario = ?";
|
||||
$stmt_check = sqlsrv_prepare($conn, $query_check, [$id_usuario]);
|
||||
$stmt_check = sqlsrv_prepare($conn, $query_check, [$id_usuario]);
|
||||
if ($stmt_check && sqlsrv_execute($stmt_check)) {
|
||||
$row = sqlsrv_fetch_array($stmt_check, SQLSRV_FETCH_ASSOC);
|
||||
sqlsrv_free_stmt($stmt_check);
|
||||
@@ -477,10 +478,11 @@ function guardarPreferenciasAjax()
|
||||
|
||||
// Verificar si existe el registro
|
||||
$query_exists = "SELECT COUNT(*) as count FROM $tabla_preferencias WHERE id_usuario = ?";
|
||||
$stmt_exists = sqlsrv_prepare($conn, $query_exists, [$id_usuario]);
|
||||
$stmt_exists = sqlsrv_prepare($conn, $query_exists, [$id_usuario]);
|
||||
|
||||
$exists = false;
|
||||
if ($stmt_exists && sqlsrv_execute($stmt_exists)) {
|
||||
$row = sqlsrv_fetch_array($stmt_exists, SQLSRV_FETCH_ASSOC);
|
||||
$row = sqlsrv_fetch_array($stmt_exists, SQLSRV_FETCH_ASSOC);
|
||||
$exists = $row['count'] > 0;
|
||||
sqlsrv_free_stmt($stmt_exists);
|
||||
}
|
||||
@@ -488,7 +490,7 @@ function guardarPreferenciasAjax()
|
||||
if ($exists) {
|
||||
// Actualizar el campo específico
|
||||
$query = "UPDATE $tabla_preferencias SET [$tipo_nombre] = ? WHERE id_usuario = ?";
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$valor, $id_usuario]);
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$valor, $id_usuario]);
|
||||
} else {
|
||||
// Crear registro con valores por defecto específicos del tipo de usuario
|
||||
$tipos_default = $config['valores_default'];
|
||||
@@ -496,12 +498,12 @@ function guardarPreferenciasAjax()
|
||||
// Establecer el valor específico
|
||||
$tipos_default[$tipo_nombre] = $valor;
|
||||
|
||||
$campos = '[' . implode('], [', array_keys($tipos_default)) . ']';
|
||||
$campos = '[' . implode('], [', array_keys($tipos_default)) . ']';
|
||||
$placeholders = rtrim(str_repeat('?, ', count($tipos_default)), ', ');
|
||||
$query = "INSERT INTO $tabla_preferencias (id_usuario, $campos) VALUES (?, $placeholders)";
|
||||
$query = "INSERT INTO $tabla_preferencias (id_usuario, $campos) VALUES (?, $placeholders)";
|
||||
|
||||
$params = array_merge([$id_usuario], array_values($tipos_default));
|
||||
$stmt = sqlsrv_prepare($conn, $query, $params);
|
||||
$stmt = sqlsrv_prepare($conn, $query, $params);
|
||||
}
|
||||
|
||||
if (!$stmt || !sqlsrv_execute($stmt)) {
|
||||
@@ -577,7 +579,7 @@ function guardarPreferenciasAjax()
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$hora, $dias, $id_usuario]);
|
||||
} else {
|
||||
// Crear registro con valores por defecto específicos del tipo de usuario
|
||||
$config = getConfiguracionTipoUsuario($tipo_usuario);
|
||||
$config = getConfiguracionTipoUsuario($tipo_usuario);
|
||||
$tipos_default = $config['valores_default'];
|
||||
|
||||
// Activar resumen diario y configurar hora/días
|
||||
@@ -755,20 +757,24 @@ function getConfiguracionTipoUsuario($tipo_usuario) {
|
||||
// Función auxiliar para obtener el correo extra de un usuario (útil para el sistema de notificaciones)
|
||||
function obtenerCorreoExtra($id_usuario)
|
||||
{
|
||||
$conn = getConnection();
|
||||
$query = "
|
||||
SELECT ce.correo
|
||||
FROM correo_extra ce
|
||||
INNER JOIN usuarios_sistema us ON ce.id_usuario = us.id_usuario
|
||||
WHERE ce.id_usuario = ? AND us.notificaciones_extra = 1
|
||||
";
|
||||
$conn = getConnection();
|
||||
|
||||
$query = "SELECT ce.correo
|
||||
FROM correo_extra ce
|
||||
INNER JOIN usuarios_sistema us
|
||||
ON ce.id_usuario = us.id_usuario
|
||||
WHERE ce.id_usuario = ?
|
||||
AND us.notificaciones_extra = 1
|
||||
";
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$id_usuario]);
|
||||
|
||||
$correo = null;
|
||||
if ($stmt && sqlsrv_execute($stmt)) {
|
||||
$row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
|
||||
$correo = $row ? $row['correo'] : null;
|
||||
sqlsrv_free_stmt($stmt);
|
||||
}
|
||||
|
||||
sqlsrv_close($conn);
|
||||
return $correo;
|
||||
}
|
||||
@@ -781,10 +787,12 @@ function obtenerPreferenciasNotificacion($id_usuario)
|
||||
// Obtener configuración general
|
||||
$query = "SELECT notificaciones, notificaciones_extra FROM usuarios_sistema WHERE id_usuario = ?";
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$id_usuario]);
|
||||
|
||||
if (!$stmt || !sqlsrv_execute($stmt)) {
|
||||
sqlsrv_close($conn);
|
||||
return null;
|
||||
}
|
||||
|
||||
$config = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
|
||||
sqlsrv_free_stmt($stmt);
|
||||
|
||||
@@ -796,6 +804,7 @@ function obtenerPreferenciasNotificacion($id_usuario)
|
||||
// Obtener preferencias específicas
|
||||
$query = "SELECT * FROM preferencias_notificaciones_usuario WHERE id_usuario = ?";
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$id_usuario]);
|
||||
|
||||
$preferencias = null;
|
||||
if ($stmt && sqlsrv_execute($stmt)) {
|
||||
$preferencias = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
|
||||
@@ -843,18 +852,20 @@ function debeRecibirNotificacion($id_usuario, $tipo_notificacion)
|
||||
// Función auxiliar para obtener la configuración del resumen diario de un usuario
|
||||
function obtenerConfigResumenDiario($id_usuario)
|
||||
{
|
||||
$conn = getConnection();
|
||||
|
||||
$query = "
|
||||
SELECT pnu.resumen_diario, pnu.resumen_diario_hora, pnu.resumen_diario_dias
|
||||
FROM preferencias_notificaciones_usuario pnu
|
||||
INNER JOIN usuarios_sistema us ON pnu.id_usuario = us.id_usuario
|
||||
WHERE pnu.id_usuario = ? AND us.notificaciones = 1 AND pnu.resumen_diario = 1
|
||||
";
|
||||
$conn = getConnection();
|
||||
|
||||
$query = "SELECT
|
||||
pnu.resumen_diario, pnu.resumen_diario_hora, pnu.resumen_diario_dias
|
||||
FROM preferencias_notificaciones_usuario pnu
|
||||
INNER JOIN usuarios_sistema us
|
||||
ON pnu.id_usuario = us.id_usuario
|
||||
WHERE pnu.id_usuario = ?
|
||||
AND us.notificaciones = 1
|
||||
AND pnu.resumen_diario = 1
|
||||
";
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$id_usuario]);
|
||||
|
||||
$config = null;
|
||||
|
||||
if ($stmt && sqlsrv_execute($stmt)) {
|
||||
$row = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
|
||||
if ($row) {
|
||||
@@ -890,7 +901,8 @@ function esDiaResumen($config_dias)
|
||||
|
||||
function catalogos()
|
||||
{
|
||||
$conn = getConnection();
|
||||
$conn = getConnection();
|
||||
|
||||
$idUsuario = $_SESSION['usuario_id'] ?? null;
|
||||
|
||||
if (!$idUsuario) {
|
||||
@@ -901,16 +913,18 @@ function catalogos()
|
||||
// Obtener configuración general de catalogos y tipo de usuario
|
||||
$query = "SELECT preferencias_catalogos, tipo_usuario FROM usuarios_sistema WHERE id_usuario = ?";
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$idUsuario]);
|
||||
|
||||
if (!$stmt || !sqlsrv_execute($stmt)) {
|
||||
die("Error al obtener configuración: " . print_r(sqlsrv_errors(), true));
|
||||
}
|
||||
|
||||
$usuario = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
|
||||
if (!$usuario) {
|
||||
die("Usuario no encontrado");
|
||||
}
|
||||
|
||||
$catalogos = $usuario['preferencias_catalogos'] ?? 0;
|
||||
$tipoUsuario = $usuario['tipo_usuario'] ?? 'importador';
|
||||
$tipoUsuario = $usuario['tipo_usuario'] ?? 'importador';
|
||||
sqlsrv_free_stmt($stmt);
|
||||
|
||||
// Obtener preferencias específicas según el tipo de usuario
|
||||
@@ -949,22 +963,22 @@ function catalogos()
|
||||
// $query = "SELECT * FROM preferencias_catalogos_agente WHERE id_usuario = ?";
|
||||
// $stmt = sqlsrv_prepare($conn, $query, [$idUsuario]);
|
||||
// if ($stmt && sqlsrv_execute($stmt)) {
|
||||
// $preferenciasRow = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
|
||||
// sqlsrv_free_stmt($stmt);
|
||||
// $preferenciasRow = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
|
||||
// sqlsrv_free_stmt($stmt);
|
||||
// } else {
|
||||
// $preferenciasRow = false;
|
||||
// $preferenciasRow = false;
|
||||
// }
|
||||
|
||||
// Si no existe registro, crear valores por defecto para agente aduanal
|
||||
// if (!$preferenciasRow) {
|
||||
// $preferencias = [
|
||||
// Aquí se definirán los campos específicos para agente aduanal
|
||||
// cuando se creen las tablas correspondientes
|
||||
// 'configuracion' => 0,
|
||||
// 'cerrar_sesion' => 0
|
||||
// ];
|
||||
// $preferencias = [
|
||||
// // Aquí se definirán los campos específicos para agente aduanal
|
||||
// // cuando se creen las tablas correspondientes
|
||||
// 'configuracion' => 0,
|
||||
// 'cerrar_sesion' => 0
|
||||
// ];
|
||||
// } else {
|
||||
// $preferencias = $preferenciasRow;
|
||||
// $preferencias = $preferenciasRow;
|
||||
// }
|
||||
// break;
|
||||
|
||||
@@ -972,22 +986,22 @@ function catalogos()
|
||||
// $query = "SELECT * FROM preferencias_catalogos_agencia WHERE id_usuario = ?";
|
||||
// $stmt = sqlsrv_prepare($conn, $query, [$idUsuario]);
|
||||
// if ($stmt && sqlsrv_execute($stmt)) {
|
||||
// $preferenciasRow = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
|
||||
// sqlsrv_free_stmt($stmt);
|
||||
// $preferenciasRow = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
|
||||
// sqlsrv_free_stmt($stmt);
|
||||
// } else {
|
||||
// $preferenciasRow = false;
|
||||
// $preferenciasRow = false;
|
||||
// }
|
||||
|
||||
// Si no existe registro, crear valores por defecto para admin agencia
|
||||
// if (!$preferenciasRow) {
|
||||
// $preferencias = [
|
||||
// Aquí se definirán los campos específicos para admin agencia
|
||||
// cuando se creen las tablas correspondientes
|
||||
// 'configuracion' => 0,
|
||||
// 'cerrar_sesion' => 0
|
||||
// ];
|
||||
// $preferencias = [
|
||||
// // Aquí se definirán los campos específicos para admin agencia
|
||||
// // cuando se creen las tablas correspondientes
|
||||
// 'configuracion' => 0,
|
||||
// 'cerrar_sesion' => 0
|
||||
// ];
|
||||
// } else {
|
||||
// $preferencias = $preferenciasRow;
|
||||
// $preferencias = $preferenciasRow;
|
||||
// }
|
||||
// break;
|
||||
|
||||
@@ -995,22 +1009,22 @@ function catalogos()
|
||||
// $query = "SELECT * FROM preferencias_catalogos_admin WHERE id_usuario = ?";
|
||||
// $stmt = sqlsrv_prepare($conn, $query, [$idUsuario]);
|
||||
// if ($stmt && sqlsrv_execute($stmt)) {
|
||||
// $preferenciasRow = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
|
||||
// sqlsrv_free_stmt($stmt);
|
||||
// $preferenciasRow = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
|
||||
// sqlsrv_free_stmt($stmt);
|
||||
// } else {
|
||||
// $preferenciasRow = false;
|
||||
// $preferenciasRow = false;
|
||||
// }
|
||||
|
||||
// Si no existe registro, crear valores por defecto para super admin
|
||||
// if (!$preferenciasRow) {
|
||||
// $preferencias = [
|
||||
// Aquí se definirán los campos específicos para super admin
|
||||
// cuando se creen las tablas correspondientes
|
||||
// 'configuracion' => 0,
|
||||
// 'cerrar_sesion' => 0
|
||||
// ];
|
||||
// $preferencias = [
|
||||
// // Aquí se definirán los campos específicos para super admin
|
||||
// // cuando se creen las tablas correspondientes
|
||||
// 'configuracion' => 0,
|
||||
// 'cerrar_sesion' => 0
|
||||
// ];
|
||||
// } else {
|
||||
// $preferencias = $preferenciasRow;
|
||||
// $preferencias = $preferenciasRow;
|
||||
// }
|
||||
// break;
|
||||
|
||||
@@ -1026,6 +1040,7 @@ function catalogos()
|
||||
// Obtener tipos de catalogos disponibles según el tipo de usuario
|
||||
$query = "SELECT nombre, descripcion, color FROM tipos_catalogos WHERE tipo_usuario = ? ORDER BY id";
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$tipoUsuario]);
|
||||
|
||||
if (!$stmt || !sqlsrv_execute($stmt)) {
|
||||
die("Error al obtener tipos: " . print_r(sqlsrv_errors(), true));
|
||||
}
|
||||
@@ -1063,7 +1078,8 @@ function guardarCatalogosAjax()
|
||||
exit;
|
||||
}
|
||||
|
||||
$conn = getConnection();
|
||||
$conn = getConnection();
|
||||
|
||||
$idUsuario = $_SESSION['usuario_id'] ?? null;
|
||||
|
||||
if (!$idUsuario) {
|
||||
@@ -1075,11 +1091,13 @@ function guardarCatalogosAjax()
|
||||
// Obtener tipo de usuario
|
||||
$query = "SELECT tipo_usuario FROM usuarios_sistema WHERE id_usuario = ?";
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$idUsuario]);
|
||||
|
||||
if (!$stmt || !sqlsrv_execute($stmt)) {
|
||||
http_response_code(500);
|
||||
echo json_encode(['success' => false, 'message' => 'Error al obtener información del usuario']);
|
||||
exit;
|
||||
}
|
||||
|
||||
$usuario = sqlsrv_fetch_array($stmt, SQLSRV_FETCH_ASSOC);
|
||||
$tipoUsuario = $usuario['tipo_usuario'] ?? 'importador';
|
||||
sqlsrv_free_stmt($stmt);
|
||||
@@ -1091,13 +1109,13 @@ function guardarCatalogosAjax()
|
||||
case 'catalogos_general':
|
||||
// Actualizar preferencias generales de catálogos
|
||||
$valor = isset($input['valor']) && $input['valor'] ? 1 : 0;
|
||||
|
||||
$query = "UPDATE usuarios_sistema SET preferencias_catalogos = ? WHERE id_usuario = ?";
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$valor, $idUsuario]);
|
||||
|
||||
if (!$stmt || !sqlsrv_execute($stmt)) {
|
||||
throw new Exception('Error al actualizar preferencias generales');
|
||||
}
|
||||
|
||||
sqlsrv_free_stmt($stmt);
|
||||
break;
|
||||
|
||||
@@ -1132,6 +1150,7 @@ function guardarCatalogosAjax()
|
||||
// Verificar si existe un registro para este usuario
|
||||
$query = "SELECT id_preferencia FROM $tabla WHERE id_usuario = ?";
|
||||
$stmt = sqlsrv_prepare($conn, $query, [$idUsuario]);
|
||||
|
||||
if (!$stmt || !sqlsrv_execute($stmt)) {
|
||||
throw new Exception('Error al verificar preferencias existentes');
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user