Skip to content

Commit

Permalink
Aggiunto controllo BOEST
Browse files Browse the repository at this point in the history
  • Loading branch information
mspasiano committed Jan 22, 2019
1 parent 74f6d6d commit cae2950
Show file tree
Hide file tree
Showing 10 changed files with 105 additions and 76 deletions.
2 changes: 1 addition & 1 deletion pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
<sonar.skip>true</sonar.skip>
<java.version>1.8</java.version>
<spring.version>4.3.3.RELEASE</spring.version>
<jada.version>6.0.40</jada.version>
<jada.version>6.0.41</jada.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sigla.build.number>${maven.build.timestamp}</sigla.build.number>
<slf4j.version>1.7.21</slf4j.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@
import it.cnr.contab.anagraf00.ejb.AnagraficoComponentSession;
import it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk;
import it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk;
import it.cnr.contab.anagraf00.tabter.bulk.NazioneHome;
import it.cnr.contab.compensi00.docs.bulk.CompensoBulk;
import it.cnr.contab.compensi00.docs.bulk.CompensoHome;
import it.cnr.contab.compensi00.tabrif.bulk.Tipo_trattamentoBulk;
Expand Down Expand Up @@ -4766,6 +4767,25 @@ private it.siopeplus.Mandato creaMandatoFlussoSiopeplus(UserContext userContext,
.map(Rif_modalita_pagamentoBulk.class::cast)
.orElseThrow(() -> new ApplicationMessageFormatException("Modalità di pagamento non trovata: {0}", modalitaPagamento));

if (Rif_modalita_pagamentoBulk.IBAN.equals(rif_modalita_pagamentoBulk.getTi_pagamento())) {
final Optional<String> codiceNazione = Optional.ofNullable(docContabile.getCdIso());
if (codiceNazione.isPresent()) {
NazioneHome nazioneHome = (NazioneHome) getHome(userContext,NazioneBulk.class);
SQLBuilder sqlExists = nazioneHome.createSQLBuilder();
sqlExists.addSQLClause("AND","NAZIONE.CD_ISO",SQLBuilder.EQUALS,codiceNazione.get());
sqlExists.addSQLClause("AND","NAZIONE.FL_SEPA",SQLBuilder.EQUALS,"Y");
if (sqlExists.executeCountQuery(getConnection(userContext))!=0 )
throw new ApplicationMessageFormatException("Attenzione la modalità di pagamento {0} presente sul mandato {1}/{2}/{3} non è " +
"coerente con la nazione {4} del beneficiario!",
rif_modalita_pagamentoBulk.getCd_modalita_pag(),
String.valueOf(bulk.getEsercizio()),
String.valueOf(bulk.getCd_cds()),
String.valueOf(bulk.getPg_documento_cont()),
codiceNazione.get());
}
}


final Rif_modalita_pagamentoBulk.TipoPagamentoSiopePlus tipoPagamentoSiopePlus =
Optional.ofNullable(rif_modalita_pagamentoBulk.getTipo_pagamento_siope())
.map(s -> Rif_modalita_pagamentoBulk.TipoPagamentoSiopePlus.getValueFrom(s))
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5629,10 +5629,11 @@ private void verificaModalitaPagamento(UserContext aUC, MandatoBulk mandato)
"Attenzione per la modalità di pagamento "+rifModPag.getCd_modalita_pag()+" la data pagamento richiesta non può essere inferiore alla data contabilizzazione.");

}



if (riga.getBanca() == null
|| Rif_modalita_pagamentoBulk.ALTRO.equals(riga.getBanca()
.getTi_pagamento())
|| Rif_modalita_pagamentoBulk.IBAN.equals(riga.getBanca()
.getTi_pagamento()))
return;

Expand All @@ -5643,8 +5644,23 @@ private void verificaModalitaPagamento(UserContext aUC, MandatoBulk mandato)
String nrConto = riga.getBanca().getNumero_conto();
String quietanza = riga.getBanca().getQuietanza();
String intestazione = riga.getBanca().getIntestazione();
String cd_modalita_pag = riga.getModalita_pagamento()
.getCd_modalita_pag();
String cd_modalita_pag = riga.getModalita_pagamento().getCd_modalita_pag();

if (Rif_modalita_pagamentoBulk.IBAN.equals(riga.getBanca().getTi_pagamento())) {
final Optional<String> codiceNazione = Optional.ofNullable(riga.getBanca())
.flatMap(bancaBulk -> Optional.ofNullable(bancaBulk.getCodice_iban()))
.map(s -> s.substring(0, 2));
if (codiceNazione.isPresent()) {
NazioneHome nazioneHome = (NazioneHome) getHome(aUC,NazioneBulk.class);
SQLBuilder sqlExists = nazioneHome.createSQLBuilder();
sqlExists.addSQLClause("AND","NAZIONE.CD_ISO",SQLBuilder.EQUALS,codiceNazione.get());
sqlExists.addSQLClause("AND","NAZIONE.FL_SEPA",SQLBuilder.EQUALS,"Y");
if (sqlExists.executeCountQuery(getConnection(aUC))!=0 )
throw new ApplicationMessageFormatException("Attenzione la modalità di pagamento {0} presente sul documento non è " +
"coerente con la nazione {1} del beneficiario!", cd_modalita_pag, codiceNazione.get());
}
return;
}

/*
* verifico che ogni riga abbia le modalità di pagamento e gli
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
import it.cnr.contab.missioni00.docs.bulk.RimborsoHome;
import it.cnr.contab.service.SpringUtil;
import it.cnr.contab.utenze00.bp.CNRUserContext;
import it.cnr.contab.util.enumeration.EsitoOperazione;
import it.cnr.jada.UserContext;
import it.cnr.jada.bulk.BulkHome;
import it.cnr.jada.bulk.OggettoBulk;
Expand Down Expand Up @@ -384,8 +385,17 @@ public SQLBuilder selectByClauseForFirmaMandati(UserContext usercontext, V_manda
sqlBuilder.closeParenthesis();
sqlBuilder.closeParenthesis();
}

sqlBuilder.openParenthesis(FindClause.AND);
sqlBuilder.addClause(FindClause.AND, "ti_documento_cont", SQLBuilder.NOT_EQUALS, MandatoBulk.TIPO_REGOLARIZZAZIONE);
sqlBuilder.addClause(FindClause.AND, "ti_documento_cont", SQLBuilder.NOT_EQUALS, ReversaleIBulk.TIPO_INCASSO);
sqlBuilder.openParenthesis(FindClause.OR);
sqlBuilder.addClause(FindClause.AND, "stato", SQLBuilder.EQUALS, "A");
sqlBuilder.addClause(FindClause.AND, "esitoOperazione", SQLBuilder.EQUALS, EsitoOperazione.ACQUISITO.value());
sqlBuilder.addJoin("pg_documento_cont", "pg_documento_cont_padre");
sqlBuilder.addClause(FindClause.AND, "cd_tipo_documento_cont", SQLBuilder.EQUALS, Numerazione_doc_contBulk.TIPO_REV);
sqlBuilder.closeParenthesis();
sqlBuilder.closeParenthesis();

sqlBuilder.openParenthesis(FindClause.AND);
sqlBuilder.addClause(FindClause.AND, "stato", SQLBuilder.NOT_EQUALS, "A");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -717,54 +717,52 @@ public boolean inviaPEC(UserContext context, Distinta_cassiereBulk distinta) thr
distinta.getStorePath().concat(StorageService.SUFFIX).concat(distinta.getCMISName()));

nodes.add(distintaStorageObject.getPropertyValue(StoragePropertyNames.ALFCMIS_NODEREF.value()));
List<V_mandato_reversaleBulk> dettagliRev = distintaCassiereComponentSession
.dettagliDistinta(
userContext,
distinta,
it.cnr.contab.doccont00.core.bulk.Numerazione_doc_contBulk.TIPO_REV);
dettagliRev.stream()
.filter(v_mandato_reversaleBulk -> {
try {
return isRiferimentoDocumentoEsterno(v_mandato_reversaleBulk);
} catch (RemoteException|ComponentException e) {
logger.error("SIOPE+ Invia PEC", e);
return Boolean.FALSE;
}
})
.map(v_mandato_reversaleBulk -> getDocumentKey(v_mandato_reversaleBulk, true))
.filter(s -> s != null)
.forEach(s -> nodes.add(s));


List<V_mandato_reversaleBulk> dettagliMan = distintaCassiereComponentSession
.dettagliDistinta(
userContext,
distinta,
it.cnr.contab.doccont00.core.bulk.Numerazione_doc_contBulk.TIPO_MAN);
dettagliMan.stream()
.filter(v_mandato_reversaleBulk -> {
try {
return isRiferimentoDocumentoEsterno(v_mandato_reversaleBulk);
} catch (RemoteException|ComponentException e) {
logger.error("SIOPE+ Invia PEC", e);
return Boolean.FALSE;
}
})
.map(v_mandato_reversaleBulk -> getDocumentKey(v_mandato_reversaleBulk, true))
.filter(s -> s != null)
.forEach(s -> nodes.add(s));
if (nodes.size() > 1) {
inviaDistintaPEC(nodes, false,
"Identificativo_flusso: " + distinta.getIdentificativoFlusso() +
" Progressivo Flusso: " + distinta.getProgFlusso() +
" Identificativo Flusso BT: " + distinta.getIdentificativoFlusso());
return Boolean.TRUE;
}
} catch (PersistencyException | EmailException | IOException _ex) {

return inviaPEC(distinta, dettagliMan, true, nodes) ||
inviaPEC(distinta, dettagliMan, false, nodes);

} catch (PersistencyException | IOException _ex) {
logger.error("Invio distinta {} fallito", distinta.getPg_distinta_def(), _ex);
}
return Boolean.FALSE;
}

private boolean inviaPEC(Distinta_cassiereBulk distinta, List<V_mandato_reversaleBulk> dettagliMan, boolean isEstero, List<String> args) throws ComponentException{
try {
List<String> nodes = new ArrayList<>();
nodes.addAll(args);
dettagliMan.stream()
.filter(v_mandato_reversaleBulk -> {
try {
return isRiferimentoDocumentoEsterno(v_mandato_reversaleBulk, isEstero);
} catch (RemoteException|ComponentException e) {
logger.error("SIOPE+ Invia PEC", e);
return Boolean.FALSE;
}
})
.map(v_mandato_reversaleBulk -> getDocumentKey(v_mandato_reversaleBulk, true))
.filter(s -> s != null)
.forEach(s -> nodes.add(s));
if (nodes.size() > 1) {
inviaDistintaPEC(nodes, isEstero,
"Identificativo_flusso: " + distinta.getIdentificativoFlusso() +
" Progressivo Flusso: " + distinta.getProgFlusso() +
" Identificativo Flusso BT: " + distinta.getIdentificativoFlusso());
return Boolean.TRUE;
}
} catch (EmailException | IOException _ex) {
logger.error("Invio distinta {} fallito", distinta.getPg_distinta_def(), _ex);
}
return Boolean.FALSE;
}

private void messaggioEsitoApplicativo(Risultato risultato, boolean annullaMandati, boolean annullaReversali) throws Exception {
final MessaggioXML<MessaggiEsitoApplicativo> messaggioXML = ordinativiSiopePlusService.getLocation(risultato.getLocation(), MessaggiEsitoApplicativo.class);
final MessaggiEsitoApplicativo messaggiEsitoApplicativo = messaggioXML.getObject();
Expand Down Expand Up @@ -1101,30 +1099,24 @@ public void messaggiSiopeplus(LocalDateTime dataDa, LocalDateTime dataA, Boolean

}

public boolean isRiferimentoDocumentoEsterno(V_mandato_reversaleBulk bulk) throws RemoteException, ComponentException {
return Arrays.asList(
Rif_modalita_pagamentoBulk.TipoPagamentoSiopePlus.DISPOSIZIONEDOCUMENTOESTERNO,
Rif_modalita_pagamentoBulk.TipoPagamentoSiopePlus.ACCREDITOCONTOCORRENTEPOSTALE
).contains(
getTipoPagamentoSiopePlus(bulk)
) && !bulk.getTi_documento_cont().equals(MandatoBulk.TIPO_REGOLAM_SOSPESO);
}

public Rif_modalita_pagamentoBulk.TipoPagamentoSiopePlus getTipoPagamentoSiopePlus(V_mandato_reversaleBulk bulk) throws RemoteException, ComponentException {

public boolean isRiferimentoDocumentoEsterno(V_mandato_reversaleBulk bulk, boolean isEstero) throws RemoteException, ComponentException {
final Rif_modalita_pagamentoBulk rif_modalita_pagamentoBulk =
Optional.ofNullable(distintaCassiereComponentSession.findModPag(userContext, bulk))
.filter(Rif_modalita_pagamentoBulk.class::isInstance)
.map(Rif_modalita_pagamentoBulk.class::cast)
.orElseThrow(() -> new ApplicationMessageFormatException("Modalità di pagamento non trovata: {0}", String.valueOf(bulk.getPg_documento_cont())));

return Optional.ofNullable(rif_modalita_pagamentoBulk.getTipo_pagamento_siope())
return Arrays.asList(
Rif_modalita_pagamentoBulk.TipoPagamentoSiopePlus.DISPOSIZIONEDOCUMENTOESTERNO,
Rif_modalita_pagamentoBulk.TipoPagamentoSiopePlus.ACCREDITOCONTOCORRENTEPOSTALE
).contains(
Optional.ofNullable(rif_modalita_pagamentoBulk.getTipo_pagamento_siope())
.map(s -> Rif_modalita_pagamentoBulk.TipoPagamentoSiopePlus.getValueFrom(s))
.orElseGet(() -> Rif_modalita_pagamentoBulk.TipoPagamentoSiopePlus.REGOLARIZZAZIONE);

.orElseGet(() -> Rif_modalita_pagamentoBulk.TipoPagamentoSiopePlus.REGOLARIZZAZIONE)
) && !bulk.getTi_documento_cont().equals(MandatoBulk.TIPO_REGOLAM_SOSPESO) &&
((isEstero && rif_modalita_pagamentoBulk.getTi_pagamento().equals(Rif_modalita_pagamentoBulk.IBAN)) || !isEstero);
}


class StorageDataSource implements DataSource {

private StorageObject storageObject;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,8 @@ Toolbar.refresh.href=javascript:submitForm('doRefresh')
Toolbar.refresh.style=width:60px;
Toolbar.refresh.title=Aggiorna
Toolbar.refresh.accessKey=A
Toolbar.refresh.iconClass=fa fa-2x fa-fw fa-refresh text-info
Toolbar.refresh.iconClass=fa fa-2x fa-fw fa-refresh
Toolbar.refresh.buttonClass=btn btn-outline-primary

Toolbar.predisponi.img=img/print24.gif
Toolbar.predisponi.disabledImg=img/print24.gif
Expand All @@ -15,7 +16,8 @@ Toolbar.predisponi.style=width:90px;
Toolbar.predisponi.enabledProperty=predisponiButtonEnabled
Toolbar.predisponi.title=Predisponi per la Firma
Toolbar.predisponi.accessKey=P
Toolbar.predisponi.iconClass=fa fa-2x fa-fw fa-print text-info
Toolbar.predisponi.iconClass=fa fa-2x fa-fw fa-plus-square-o
Toolbar.predisponi.buttonClass=btn btn-outline-primary btn-title

Toolbar.pdfdocumenti.img=img/application-pdf.png
Toolbar.pdfdocumenti.disabledImg=img/application-pdf.png
Expand Down Expand Up @@ -45,8 +47,8 @@ Toolbar.detail.style=width:60px;
Toolbar.detail.enabledProperty=detailButtonEnabled
Toolbar.detail.title=Dettagli Predisposizione
Toolbar.detail.accessKey=T
Toolbar.detail.iconClass=fa fa-2x fa-fw fa-list-ul text-warning

Toolbar.detail.iconClass=fa fa-2x fa-fw fa-list-ul
Toolbar.detail.buttonClass=btn btn-outline-primary

Toolbar.sign.img=img/sign24.gif
Toolbar.sign.disabledImg=img/sign24.gif
Expand Down
2 changes: 1 addition & 1 deletion sigla-swarm/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
<sonar.skip>true</sonar.skip>
<java.version>1.8</java.version>
<spring.version>4.3.3.RELEASE</spring.version>
<jada.version>6.0.40</jada.version>
<jada.version>6.0.41</jada.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sigla.build.number>${maven.build.timestamp}</sigla.build.number>
<slf4j.version>1.7.21</slf4j.version>
Expand Down
2 changes: 1 addition & 1 deletion sigla-web/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -188,7 +188,7 @@
<properties>
<sonar.skip>true</sonar.skip>
<spring.version>4.3.3.RELEASE</spring.version>
<jada.version>6.0.40</jada.version>
<jada.version>6.0.41</jada.version>
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
<sigla.build.number>${maven.build.timestamp}</sigla.build.number>
<slf4j.version>1.7.21</slf4j.version>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@
<body class="Form">
<% it.cnr.contab.doccont00.bp.CRUDDistintaCassiereBP bp = (it.cnr.contab.doccont00.bp.CRUDDistintaCassiereBP)BusinessProcess.getBusinessProcess(request);
bp.openFormWindow(pageContext); %>
<table class="Panel w-100">
<tr><td>
<% if (bp.isUoEnte() && bp.getModel()!=null && bp.getDistinteCassCollegateDet().countDetails()!=0)
JSPUtils.tabbed(
pageContext,
Expand All @@ -60,8 +58,6 @@
"center",
"100%",null);
%>
</td></tr>
</table>
<% bp.closeFormWindow(pageContext); %>
</body>
</html>
11 changes: 2 additions & 9 deletions sigla-web/src/main/webapp/doccont00/tab_distinta_dettaglio.jsp
Original file line number Diff line number Diff line change
Expand Up @@ -19,16 +19,9 @@ function doVisualizzaSingoloDocumento(esercizio, cds , uo, numero_documento, tip
if (bp.isElencoConUo())
setCol = "elencoConUo";
%>

<table class="Panel">
<tr>
<td>
<%bp.getDistintaCassDet().writeHTMLTable(pageContext,setCol,bp.isAddDocContabiliButtonEnabled(),false,bp.isRemoveDocContabiliButtonEnabled(),"100%","60vh", true); %>
</td>
</tr>
</table>
<%bp.getDistintaCassDet().writeHTMLTable(pageContext,setCol,bp.isAddDocContabiliButtonEnabled(),false,bp.isRemoveDocContabiliButtonEnabled(),"100%","60vh", true); %>
<%if (!bp.isViewing()) { %>
<table>
<table class="card p-2 mt-2 mb-2">
<tr>
<td><big class="text-primary mr-2">Totale Mandati</big></td>
<td><% bp.getController().writeFormInput( out, "totMandati"); %></td>
Expand Down

0 comments on commit cae2950

Please sign in to comment.