requireAuth(); // Permitir acceso a administradores para que puedan ver la vista de ayudante $user = $auth->getCurrentUser(); $horariosModel = new DiasHorarios(); $asignacionModel = new Asignacion(); $db = Database::getInstance()->getConnection(); $horarios = $horariosModel->getActivos(); $asignacionActual = $asignacionModel->getAsignacionActual(); $semanasFuturas = []; $hoy = new DateTime(); $diaSemana = (int)$hoy->format('w'); $domingoEstaSemana = clone $hoy; $domingoEstaSemana->modify('-' . $diaSemana . ' days'); for ($i = 0; $i <= 4; $i++) { $semanaDomingo = clone $domingoEstaSemana; $semanaDomingo->modify("+{$i} weeks"); $semanaInicio = $semanaDomingo->format('Y-m-d'); $asignacionesSemana = $asignacionModel->getTodasAsignacionesPorSemana($semanaInicio); $semanasFuturas[] = [ 'inicio' => $semanaInicio, 'fin' => date('Y-m-d', strtotime('+5 days', strtotime($semanaInicio))), 'asignaciones' => $asignacionesSemana, 'asignacion' => !empty($asignacionesSemana) ? $asignacionesSemana[0] : null ]; } $miTurno = $asignacionActual && $asignacionActual['id'] == $user['id']; $misAsignacionesFuturas = []; foreach ($semanasFuturas as $semana) { foreach ($semana['asignaciones'] as $asignacion) { if ($asignacion['id'] == $user['id']) { $misAsignacionesFuturas[] = [ 'semana' => $semana, 'asignacion' => $asignacion ]; } } } $userModel = new User(); $ayudantes = $asignacionModel->getAyudantesPorOrden(); $domingo = new DateTime(); $domingo->modify('-' . (int)$domingo->format('w') . ' days'); ?> Mis Turnos - Contenedor Ibiza isAdmin()) { include BASE_PATH . '/public/partials/navbar.php'; } else { // Si es ayudante, usar navbar simple ?>
isAdmin()): ?>

👥 Vista de Ayudante

Viendo la interfaz que ven los ayudantes

Mis Turnos

isAdmin()): ?> ⚙️ Gestionar Turnos 📄 Exportar PDF
format('w'); $domingoActual = clone $hoy; $domingoActual->modify('-' . $diaSemana . ' days'); $asignacionEstaSemana = $asignacionModel->getAsignacionPorSemana($domingoActual->format('Y-m-d')); $tengoTurnoEstaSemana = $asignacionEstaSemana && $asignacionEstaSemana['id'] == $user['id']; if ($tengoTurnoEstaSemana): ?>
Tienes turno esta semana!
Del al
Turno esta semana:
Tu proximo turno: al Tu proximo turno sera en las proximas semanas.
Proximo turno:
Del al
No hay turnos asignados para las proximas semanas.
Horarios por Semana
'Domingo', 'lunes' => 'Lunes', 'martes' => 'Martes', 'miercoles' => 'Miercoles', 'jueves' => 'Jueves', 'viernes' => 'Viernes', 'sabado' => 'Sabado' ]; $diasOrden = ['domingo', 'lunes', 'martes', 'miercoles', 'jueves', 'viernes', 'sabado']; ?>
$semana): ?>
Semana Ayudante
Actual Tu turno
Sin asignación

Cerrado
Verde = Tu turno activo | Gris = Dia cerrado | Horario: Apertura - Cierre
Turnos de Ayudantes
prepare(" SELECT semana_inicio, semana_fin FROM asignaciones_turnos WHERE user_id = ? AND semana_inicio >= CURDATE() ORDER BY semana_inicio LIMIT 4 "); $stmt->execute([$ayudante['id']]); $turnos = $stmt->fetchAll(); ?>
Ayudante Fecha 1 Fecha 2 Fecha 3 Fecha 4
Tu - -