diff --git a/public/admin/asignaciones.php b/public/admin/asignaciones.php index 673190c..97d4b60 100755 --- a/public/admin/asignaciones.php +++ b/public/admin/asignaciones.php @@ -19,6 +19,11 @@ $asignacionModel = new Asignacion(); $message = ''; $messageType = ''; +if (isset($_GET['success']) && $_GET['success'] === 'orden_actualizado') { + $message = 'Orden actualizado correctamente. Se recalcularon las asignaciones futuras.'; + $messageType = 'success'; +} + if ($_SERVER['REQUEST_METHOD'] === 'POST') { if (!CSRF::isValidRequest()) { $message = 'Error de validación del formulario'; @@ -47,6 +52,21 @@ if ($_SERVER['REQUEST_METHOD'] === 'POST') { $messageType = 'success'; } } + } elseif ($action === 'rotacion_automatica') { + $resultado = $asignacionModel->asignarSemanasFuturasAutomaticas(12); + + if ($resultado['success'] > 0) { + $message = "Se generaron {$resultado['success']} semanas futuras correctamente"; + if (!empty($resultado['errors'])) { + $message .= ". Errores: " . implode(', ', $resultado['errors']); + $messageType = 'warning'; + } else { + $messageType = 'success'; + } + } else { + $message = 'No se pudieron generar asignaciones: ' . implode(', ', $resultado['errors']); + $messageType = 'danger'; + } } elseif ($action === 'asignar_masivo') { $userIds = $_POST['user_ids'] ?? []; $semanaInicio = $_POST['semana_inicio'] ?? ''; @@ -370,17 +390,7 @@ No hay asignación para la semana de 4 ( - - asignarSemanasFuturasAutomaticas(12); - ?> -
- Resultado: Se asignaron semanas futuras - -
Errores: - -
- +
@@ -451,7 +461,7 @@ No hay asignación para la semana de 4 ( $userId) { - $stmt = $db->prepare(" + $stmt = $asignacionModel->getDb()->prepare(" UPDATE rotacion_orden SET orden = ? WHERE user_id = ? AND activo = 1 @@ -463,10 +473,9 @@ No hay asignación para la semana de 4 (recalcularAsignaciones(20); if ($resultado['success'] > 0) { - echo '
'; - echo 'Orden actualizado correctamente. '; - echo "Se recalcularon {$resultado['success']} semanas futuras."; - echo '
'; + // Redireccionar para recargar los datos actualizados + header("Location: " . $_SERVER['PHP_SELF'] . "?success=orden_actualizado"); + exit; } } ?> @@ -475,6 +484,7 @@ No hay asignación para la semana de 4 (
+