246 lines
11 KiB
Java
246 lines
11 KiB
Java
package it.valueteam.gnp.manager;
|
|
|
|
import it.valueteam.gnp.dao.db.hb.*;
|
|
import it.valueteam.gnp.systemcontroller.dbcfxgo.DbcfxgoController;
|
|
import it.valueteam.gnp.utility.DateUtils;
|
|
import it.valueteam.gnp.utility.UserTransactionUtility;
|
|
import org.hibernate.criterion.Restrictions;
|
|
import org.hibernate.criterion.SimpleExpression;
|
|
|
|
import javax.transaction.UserTransaction;
|
|
import java.util.ArrayList;
|
|
import java.util.Date;
|
|
|
|
public class RequestManagerNngDon {
|
|
|
|
final static String PROCESSO_DONATING_NNG = "NNG_DON";
|
|
final static String PROCESSO_RESTITUZIONE_TIM = "RESTITUZIONE_TIM";
|
|
|
|
public static void avanzaStatoinAcquisita(GnpNngFenpRichIn fenpRichIn) throws Exception {
|
|
|
|
GnpNngFenpRichInDAO fenpRichInDAO = new GnpNngFenpRichInDAO();
|
|
GnpRichiesteNngDonDAO richDAO = new GnpRichiesteNngDonDAO();
|
|
GnpRichiesteNngDon richiesta = new GnpRichiesteNngDon();
|
|
|
|
richiesta.setOpRecipient(fenpRichIn.getCodOpRecipient());
|
|
richiesta.setStato(Long.valueOf(1));
|
|
richiesta.setDaInviare(Long.valueOf(1));
|
|
|
|
if ("1".equals(fenpRichIn.getTipoComunicazione())){
|
|
richiesta.setProcesso(PROCESSO_DONATING_NNG);
|
|
} else {
|
|
richiesta.setProcesso(PROCESSO_RESTITUZIONE_TIM);
|
|
richiesta.setOpRecipient(fenpRichIn.getCodOpReturning());
|
|
}
|
|
|
|
richiesta.setTipoServizio(fenpRichIn.getTipoServizio());
|
|
richiesta.setDataOperazione(fenpRichIn.getDataOrdine());
|
|
richiesta.setCodiceFiscale(fenpRichIn.getCodFiscale());
|
|
richiesta.setPartitaIva(fenpRichIn.getPartitaIva());
|
|
richiesta.setCodiceOrdine(fenpRichIn.getCodiceOrdine());
|
|
richiesta.setCodiceProgetto(fenpRichIn.getCodiceProgetto());
|
|
richiesta.setCow(fenpRichIn.getCodOpDonating());
|
|
|
|
if ("9".equals(fenpRichIn.getTipoComunicazione())){
|
|
richiesta.setCow("TLC");
|
|
}
|
|
|
|
richiesta.setDac(fenpRichIn.getDac());
|
|
richiesta.setNng(fenpRichIn.getNng());
|
|
richiesta.setPartitaIva(fenpRichIn.getPartitaIva());
|
|
|
|
richDAO.save(richiesta);
|
|
fenpRichIn.setIdRichiesta(richiesta.getIdRichiesta());
|
|
fenpRichInDAO.merge(fenpRichIn);
|
|
|
|
DbcfxgoController.getInstance().inviaNotificaDbcfxGo(richiesta, fenpRichIn);
|
|
|
|
}
|
|
|
|
public static void createFenpRichiesteOut(GnpDbcfxgoInNng103 dbcfxgoInRec, GnpRichiesteNngDon richiestaDon) throws Exception {
|
|
|
|
UserTransaction uTX = null;
|
|
//uTX = UserTransactionUtility.beginUserTransaction();
|
|
|
|
try{
|
|
GnpNngFenpRichOut fenpRichiesteOut = new GnpNngFenpRichOut();
|
|
|
|
String tipoComunicazione = String.valueOf(dbcfxgoInRec.getTipoComunicazione());
|
|
fenpRichiesteOut.setDaProcessare(1L);
|
|
fenpRichiesteOut.setDataCreazione(new Date());
|
|
|
|
if ("2".equals(tipoComunicazione) || "4".equals(tipoComunicazione)){
|
|
fenpRichiesteOut.setCodOpRecipient(richiestaDon.getOpRecipient());
|
|
}
|
|
|
|
fenpRichiesteOut.setTipoComunicazione(tipoComunicazione);
|
|
fenpRichiesteOut.setDataOrdine(richiestaDon.getDataOperazione());
|
|
fenpRichiesteOut.setNng(richiestaDon.getNng());
|
|
|
|
// DAC nel donating arriva solo nel TC1 e TC3 (fenpIn)
|
|
// fenpRichiesteOut.setDac(dbcfxgoInRec.getDAC() != null ? DateUtils.toDate(dbcfxgoInRec.getDAC(), "yyyy-MM-dd") : null);
|
|
// fenpRichiesteOut.setCodiceProgetto(dbcfxgoInRec.getCODICE_PROGETTO() != null? dbcfxgoInRec.getCODICE_PROGETTO() : "");
|
|
|
|
if ("2".equals(tipoComunicazione) || ("10".equals(tipoComunicazione))) {
|
|
fenpRichiesteOut.setStatoOrdine(String.valueOf(dbcfxgoInRec.getStato()));
|
|
fenpRichiesteOut.setCodMotivoRifiuto(richiestaDon.getCodRifiuto());
|
|
fenpRichiesteOut.setDescMotivoRifiuto(richiestaDon.getDescRifiuto());
|
|
}
|
|
|
|
if ("4".equals(tipoComunicazione)) {
|
|
fenpRichiesteOut.setStatoOrdine("3");
|
|
fenpRichiesteOut.setCodOpDonating(richiestaDon.getCow()); //TLC
|
|
fenpRichiesteOut.setCodOp(dbcfxgoInRec.getCodOperatore()); //telecom italia
|
|
fenpRichiesteOut.setDataEspletamento(richiestaDon.getDac()); //invio effettivo alle 16 di DAC
|
|
}
|
|
|
|
fenpRichiesteOut.setIdRichiesta(Long.valueOf(dbcfxgoInRec.getIdRichiesta()));
|
|
|
|
if (tipoComunicazione.equals("10") ) {
|
|
fenpRichiesteOut.setCodOpReturning(dbcfxgoInRec.getCor());
|
|
fenpRichiesteOut.setCodOpRecipient(dbcfxgoInRec.getCor());
|
|
fenpRichiesteOut.setCodOpDonating(richiestaDon.getCow());
|
|
fenpRichiesteOut.setStatoOrdine("1");
|
|
}
|
|
|
|
if (tipoComunicazione.equals("11")) {
|
|
// questo dovrebbe essere al posto del recipient...
|
|
fenpRichiesteOut.setCodOpReturning(dbcfxgoInRec.getCor());
|
|
fenpRichiesteOut.setCodOpRecipient(dbcfxgoInRec.getCor());
|
|
fenpRichiesteOut.setCodOpDonating(richiestaDon.getCow());
|
|
fenpRichiesteOut.setCodOp(dbcfxgoInRec.getCodOperatore());
|
|
fenpRichiesteOut.setStatoOrdine("3");
|
|
}
|
|
|
|
fenpRichiesteOut.setCodiceOrdine(dbcfxgoInRec.getCodiceOrdine());
|
|
fenpRichiesteOut.setTipoNotifica("NPNNG");
|
|
|
|
new GnpNngFenpRichOutDAO().save(fenpRichiesteOut); //SAVE
|
|
//UserTransactionUtility.endUserTransaction(uTX, true);
|
|
} catch (Exception ex) {
|
|
//rollback della tx corrente
|
|
ex.printStackTrace();
|
|
|
|
//0010 C - ERRORE DURANTE L''ELABORAZIONE:
|
|
System.out.println(" " + richiestaDon.getIdRichiesta() + " - " + ex.toString());
|
|
System.out.println("exception"+ ex.getMessage());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
// avanzamento da DBCFXGO
|
|
public static void avanzamentoNngDon(GnpDbcfxgoInNng103 dbcfxgoInRec) throws Exception {
|
|
GnpDbcfxgoInNng103DAO nngInDao = new GnpDbcfxgoInNng103DAO();
|
|
GnpRichiesteNngDonDAO richDAO = new GnpRichiesteNngDonDAO();
|
|
|
|
GnpRichiesteNngDon richiesta = new GnpRichiesteNngDon();
|
|
if (dbcfxgoInRec.getIdRichiesta() != null) {
|
|
richiesta = richDAO.findById(Long.valueOf(dbcfxgoInRec.getIdRichiesta()));
|
|
} else {
|
|
ArrayList<SimpleExpression> criterion = new ArrayList<SimpleExpression>();
|
|
criterion.add(Restrictions.eq(GnpRichiesteNngDonDAO.HIB_CODICE_ORDINE, dbcfxgoInRec.getCodiceOrdine()));
|
|
richiesta = (GnpRichiesteNngDon) richDAO.findByCriteria(criterion).get(0);
|
|
dbcfxgoInRec.setIdRichiesta(richiesta.getIdRichiesta());
|
|
}
|
|
if (dbcfxgoInRec.getTipoComunicazione() == 2 || dbcfxgoInRec.getTipoComunicazione() == 10) {
|
|
if (dbcfxgoInRec.getStato() == 1) { //rifiutato
|
|
richiesta.setStato(Long.valueOf(4));
|
|
richiesta.setCodRifiuto(String.valueOf(dbcfxgoInRec.getCodiceRifiutoFenp()));
|
|
richiesta.setDescRifiuto(dbcfxgoInRec.getCausaleRifiutoFenp());
|
|
|
|
} else {
|
|
richiesta.setStato(Long.valueOf(3));
|
|
}
|
|
}
|
|
richDAO.merge(richiesta);
|
|
dbcfxgoInRec.setDaScodare(0L);
|
|
nngInDao.merge(dbcfxgoInRec);
|
|
createFenpRichiesteOut(dbcfxgoInRec,richiesta);
|
|
}
|
|
|
|
// avanzamento da FENP
|
|
public static void avanzamentoNngDon(GnpRichiesteNngDon richiesta, GnpNngFenpRichIn fenpRichiestaIn) throws Exception {
|
|
GnpRichiesteNngDonDAO richDAO = new GnpRichiesteNngDonDAO();
|
|
String tipoComunicazione = fenpRichiestaIn.getTipoComunicazione();
|
|
|
|
if (richiesta != null) {
|
|
if ("4".equals(tipoComunicazione)) {
|
|
richiesta.setDataEspletamento(fenpRichiestaIn.getDataEspletamento());
|
|
avanzaStatoinEspletata(richiesta);
|
|
}
|
|
if ("7".equals(tipoComunicazione)) {
|
|
if (fenpRichiestaIn.getRdac().before(fenpRichiestaIn.getDac())) {
|
|
return;
|
|
//ignora
|
|
} else if (fenpRichiestaIn.getDac().before(DateUtils.toDate(DateUtils.aggiungiGiorniLavorativi(new Date(), 3),"yyyy-MM-dd" ))) {
|
|
// ignora
|
|
return;
|
|
} else if (fenpRichiestaIn.getDac().equals(DateUtils.toDate(DateUtils.aggiungiGiorniLavorativi(new Date(), 3),"yyyy-MM-dd" ))
|
|
&& Long.valueOf(DateUtils.getHour(new Date())).intValue() >= 16 ) {
|
|
return;
|
|
// ignora
|
|
} else {
|
|
richiesta.setDac(fenpRichiestaIn.getRdac());
|
|
aggiornaTC4(fenpRichiestaIn);
|
|
}
|
|
}
|
|
if ("8".equals(tipoComunicazione)) {
|
|
if (richiesta.getDac().before(DateUtils.toDate(DateUtils.aggiungiGiorniLavorativi(new Date(), 3),"yyyy-MM-dd" ))) {
|
|
// ignora
|
|
return;
|
|
} else if (richiesta.getDac().equals(DateUtils.toDate(DateUtils.aggiungiGiorniLavorativi(new Date(), 3),"yyyy-MM-dd" ))
|
|
&& Long.valueOf(DateUtils.getHour(new Date())).intValue() >= 16 ) {
|
|
return;
|
|
// ignora
|
|
} else {
|
|
avanzaStatoinAnnullata(richiesta);
|
|
annullaTC4(fenpRichiestaIn);
|
|
}
|
|
|
|
}
|
|
richDAO.merge(richiesta);
|
|
DbcfxgoController.getInstance().inviaNotificaDbcfxGo(richiesta, fenpRichiestaIn);
|
|
}
|
|
|
|
}
|
|
|
|
private static void annullaTC4(GnpNngFenpRichIn fenpRichiestaIn) {
|
|
|
|
GnpNngFenpRichOutDAO fenpRichOutDAO = new GnpNngFenpRichOutDAO();
|
|
GnpNngFenpRichOut tc4 = fenpRichOutDAO.getTC4FromCodiceOrdine(fenpRichiestaIn.getCodiceOrdine());
|
|
|
|
if (tc4 != null && tc4.getDaProcessare() == 1) {
|
|
tc4.setDaProcessare(0L);
|
|
tc4.setDataEspletamento(null);
|
|
}
|
|
|
|
}
|
|
|
|
private static void aggiornaTC4(GnpNngFenpRichIn fenpRichiestaIn) {
|
|
GnpNngFenpRichOutDAO fenpRichOutDAO = new GnpNngFenpRichOutDAO();
|
|
GnpNngFenpRichOut tc4 = fenpRichOutDAO.getTC4FromCodiceOrdine(fenpRichiestaIn.getCodiceOrdine());
|
|
|
|
if (tc4 != null && tc4.getDaProcessare() == 1) {
|
|
tc4.setDataEspletamento(fenpRichiestaIn.getRdac());
|
|
}
|
|
}
|
|
|
|
public static void avanzaStatoInInviataGo(GnpRichiesteNngDon richiesta) {
|
|
richiesta.setStato(Long.valueOf(2));
|
|
new GnpRichiesteNngDonDAO().merge(richiesta);
|
|
}
|
|
|
|
private static void avanzaStatoinAnnullata(GnpRichiesteNngDon richiesta) {
|
|
richiesta.setStato((long) 7);
|
|
}
|
|
|
|
private static void avanzaStatoinEspletata(GnpRichiesteNngDon richiesta) {
|
|
richiesta.setStato((long) 6);
|
|
}
|
|
|
|
public static void avanzaStatoinInviataFenp(GnpRichiesteNngDon richiesta) {
|
|
richiesta.setStato((long) 5);
|
|
}
|
|
}
|