/**
  * 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');
     }
 }