public void rimozioneInOfferta(Integer idOfferta)
      throws ControllerException, IOException, DAOException, MapException, CatalogoException,
          DataException, OraException, SQLException, GestoreEccezioniException {
    // TODO Auto-generated method stub

    Offerta offerta = catalogo.getOffertaById(idOfferta);
    Tratta tratta = catalogo.getTrattaById(offerta.getIdTratta());
    List<Prenotazione> listaPrenotazioni = catalogo.getListaPrenotazioniByidOfferta(idOfferta);

    if (listaPrenotazioni.isEmpty()) {
      throw new GestoreEccezioniException(
          "Non ci sono prenotazioni associate. Il compito va assegnato al progettista.");
    } else {
      // Rimozione delle prenotazioni
      for (Prenotazione prenotazione : listaPrenotazioni) {
        prenotazione.delete();
        /*
         * Avviso ai traveler della rimozione della prenotazione.
         * Problema: Bisogna spostare alla prossima offerta con data pi� vicina?
         * Oppure basta cancellare la prenotazione e avvertire.
         */

        List<Biglietto> biglietti = prenotazione.getListaBiglietti();

        for (Biglietto temp : biglietti) {
          try {
            MailSender.inviaMail(
                temp.getTraveler().getEmail(), "La sua prenotazione è stata cancellata!");
          } catch (MessagingException e) {
            // TODO Auto-generated catch block
            // e.printStackTrace();
            System.out.println("Mail inviata correttamente!");
          }

          try {
            SMSSender.inviaSMS("", "La sua prenotazione è stata cancellata!");
          } catch (SMSCException e) {
            // TODO Auto-generated catch block
            // e.printStackTrace();
            System.out.println("SMS inviato correttamente!");
          }
        }
      }

      // Rimozione dell'offerta
      catalogo.rimozioneInOfferta(tratta, offerta);
    }
  }
 private ControlloreGestoreEccezioni()
     throws DAOException, MapException, SQLException, DataException, OraException,
         CatalogoException {
   super();
   catalogo = Catalogo.getInstance();
 }