Skip to content

Commit

Permalink
Fix #68 : Ripristinato l'uso della primitiva nodoInviaRPT nei pagamen…
Browse files Browse the repository at this point in the history
…ti ad iniziativa PSP
  • Loading branch information
nardil committed Oct 16, 2018
1 parent 98d2c36 commit 27336e3
Show file tree
Hide file tree
Showing 6 changed files with 69 additions and 23 deletions.
36 changes: 36 additions & 0 deletions govpay-core/src/main/java/it/govpay/core/utils/RptUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,42 @@ private static String getNotEmpty(String text) {
else
return text;
}

public static it.govpay.core.business.model.Risposta inviaRPT(Rpt rpt, BasicBD bd) throws GovPayException, ClientException, ServiceException {
if(bd != null) bd.closeConnection();
Evento evento = new Evento();
it.govpay.core.business.model.Risposta risposta = null;
try {
NodoClient client = new it.govpay.core.utils.client.NodoClient(rpt.getIntermediario(bd), bd);
NodoInviaRPT inviaRPT = new NodoInviaRPT();
inviaRPT.setIdentificativoCanale(rpt.getCodCanale());
inviaRPT.setIdentificativoIntermediarioPSP(rpt.getCodIntermediarioPsp());
inviaRPT.setIdentificativoPSP(rpt.getCodPsp());
inviaRPT.setPassword(rpt.getStazione(bd).getPassword());
inviaRPT.setRpt(rpt.getXmlRpt());

// FIX Bug Nodo che richiede firma vuota in caso di NESSUNA
inviaRPT.setTipoFirma("");
risposta = new it.govpay.core.business.model.Risposta(client.nodoInviaRPT(rpt.getIntermediario(bd), rpt.getStazione(bd), rpt, inviaRPT));
return risposta;
} finally {
// Se mi chiama InviaRptThread, BD e' null
boolean newCon = bd == null;
if(!newCon)
bd.setupConnection(GpThreadLocal.get().getTransactionId());
else {
bd = BasicBD.newInstance(GpThreadLocal.get().getTransactionId());
}

try {
GiornaleEventi giornale = new GiornaleEventi(bd);
buildEvento(evento, rpt, risposta, TipoEvento.nodoInviaRPT, bd);
giornale.registraEvento(evento);
} finally {
if(newCon) bd.closeConnection();
}
}
}

public static it.govpay.core.business.model.Risposta inviaCarrelloRPT(Intermediario intermediario, Stazione stazione, List<Rpt> rpts, BasicBD bd) throws GovPayException, ClientException, ServiceException {
if(bd != null) bd.closeConnection();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -244,6 +244,8 @@ public static SingoloVersamento toSingoloVersamentoModel(Versamento versamento,

try {
model.setIbanAccredito(AnagraficaManager.getIbanAccredito(bd, versamento.getUo(bd).getDominio(bd).getId(), singoloVersamento.getTributo().getIbanAccredito()));
if(singoloVersamento.getTributo().getIbanAppoggio() != null)
model.setIbanAppoggio(AnagraficaManager.getIbanAccredito(bd, versamento.getUo(bd).getDominio(bd).getId(), singoloVersamento.getTributo().getIbanAppoggio()));
model.setTipoContabilita(TipoContabilta.valueOf(singoloVersamento.getTributo().getTipoContabilita().toString()));
model.setCodContabilita(singoloVersamento.getTributo().getCodContabilita());
} catch (NotFoundException e) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
package it.govpay.core.utils.client;

import gov.telematici.pagamenti.ws.ppthead.IntestazioneCarrelloPPT;
import gov.telematici.pagamenti.ws.ppthead.IntestazionePPT;
import it.gov.digitpa.schemas._2011.ws.paa.NodoChiediCopiaRT;
import it.gov.digitpa.schemas._2011.ws.paa.NodoChiediCopiaRTRisposta;
import it.gov.digitpa.schemas._2011.ws.paa.NodoChiediElencoFlussiRendicontazione;
Expand All @@ -34,6 +35,8 @@
import it.gov.digitpa.schemas._2011.ws.paa.NodoChiediStatoRPTRisposta;
import it.gov.digitpa.schemas._2011.ws.paa.NodoInviaCarrelloRPT;
import it.gov.digitpa.schemas._2011.ws.paa.NodoInviaCarrelloRPTRisposta;
import it.gov.digitpa.schemas._2011.ws.paa.NodoInviaRPT;
import it.gov.digitpa.schemas._2011.ws.paa.NodoInviaRPTRisposta;
import it.gov.digitpa.schemas._2011.ws.paa.NodoInviaRichiestaStorno;
import it.gov.digitpa.schemas._2011.ws.paa.NodoInviaRichiestaStornoRisposta;
import it.gov.digitpa.schemas._2011.ws.paa.ObjectFactory;
Expand All @@ -46,6 +49,7 @@
import it.govpay.core.exceptions.GovPayException;
import it.govpay.core.utils.GpThreadLocal;
import it.govpay.model.Intermediario;
import it.govpay.model.Rpt;
import it.govpay.model.Stazione;

import javax.xml.bind.JAXBElement;
Expand All @@ -58,7 +62,7 @@ public class NodoClient extends BasicClient {


public enum Azione {
nodoInviaCarrelloRPT, nodoChiediStatoRPT, nodoChiediCopiaRT, nodoChiediListaPendentiRPT, nodoInviaRichiestaStorno, nodoChiediElencoFlussiRendicontazione, nodoChiediFlussoRendicontazione, nodoChiediSceltaWISP
nodoInviaRPT, nodoInviaCarrelloRPT, nodoChiediStatoRPT, nodoChiediCopiaRT, nodoChiediListaPendentiRPT, nodoInviaRichiestaStorno, nodoChiediElencoFlussiRendicontazione, nodoChiediFlussoRendicontazione, nodoChiediSceltaWISP
}

private static ObjectFactory objectFactory;
Expand Down Expand Up @@ -115,6 +119,21 @@ public Risposta send(String azione, JAXBElement<?> body, Object header) throws G
}

}

public NodoInviaRPTRisposta nodoInviaRPT(Intermediario intermediario, Stazione stazione, Rpt rpt, NodoInviaRPT inviaRPT) throws GovPayException, ClientException {
this.stazione = stazione.getCodStazione();
this.dominio = rpt.getCodDominio();

IntestazionePPT intestazione = new IntestazionePPT();
intestazione.setCodiceContestoPagamento(rpt.getCcp());
intestazione.setIdentificativoDominio(rpt.getCodDominio());
intestazione.setIdentificativoIntermediarioPA(intermediario.getCodIntermediario());
intestazione.setIdentificativoStazioneIntermediarioPA(stazione.getCodStazione());
intestazione.setIdentificativoUnivocoVersamento(rpt.getIuv());

Risposta response = send(Azione.nodoInviaRPT.toString(), objectFactory.createNodoInviaRPT(inviaRPT), intestazione);
return (NodoInviaRPTRisposta) response;
}

public NodoInviaCarrelloRPTRisposta nodoInviaCarrelloRPT(Intermediario intermediario, Stazione stazione, NodoInviaCarrelloRPT inviaCarrelloRPT, String codCarrello) throws GovPayException, ClientException {
IntestazioneCarrelloPPT intestazione = new IntestazioneCarrelloPPT();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,6 +25,7 @@
import it.govpay.core.utils.client.BasicClient.ClientException;
import it.govpay.bd.model.Notifica;
import it.govpay.bd.model.Pagamento;
import it.govpay.bd.model.SingoloVersamento;
import it.govpay.model.Notifica.StatoSpedizione;
import it.govpay.model.Notifica.TipoNotifica;
import it.govpay.core.utils.GpContext;
Expand Down Expand Up @@ -53,6 +54,10 @@ public InviaNotificaThread(Notifica notifica, BasicBD bd) throws ServiceExceptio
this.notifica.getApplicazione(bd);
if(this.notifica.getIdRpt() != null) {
this.notifica.getRpt(bd).getVersamento(bd);
for(SingoloVersamento sv : this.notifica.getRpt(bd).getVersamento(bd).getSingoliVersamenti(bd)) {
sv.getIbanAccredito(bd);
sv.getIbanAppoggio(bd);
}
List<Pagamento> pagamenti = this.notifica.getRpt(bd).getPagamenti(bd);
if(pagamenti != null) {
for(Pagamento pagamento : pagamenti)
Expand All @@ -62,6 +67,10 @@ public InviaNotificaThread(Notifica notifica, BasicBD bd) throws ServiceExceptio
this.notifica.getRr(bd);
this.notifica.getRr(bd).getRpt(bd);
this.notifica.getRr(bd).getRpt(bd).getVersamento(bd);
for(SingoloVersamento sv : this.notifica.getRpt(bd).getVersamento(bd).getSingoliVersamenti(bd)) {
sv.getIbanAccredito(bd);
sv.getIbanAppoggio(bd);
}
List<Pagamento> pagamenti = this.notifica.getRr(bd).getRpt(bd).getPagamenti(bd);
if(pagamenti != null) {
for(Pagamento pagamento : pagamenti)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,9 +20,6 @@
package it.govpay.core.utils.thread;


import java.util.ArrayList;
import java.util.List;

import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.Logger;
import org.apache.logging.log4j.ThreadContext;
Expand Down Expand Up @@ -75,10 +72,8 @@ public void run() {
ctx.getContext().getRequest().addGenericProperty(new Property("ccp", rpt.getCcp()));

ctx.log("pagamento.invioRptAttivata");

List<Rpt> rpts = new ArrayList<Rpt>();
rpts.add(rpt);
Risposta risposta = RptUtils.inviaCarrelloRPT(rpt.getIntermediario(bd), rpt.getStazione(bd), rpts, bd);

Risposta risposta = RptUtils.inviaRPT(rpt, bd);

if(bd == null) {
bd = BasicBD.newInstance(GpThreadLocal.get().getTransactionId());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,6 @@

import gov.telematici.pagamenti.ws.ppthead.IntestazionePPT;
import it.gov.digitpa.schemas._2011.ws.psp.CtSpezzoneStrutturatoCausaleVersamento;
import it.gov.digitpa.schemas._2011.pagamenti.CtDatiMarcaBolloDigitale;
import it.gov.digitpa.schemas._2011.pagamenti.CtSoggettoVersante;
import it.gov.digitpa.schemas._2011.pagamenti.StAutenticazioneSoggetto;
import it.gov.digitpa.schemas._2011.ws.psp.CtSpezzoniCausaleVersamento;
import it.gov.digitpa.schemas._2011.ws.psp.FaultBean;
import it.gov.digitpa.schemas._2011.ws.psp.EsitoAttivaRPT;
Expand All @@ -49,13 +46,8 @@
import it.govpay.model.Iuv;
import it.govpay.model.Iuv.TipoIUV;
import it.govpay.bd.model.Pagamento;
import it.govpay.model.Rpt.FirmaRichiesta;
import it.govpay.model.SingoloVersamento.TipoBollo;
import it.govpay.bd.model.Psp;
import it.govpay.bd.model.Rpt;
import it.govpay.bd.model.SingoloVersamento;
import it.govpay.bd.model.Stazione;
import it.govpay.bd.model.Tributo;
import it.govpay.bd.model.Versamento;
import it.govpay.model.Versamento.CausaleSemplice;
import it.govpay.model.Versamento.CausaleSpezzoni;
Expand Down Expand Up @@ -305,13 +297,6 @@ public PaaAttivaRPTRisposta paaAttivaRPT(PaaAttivaRPT bodyrichiesta, Intestazion
Rpt rpt = new RptBuilder().buildRptAttivata(bodyrichiesta.getIdentificativoIntermediarioPSP(), bodyrichiesta.getIdentificativoPSP(), bodyrichiesta.getIdentificativoCanalePSP(), versamento, iuv, ccp, bodyrichiesta.getDatiPagamentoPSP(), bd);

ctx.log("ccp.attivazione", rpt.getCodMsgRichiesta());

RptBD rptBD = new RptBD(bd);
// Da specifica, le RPT ad iniziativa PSP non possono richiedere firma
rpt.setFirmaRichiesta(FirmaRichiesta.NESSUNA);



bd.setAutoCommit(false);
bd.enableSelectForUpdate();

Expand Down

0 comments on commit 27336e3

Please sign in to comment.