Skip to content

Commit

Permalink
Merge branch 'feature/326_pagamenti_altri_intermediari_nelle_riconcil…
Browse files Browse the repository at this point in the history
…iazioni' into 3.5.x
  • Loading branch information
nardil committed Jun 22, 2021
2 parents 4700492 + 86d6b45 commit b8f9a91
Show file tree
Hide file tree
Showing 9 changed files with 104 additions and 15 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -289,7 +289,7 @@ public RichiestaIncassoDTOResponse richiestaIncasso(RichiestaIncassoDTO richiest

Versamento versamentoBusiness = new Versamento();
EventiBD eventiBD = new EventiBD(configWrapper);

richiestaIncassoResponse.setFr(fr);
for(Rendicontazione rendicontazione : fr.getRendicontazioni(incassiBD)) {

if(rendicontazione.getStato().equals(StatoRendicontazione.ALTRO_INTERMEDIARIO)) continue;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,16 @@
import it.govpay.bd.BasicBD;
import it.govpay.bd.FilterSortWrapper;
import it.govpay.bd.model.Applicazione;
import it.govpay.bd.model.Fr;
import it.govpay.bd.model.Incasso;
import it.govpay.bd.model.Operatore;
import it.govpay.bd.model.Pagamento;
import it.govpay.bd.model.SingoloVersamento;
import it.govpay.bd.model.Versamento;
import it.govpay.bd.pagamento.FrBD;
import it.govpay.bd.pagamento.IncassiBD;
import it.govpay.bd.pagamento.PagamentiBD;
import it.govpay.bd.pagamento.filters.FrFilter;
import it.govpay.bd.pagamento.filters.IncassoFilter;
import it.govpay.bd.pagamento.filters.PagamentoFilter;
import it.govpay.core.autorizzazione.AuthorizationManager;
Expand Down Expand Up @@ -224,9 +227,18 @@ public RichiestaIncassoDTOResponse richiestaIncasso(RichiestaIncassoDTO richiest
}
}

richiestaIncassoDTOResponse.getIncasso().setPagamenti(pagamenti);
FrBD frBD = new FrBD(incassiBD);
frBD.setAtomica(false);
FrFilter frFilter = frBD.newFilter();
frFilter.setIdIncasso(richiestaIncassoDTOResponse.getIncasso().getId());
List<Fr> frs = frBD.findAll(frFilter);
if(frs.size() > 0) {
Fr fr = frs.get(0);
fr.getRendicontazioni(frBD);
richiestaIncassoDTOResponse.setFr(fr);
}


richiestaIncassoDTOResponse.getIncasso().setPagamenti(pagamenti);
richiestaIncassoDTOResponse.getIncasso().getApplicazione(configWrapper);
richiestaIncassoDTOResponse.getIncasso().getOperatore(configWrapper);
richiestaIncassoDTOResponse.getIncasso().getDominio(configWrapper);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
package it.govpay.core.dao.pagamenti.dto;

import it.govpay.bd.model.Fr;
import it.govpay.bd.model.Incasso;

public class LeggiIncassoDTOResponse {

private Incasso incasso;

private Fr fr;

public Incasso getIncasso() {
return this.incasso;
}
Expand All @@ -14,4 +16,12 @@ public void setIncasso(Incasso incasso) {
this.incasso = incasso;
}

public Fr getFr() {
return fr;
}

public void setFr(Fr fr) {
this.fr = fr;
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -19,12 +19,14 @@
*/
package it.govpay.core.dao.pagamenti.dto;

import it.govpay.bd.model.Fr;
import it.govpay.bd.model.Incasso;
import it.govpay.core.dao.anagrafica.dto.BasicCreateResponseDTO;

public class RichiestaIncassoDTOResponse extends BasicCreateResponseDTO{

private Incasso incasso;
private Fr fr;

public Incasso getIncasso() {
return this.incasso;
Expand All @@ -33,4 +35,12 @@ public Incasso getIncasso() {
public void setIncasso(Incasso incasso) {
this.incasso = incasso;
}

public Fr getFr() {
return fr;
}

public void setFr(Fr fr) {
this.fr = fr;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,6 @@ public static String getRiferimentoIncassoCumulativo(String causale) {
while (matcher.find()) {
for(int i=1; i<=matcher.groupCount(); i++) {
String match = matcher.group(i);
System.out.println(match);
if(patternIDF.matcher(match).find()) {
return match;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,6 +50,7 @@ public class FrFilter extends AbstractFilter {

//select distinct id from fr join rendicontazioni on rendicontazioni.id_fr = fr.id join pagamenti on rendicontazioni.id_pagamento = pagamenti.id join singoli_versamenti on pagamenti.id_singolo_versamento = singoli_versamenti.id join versamenti on singoli_versamenti.id_versamento = versamenti.id and versamenti.id_applicazione = 5;
private Long idApplicazione;
private Long idIncasso;
private List<String> codDominio;
private String codDominioFiltro;
private String codPsp;
Expand Down Expand Up @@ -178,6 +179,16 @@ public IExpression _toExpression() throws ServiceException {
addAnd = true;
}

if(this.idIncasso != null){
if(addAnd)
newExpression.and();

CustomField idIncassoField = new CustomField("id_incasso", Long.class, "id_incasso", this.getTable(FR.model()));
newExpression.equals(idIncassoField, idIncasso);

addAnd = true;
}

if(this.codDominio != null && this.codDominio.size() > 0){
if(addAnd)
newExpression.and();
Expand Down Expand Up @@ -681,4 +692,12 @@ public boolean isRicercaIdFlussoCaseInsensitive() {
public void setRicercaIdFlussoCaseInsensitive(boolean ricercaIdFlussoCaseInsensitive) {
this.ricercaIdFlussoCaseInsensitive = ricercaIdFlussoCaseInsensitive;
}

public Long getIdIncasso() {
return idIncasso;
}

public void setIdIncasso(Long idIncasso) {
this.idIncasso = idIncasso;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -40,9 +40,9 @@ public Riconciliazioni() throws ServiceException {
@Path("/{idDominio}")
@Consumes({ "application/json" })
@Produces({ "application/json" })
public Response addRiconciliazione(@Context UriInfo uriInfo, @Context HttpHeaders httpHeaders, @PathParam("idDominio") String idDominio, java.io.InputStream is, @QueryParam("idFlussoCaseInsensitive") Boolean idFlussoCaseInsensitive){
public Response addRiconciliazione(@Context UriInfo uriInfo, @Context HttpHeaders httpHeaders, @PathParam("idDominio") String idDominio, java.io.InputStream is, @QueryParam("idFlussoCaseInsensitive") Boolean idFlussoCaseInsensitive, @QueryParam("riscossioni.tipo") List<String> riscossioniTipo){
this.buildContext();
return this.controller.addRiconciliazione(this.getUser(), uriInfo, httpHeaders, idDominio, is, idFlussoCaseInsensitive);
return this.controller.addRiconciliazione(this.getUser(), uriInfo, httpHeaders, idDominio, is, idFlussoCaseInsensitive, riscossioniTipo);
}

@GET
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,10 @@
package it.govpay.ragioneria.v2.beans.converter;

<<<<<<< HEAD
import java.io.IOException;
=======
import java.math.BigDecimal;
>>>>>>> feature/326_pagamenti_altri_intermediari_nelle_riconciliazioni
import java.util.ArrayList;
import java.util.List;

Expand All @@ -9,14 +13,19 @@
import org.openspcoop2.utils.json.ValidationException;
import org.springframework.security.core.Authentication;

import it.govpay.bd.model.Fr;
import it.govpay.bd.model.Pagamento;
import it.govpay.core.autorizzazione.beans.GovpayLdapUserDetails;
import it.govpay.core.autorizzazione.utils.AutorizzazioneUtils;
import it.govpay.core.dao.pagamenti.dto.RichiestaIncassoDTO;
import it.govpay.model.Pagamento.TipoPagamento;
import it.govpay.model.Rendicontazione;
import it.govpay.model.Rendicontazione.StatoRendicontazione;
import it.govpay.ragioneria.v2.beans.NuovaRiconciliazione;
import it.govpay.ragioneria.v2.beans.Riconciliazione;
import it.govpay.ragioneria.v2.beans.RiconciliazioneIndex;
import it.govpay.ragioneria.v2.beans.RiscossioneIndex;
import it.govpay.ragioneria.v2.beans.TipoRiscossione;

public class RiconciliazioniConverter {

Expand All @@ -38,7 +47,7 @@ public static RichiestaIncassoDTO toRichiestaIncassoDTO(NuovaRiconciliazione inc
}


public static Riconciliazione toRsModel(it.govpay.bd.model.Incasso i) throws ServiceException, NotFoundException, IOException, ValidationException {
public static Riconciliazione toRsModel(it.govpay.bd.model.Incasso i, Fr fr, List<TipoPagamento> riscossioniTipo) throws ServiceException, NotFoundException {
Riconciliazione rsModel = new Riconciliazione();

rsModel.setCausale(i.getCausale());
Expand All @@ -49,15 +58,28 @@ public static Riconciliazione toRsModel(it.govpay.bd.model.Incasso i) throws Ser
rsModel.setIdDominio(i.getCodDominio());
rsModel.setSct(i.getSct());
rsModel.setContoAccredito(i.getIbanAccredito());
if(i.getPagamenti()!= null) {
List<RiscossioneIndex> riscossioni = new ArrayList<>();
List<RiscossioneIndex> riscossioni = new ArrayList<>();
if(i.getPagamenti()!= null && riscossioniTipo.contains(TipoPagamento.ENTRATA)) {
for (Pagamento pagamento : i.getPagamenti()) {
riscossioni.add(RiscossioniConverter.toRsModelIndexOld(pagamento));
}

rsModel.setRiscossioni(riscossioni);
}

if(fr != null && riscossioniTipo.contains(TipoPagamento.ALTRO_INTERMEDIARIO)) {
for(Rendicontazione r : fr.getRendicontazioni()) {
if(r.getStato().equals(StatoRendicontazione.ALTRO_INTERMEDIARIO)) {
RiscossioneIndex riscossioneIdx = new RiscossioneIndex();
riscossioneIdx.setData(r.getData());
riscossioneIdx.setImporto(r.getImporto());
riscossioneIdx.setIndice(BigDecimal.valueOf(r.getIndiceDati()));
riscossioneIdx.setIur(r.getIur());
riscossioneIdx.setIuv(r.getIuv());
riscossioneIdx.setTipo(TipoRiscossione.ALTRO_INTERMEDIARIO);
riscossioni.add(riscossioneIdx);
}
}
}
rsModel.setRiscossioni(riscossioni);
return rsModel;
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -170,7 +170,7 @@ public Response getRiconciliazione(Authentication user, UriInfo uriInfo, HttpHea

// CONVERT TO JSON DELLA RISPOSTA

Riconciliazione response = RiconciliazioniConverter.toRsModel(leggiIncassoDTOResponse.getIncasso());
Riconciliazione response = RiconciliazioniConverter.toRsModel(leggiIncassoDTOResponse.getIncasso(), leggiIncassoDTOResponse.getFr(), tipoEnum);

this.log.debug(MessageFormat.format(BaseController.LOG_MSG_ESECUZIONE_METODO_COMPLETATA, methodName));
return this.handleResponseOk(Response.status(Status.OK).entity(response.toJSON(null)),transactionId).build();
Expand All @@ -182,7 +182,7 @@ public Response getRiconciliazione(Authentication user, UriInfo uriInfo, HttpHea
}
}

public Response addRiconciliazione(Authentication user, UriInfo uriInfo, HttpHeaders httpHeaders , String idDominio, java.io.InputStream is, Boolean idFlussoCaseInsensitive) {
public Response addRiconciliazione(Authentication user, UriInfo uriInfo, HttpHeaders httpHeaders , String idDominio, java.io.InputStream is, Boolean idFlussoCaseInsensitive, List<String> riscossioniTipo) {
String methodName = "addRiconciliazione";
String transactionId = ContextThreadLocal.get().getTransactionId();
this.log.debug(MessageFormat.format(BaseController.LOG_MSG_ESECUZIONE_METODO_IN_CORSO, methodName));
Expand All @@ -205,11 +205,28 @@ public Response addRiconciliazione(Authentication user, UriInfo uriInfo, HttpHea
richiestaIncassoDTO.setRicercaIdFlussoCaseInsensitive(idFlussoCaseInsensitive);
}

List<TipoPagamento> tipoEnum = new ArrayList<>();
if(riscossioniTipo == null || riscossioniTipo.isEmpty()) { // valori di default
tipoEnum.add(TipoPagamento.ENTRATA);
tipoEnum.add(TipoPagamento.MBT);
}

if(riscossioniTipo!=null) {
for (String tipoS : riscossioniTipo) {
TipoRiscossione tipoRiscossione = TipoRiscossione.fromValue(tipoS);
if(tipoRiscossione != null) {
tipoEnum.add(TipoPagamento.valueOf(tipoRiscossione.toString()));
} else {
throw new ValidationException("Codifica inesistente per tipo. Valore fornito [" + riscossioniTipo + "] valori possibili " + ArrayUtils.toString(TipoRiscossione.values()));
}
}
}

IncassiDAO incassiDAO = new IncassiDAO();

RichiestaIncassoDTOResponse richiestaIncassoDTOResponse = incassiDAO.richiestaIncasso(richiestaIncassoDTO);

Riconciliazione incassoExt = RiconciliazioniConverter.toRsModel(richiestaIncassoDTOResponse.getIncasso());
Riconciliazione incassoExt = RiconciliazioniConverter.toRsModel(richiestaIncassoDTOResponse.getIncasso(), richiestaIncassoDTOResponse.getFr(), tipoEnum);

Status responseStatus = richiestaIncassoDTOResponse.isCreated() ? Status.CREATED : Status.OK;

Expand Down

0 comments on commit b8f9a91

Please sign in to comment.