requireAuth(); if ($auth->isAdmin()) { header('Location: /admin/index.php'); exit; } $user = $auth->getCurrentUser(); $horariosModel = new DiasHorarios(); $asignacionModel = new Asignacion(); $db = Database::getInstance()->getConnection(); $horarios = $horariosModel->getActivos(); $userModel = new User(); $ayudantes = $userModel->getAyudantesActivos(); $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, ]; } $diasNombres = [ 'domingo' => 'Domingo', 'lunes' => 'Lunes', 'martes' => 'Martes', 'miercoles' => 'Miércoles', 'jueves' => 'Jueves', 'viernes' => 'Viernes', 'sabado' => 'Sábado' ]; $diasOrden = ['domingo', 'lunes', 'martes', 'miercoles', 'jueves', 'viernes', 'sabado']; $html = PDFGenerator::getStyles(); $html .= PDFGenerator::getHeader('Horarios y Turnos - Ayudante: ' . $user['nombre']); $html .= '

Mis Turnos

'; $html .= ''; $html .= ''; $html .= ''; foreach ($semanasFuturas as $index => $semana) { $esMiTurno = !empty($semana['asignaciones']) && in_array($user['id'], array_column($semana['asignaciones'], 'id')); $html .= ''; $html .= ''; $html .= ''; $html .= ''; $html .= ''; } $html .= '
SemanaPeríodoEstado
' . date('d/m/Y', strtotime($semana['inicio'])); if ($index === 0) { $html .= ' Actual'; } if ($esMiTurno) { $html .= ' Tu turno'; } $html .= '' . date('d/m/Y', strtotime($semana['inicio'])) . ' - ' . date('d/m/Y', strtotime($semana['fin'])) . '' . ($esMiTurno ? 'Asignado' : 'Sin asignar') . '
'; $html .= '

Horarios por Semana

'; $html .= ''; $html .= ''; foreach ($diasOrden as $dia) { $html .= ''; } $html .= ''; $html .= ''; foreach ($semanasFuturas as $index => $semana) { $esMiTurno = !empty($semana['asignaciones']) && in_array($user['id'], array_column($semana['asignaciones'], 'id')); $html .= ''; $html .= ''; foreach ($diasOrden as $dia) { $horarioDia = null; foreach ($horarios as $h) { if ($h['dia_semana'] === $dia) { $horarioDia = $h; break; } } $esActivo = $horarioDia && $horarioDia['activo']; if ($esMiTurno && $esActivo) { $html .= ''; } elseif (!$esActivo) { $html .= ''; } else { $html .= ''; } } $html .= ''; } $html .= '
Semana' . $diasNombres[$dia] . '
' . date('d/m', strtotime($semana['inicio'])); if ($index === 0) { $html .= ' Actual'; } $html .= ''; $html .= date('H:i', strtotime($horarioDia['hora_apertura'])) . '
'; $html .= date('H:i', strtotime($horarioDia['hora_cierre'])); $html .= '
Cerrado'; $html .= date('H:i', strtotime($horarioDia['hora_apertura'])) . '
'; $html .= date('H:i', strtotime($horarioDia['hora_cierre'])); $html .= '
'; $html .= PDFGenerator::getFooter(); $pdf = new PDFGenerator(); $pdf->download($html, 'mis-turnos-' . date('Y-m-d') . '.pdf');