package it.valueteam.gnp.manager; import it.valueteam.gnp.dao.db.hb.*; import it.valueteam.gnp.exception.MessageToDiscardException; import it.valueteam.gnp.exception.StateTransitionNotPossibleException; import it.valueteam.gnp.log.ProcessLogger; import it.valueteam.gnp.obj.*; import it.valueteam.gnp.obj.olo.OLOMap; import it.valueteam.gnp.systemcontroller.ControllerFactory; import it.valueteam.gnp.systemcontroller.crm.AbstractCRMController; import it.valueteam.gnp.systemcontroller.crm.SistemaCrmIF; import it.valueteam.gnp.systemcontroller.formatcontroller.dbss.DBSSController; import it.valueteam.gnp.systemcontroller.olo.OLOController; import it.valueteam.gnp.utility.DoubleDonatingStateManager; import it.valueteam.gnp.utility.Func; import it.valueteam.gnp.utility.StateManager; import java.util.Date; public class RequestDoppioDonatingManager { private RequestDoppioDonatingManager() { } /** * avanzaStatoValidataOK * * @param richiestaRec GnpGestioneRichiestaRec * @param log ProcessLogger */ public static void avanzaStatoInInviata(GnpDoppioDonatingOloBridge richiestaDD, String nomeFile, ProcessLogger log) throws StateTransitionNotPossibleException, Exception { log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInInviata - idRichiesta: " + richiestaDD.getIdRichiesta() + " nome file: " + nomeFile); int statoPartenza = richiestaDD.getStato().intValue(); GnpDoppioDonatingOloBridgeDAO ddBridgeDAO = new GnpDoppioDonatingOloBridgeDAO(); try { int status = DoubleDonatingStateManager.CheckTransition(richiestaDD, StatoRichiestaDoppioDonating.INVIATA); if (status != DoubleDonatingStateManager.TRANSIZIONE_NON_POSSIBILE) { // salvo la richiesta con stato INVIATA richiestaDD.setStato((long) StatoRichiestaDoppioDonating.INVIATA); ddBridgeDAO.merge(richiestaDD); insertStoricoRichiestaDoppioDonating(statoPartenza, nomeFile, ApplicationCostants.IO_OUTPUT, richiestaDD); } else { log.write("9999", "TRANSIZIONE DI STATO NON POSSIBILE PER LA RICHIESTA DI TIPO DOPPIO DONATING - UNIQUE_ID - " + richiestaDD.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO INVIATA"); if (StatoRichiestaDoppioDonating.isStatoFinale((long) statoPartenza)) { throw new MessageToDiscardException("Messaggio scartato per richiesta in stato finale: " + richiestaDD.getIdRichiesta(), richiestaDD.getIdRichiesta().toString()); } else { throw new StateTransitionNotPossibleException("StateTransitionNotPossibleException"); } } } catch (Exception ex) { //0009 W - NON ESEGUITA TRANSIZIONE DI STATO UNIQUE_ID log.write("0009", richiestaDD.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO INVIATA : " + ex.toString()); throw ex; } } /** * avanzaStatoInAcquisita * * @param crmInRec GnpCrmInRec * @param flagBlackList * @param log ProcessLogger */ public static void avanzaStatoInAccettata(GnpDoppioDonatingOloBridge richiestaDoppioDonating, String codiceSessioneOlo, ProcessLogger log) throws Exception { log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInAcettata - idRichiesta: " + richiestaDoppioDonating.getIdRichiesta()); GnpDoppioDonatingOloBridgeDAO recDoppioDonatingDAO = new GnpDoppioDonatingOloBridgeDAO(); boolean flagFonia = richiestaDoppioDonating.getTipoServizio().equals(ApplicationCostants.TIPO_CHIAMATA_FONIA_F); GnpRichiesteRecDAO richDAO = new GnpRichiesteRecDAO(); GnpRichiesteRec richiesta = richDAO.findById(richiestaDoppioDonating.getIdRichiesta()); int statoPartenza = richiestaDoppioDonating.getStato().intValue(); try { int status = DoubleDonatingStateManager.CheckTransition(richiestaDoppioDonating, StatoRichiestaDoppioDonating.ACCETTATA); if (status != StateManager.TRANSIZIONE_NON_POSSIBILE) { // salvo la richiesta con stato validating richiestaDoppioDonating.setStato((long) StatoRichiestaDoppioDonating.ACCETTATA); recDoppioDonatingDAO.merge(richiestaDoppioDonating); log.write("0008", richiestaDoppioDonating.getUniqueId().toString() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO ACCETTATA"); insertStoricoRichiestaDoppioDonating(statoPartenza, null, ApplicationCostants.IO_INPUT, richiestaDoppioDonating); if (flagFonia) { if (DBSSMap.PIATTAFORMA_DBSS.equals(richiesta.getPiattaformaProvenienza())) { DBSSController dbssController = DBSSController.getInstance(); dbssController.notificaVariazioneStatoRichiestaDoppioDonating( richiesta.getIdRichiesta(), DBSSMap.CHIAMATA_FONIA, DBSSMap.EVENTO_ACCETTAZIONE_OLO, DBSSMap.ESITO_OK, null, codiceSessioneOlo); } else { AbstractCRMController crmController = (AbstractCRMController) ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiesta.getPiattaformaProvenienza()); crmController.notificaVariazioneStatoRichiestaDoppioDonating(richiesta.getIdRichiesta(), CRMMap.CHIAMATA_FONIA, CRMMap.EVENTO_ACCETTAZIONE_OLO, CRMMap.ESITO_OK, null); } } else { if (DBSSMap.PIATTAFORMA_DBSS.equals(richiesta.getPiattaformaProvenienza())) { DBSSController dbssController = DBSSController.getInstance(); dbssController.notificaVariazioneStatoRichiestaDoppioDonating( richiesta.getIdRichiesta(), DBSSMap.CHIAMATA_ADSL, DBSSMap.EVENTO_ACCETTAZIONE_OLO, DBSSMap.ESITO_OK, null, codiceSessioneOlo); } else { AbstractCRMController crmController = (AbstractCRMController) ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiesta.getPiattaformaProvenienza()); crmController.notificaVariazioneStatoRichiestaDoppioDonating(richiesta.getIdRichiesta(), CRMMap.CHIAMATA_ADSL, CRMMap.EVENTO_ACCETTAZIONE_OLO, CRMMap.ESITO_OK, null); } } } else { log.write("9999", "TRANSIZIONE DI STATO NON POSSIBILE PER LA RICHIESTA DI TIPO DOPPIO DONATING - UNIQUE_ID - " + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO ACCETTATA"); if (StatoRichiestaDoppioDonating.isStatoFinale((long) statoPartenza)) { throw new MessageToDiscardException("Messaggio scartato per richiesta in stato finale: " + richiesta.getIdRichiesta(), richiesta.getIdRichiesta().toString()); } else { throw new StateTransitionNotPossibleException("StateTransitionNotPossibleException"); } } } catch (Exception ex) { //0009 W - NON ESEGUITA TRANSIZIONE DI STATO UNIQUE_ID log.write("0009", richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO ACCETTATA : " + ex.toString()); throw ex; } } public static void avanzaStatoInDaReinviare(GnpDoppioDonatingOloBridge richiestaDoppioDonating, int codiceCausale, ProcessLogger log) throws Exception { log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInDaReinviare - idRichiesta: " + richiestaDoppioDonating.getIdRichiesta()); int statoPartenza = richiestaDoppioDonating.getStato().intValue(); GnpRichiesteRecDAO recDAO = new GnpRichiesteRecDAO(); GnpRichiesteRec richiestaRec = null; GnpDoppioDonatingOloBridgeDAO recDoppioDonatingDAO = new GnpDoppioDonatingOloBridgeDAO(); try { // recuper la richiesta di business di appartenenza richiestaRec = recDAO.findById(richiestaDoppioDonating.getIdRichiesta()); int status = DoubleDonatingStateManager.CheckTransition(richiestaDoppioDonating, StatoRichiestaDoppioDonating.DA_REINVIARE); if (status != StateManager.TRANSIZIONE_NON_POSSIBILE) { // salvo la richiesta con stato DA_REINVIARE richiestaDoppioDonating.setStato((long) StatoRichiestaDoppioDonating.DA_REINVIARE); richiestaDoppioDonating.setDaInviare((long) 1); if (statoPartenza == StatoRichiestaDoppioDonating.INVIATA) { richiestaDoppioDonating.setDataReinvioOlo(Func.calcolaDataReinvioOLO(ApplicationCostants.GIORNI_PER_KO_SUPERMENTO_SOGLIA_VER_FORMALI)); if (DBSSMap.PIATTAFORMA_DBSS.equals(richiestaRec.getPiattaformaProvenienza())) { DBSSController dbssController = DBSSController.getInstance(); dbssController.notificaDbss(richiestaRec.getIdRichiesta(), DBSSMap.NOTIFICA_RICICLO); } else { //NOTIFICA A CRM PER SUPERAMENTO SOGLIA, POI CONTROLLO LATO CRM CONTROLLER SE LA NOTIFICA E' GI� STATA INVIATA SistemaCrmIF crmController = ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiestaRec.getPiattaformaProvenienza()); crmController.notificaCRM(richiestaRec.getIdRichiesta(), CRMMap.NOTIFICA_RICICLO); } } else {// provengo dallo stato ACCETTATA richiestaDoppioDonating.setDataReinvioOlo(Func.calcolaDataReinvioOLO(ApplicationCostants.GIORNI_PER_KO_TRASLOCO_VER_GESTIONALI)); int numKOTrasloco = richiestaDoppioDonating.getNumKoTraslocoOlo() == null ? 0 : richiestaDoppioDonating.getNumKoTraslocoOlo().intValue(); richiestaDoppioDonating.setNumKoTraslocoOlo((long) (numKOTrasloco + 1)); // cristiano modifica per X11 2012 if (richiestaDoppioDonating.getNumKoTraslocoOlo() == 1) { if (DBSSMap.PIATTAFORMA_DBSS.equals(richiestaRec.getPiattaformaProvenienza())) { DBSSController dbssController = DBSSController.getInstance(); dbssController.notificaDbss(richiestaRec.getIdRichiesta(), DBSSMap.NOTIFICA_RICICLO_TRASLOCO_OLO); } else { SistemaCrmIF crmController = ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiestaRec.getPiattaformaProvenienza()); crmController.notificaCRM(richiestaDoppioDonating.getIdRichiesta(), CRMMap.NOTIFICA_RICICLO_TRASLOCO_OLO); } } } recDoppioDonatingDAO.merge(richiestaDoppioDonating); log.write("0008", "RICHIESTA DOPPIO DONATING: " + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO DA_REINVIARE"); insertStoricoRichiestaDoppioDonating(statoPartenza, null, ApplicationCostants.IO_INPUT, richiestaDoppioDonating); } else { log.write("9999", "TRANSIZIONE DI STATO NON POSSIBILE PER LA RICHIESTA DI TIPO DOPPIO DONATING - ID_RICHIESTA - " + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO DA_REINVIARE. " + " STATO DELLA RICHIESTA DI BUSINESS: " + (richiestaRec != null ? StatoRichiestaRec.getStatoDescr(richiestaRec.getStato().intValue()) : "SCONOSCIUTO")); if (StatoRichiestaDoppioDonating.isStatoFinale((long) statoPartenza)) { throw new MessageToDiscardException("Messaggio scartato per richiesta in stato finale: " + richiestaRec.getIdRichiesta(), richiestaRec.getIdRichiesta().toString()); } else { throw new StateTransitionNotPossibleException("StateTransitionNotPossibleException"); } } } catch (Exception ex) { // 0009 W - NON ESEGUITA TRANSIZIONE DI STATO UNIQUE_ID log.write("0009", richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO DA_REINVIARE : " + ex.toString()); throw ex; } } public static void avanzaStatoInAccettataKO(GnpDoppioDonatingOloBridge richiestaDoppioDonating, int codiceCausaleKoOLO, ProcessLogger log) throws Exception { log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInAccettataKO - idRichiesta: " + richiestaDoppioDonating.getIdRichiesta()); int statoPartenza = richiestaDoppioDonating.getStato().intValue(); //boolean flagFonia=true; // correzione bug 18-08-2009 boolean flagFonia = richiestaDoppioDonating.getTipoServizio().equals(ApplicationCostants.TIPO_CHIAMATA_FONIA_F); GnpRichiesteRecDAO recDAO = new GnpRichiesteRecDAO(); GnpRichiesteRec richiestaRec = null; GnpDoppioDonatingOloBridgeDAO recDoppioDonatingDAO = null; try { int status = DoubleDonatingStateManager.CheckTransition(richiestaDoppioDonating, StatoRichiestaDoppioDonating.ACCETTATAKO); if (status != StateManager.TRANSIZIONE_NON_POSSIBILE) { // recupero la richiesta di business a cui � associata questa di doppio donating richiestaRec = recDAO.findById(richiestaDoppioDonating.getIdRichiesta()); recDoppioDonatingDAO = new GnpDoppioDonatingOloBridgeDAO(); richiestaDoppioDonating.setStato((long) StatoRichiestaDoppioDonating.ACCETTATAKO); recDoppioDonatingDAO.merge(richiestaDoppioDonating); log.write("0008", richiestaDoppioDonating.getUniqueId().toString() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO ACCETTATAKO"); insertStoricoRichiestaDoppioDonating(statoPartenza, null, ApplicationCostants.IO_INPUT, richiestaDoppioDonating); if (flagFonia) { if (DBSSMap.PIATTAFORMA_DBSS.equals(richiestaRec.getPiattaformaProvenienza())) { DBSSController dbssController = DBSSController.getInstance(); dbssController.notificaVariazioneStatoRichiestaDoppioDonating( richiestaDoppioDonating.getIdRichiesta(), DBSSMap.CHIAMATA_FONIA, DBSSMap.EVENTO_ACCETTAZIONE_OLO, DBSSMap.ESITO_KO, Integer.toString(codiceCausaleKoOLO), null); } else { AbstractCRMController crmController = (AbstractCRMController) ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiestaRec.getPiattaformaProvenienza()); crmController.notificaVariazioneStatoRichiestaDoppioDonating(richiestaDoppioDonating.getIdRichiesta(), CRMMap.CHIAMATA_FONIA, CRMMap.EVENTO_ACCETTAZIONE_OLO, CRMMap.ESITO_KO, Integer.toString(codiceCausaleKoOLO)); } } else { if (DBSSMap.PIATTAFORMA_DBSS.equals(richiestaRec.getPiattaformaProvenienza())) { DBSSController dbssController = DBSSController.getInstance(); dbssController.notificaVariazioneStatoRichiestaDoppioDonating( richiestaDoppioDonating.getIdRichiesta(), DBSSMap.CHIAMATA_ADSL, DBSSMap.EVENTO_ACCETTAZIONE_OLO, DBSSMap.ESITO_KO, Integer.toString(codiceCausaleKoOLO), null); } else { AbstractCRMController crmController = (AbstractCRMController) ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiestaRec.getPiattaformaProvenienza()); crmController.notificaVariazioneStatoRichiestaDoppioDonating(richiestaDoppioDonating.getIdRichiesta(), CRMMap.CHIAMATA_ADSL, CRMMap.EVENTO_ACCETTAZIONE_OLO, CRMMap.ESITO_KO, Integer.toString(codiceCausaleKoOLO)); } } } else { log.write("9999", "TRANSIZIONE DI STATO NON POSSIBILE PER LA RICHIESTA DI TIPO DOPPIO DONATING - ID_RICHIESTA - " + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO ACCETTATAKO"); if (StatoRichiestaDoppioDonating.isStatoFinale((long) statoPartenza)) { throw new MessageToDiscardException("Messaggio scartato per richiesta in stato finale: " + richiestaDoppioDonating.getIdRichiesta(), richiestaDoppioDonating.getIdRichiesta().toString()); } else { throw new StateTransitionNotPossibleException("StateTransitionNotPossibleException"); } } } catch (Exception ex) { // 0009 W - NON ESEGUITA TRANSIZIONE DI STATO ID_RICHIESTA log.write("0009", "" + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO ACCETTATAKO : " + ex.toString()); throw ex; } } public static void avanzaStatoInRifiutata(GnpDoppioDonatingOloBridge richiestaDoppioDonating, int codiceCausaleKoOLO, ProcessLogger log) throws Exception { log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInRifiutata - idRichiesta: " + richiestaDoppioDonating.getIdRichiesta()); int statoPartenza = richiestaDoppioDonating.getStato().intValue(); //boolean flagFonia=true; //correzione bug 18-08-2009 boolean flagFonia = richiestaDoppioDonating.getTipoServizio().equals(ApplicationCostants.TIPO_CHIAMATA_FONIA_F); GnpRichiesteRec richiestaRec = null; GnpRichiesteRecDAO recDAO = new GnpRichiesteRecDAO(); GnpDoppioDonatingOloBridgeDAO recDoppioDonatingDAO = null; try { int status = DoubleDonatingStateManager.CheckTransition(richiestaDoppioDonating, StatoRichiestaDoppioDonating.RIFIUTATA); if (status != StateManager.TRANSIZIONE_NON_POSSIBILE) { // recupero la richiesta di business a cui � associata questa di doppio donating richiestaRec = recDAO.findById(richiestaDoppioDonating.getIdRichiesta()); // salvo la richiesta con stato ESPLETATA recDoppioDonatingDAO = new GnpDoppioDonatingOloBridgeDAO(); richiestaDoppioDonating.setStato((long) StatoRichiestaDoppioDonating.RIFIUTATA); // Se il rifiuto � per KO TRASLOCO, incrementa anche il numero di tentativi fatti if (codiceCausaleKoOLO == ApplicationCostants.KO_TRASLOCO_VER_GESTIONALI) { int numKoTrasloco = richiestaRec.getNumKoTraslocoOlo().intValue() + 1; richiestaDoppioDonating.setNumKoTraslocoOlo((long) numKoTrasloco); } recDoppioDonatingDAO.merge(richiestaDoppioDonating); log.write("0008", "" + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO RIFIUTATA"); insertStoricoRichiestaDoppioDonating(statoPartenza, null, ApplicationCostants.IO_INPUT, richiestaDoppioDonating); if (flagFonia) { if (DBSSMap.PIATTAFORMA_DBSS.equals(richiestaRec.getPiattaformaProvenienza())) { DBSSController dbssController = DBSSController.getInstance(); dbssController.notificaVariazioneStatoRichiestaDoppioDonating( richiestaDoppioDonating.getIdRichiesta(), DBSSMap.CHIAMATA_FONIA, DBSSMap.EVENTO_VALIDAZIONE_OLO, DBSSMap.ESITO_KO, Integer.toString(codiceCausaleKoOLO), null); } else { AbstractCRMController crmController = (AbstractCRMController) ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiestaRec.getPiattaformaProvenienza()); crmController.notificaVariazioneStatoRichiestaDoppioDonating(richiestaDoppioDonating.getIdRichiesta(), CRMMap.CHIAMATA_FONIA, CRMMap.EVENTO_VALIDAZIONE_OLO, CRMMap.ESITO_KO, Integer.toString(codiceCausaleKoOLO)); } } else { if (DBSSMap.PIATTAFORMA_DBSS.equals(richiestaRec.getPiattaformaProvenienza())) { DBSSController dbssController = DBSSController.getInstance(); dbssController.notificaVariazioneStatoRichiestaDoppioDonating( richiestaDoppioDonating.getIdRichiesta(), DBSSMap.CHIAMATA_ADSL, DBSSMap.EVENTO_VALIDAZIONE_OLO, DBSSMap.ESITO_KO, Integer.toString(codiceCausaleKoOLO), null); } else { AbstractCRMController crmController = (AbstractCRMController) ControllerFactory.getSistemaCrmFromPiattaformaProvenienza(richiestaRec.getPiattaformaProvenienza()); crmController.notificaVariazioneStatoRichiestaDoppioDonating(richiestaDoppioDonating.getIdRichiesta(), CRMMap.CHIAMATA_ADSL, CRMMap.EVENTO_VALIDAZIONE_OLO, CRMMap.ESITO_KO, Integer.toString(codiceCausaleKoOLO)); } } } else { //0009 W - NON ESEGUITA TRANSIZIONE DI STATO log.write("0009", richiestaDoppioDonating.getUniqueId() + " IN STATO RIFIUTATA"); if (StatoRichiestaDoppioDonating.isStatoFinale((long) statoPartenza)) { throw new MessageToDiscardException("Messaggio scartato per richiesta in stato finale: " + richiestaDoppioDonating.getIdRichiesta(), richiestaDoppioDonating.getIdRichiesta().toString()); } else { throw new StateTransitionNotPossibleException("StateTransitionNotPossibleException"); } } } catch (Exception ex) { //0009 W - NON ESEGUITA TRANSIZIONE DI STATO log.write("0009", richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO RIFIUTATA : " + ex.toString()); throw ex; } } public static void avanzaStatoInValidata(GnpDoppioDonatingOloBridge richiestaDoppioDonating, ProcessLogger log) throws Exception { log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInValidata - idRichiesta: " + richiestaDoppioDonating.getIdRichiesta()); int statoPartenza = richiestaDoppioDonating.getStato().intValue(); GnpDoppioDonatingOloBridgeDAO recDoppioDonatingDAO = null; int status = DoubleDonatingStateManager.CheckTransition(richiestaDoppioDonating, StatoRichiestaDoppioDonating.VALIDATA); if (status != StateManager.TRANSIZIONE_NON_POSSIBILE) { recDoppioDonatingDAO = new GnpDoppioDonatingOloBridgeDAO(); //per la notifica di emissione faccio l'update della DAC richiestaDoppioDonating.setStato((long) StatoRichiestaDoppioDonating.VALIDATA); recDoppioDonatingDAO.merge(richiestaDoppioDonating); insertStoricoRichiestaDoppioDonating(statoPartenza, null, ApplicationCostants.IO_INPUT, richiestaDoppioDonating); log.write("0008", "" + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO VALIDAT"); } else { log.write("9999", "TRANSIZIONE DI STATO NON POSSIBILE PER LA RICHIESTA DI TIPO DOPPIO DONATING - UNIQUE_ID - " + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO VALIDATA"); } } public static void avanzaStatoInDisdetta(GnpDoppioDonatingOloBridge richiestaDoppioDonating, ProcessLogger log) throws Exception { log.write("0009", "RequestDoppioDonatingManager - avanzaStatoInDisdetta - idRichiesta: " + richiestaDoppioDonating.getIdRichiesta()); int statoPartenza = richiestaDoppioDonating.getStato().intValue(); GnpDoppioDonatingOloBridgeDAO recDoppioDonatingDAO = null; int status = DoubleDonatingStateManager.CheckTransition(richiestaDoppioDonating, StatoRichiestaDoppioDonating.DISDETTA); if (status != StateManager.TRANSIZIONE_NON_POSSIBILE) { recDoppioDonatingDAO = new GnpDoppioDonatingOloBridgeDAO(); if (notificaDisdetta(richiestaDoppioDonating)) { OLOController.getInstance().notificaEventoDoppioDonating( richiestaDoppioDonating, OLOMap.TIPO_EVENTO_INTERRUZIONE_MIGRAZIONE, richiestaDoppioDonating.getTipoServizio()); } richiestaDoppioDonating.setStato((long) StatoRichiestaDoppioDonating.DISDETTA); recDoppioDonatingDAO.merge(richiestaDoppioDonating); insertStoricoRichiestaDoppioDonating(statoPartenza, null, ApplicationCostants.IO_INPUT, richiestaDoppioDonating); log.write("0008", "" + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO DISDETTA"); } else { log.write("9999", "TRANSIZIONE DI STATO NON POSSIBILE PER LA RICHIESTA DI TIPO DOPPIO DONATING - UNIQUE_ID - " + richiestaDoppioDonating.getUniqueId() + " DA STATO : " + StatoRichiestaDoppioDonating.getStatoDescr(statoPartenza) + " IN STATO DISDETTA"); } } /** * @param stato_da * @param richiestaddBridge * @throws Exception */ public static void insertStoricoRichiestaDoppioDonating(int stato_da, String nomeFile, int i_o, GnpDoppioDonatingOloBridge richiestaDoppioDonating) throws Exception { GnpStoricoRichiesteDdDAO richRec = new GnpStoricoRichiesteDdDAO(); //creo lo storico GnpStoricoRichiesteDd storico = new GnpStoricoRichiesteDd(); storico.setIdRichiesta(richiestaDoppioDonating.getUniqueId()); storico.setNomeFile(nomeFile); storico.setStatoDa((long) stato_da); storico.setStatoA(richiestaDoppioDonating.getStato()); storico.setDfw(richiestaDoppioDonating.getDfw()); storico.setDac(richiestaDoppioDonating.getDac()); storico.setDataIO(new Date()); storico.setDataLavorazione(new Date()); storico.setIO((long) i_o); richRec.save(storico); } /** * Metodo che determina se bisogna notificare a OLO la disdetta della richiesta * * @param richiestaRec * @param tipoDisdetta * @return * @throws Exception */ private static boolean notificaDisdetta(GnpDoppioDonatingOloBridge richiestaDD) throws Exception { switch (richiestaDD.getStato().intValue()) { case StatoRichiestaDoppioDonating.INVIATA: case StatoRichiestaDoppioDonating.ACCETTATA: case StatoRichiestaDoppioDonating.VALIDATA: return true; } return false; } }