Skip to content

Commit

Permalink
Corretta gestione delle riconciliazioni per rendicontazioni senza RT
Browse files Browse the repository at this point in the history
  • Loading branch information
nardil committed Jul 20, 2021
1 parent fb995dc commit 6710344
Show file tree
Hide file tree
Showing 6 changed files with 19 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -455,9 +455,6 @@ public DownloadRendicontazioniResponse downloadRendicontazioni(IContext ctx, boo

ctx.getApplicationLogger().log("rendicontazioni.noPagamento", iuv, iur, indiceDati!=null ? indiceDati+"" : "null");
log.info("Pagamento [Dominio:" + codDominio + " Iuv:" + iuv + " Iur:" + iur + " Indice:" + indiceDati + "] rendicontato con errore: il pagamento non risulta presente in base dati.");
rendicontazione.addAnomalia("007101", "Il pagamento riferito dalla rendicontazione non risulta presente in base dati.");
fr.addAnomalia("007101", "Il pagamento riferito dalla rendicontazione non risulta presente in base dati.");
continue;
} catch (MultipleResultException e) {
// Individuati piu' pagamenti riferiti dalla rendicontazione
ctx.getApplicationLogger().log("rendicontazioni.poliPagamento", iuv, iur, indiceDati!=null ? indiceDati+"" : "null");
Expand Down
16 changes: 3 additions & 13 deletions jars/core/src/main/java/it/govpay/core/utils/IncassoUtils.java
Original file line number Diff line number Diff line change
Expand Up @@ -5,15 +5,14 @@

public class IncassoUtils {

private static Pattern patternSingoloRFS = Pattern.compile("^.*RFS[ \\/]([^ \\/]+)[ \\/]?.*$");
private static Pattern patternSingoloRFB = Pattern.compile("^.*RFB[ \\/]([^ \\/]+)[ \\/]?.*$");
private static Pattern patternSingolo = Pattern.compile("RF[SB].([0-9A-Za-z\\-_]+)");
private static Pattern patternCumulativo = Pattern.compile("PUR.LGPE-RIVERSAMENTO.URI.([0-9A-Za-z\\-_]+)");
private static Pattern patternCausale = Pattern.compile("^.*TXT[ \\/]([ \\/]?.*)$");
private static Pattern patternIDF = Pattern.compile("\\d\\d\\d\\d-\\d\\d-\\d\\d[0-9A-Za-z_]*-\\S*");
private static Pattern patternIUV = Pattern.compile("[0-9]{15,17}");
private static Pattern patternIUV = Pattern.compile("[0-9]{15,17}|^RF.*");

public static String getRiferimentoIncassoSingolo(String causale) {
Matcher matcher = patternSingoloRFS.matcher(causale);
Matcher matcher = patternSingolo.matcher(causale);
while (matcher.find()) {
for(int i=1; i<=matcher.groupCount(); i++) {
String match = matcher.group(i);
Expand All @@ -22,15 +21,6 @@ public static String getRiferimentoIncassoSingolo(String causale) {
}
}
}
matcher = patternSingoloRFB.matcher(causale);
while (matcher.find()) {
for(int i=1; i<=matcher.groupCount(); i++) {
String match = matcher.group(i);
if(patternIUV.matcher(match).find()) {
return match;
}
}
}
return null;
}

Expand Down
4 changes: 4 additions & 0 deletions src/main/resources/db/sql/mysql/patch/3.5.sql
Original file line number Diff line number Diff line change
Expand Up @@ -373,4 +373,8 @@ insert into sonde(nome, classe, soglia_warn, soglia_error) values ('check-riconc
insert into sonde(nome, classe, soglia_warn, soglia_error) values ('rpt-scadute', 'org.openspcoop2.utils.sonde.impl.SondaBatch', 86400000, 172800000);
insert into sonde(nome, classe, soglia_warn, soglia_error) values ('check-rpt-scadute', 'org.openspcoop2.utils.sonde.impl.SondaCoda', 10, 100);

-- 20/07/2021 Fix anomalie per rendicontazione senza RT

update rendicontazioni set stato='OK', anomalie=null where anomalie = '007101#Il pagamento riferito dalla rendicontazione non risulta presente in base dati.';
update fr set stato='OK', descrizione_stato = null where stato='ANOMALA' and id not in (select fr.id from fr join rendicontazioni on rendicontazioni.id_fr=fr.id where fr.stato='ANOMALA' and rendicontazioni.stato='ANOMALA');

4 changes: 4 additions & 0 deletions src/main/resources/db/sql/oracle/patch/3.5.sql
Original file line number Diff line number Diff line change
Expand Up @@ -467,4 +467,8 @@ insert into sonde(nome, classe, soglia_warn, soglia_error) values ('check-riconc
insert into sonde(nome, classe, soglia_warn, soglia_error) values ('rpt-scadute', 'org.openspcoop2.utils.sonde.impl.SondaBatch', 86400000, 172800000);
insert into sonde(nome, classe, soglia_warn, soglia_error) values ('check-rpt-scadute', 'org.openspcoop2.utils.sonde.impl.SondaCoda', 10, 100);

-- 20/07/2021 Fix anomalie per rendicontazione senza RT

update rendicontazioni set stato='OK', anomalie=null where anomalie = '007101#Il pagamento riferito dalla rendicontazione non risulta presente in base dati.';
update fr set stato='OK', descrizione_stato = null where stato='ANOMALA' and id not in (select fr.id from fr join rendicontazioni on rendicontazioni.id_fr=fr.id where fr.stato='ANOMALA' and rendicontazioni.stato='ANOMALA');

3 changes: 3 additions & 0 deletions src/main/resources/db/sql/postgresql/patch/3.5.sql
Original file line number Diff line number Diff line change
Expand Up @@ -466,4 +466,7 @@ insert into sonde(nome, classe, soglia_warn, soglia_error) values ('rpt-scadute'
insert into sonde(nome, classe, soglia_warn, soglia_error) values ('check-rpt-scadute', 'org.openspcoop2.utils.sonde.impl.SondaCoda', 10, 100);


-- 20/07/2021 Fix anomalie per rendicontazione senza RT

update rendicontazioni set stato='OK', anomalie=null where anomalie = '007101#Il pagamento riferito dalla rendicontazione non risulta presente in base dati.';
update fr set stato='OK', descrizione_stato = null where stato='ANOMALA' and id not in (select fr.id from fr join rendicontazioni on rendicontazioni.id_fr=fr.id where fr.stato='ANOMALA' and rendicontazioni.stato='ANOMALA');
6 changes: 5 additions & 1 deletion src/main/resources/db/sql/sqlserver/patch/3.5.sql
Original file line number Diff line number Diff line change
Expand Up @@ -466,4 +466,8 @@ insert into sonde(nome, classe, soglia_warn, soglia_error) values ('rpt-scadute'
insert into sonde(nome, classe, soglia_warn, soglia_error) values ('check-rpt-scadute', 'org.openspcoop2.utils.sonde.impl.SondaCoda', 10, 100);



-- 20/07/2021 Fix anomalie per rendicontazione senza RT

update rendicontazioni set stato='OK', anomalie=null where anomalie = '007101#Il pagamento riferito dalla rendicontazione non risulta presente in base dati.';
update fr set stato='OK', descrizione_stato = null where stato='ANOMALA' and id not in (select fr.id from fr join rendicontazioni on rendicontazioni.id_fr=fr.id where fr.stato='ANOMALA' and rendicontazioni.stato='ANOMALA');

0 comments on commit 6710344

Please sign in to comment.