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();
 }