Files
gateway-dbc-fx/gnpdev/dbcfx/src/it/valueteam/gnp/manager/RequestDoppioDonatingManager.java
2024-05-09 17:40:24 +02:00

454 lines
29 KiB
Java
Raw Blame History

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<47> 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 <20> 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 <20> 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 <20> 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;
}
}