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(); }