From 9b0d5373cd70fc6817c7920b8d31294b8688c69b Mon Sep 17 00:00:00 2001 From: Zulio84 Date: Fri, 16 Feb 2024 09:42:39 +0100 Subject: [PATCH 1/3] Issue #691 (#695) Modificati criteri di applicazione dei fitri per EC autorizzati nella ricerca dei flussi di rendicontazione. --- .../get/flussiRendicontazione-auth-uo.feature | 16 ++-- ...flussiRendicontazione-find-auth-uo.feature | 80 +++++++++---------- ...flussiRendicontazione-find-auth-uo.feature | 40 +++++----- .../govpay/bd/pagamento/filters/FrFilter.java | 79 +++++++++--------- 4 files changed, 110 insertions(+), 105 deletions(-) diff --git a/integration-test/src/test/java/test/api/backoffice/v1/flussiRendicontazione/get/flussiRendicontazione-auth-uo.feature b/integration-test/src/test/java/test/api/backoffice/v1/flussiRendicontazione/get/flussiRendicontazione-auth-uo.feature index 000f4fa5e9..d31313cc0b 100644 --- a/integration-test/src/test/java/test/api/backoffice/v1/flussiRendicontazione/get/flussiRendicontazione-auth-uo.feature +++ b/integration-test/src/test/java/test/api/backoffice/v1/flussiRendicontazione/get/flussiRendicontazione-auth-uo.feature @@ -43,10 +43,10 @@ Examples: | applicazione_dominio1.json | 3 | | applicazione_dominio2.json | 2 | | applicazione_none.json | 0 | -| applicazione_dominio1e2_ec.json | 2 | -| applicazione_dominio1_ec.json | 1 | -| applicazione_dominio1_uo1.json | 1 | -| applicazione_dominio1_uo1e2.json | 2 | +| applicazione_dominio1e2_ec.json | 5 | +| applicazione_dominio1_ec.json | 3 | +| applicazione_dominio1_uo1.json | 3 | +| applicazione_dominio1_uo1e2.json | 3 | Scenario Outline: Ricerca rendicontazioni da operatore . @@ -92,10 +92,10 @@ Examples: | operatore_domini1.json | 3 | | operatore_domini2.json | 2 | | operatore_none.json | 0 | -| operatore_domini1e2_ec.json | 2 | -| operatore_domini1_ec.json | 1 | -| operatore_domini1_uo1.json | 1 | -| operatore_domini1_uo1e2.json | 2 | +| operatore_domini1e2_ec.json | 5 | +| operatore_domini1_ec.json | 3 | +| operatore_domini1_uo1.json | 3 | +| operatore_domini1_uo1e2.json | 3 | Scenario Outline: Lettura dettaglio applicazione [] del flusso di rendicontazione [] diff --git a/integration-test/src/test/java/test/api/backoffice/v1/flussiRendicontazione/get/flussiRendicontazione-find-auth-uo.feature b/integration-test/src/test/java/test/api/backoffice/v1/flussiRendicontazione/get/flussiRendicontazione-find-auth-uo.feature index ce06b78159..c66f6e7d33 100644 --- a/integration-test/src/test/java/test/api/backoffice/v1/flussiRendicontazione/get/flussiRendicontazione-find-auth-uo.feature +++ b/integration-test/src/test/java/test/api/backoffice/v1/flussiRendicontazione/get/flussiRendicontazione-find-auth-uo.feature @@ -71,26 +71,26 @@ Examples: | applicazione_none.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 0 | | applicazione_none.json | idflusso_dom2_uo | 403 | errore_auth.json | 0 | | applicazione_none.json | idflusso_dom2 | 403 | errore_auth.json | 0 | -| applicazione_dominio1e2_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 2 | -| applicazione_dominio1e2_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 2 | -| applicazione_dominio1e2_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 2 | -| applicazione_dominio1e2_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 2 | -| applicazione_dominio1e2_ec.json | idflusso_dom2 | 200 | flussoRendicontazioni.json | 2 | -| applicazione_dominio1_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 1 | -| applicazione_dominio1_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 1 | -| applicazione_dominio1_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 1 | -| applicazione_dominio1_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 1 | -| applicazione_dominio1_ec.json | idflusso_dom2 | 403 | errore_auth.json | 1 | -| applicazione_dominio1_uo1.json | idflusso_dom1 | 403 | errore_auth.json | 1 | -| applicazione_dominio1_uo1.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 1 | -| applicazione_dominio1_uo1.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 1 | -| applicazione_dominio1_uo1.json | idflusso_dom2_uo | 403 | errore_auth.json | 1 | -| applicazione_dominio1_uo1.json | idflusso_dom2 | 403 | errore_auth.json | 1 | -| applicazione_dominio1_uo1e2.json | idflusso_dom1 | 403 | errore_auth.json | 2 | -| applicazione_dominio1_uo1e2.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 2 | -| applicazione_dominio1_uo1e2.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 2 | -| applicazione_dominio1_uo1e2.json | idflusso_dom2_uo | 403 | errore_auth.json | 2 | -| applicazione_dominio1_uo1e2.json | idflusso_dom2 | 403 | errore_auth.json | 2 | +| applicazione_dominio1e2_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 5 | +| applicazione_dominio1e2_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 5 | +| applicazione_dominio1e2_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 5 | +| applicazione_dominio1e2_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 5 | +| applicazione_dominio1e2_ec.json | idflusso_dom2 | 200 | flussoRendicontazioni.json | 5 | +| applicazione_dominio1_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 3 | +| applicazione_dominio1_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 3 | +| applicazione_dominio1_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 3 | +| applicazione_dominio1_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 3 | +| applicazione_dominio1_ec.json | idflusso_dom2 | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1.json | idflusso_dom1 | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 3 | +| applicazione_dominio1_uo1.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1.json | idflusso_dom2_uo | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1.json | idflusso_dom2 | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1e2.json | idflusso_dom1 | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1e2.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 3 | +| applicazione_dominio1_uo1e2.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 3 | +| applicazione_dominio1_uo1e2.json | idflusso_dom2_uo | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1e2.json | idflusso_dom2 | 403 | errore_auth.json | 3 | | applicazione_dominio1_star.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 3 | | applicazione_dominio1_star.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 3 | | applicazione_dominio1_star.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 3 | @@ -169,25 +169,25 @@ Examples: | operatore_none.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 0 | | operatore_none.json | idflusso_dom2_uo | 403 | errore_auth.json | 0 | | operatore_none.json | idflusso_dom2 | 403 | errore_auth.json | 0 | -| operatore_domini1e2_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 2 | -| operatore_domini1e2_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 2 | -| operatore_domini1e2_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 2 | -| operatore_domini1e2_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 2 | -| operatore_domini1e2_ec.json | idflusso_dom2 | 200 | flussoRendicontazioni.json | 2 | -| operatore_domini1_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 1 | -| operatore_domini1_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 1 | -| operatore_domini1_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 1 | -| operatore_domini1_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 1 | -| operatore_domini1_ec.json | idflusso_dom2 | 403 | errore_auth.json | 1 | -| operatore_domini1_uo1.json | idflusso_dom1 | 403 | errore_auth.json | 1 | -| operatore_domini1_uo1.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 1 | -| operatore_domini1_uo1.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 1 | -| operatore_domini1_uo1.json | idflusso_dom2_uo | 403 | errore_auth.json | 1 | -| operatore_domini1_uo1.json | idflusso_dom2 | 403 | errore_auth.json | 1 | -| operatore_domini1_uo1e2.json | idflusso_dom1 | 403 | errore_auth.json | 2 | -| operatore_domini1_uo1e2.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 2 | -| operatore_domini1_uo1e2.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 2 | -| operatore_domini1_uo1e2.json | idflusso_dom2_uo | 403 | errore_auth.json | 2 | -| operatore_domini1_uo1e2.json | idflusso_dom2 | 403 | errore_auth.json | 2 | +| operatore_domini1e2_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 5 | +| operatore_domini1e2_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 5 | +| operatore_domini1e2_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 5 | +| operatore_domini1e2_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 5 | +| operatore_domini1e2_ec.json | idflusso_dom2 | 200 | flussoRendicontazioni.json | 5 | +| operatore_domini1_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 3 | +| operatore_domini1_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 3 | +| operatore_domini1_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 3 | +| operatore_domini1_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 3 | +| operatore_domini1_ec.json | idflusso_dom2 | 403 | errore_auth.json | 3 | +| operatore_domini1_uo1.json | idflusso_dom1 | 403 | errore_auth.json | 3 | +| operatore_domini1_uo1.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 3 | +| operatore_domini1_uo1.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 3 | +| operatore_domini1_uo1.json | idflusso_dom2_uo | 403 | errore_auth.json | 3 | +| operatore_domini1_uo1.json | idflusso_dom2 | 403 | errore_auth.json | 3 | +| operatore_domini1_uo1e2.json | idflusso_dom1 | 403 | errore_auth.json | 3 | +| operatore_domini1_uo1e2.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 3 | +| operatore_domini1_uo1e2.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 3 | +| operatore_domini1_uo1e2.json | idflusso_dom2_uo | 403 | errore_auth.json | 3 | +| operatore_domini1_uo1e2.json | idflusso_dom2 | 403 | errore_auth.json | 3 | diff --git a/integration-test/src/test/java/test/api/ragioneria/v2/flussiRendicontazione/get/flussiRendicontazione-find-auth-uo.feature b/integration-test/src/test/java/test/api/ragioneria/v2/flussiRendicontazione/get/flussiRendicontazione-find-auth-uo.feature index 72d937bfd8..df45329559 100644 --- a/integration-test/src/test/java/test/api/ragioneria/v2/flussiRendicontazione/get/flussiRendicontazione-find-auth-uo.feature +++ b/integration-test/src/test/java/test/api/ragioneria/v2/flussiRendicontazione/get/flussiRendicontazione-find-auth-uo.feature @@ -72,26 +72,26 @@ Examples: | applicazione_none.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 0 | | applicazione_none.json | idflusso_dom2_uo | 403 | errore_auth.json | 0 | | applicazione_none.json | idflusso_dom2 | 403 | errore_auth.json | 0 | -| applicazione_dominio1e2_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 2 | -| applicazione_dominio1e2_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 2 | -| applicazione_dominio1e2_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 2 | -| applicazione_dominio1e2_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 2 | -| applicazione_dominio1e2_ec.json | idflusso_dom2 | 200 | flussoRendicontazioni.json | 2 | -| applicazione_dominio1_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 1 | -| applicazione_dominio1_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 1 | -| applicazione_dominio1_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 1 | -| applicazione_dominio1_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 1 | -| applicazione_dominio1_ec.json | idflusso_dom2 | 403 | errore_auth.json | 1 | -| applicazione_dominio1_uo1.json | idflusso_dom1 | 403 | errore_auth.json | 1 | -| applicazione_dominio1_uo1.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 1 | -| applicazione_dominio1_uo1.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 1 | -| applicazione_dominio1_uo1.json | idflusso_dom2_uo | 403 | errore_auth.json | 1 | -| applicazione_dominio1_uo1.json | idflusso_dom2 | 403 | errore_auth.json | 1 | -| applicazione_dominio1_uo1e2.json | idflusso_dom1 | 403 | errore_auth.json | 2 | -| applicazione_dominio1_uo1e2.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 2 | -| applicazione_dominio1_uo1e2.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 2 | -| applicazione_dominio1_uo1e2.json | idflusso_dom2_uo | 403 | errore_auth.json | 2 | -| applicazione_dominio1_uo1e2.json | idflusso_dom2 | 403 | errore_auth.json | 2 | +| applicazione_dominio1e2_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 5 | +| applicazione_dominio1e2_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 5 | +| applicazione_dominio1e2_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 5 | +| applicazione_dominio1e2_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 5 | +| applicazione_dominio1e2_ec.json | idflusso_dom2 | 200 | flussoRendicontazioni.json | 5 | +| applicazione_dominio1_ec.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 3 | +| applicazione_dominio1_ec.json | idflusso_dom1_uo | 403 | errore_auth.json | 3 | +| applicazione_dominio1_ec.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 3 | +| applicazione_dominio1_ec.json | idflusso_dom2_uo | 403 | errore_auth.json | 3 | +| applicazione_dominio1_ec.json | idflusso_dom2 | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1.json | idflusso_dom1 | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 3 | +| applicazione_dominio1_uo1.json | idflusso_dom1_uo2 | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1.json | idflusso_dom2_uo | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1.json | idflusso_dom2 | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1e2.json | idflusso_dom1 | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1e2.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 3 | +| applicazione_dominio1_uo1e2.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 3 | +| applicazione_dominio1_uo1e2.json | idflusso_dom2_uo | 403 | errore_auth.json | 3 | +| applicazione_dominio1_uo1e2.json | idflusso_dom2 | 403 | errore_auth.json | 3 | | applicazione_dominio1_star.json | idflusso_dom1 | 200 | flussoRendicontazioni.json | 3 | | applicazione_dominio1_star.json | idflusso_dom1_uo | 200 | flussoRendicontazioni.json | 3 | | applicazione_dominio1_star.json | idflusso_dom1_uo2 | 200 | flussoRendicontazioni.json | 3 | diff --git a/jars/orm/src/main/java/it/govpay/bd/pagamento/filters/FrFilter.java b/jars/orm/src/main/java/it/govpay/bd/pagamento/filters/FrFilter.java index d221324491..6ca6a86003 100644 --- a/jars/orm/src/main/java/it/govpay/bd/pagamento/filters/FrFilter.java +++ b/jars/orm/src/main/java/it/govpay/bd/pagamento/filters/FrFilter.java @@ -272,16 +272,19 @@ public IExpression _toExpression() throws ServiceException { List listExpressionSingolaUO = new ArrayList<>(); for (IdUnitaOperativa idUnita : this.dominiUOAutorizzati) { - if(idUnita.getIdDominio() != null) { + if(idUnita.getCodDominio() != null) { IExpression newExpressionSingolaUO = this.newExpression(); - CustomField idDominioCustomField = new CustomField("id_dominio", Long.class, "id_dominio", this.getTable(FR.model().ID_SINGOLO_VERSAMENTO.ID_VERSAMENTO)); - newExpressionSingolaUO.equals(idDominioCustomField, idUnita.getIdDominio()); + newExpressionSingolaUO.equals(FR.model().COD_DOMINIO, idUnita.getCodDominio()); + + // eliminati filtri per UO, l'utenza e' abilitata sugli enti creditori +// CustomField idDominioCustomField = new CustomField("id_dominio", Long.class, "id_dominio", this.getTable(FR.model().ID_SINGOLO_VERSAMENTO.ID_VERSAMENTO)); +// newExpressionSingolaUO.equals(idDominioCustomField, idUnita.getIdDominio()); - if(idUnita.getIdUnita() != null ) { - CustomField iduoCustomField = new CustomField("id_uo", Long.class, "id_uo", this.getTable(FR.model().ID_SINGOLO_VERSAMENTO.ID_VERSAMENTO)); - newExpressionSingolaUO.and().equals(iduoCustomField, idUnita.getIdUnita()); - } +// if(idUnita.getIdUnita() != null ) { +// CustomField iduoCustomField = new CustomField("id_uo", Long.class, "id_uo", this.getTable(FR.model().ID_SINGOLO_VERSAMENTO.ID_VERSAMENTO)); +// newExpressionSingolaUO.and().equals(iduoCustomField, idUnita.getIdUnita()); +// } listExpressionSingolaUO.add(newExpressionSingolaUO); } @@ -412,42 +415,43 @@ public ISQLQueryObject toWhereCondition(ISQLQueryObject sqlQueryObject) throws S } if(this.dominiUOAutorizzati != null && this.dominiUOAutorizzati.size() > 0) { - String tableNameVersamenti = converter.toAliasTable(model.ID_SINGOLO_VERSAMENTO.ID_VERSAMENTO); - if(!addTabellaVersamenti) { - String tableNameSingoliVersamenti = converter.toAliasTable(model.ID_SINGOLO_VERSAMENTO); - - // FR -> R - sqlQueryObject.addFromTable(tableNameRendicontazioni); - sqlQueryObject.addWhereCondition(tableNameFr+".id="+tableNameRendicontazioni+".id_fr"); - // R -> SV - sqlQueryObject.addFromTable(tableNameSingoliVersamenti); - sqlQueryObject.addWhereCondition(tableNameRendicontazioni+".id_singolo_versamento="+tableNameSingoliVersamenti+".id"); - // SV -> V - sqlQueryObject.addFromTable(tableNameVersamenti); - sqlQueryObject.addWhereCondition(tableNameSingoliVersamenti+".id_versamento="+tableNameVersamenti+".id"); - - addTabellaVersamenti = true; - addTabellaRendicontazioni = true; - } +// String tableNameVersamenti = converter.toAliasTable(model.ID_SINGOLO_VERSAMENTO.ID_VERSAMENTO); +// if(!addTabellaVersamenti) { +// String tableNameSingoliVersamenti = converter.toAliasTable(model.ID_SINGOLO_VERSAMENTO); +// +// // FR -> R +// sqlQueryObject.addFromTable(tableNameRendicontazioni); +// sqlQueryObject.addWhereCondition(tableNameFr+".id="+tableNameRendicontazioni+".id_fr"); +// // R -> SV +// sqlQueryObject.addFromTable(tableNameSingoliVersamenti); +// sqlQueryObject.addWhereCondition(tableNameRendicontazioni+".id_singolo_versamento="+tableNameSingoliVersamenti+".id"); +// // SV -> V +// sqlQueryObject.addFromTable(tableNameVersamenti); +// sqlQueryObject.addWhereCondition(tableNameSingoliVersamenti+".id_versamento="+tableNameVersamenti+".id"); +// +// addTabellaVersamenti = true; +// addTabellaRendicontazioni = true; +// } List uoConditions = new ArrayList<>(); for (IdUnitaOperativa idUnita : this.dominiUOAutorizzati) { - if(idUnita.getIdDominio() != null) { + if(idUnita.getCodDominio() != null) { StringBuilder sb = new StringBuilder(); - sb.append(tableNameVersamenti + ".id_dominio = ? "); + sb.append(converter.toColumn(model.COD_DOMINIO, true) + " = ? "); + // Autorizzazione solo sui domini // IExpression newExpressionSingolaUO = this.newExpression(); // // CustomField idDominioCustomField = new CustomField("id_dominio", Long.class, "id_dominio", this.getTable(FR.model().ID_SINGOLO_VERSAMENTO.ID_VERSAMENTO)); // newExpressionSingolaUO.equals(idDominioCustomField, idUnita.getIdDominio()); - if(idUnita.getIdUnita() != null ) { - sb.append(" and "); - sb.append(tableNameVersamenti + ".id_uo = ? "); -// CustomField iduoCustomField = new CustomField("id_uo", Long.class, "id_uo", this.getTable(FR.model().ID_SINGOLO_VERSAMENTO.ID_VERSAMENTO)); -// newExpressionSingolaUO.and().equals(iduoCustomField, idUnita.getIdUnita()); - } +// if(idUnita.getIdUnita() != null ) { +// sb.append(" and "); +// sb.append(tableNameVersamenti + ".id_uo = ? "); +//// CustomField iduoCustomField = new CustomField("id_uo", Long.class, "id_uo", this.getTable(FR.model().ID_SINGOLO_VERSAMENTO.ID_VERSAMENTO)); +//// newExpressionSingolaUO.and().equals(iduoCustomField, idUnita.getIdUnita()); +// } uoConditions.add(sb.toString()); } @@ -532,11 +536,12 @@ public Object[] getParameters(ISQLQueryObject sqlQueryObject) throws ServiceExce if(this.dominiUOAutorizzati != null && this.dominiUOAutorizzati.size() > 0) { for (IdUnitaOperativa idUnita : this.dominiUOAutorizzati) { - if(idUnita.getIdDominio() != null) { - lst.add(idUnita.getIdDominio()); - if(idUnita.getIdUnita() != null ) { - lst.add(idUnita.getIdUnita()); - } + if(idUnita.getCodDominio() != null) { + lst.add(idUnita.getCodDominio()); + // autorizzazione solo sui domini +// if(idUnita.getIdUnita() != null ) { +// lst.add(idUnita.getIdUnita()); +// } } } } From c426892ebdd66d0eea68a0cc6687b964c2170d79 Mon Sep 17 00:00:00 2001 From: Giuliano Pintori Date: Fri, 16 Feb 2024 12:13:08 +0100 Subject: [PATCH 2/3] Corretti errori testsuite. --- .../post/pagamento-validazione-semantica.feature | 2 +- .../java/it/govpay/core/business/Versamento.java | 13 ++++++++++--- .../java/it/govpay/core/utils/VersamentoUtils.java | 2 +- 3 files changed, 12 insertions(+), 5 deletions(-) diff --git a/integration-test/src/test/java/test/api/pagamento/v1/pagamenti/post/pagamento-validazione-semantica.feature b/integration-test/src/test/java/test/api/pagamento/v1/pagamenti/post/pagamento-validazione-semantica.feature index d459915aa8..fcba77f3e5 100644 --- a/integration-test/src/test/java/test/api/pagamento/v1/pagamenti/post/pagamento-validazione-semantica.feature +++ b/integration-test/src/test/java/test/api/pagamento/v1/pagamenti/post/pagamento-validazione-semantica.feature @@ -65,6 +65,6 @@ And headers basicAutenticationHeader And request pagamentoPostEntrataRiferita When method post Then status 422 -And match response == { categoria: 'RICHIESTA', codice: '#notnull', descrizione: 'Richiesta non valida', dettaglio: '#notnull' } +And match response contains { categoria: 'RICHIESTA', codice: '#notnull', descrizione: 'Richiesta non valida', dettaglio: '#notnull' , id: '#notnull', location: '#notnull'} And match response.codice == 'VER_026' And match response.dettaglio == 'Lo IUV (000000000000000000) non e\' conforme alle specifiche agid, application code (00) non valido per la stazione (11111111113_01)' diff --git a/jars/core/src/main/java/it/govpay/core/business/Versamento.java b/jars/core/src/main/java/it/govpay/core/business/Versamento.java index 5852237828..2b43c979fa 100644 --- a/jars/core/src/main/java/it/govpay/core/business/Versamento.java +++ b/jars/core/src/main/java/it/govpay/core/business/Versamento.java @@ -81,11 +81,16 @@ public Versamento() { @Deprecated public it.govpay.bd.model.Versamento caricaVersamento(it.govpay.bd.model.Versamento versamento, boolean generaIuv, boolean aggiornaSeEsiste, Boolean avvisatura, Date dataAvvisatura, BasicBD bd) throws GovPayException { - return caricaVersamento(versamento, generaIuv, aggiornaSeEsiste, avvisatura, dataAvvisatura, bd, true); + return caricaVersamento(versamento, generaIuv, aggiornaSeEsiste, avvisatura, dataAvvisatura, bd, true, true); } - + @Deprecated public it.govpay.bd.model.Versamento caricaVersamento(it.govpay.bd.model.Versamento versamento, boolean generaIuv, boolean aggiornaSeEsiste, Boolean avvisatura, Date dataAvvisatura, BasicBD bd, boolean salvataggioSuDB) throws GovPayException { + return caricaVersamento(versamento, generaIuv, aggiornaSeEsiste, avvisatura, dataAvvisatura, bd, salvataggioSuDB, true); + } + + @Deprecated + public it.govpay.bd.model.Versamento caricaVersamento(it.govpay.bd.model.Versamento versamento, boolean generaIuv, boolean aggiornaSeEsiste, Boolean avvisatura, Date dataAvvisatura, BasicBD bd, boolean salvataggioSuDB, boolean controlloNumeroAvvisoDominioApplicazione) throws GovPayException { // Indica se devo gestire la transazione oppure se e' gestita dal chiamante boolean doCommit = false; IContext ctx = ContextThreadLocal.get(); @@ -163,7 +168,9 @@ public it.govpay.bd.model.Versamento caricaVersamento(it.govpay.bd.model.Versame } catch (NotFoundException e) { if(versamento.getNumeroAvviso()!=null) { // validazione del numero avviso in funzione della configurazione di dominio e applicazione - VersamentoUtils.checkNumeroAvvisoConformeAConfigurazioneDominioEStazione(versamento, applicazione, dominio); + if(controlloNumeroAvvisoDominioApplicazione) { + VersamentoUtils.checkNumeroAvvisoConformeAConfigurazioneDominioEStazione(versamento, applicazione, dominio); + } try { diff --git a/jars/core/src/main/java/it/govpay/core/utils/VersamentoUtils.java b/jars/core/src/main/java/it/govpay/core/utils/VersamentoUtils.java index f97fc5ead4..4af40e1133 100644 --- a/jars/core/src/main/java/it/govpay/core/utils/VersamentoUtils.java +++ b/jars/core/src/main/java/it/govpay/core/utils/VersamentoUtils.java @@ -463,7 +463,7 @@ public static Versamento acquisisciVersamento(Applicazione applicazione, String it.govpay.core.business.Versamento versamentoBusiness = new it.govpay.core.business.Versamento(); boolean generaIuv = VersamentoUtils.generaIUV(versamento, configWrapper); versamento.setTipo(tipo); - versamentoBusiness.caricaVersamento(versamento, generaIuv, true, false, null, null); + versamentoBusiness.caricaVersamento(versamento, generaIuv, true, false, null, null, true, false); } catch (ClientInitializeException e) { ctx.getApplicationLogger().log(MSG_DIAGNOSTICO_VERIFICA_FAIL_KEY, applicazione.getCodApplicazione(), codVersamentoEnteD, bundlekeyD, debitoreD, dominioD, iuvD, e.getMessage()); eventoCtx.setSottotipoEsito(EsitoOperazione.INTERNAL.toString()); From 0c89db36fdf47da6489f231db923b03e1a60483c Mon Sep 17 00:00:00 2001 From: Giuliano Pintori Date: Fri, 16 Feb 2024 15:40:32 +0100 Subject: [PATCH 3/3] Risolti errori testsuite. --- .../avvisi/get/avvisi-get-semantica.feature | 27 +++++++++++++++++-- .../pagamento-validazione-semantica.feature | 2 +- 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/integration-test/src/test/java/test/api/ente/v1/avvisi/get/avvisi-get-semantica.feature b/integration-test/src/test/java/test/api/ente/v1/avvisi/get/avvisi-get-semantica.feature index fb6e9f0072..978fb47bfc 100644 --- a/integration-test/src/test/java/test/api/ente/v1/avvisi/get/avvisi-get-semantica.feature +++ b/integration-test/src/test/java/test/api/ente/v1/avvisi/get/avvisi-get-semantica.feature @@ -53,11 +53,34 @@ Then status 200 Examples: | field | fieldRequest | fieldValue | fieldResponse | -| numeroAvviso | pendenza.numeroAvviso | buildNumeroAvviso(dominio, applicazione) | 'NumeroAvviso' | -# | numeroAvviso | pendenza.numeroAvviso | null | 'NumeroAvviso' | | idDominio | pendenza.idDominio | idDominio_2 | 'IdDominio' | | importo | pendenza.importo | 0.01 | 'importo' | +Scenario: Numero Avviso non valido + +* def pendenza = read('classpath:test/api/pendenza/v1/pendenze/put/msg/pendenza-put_monovoce_definito.json') + +* def numeroAvviso = buildNumeroAvviso(dominio, applicazione) +* def iuv = getIuvFromNumeroAvviso(numeroAvviso) +* def ccp = getCurrentTimeMillis() +* def importo = 10.00 +* set pendenza.idA2A = idA2A +* set pendenza.idPendenza = idPendenza +* set pendenza.numeroAvviso = '001340809425510244' +* set pendenza.stato = 'NON_ESEGUITA' + +Given url ente_api_url +And path '/v1/avvisi', idDominio, iuv +And request pendenza +When method post +Then status 200 + +* def tipoRicevuta = "R01" +* call read('classpath:utils/psp-attiva-rpt.feature') +* match response contains { dati: '##null'} +* match response.faultBean == esitoAttivaRPT +* match response.faultBean.description contains 'NumeroAvviso' + Scenario: Caricamento pendenza con contabilita errore validazione importi * def pendenzaPut = read('classpath:test/api/backoffice/v1/pendenze/put/msg/pendenza-put_monovoce_riferimento_contabilita.json') diff --git a/integration-test/src/test/java/test/api/pagamento/v2/pagamenti/post/pagamento-validazione-semantica.feature b/integration-test/src/test/java/test/api/pagamento/v2/pagamenti/post/pagamento-validazione-semantica.feature index 80e1735601..ac211aa987 100644 --- a/integration-test/src/test/java/test/api/pagamento/v2/pagamenti/post/pagamento-validazione-semantica.feature +++ b/integration-test/src/test/java/test/api/pagamento/v2/pagamenti/post/pagamento-validazione-semantica.feature @@ -65,6 +65,6 @@ And headers basicAutenticationHeader And request pagamentoPostEntrataRiferita When method post Then status 422 -And match response == { categoria: 'RICHIESTA', codice: '#notnull', descrizione: 'Richiesta non valida', dettaglio: '#notnull' } +And match response contains { categoria: 'RICHIESTA', codice: '#notnull', descrizione: 'Richiesta non valida', dettaglio: '#notnull' } And match response.codice == 'VER_026' And match response.dettaglio == 'Lo IUV (000000000000000000) non e\' conforme alle specifiche agid, application code (00) non valido per la stazione (11111111113_01)'