Skip to content

Commit

Permalink
Eliminato controllo di semantica sul numero di voci di una pendenza q…
Browse files Browse the repository at this point in the history
…uando si chiede la generazione del numero avviso.
  • Loading branch information
pintorig committed Mar 2, 2022
1 parent 988b754 commit e423125
Show file tree
Hide file tree
Showing 4 changed files with 69 additions and 9 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,6 @@ When method get
Then status 403



Scenario: Verifica avviso generato dopo il caricamento di uno spontaneo anonimo

* def idPendenza = getCurrentTimeMillis()
Expand Down Expand Up @@ -154,11 +153,16 @@ Then status 201
And match response == pendenzaCreataMSG
And match response.idPendenza contains '' + idPendenza

* def cookie1 = responseHeaders["Set-Cookie"][0]

* def numeroAvviso = response.numeroAvviso

* configure cookies = null

Given url pagamentiBaseurl
And path '/avvisi', idDominio, numeroAvviso
And header Accept = 'application/json'
And header cookie = cookie1
When method get
Then status 200
And match response ==
Expand All @@ -180,6 +184,7 @@ And match response ==
Given url pagamentiBaseurl
And path '/avvisi', idDominio, numeroAvviso
And header Accept = 'application/pdf'
And header cookie = cookie1
When method get
Then status 200

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
{
"idTipoPendenza" : 'LIBERO',
"idDominio": '#(idDominio)',
"causale": '#("Test " + idPendenza)',
"soggettoPagatore": {
"tipo": "F",
"identificativo": "RSSMRO00X00X000X",
"anagrafica": "Mario Rossi",
"email": null
},
"importo": 0.03,
"dataScadenza": "2030-12-31",
"voci": [
{
"idVocePendenza": "1",
"importo": 0.01,
"descrizione": "Importo 1",
"ibanAccredito": "#(ibanAccredito)",
"tipoContabilita": "ALTRO",
"codiceContabilita": "TEST"
},
{
"idVocePendenza": "2",
"importo": 0.02,
"descrizione": "Importo 2",
"ibanAccredito": "#(ibanAccredito)",
"tipoContabilita": "ALTRO",
"codiceContabilita": "TEST"
}
]
}
Original file line number Diff line number Diff line change
Expand Up @@ -21,3 +21,17 @@ Then status 201
# TODO VALIDAZIONE RISPOSTA


@test1
Scenario: Caricamento pendenza multivoce definita

* def idPendenza = getCurrentTimeMillis()
* def pendenzaPut = read('msg/pendenza-put_multivoce.json')

Given url pendenzeBaseurl
And path '/pendenze', idA2A, idPendenza
And headers basicAutenticationHeader
And request pendenzaPut
When method put
Then status 201


26 changes: 18 additions & 8 deletions jars/core/src/main/java/it/govpay/core/utils/VersamentoUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -108,9 +108,9 @@ public static void validazioneSemantica(Versamento versamento, boolean generaIuv
BDConfigWrapper configWrapper = new BDConfigWrapper(ContextThreadLocal.get().getTransactionId(), true);

// solo se non e' multibeneficiario
if(generaIuv && !VersamentoUtils.isPendenzaMultibeneficiario(versamento, configWrapper) && versamento.getSingoliVersamenti().size() != 1) {
throw new GovPayException(EsitoOperazione.VER_000, versamento.getApplicazione(configWrapper).getCodApplicazione(), versamento.getCodVersamentoEnte());
}
// if(generaIuv && !VersamentoUtils.isPendenzaMultibeneficiario(versamento, configWrapper) && versamento.getSingoliVersamenti().size() != 1) {
// throw new GovPayException(EsitoOperazione.VER_000, versamento.getApplicazione(configWrapper).getCodApplicazione(), versamento.getCodVersamentoEnte());
// }

BigDecimal somma = BigDecimal.ZERO;
List<String> codSingoliVersamenti = new ArrayList<>();
Expand Down Expand Up @@ -1012,13 +1012,23 @@ public static boolean isPendenzaMultibeneficiario(Versamento versamento, BDConfi
}

public static boolean generaIUV(Versamento versamento, BDConfigWrapper configWrapper) throws ServiceException {
if(isPendenzaMultibeneficiario(versamento, configWrapper)) {
return versamento.getNumeroAvviso() == null;

boolean hasBollo = false;
for(SingoloVersamento singoloVersamento : versamento.getSingoliVersamenti()) {
if(!hasBollo) {
if(singoloVersamento.getTipoBollo() != null && singoloVersamento.getHashDocumento() != null && singoloVersamento.getProvinciaResidenza() != null) {
hasBollo = true;
}
}
}

boolean generaIuv = versamento.getNumeroAvviso() == null && versamento.getSingoliVersamenti(configWrapper).size() == 1;

return generaIuv;
// se non c'e' una voce con il bollo devo semplicemente controllare che non me lo passino
if(!hasBollo) {
return versamento.getNumeroAvviso() == null;
} else {
// altrimenti non si genera
return false;
}
}

public static boolean isAllIBANPostali(Versamento versamento, BDConfigWrapper configWrapper) throws ServiceException {
Expand Down

0 comments on commit e423125

Please sign in to comment.