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

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