Fix DBCFX_SM_694 - TSSC: Anomalia generata dal Ticket n. 000000001038099 - Aggiornato calcolo Data Silenzio Assenso da CCC (DFW) e Data Scadenza Codice Sessione (scadenza richiesta Del.82)

This commit is contained in:
vincenzofariello
2024-10-29 10:26:28 +01:00
parent b21bf3de2f
commit d1c394eaac
4 changed files with 44 additions and 18 deletions

View File

@@ -148,7 +148,7 @@ public class RequestManagerDonor {
int statoDa = richiesta.getStato().intValue();
int check = StateManagerDonor.checkTransition(richiesta.getIdRichiesta(), StatoRichiestaDon.ACCETTATA);
if (check != StateManagerDonor.TRANSIZIONE_NON_POSSIBILE) {
// CALCOLA DATA SCADENZA ALLA MEZZANOTTE DEL 16� GIORNO
// CALCOLA DATA SCADENZA ALLA MEZZANOTTE DEL 16-esimo GIORNO
Date dataScadenza = DateUtils.aggiungiGiorniLavorativiTodateImpostaOra(new Date(), 16, 0, 0, 0);
richiesta.setStato((long) StatoRichiestaDon.ACCETTATA);
richiesta.setDataScadenza(dataScadenza);

View File

@@ -116,16 +116,27 @@ public class RequestManagerDonor82 {
richiesteDonor.setCodiceOrdineRecipient(oloRichiesteDonorIn.getCodiceOrdineRecipient());
richiesteDonor.setStato((long) StatoRichiestaDon.ACQUISITA);
richiesteDonor.setDataRicezione(oloRichiesteDonorIn.getDataRicezione());
//Data Fine Wait - Calcolata con DataRicezione + 24H lavorative
richiesteDonor.setDfw(DateUtils.aggiungi24OreLavorative(oloRichiesteDonorIn.getDataRicezione()));
//Calcolata con DataRicezione + 17 giorni lavorativi
richiesteDonor.setDataScadenza(DateUtils.aggiungiGiorniLavorativiTodateImpostaOra
(oloRichiesteDonorIn.getDataRicezione(),
ApplicationCostants.GIORNI_CALCOLO_DATA_SCADENZA,
ApplicationCostants.ORA_CALCOLO_DATA_SCADENZA,
ApplicationCostants.MINUTI_CALCOLO_DATA_SCADENZA,
ApplicationCostants.SECONDI_CALCOLO_DATA_SCADENZA)
//Data Fine Wait (o Data di Silenzio Assenso) - Calcolata con DataRicezione + 2gg lavorativi entro le 18:00
richiesteDonor.setDfw(DateUtils.aggiungiGiorniLavorativiTodateImpostaOra(
oloRichiesteDonorIn.getDataRicezione(),
ApplicationCostants.GIORNI_CALCOLO_DFW_DEL_82,
ApplicationCostants.ORA_CALCOLO_DFW_DEL_82,
ApplicationCostants.MINUTI_CALCOLO_DFW_DEL_82,
ApplicationCostants.SECONDI_CALCOLO_DFW_DEL_82
)
);
//Data Scadenza Codice Sessione - Calcolata con DataRicezione + 15 giorni lavorativi
richiesteDonor.setDataScadenza(DateUtils.aggiungiGiorniLavorativiTodateImpostaOra(
oloRichiesteDonorIn.getDataRicezione(),
ApplicationCostants.GIORNI_CALCOLO_DATA_SCADENZA_D82,
ApplicationCostants.ORA_CALCOLO_DATA_SCADENZA_D82,
ApplicationCostants.MINUTI_CALCOLO_DATA_SCADENZA_D82,
ApplicationCostants.SECONDI_CALCOLO_DATA_SCADENZA_D82
)
);
richiesteDonor.setCor(oloRichiesteDonorIn.getCor());
richiesteDonor.setCos(oloRichiesteDonorIn.getCos());
richiesteDonor.setDn2(oloRichiesteDonorIn.getDn2());
@@ -158,11 +169,12 @@ public class RequestManagerDonor82 {
int statoDa = richiesta.getStato().intValue();
int check = StateManagerDonor.checkTransition(richiesta.getIdRichiesta(), StatoRichiestaDon.ACCETTATA);
if (check != StateManagerDonor.TRANSIZIONE_NON_POSSIBILE) {
// CALCOLA DATA SCADENZA ALLA MEZZANOTTE DEL 16-esimo GIORNO
log.write("9999", "avanzaStatoInAccettata richiestaD82:" + richiesta.getIdRichiesta());
Date dataScadenza = DateUtils.aggiungiGiorniLavorativiTodateImpostaOra(new Date(), 16, 0, 0, 0);
// CALCOLA DATA SCADENZA ALLA MEZZANOTTE DEL 16-esimo GIORNO
//Date dataScadenza = DateUtils.aggiungiGiorniLavorativiTodateImpostaOra(new Date(), 16, 0, 0, 0);
richiesta.setStato((long) StatoRichiestaDon.ACCETTATA);
richiesta.setDataScadenza(dataScadenza);
//richiesta.setDataScadenza(dataScadenza);
ricDonorDAO.merge(richiesta);
logStoricoPassaggioStato(richiesta.getIdRichiesta(), statoDa, StatoRichiestaDon.ACCETTATA, log);
@@ -179,7 +191,7 @@ public class RequestManagerDonor82 {
GnpRichiesteDonor82 altraR = (GnpRichiesteDonor82) anAltreRichieste;
statoDa = altraR.getStato().intValue();
altraR.setStato((long) StatoRichiestaDon.SCADUTA);
altraR.setDataScadenza(dataScadenza);
altraR.setDataScadenza(richiesta.getDataScadenza()); // e non dataScadenza ricalcolata come in as-is
ricDonorDAO.merge(altraR);
logStoricoPassaggioStato(altraR.getIdRichiesta(), statoDa, StatoRichiestaDon.SCADUTA, log);
}

View File

@@ -226,12 +226,25 @@ public class ApplicationCostants {
public static final int RICHIESTE_CRMWS = 50;
}
// Giorni lavorativi aggiunti alla data ricezione per il calcolo della
// data scadenza
// Giorni lavorativi aggiunti alla data ricezione per il calcolo della data scadenza
public static final int GIORNI_CALCOLO_DATA_SCADENZA = 17;
public static final int ORA_CALCOLO_DATA_SCADENZA = 0;
public static final int MINUTI_CALCOLO_DATA_SCADENZA = 0;
public static final int SECONDI_CALCOLO_DATA_SCADENZA = 0;
// Giorni lavorativi aggiunti alla data ricezione per il calcolo della data scadenza del codice sessione in Del. 82
public static final int GIORNI_CALCOLO_DATA_SCADENZA_D82 = 15;
public static final int ORA_CALCOLO_DATA_SCADENZA_D82 = 0;
public static final int MINUTI_CALCOLO_DATA_SCADENZA_D82 = 0;
public static final int SECONDI_CALCOLO_DATA_SCADENZA_D82 = 0;
// Giorni lavorativi, Ora, minuti e secondi aggiunti alla data ricezione per il calcolo della data di fine wait (DFW)
// in Delibera 82 (Business e Consumer)
public static final int GIORNI_CALCOLO_DFW_DEL_82 = 2;
public static final int ORA_CALCOLO_DFW_DEL_82 = 18;
public static final int MINUTI_CALCOLO_DFW_DEL_82 = 0;
public static final int SECONDI_CALCOLO_DFW_DEL_82 = 0;
public static String getDescErrorOlo(String codError) throws UnsupportedOperationException{
String ret = null;

View File

@@ -393,8 +393,9 @@ public class NowController extends SystemController {
gnpNowDonorOut.setEsito("KO");
gnpNowDonorOut.setCodiceMotivazione("Y18");
gnpNowDonorOut.setMotivazione("Campo Directory Number 10 ERRATO");
} else if (richiestaD82.getStato().intValue() == 7 || richiestaD82.getStato().intValue() == 8
|| richiestaD82.getStato().intValue() == 9) {
} else if ( richiestaD82.getStato().intValue() == StatoRichiestaDon.SCADUTA ||
richiestaD82.getStato().intValue() == StatoRichiestaDon.PRESA_IN_CARICO_KO ||
richiestaD82.getStato().intValue() == StatoRichiestaDon.RIFIUTATA) {
gnpNowDonorOut.setEsito("KO");
gnpNowDonorOut.setCodiceMotivazione("Y20");
gnpNowDonorOut.setMotivazione("Codice sessione rifiutato in Fase 2");