public function getHorario($idHorario) { $connection = parent::initDB(); $query = "SELECT idHorario, area, periodo, fecha, ingreso, egreso " . "FROM horario_asignado " . "WHERE idHorario = {$idHorario}"; $result = mysql_query($query); if (mysql_num_rows($result) != 1) { throw new Exception('No se pudo obtener el horario'); } $row = mysql_fetch_array($result); $horario = new Horario(); $horario->setIdHorario($row['idHorario']); $horario->setFechaISO($row['fecha']); $horario->setIngreso($row['ingreso']); $horario->setEgreso($row['egreso']); $horario->setArea($this->areaDAO->getArea($row['area'])); $horario->setPeriodo($this->periodoDAO->getPeriodo($row['periodo'])); parent::closeDB($connection); return $horario; }
/** * Genera objetos HorarioAsignado desde la fecha actual hasta que termina el * período al que corresponde el HorarioHabitual dado. Marca como no actvos * los horarios que caen en feriados o semanas especiales. * * @param HorarioHabitual $horarioHabitual */ private function generarHorariosAsignados($horarioHabitual) { $periodoActual = $this->gestorPeriodos->getPeriodoActual($horarioHabitual->getArea()->getIdArea()); $fechaFinal = $periodoActual->getFin(); // Obtiene el primer horario que debe cumplir $fecha = new DateTime('next ' . $horarioHabitual->getDia()->getNombreIngles()); while ($fecha->getTimestamp() <= $fechaFinal->getTimestamp()) { $horario = new Horario(); $horario->setUsuario($horarioHabitual->getUsuario()); $horario->setIdHorarioHabitual($horarioHabitual->getIdHorarioHabitual()); $horario->setFecha($fecha->format('d-m-Y')); $horario->setIngreso($horarioHabitual->imprimirIngreso()); $horario->setEgreso($horarioHabitual->imprimirEgreso()); $horario->setArea($horarioHabitual->getArea()); $horario->setPeriodo($horarioHabitual->getPeriodo()); $this->insertarHorario($horario); $fecha->modify("+1 week"); } $this->horarioDAO->eliminarHorariosEnFeriados(); $this->horarioDAO->eliminarHorariosEnSemanasEspeciales(); }