/**
  * Realiza las validaciones necesarias y agrega una semana especial al período actual.
  * Informa errores mediante excepciones.
  */
 private function agregarSemanaEspecial()
 {
     if (isset($_REQUEST['idPeriodo']) && isset($_REQUEST['fechaInicioSemanaEspecial']) && isset($_REQUEST['fechaFinSemanaEspecial']) && isset($_REQUEST['descripcionSemanaEspecial'])) {
         // Acciones ejecutadas
         $semanaEspecial = new SemanaEspecial();
         $semanaEspecial->setPeriodo($this->gestorPeriodos->getPeriodo($_REQUEST['idPeriodo']));
         $semanaEspecial->setDescripcion($_REQUEST['descripcionSemanaEspecial']);
         $semanaEspecial->setInicio($_REQUEST['fechaInicioSemanaEspecial']);
         $semanaEspecial->setFin($_REQUEST['fechaFinSemanaEspecial']);
         // Impresion
         imprimirTabulados(5);
         echo '<div class="tablaTituloBotones">';
         try {
             $this->gestorPeriodos->insertarSemanaEspecial($semanaEspecial);
             imprimirTabulados(6);
             echo '<h3>La semana especial:</h3>';
             $semanasEspeciales = array();
             array_push($semanasEspeciales, $semanaEspecial);
             $tabla = new TablaSemanasEspecialesAgregadas($semanasEspeciales);
             $tabla->imprimir();
             imprimirTabulados(6);
             echo '<h3>Ha sido agregada exitosamente</h3>';
         } catch (Exception $excepcion) {
             imprimirTabulados(5);
             echo '<h2>Se produjo un error al procesar la solicitud:</h2><br />';
             imprimirTabulados(5);
             echo '<h3>' . $excepcion->getMessage() . '</h3>';
         }
         imprimirTabulados(5);
         echo '</div>';
         $this->imprimirPeriodo($_REQUEST['idPeriodo']);
     } else {
         throw new Exception('No se especificó un parámetro');
     }
 }