/**
  * Agrega un nuevo 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 agregarHorario()
 {
     if (isset($_REQUEST['area']) && isset($_REQUEST['fecha']) && isset($_REQUEST['ingreso']) && isset($_REQUEST['egreso'])) {
         // Acciones ejecutadas
         $this->horario = new Horario();
         $this->horario->setUsuario($this->usuario);
         $this->horario->setFecha($_REQUEST['fecha']);
         $this->horario->setIngreso($_REQUEST['ingreso']);
         $this->horario->setEgreso($_REQUEST['egreso']);
         $this->horario->setArea($this->gestorAreas->getArea($_REQUEST['area']));
         $horariosSuperpuestos = $this->gestorHorarios->getHorariosSuperpuestos($this->horario);
         if (empty($horariosSuperpuestos)) {
             $this->gestorHorarios->insertarHorarioExtraordinario($this->horario);
             imprimirTabulados(5);
             echo '<div class="tablaTituloBotones">';
             imprimirTabulados(6);
             echo '<h3>El horario:</h3>';
             $horarios = array();
             array_push($horarios, $this->horario);
             $tabla = new TablaHorariosAsignadosAgregados($horarios);
             $tabla->imprimir();
             imprimirTabulados(6);
             echo '<h3>Ha sido agregado exitosamente</h3>';
             imprimirTabulados(5);
             echo '</div>';
         } else {
             $this->imprimirHorariosSuperpuestos($horariosSuperpuestos);
         }
     } else {
         throw new Exception('No se especificó un parámetro');
     }
 }