requireAuth(); if ($auth->isAdmin()) { header('Location: /admin/index.php'); exit; } $user = $auth->getCurrentUser(); $horariosModel = new DiasHorarios(); $asignacionModel = new Asignacion(); $horarios = $horariosModel->getActivos(); $asignacionActual = $asignacionModel->getAsignacionActual(); // Obtener todas las asignaciones de las próximas semanas $semanasFuturas = []; // Encontrar el domingo de esta semana $hoy = new DateTime(); $diaSemana = (int)$hoy->format('w'); // 0 = domingo, 6 = sábado $domingoEstaSemana = clone $hoy; $domingoEstaSemana->modify('-' . $diaSemana . ' days'); // Restar días para llegar al domingo 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))), // +5 días = domingo a viernes 'asignaciones' => $asignacionesSemana, 'asignacion' => !empty($asignacionesSemana) ? $asignacionesSemana[0] : null ]; } $miTurno = $asignacionActual && $asignacionActual['id'] == $user['id']; // También verificar si el usuario tiene turno en las próximas semanas $misAsignacionesFuturas = []; foreach ($semanasFuturas as $semana) { foreach ($semana['asignaciones'] as $asignacion) { if ($asignacion['id'] == $user['id']) { $misAsignacionesFuturas[] = [ 'semana' => $semana, 'asignacion' => $asignacion ]; } } } ?> Mis Turnos - Contenedor Ibiza

Mis Turnos

format('w'); // 0 = domingo, 6 = sábado $domingoActual = clone $hoy; $domingoActual->modify('-' . $diaSemana . ' days'); // Restar días para llegar al domingo $viernesActual = clone $domingoActual; $viernesActual->modify('+5 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 próximo turno: al Tu próximo turno será en las próximas semanas.
Próximo turno:
Del al
No hay turnos asignados para las próximas semanas.
Horarios de Apertura del Contenedor
Día Hora Apertura Hora Cierre
Calendario de Turnos
$semana): ?>
Semana Período Asignado a Estado
Semana Actual (Dom) - (Vie)
Sin asignar
Tu turno asignado(s) Pendiente
Información
  • Los turnos se asignan de forma rotativa semanalmente.
  • Cada semana inicia en lunes y termina en domingo.
  • Recuerda estar atento a tu turno para abrir y cerrar el contenedor.
  • Las filas en verde indican tus turnos asignados.