/**
  * Rechaza un nuevo horario del usuario. Imprime los resultados.
  */
 private function rechazarNuevoHorario()
 {
     if (isset($_REQUEST['idNuevoHorario'])) {
         // Recupera el nuevo horario para poder imprimirlo
         $this->horario = $this->gestorHorarios->getNuevoHorario($_REQUEST['idNuevoHorario']);
         if (isset($_REQUEST['observacionesAdministrador'])) {
             $this->horario->setObservacionesAdministrador($_REQUEST['observacionesAdministrador']);
         } else {
             $this->horario->setObservacionesAdministrador('');
         }
         $this->gestorHorarios->rechazarNuevoHorario($this->horario);
         imprimirTabulados(5);
         echo '<div class="tablaTituloBotones">';
         imprimirTabulados(6);
         echo '<h3>El nuevo horario:</h3>';
         $horarios = array();
         array_push($horarios, $this->horario);
         $tabla = new TablaNuevoHorario($horarios);
         $tabla->imprimir();
         imprimirTabulados(6);
         echo '<h3>Ha sido rechazado exitosamente</h3>';
         echo '<h4>Se le informará al usuario la próxima vez que se autentique en el cliente</h4>';
         imprimirTabulados(5);
         echo '</div>';
     } else {
         throw new Exception('No se especificó un parámetro');
     }
 }
 /**
  * Mueve un horario asignado al usuario. Verifica que estén presente
  * todos los campos y sean correctos. Controla que no haya superposición de
  * horarios. Imprime los resultados.
  */
 private function moverHorario()
 {
     if (isset($_REQUEST['idHorario']) && isset($_REQUEST['fecha']) && isset($_REQUEST['ingreso']) && isset($_REQUEST['egreso'])) {
         // Obtiene el horario para editar solo los campos necesarios
         $this->horario = $this->gestorHorarios->getHorario($_REQUEST['idHorario']);
         $horarioViejo = new Horario();
         $horarioViejo->copiar($this->horario);
         $this->horario->setUsuario($this->usuario);
         $this->horario->setFecha($_REQUEST['fecha']);
         $this->horario->setIngreso($_REQUEST['ingreso']);
         $this->horario->setEgreso($_REQUEST['egreso']);
         $horariosSuperpuestos = $this->gestorHorarios->getHorariosSuperpuestos($this->horario);
         if (empty($horariosSuperpuestos)) {
             $this->gestorHorarios->modificarHorario($this->horario);
             imprimirTabulados(5);
             echo '<div class="tablaTituloBotones">';
             imprimirTabulados(6);
             echo '<h3>El horario:</h3>';
             $horarios = array();
             array_push($horarios, $horarioViejo);
             $tabla = new TablaHorariosAsignados($horarios);
             $tabla->imprimir();
             imprimirTabulados(6);
             echo '<br /><h3>Ha sido movido exitosamente al horario:</h3>';
             $horarios = array();
             array_push($horarios, $this->horario);
             $tabla = new TablaHorariosAsignadosMovidos($horarios);
             $tabla->imprimir();
             imprimirTabulados(5);
             echo '</div>';
         } else {
             $this->imprimirHorariosSuperpuestos($horariosSuperpuestos);
         }
     } else {
         throw new Exception('No se especificó un parámetro');
     }
 }
 /**
  * Inserta un horario extraordinario.
  * Un horario extraordinario es un horario no asignado a un horario habitual.
  *
  * @param HorarioAsignado $horario
  * @throws Exception Si el horario no se pudo insertar.
  */
 public function insertarHorarioExtraordinario($horario)
 {
     // Establece el período actual
     $periodoActual = $this->gestorPeriodos->getPeriodoActual($horario->getArea()->getIdArea());
     $horario->setPeriodo($periodoActual);
     $this->horarioDAO->insertarHorarioExtraordinario($horario);
 }