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 = $asignacionModel->getAyudantesPorOrden(); $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 .= '
| Semana | Período | Estado |
|---|---|---|
| ' . date('d/m/Y', strtotime($semana['inicio'])); if ($index === 0) { $html .= ' Actual'; } if ($esMiTurno) { $html .= ' Tu turno'; } $html .= ' | '; $html .= '' . date('d/m/Y', strtotime($semana['inicio'])) . ' - ' . date('d/m/Y', strtotime($semana['fin'])) . ' | '; $html .= '' . ($esMiTurno ? 'Asignado' : 'Sin asignar') . ' | '; $html .= '
| Semana | '; foreach ($diasOrden as $dia) { $html .= '' . $diasNombres[$dia] . ' | '; } $html .= '||
|---|---|---|---|
| ' . date('d/m', strtotime($semana['inicio'])); if ($index === 0) { $html .= ' Actual'; } $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 .= '';
$html .= date('H:i', strtotime($horarioDia['hora_apertura'])) . ' '; $html .= date('H:i', strtotime($horarioDia['hora_cierre'])); $html .= ' | ';
} elseif (!$esActivo) {
$html .= 'Cerrado | '; } else { $html .= '';
$html .= date('H:i', strtotime($horarioDia['hora_apertura'])) . ' '; $html .= date('H:i', strtotime($horarioDia['hora_cierre'])); $html .= ' | ';
}
}
$html .= '
| Ayudante | Fecha 1 | Fecha 2 | Fecha 3 | Fecha 4 |
|---|---|---|---|---|
| ' . htmlspecialchars($ayudante['nombre']); if ($ayudante['id'] == $user['id']) { $html .= ' Tu'; } $html .= ' | '; for ($i = 0; $i < 4; $i++) { $html .= ''; if (isset($turnos[$i])) { $html .= date('d/m/Y', strtotime($turnos[$i]['semana_inicio'])) . ' - '; $html .= date('d/m/Y', strtotime($turnos[$i]['semana_fin'])); } else { $html .= '-'; } $html .= ' | '; } $html .= '