diff --git a/sigla-ejb/src/main/java/it/cnr/contab/config00/contratto/bulk/Procedure_amministrativeBase.java b/sigla-ejb/src/main/java/it/cnr/contab/config00/contratto/bulk/Procedure_amministrativeBase.java
index 1c11f14b30..461e5294e0 100644
--- a/sigla-ejb/src/main/java/it/cnr/contab/config00/contratto/bulk/Procedure_amministrativeBase.java
+++ b/sigla-ejb/src/main/java/it/cnr/contab/config00/contratto/bulk/Procedure_amministrativeBase.java
@@ -24,6 +24,7 @@ public class Procedure_amministrativeBase extends Procedure_amministrativeKey im
private Integer incarico_ric_giorni_scad;
private java.lang.String cd_gruppo_file;
+ private java.lang.String codice_anac;
// FL_MERAMENTE_OCCASIONALE CHAR(1) NOT NULL
private java.lang.Boolean fl_meramente_occasionale;
@@ -84,4 +85,10 @@ public void setFl_meramente_occasionale(java.lang.Boolean fl_meramente_occasiona
public java.lang.Boolean getFl_meramente_occasionale() {
return fl_meramente_occasionale;
}
+ public java.lang.String getCodice_anac() {
+ return codice_anac;
+ }
+ public void setCodice_anac(java.lang.String codice_anac) {
+ this.codice_anac = codice_anac;
+ }
}
\ No newline at end of file
diff --git a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/DocumentoGenericoComponent.java b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/DocumentoGenericoComponent.java
index 63c92ca0df..31b5b3774f 100644
--- a/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/DocumentoGenericoComponent.java
+++ b/sigla-ejb/src/main/java/it/cnr/contab/docamm00/comp/DocumentoGenericoComponent.java
@@ -245,7 +245,7 @@ private void aggiornaAccertamentiSuCancellazione(
Documento_generico_rigaBulk riga= (Documento_generico_rigaBulk) r.next();
if (riga.getAccertamento_scadenziario().equalsByPrimaryKey(scadenza))
importoAssociatoAllaScadenza=
- importoAssociatoAllaScadenza.add((riga.getIm_riga_iniziale() == null ? riga.getIm_imponibile() : riga.getIm_riga_iniziale()).setScale(2, java.math.BigDecimal.ROUND_HALF_UP));
+ importoAssociatoAllaScadenza.add((riga.getIm_riga_iniziale() == null ? riga.getIm_imponibile() : riga.getIm_imponibile().subtract(riga.getIm_riga_iniziale())).setScale(2, java.math.BigDecimal.ROUND_HALF_UP));
}
scadenza.setIm_associato_doc_amm((scadenza.getIm_associato_doc_amm().subtract(importoAssociatoAllaScadenza)).setScale(2, java.math.BigDecimal.ROUND_HALF_UP));
updateImportoAssociatoDocAmm(userContext, scadenza);
@@ -571,9 +571,10 @@ private void aggiornaObbligazioniSuCancellazione(
for (Iterator r= documento.getDocumento_generico_dettColl().iterator(); r.hasNext();) {
Documento_generico_rigaBulk riga= (Documento_generico_rigaBulk) r.next();
if (riga.getObbligazione_scadenziario().equalsByPrimaryKey(scadenza))
- importoAssociatoAllaScadenza=
- importoAssociatoAllaScadenza.add((riga.getIm_riga_iniziale() == null ? riga.getIm_imponibile() : riga.getIm_riga_iniziale()).setScale(2, java.math.BigDecimal.ROUND_HALF_UP));
- }
+ importoAssociatoAllaScadenza=
+ importoAssociatoAllaScadenza.add((riga.getIm_riga_iniziale() == null ? riga.getIm_imponibile() : riga.getIm_imponibile().subtract(riga.getIm_riga_iniziale())).setScale(2, java.math.BigDecimal.ROUND_HALF_UP));
+ }
+
scadenza.setIm_associato_doc_amm((scadenza.getIm_associato_doc_amm().subtract(importoAssociatoAllaScadenza)).setScale(2, java.math.BigDecimal.ROUND_HALF_UP));
}
updateImportoAssociatoDocAmm(userContext, scadenza);
@@ -4374,8 +4375,10 @@ public it.cnr.jada.persistency.sql.SQLBuilder selectLettera_pagamento_estero_sos
sql.addSQLClause("OR", "IM_SOSPESO", sql.NOT_EQUALS, new java.math.BigDecimal(0));
sql.addSQLClause("AND", "IM_SOSPESO", sql.ISNOTNULL, null);
sql.closeParenthesis();
+
+
sql.addClause("AND", "fl_stornato", sql.EQUALS, Boolean.FALSE);
- sql.addClause("AND", "esercizio", sql.EQUALS, documento.getLettera_pagamento_estero().getEsercizio());
+ sql.addClause("AND", "esercizio", sql.EQUALS, documento.getEsercizio());
sql.addClause("AND", "ti_entrata_spesa", sql.EQUALS, sospeso.TIPO_SPESA);
sql.addClause("AND", "ti_sospeso_riscontro", sql.EQUALS, sospeso.TI_SOSPESO);
diff --git a/sigla-ejb/src/main/java/it/cnr/contab/doccont00/comp/DistintaCassiereComponent.java b/sigla-ejb/src/main/java/it/cnr/contab/doccont00/comp/DistintaCassiereComponent.java
index 73f6f2c05d..54d16c4396 100644
--- a/sigla-ejb/src/main/java/it/cnr/contab/doccont00/comp/DistintaCassiereComponent.java
+++ b/sigla-ejb/src/main/java/it/cnr/contab/doccont00/comp/DistintaCassiereComponent.java
@@ -2324,6 +2324,7 @@ public void inviaSingolaDistinta(UserContext userContext,
// aggiungo i mandati da ritrasmettere
aggiungiMandatiEReversaliDaRitrasmettere(userContext, distinta);
}
+ verificaDuplicazioniProgDocCont(userContext, distinta);
// aggiorno lo stato trasmissione di mandati/reversali
aggiornaStatoDocContabili(userContext, distinta,
@@ -3201,8 +3202,9 @@ public SQLBuilder selectDistinta_cassiere_detCollByClause(
protected void validaCreaModificaConBulk(UserContext userContext,
OggettoBulk bulk) throws ComponentException {
super.validaCreaModificaConBulk(userContext, bulk);
-
+
Distinta_cassiereBulk distinta = (Distinta_cassiereBulk) bulk;
+
try {
long nrDettagli = ((Distinta_cassiere_detHome) getHome(userContext,
Distinta_cassiere_detBulk.class)).getNrDettagli(
@@ -3210,7 +3212,7 @@ protected void validaCreaModificaConBulk(UserContext userContext,
if (nrDettagli == 0)
throw new ApplicationException(
" La distinta deve avere almeno un dettaglio!");
-
+ //verificaDuplicazioniProgDocCont(userContext, distinta);
// Controlla i documenti inseriti nella distinta
validaDocumentiContabiliAssociati(userContext, distinta);
if(distinta.getFl_annulli().booleanValue())
@@ -3365,27 +3367,10 @@ private void validaDocumentiContabiliAssociati(UserContext userContext,
SQLBuilder sql = selectDistinta_cassiere_detCollByClause(
userContext, distinta, V_mandato_reversaleBulk.class, null);
List list = home.fetchAll(sql);
- List lista= home.fetchAll(sql);
for (Iterator i = list.iterator(); i.hasNext();) {
V_mandato_reversaleBulk bulk = (V_mandato_reversaleBulk) i
.next();
- if(tesoreriaUnica(userContext, distinta)){
- Configurazione_cnrComponentSession sess = (Configurazione_cnrComponentSession) it.cnr.jada.util.ejb.EJBCommonServices
- .createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession");
- if (sess.getVal01(userContext, new Integer(0), null, "COSTANTI",
- "BLOCCO_UNICITA_PG_MANREV") != null &&
- sess.getVal01(userContext, new Integer(0), null, "COSTANTI",
- "BLOCCO_UNICITA_PG_MANREV").compareTo("S")==0){
- if(distinta.getFl_flusso().booleanValue()){
- for (Iterator iter = lista.iterator(); iter.hasNext();) {
- V_mandato_reversaleBulk copia = (V_mandato_reversaleBulk) iter.next();
- if (copia.getPg_documento_cont().compareTo(bulk.getPg_documento_cont())==0 && copia.getCd_tipo_documento_cont().compareTo(bulk.getCd_tipo_documento_cont())!=0)
- throw new ApplicationException(
- "Risultano presenti in distinta sia il mandato che la reversale n." + bulk.getPg_documento_cont());
- }
- }
- }
- }
+
if (Utility.createParametriCnrComponentSession()
.getParametriCnr(userContext, distinta.getEsercizio())
.getFl_siope().booleanValue()) {
@@ -4298,6 +4283,7 @@ public Distinta_cassiereBulk inviaDistinta(UserContext userContext,
throw new ApplicationException(
"Attenzione! La distinta e' stata cancellata");
validaCreaModificaConBulk(userContext, distinta);
+ verificaDuplicazioniProgDocCont(userContext, distinta);
// aggiungo i mandati da ritrasmettere
if(!tesoreriaUnica(userContext,distinta )) {
aggiungiMandatiEReversaliDaRitrasmettere(userContext, distinta);
@@ -4473,5 +4459,41 @@ private void callCheckDocContForDistintaAnn(UserContext userContext,
}
}
-
+private void verificaDuplicazioniProgDocCont(UserContext userContext,
+ Distinta_cassiereBulk distinta) throws ComponentException {
+try {
+ V_mandato_reversaleHome home = (V_mandato_reversaleHome) getHome(
+ userContext, V_mandato_reversaleBulk.class);
+ SQLBuilder sql = selectDistinta_cassiere_detCollByClause(
+ userContext, distinta, V_mandato_reversaleBulk.class, null);
+ List list = home.fetchAll(sql);
+ List lista= home.fetchAll(sql);
+ String duplicati=null;
+ for (Iterator i = list.iterator(); i.hasNext();) {
+ V_mandato_reversaleBulk bulk = (V_mandato_reversaleBulk) i.next();
+ if(tesoreriaUnica(userContext, distinta)){
+ Configurazione_cnrComponentSession sess = (Configurazione_cnrComponentSession) it.cnr.jada.util.ejb.EJBCommonServices
+ .createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession");
+ if (sess.getVal01(userContext, new Integer(0), null, "COSTANTI", "BLOCCO_UNICITA_PG_MANREV") != null &&
+ sess.getVal01(userContext, new Integer(0), null, "COSTANTI","BLOCCO_UNICITA_PG_MANREV").compareTo("S")==0){
+ if(distinta.getFl_flusso().booleanValue()){
+ for (Iterator iter = lista.iterator(); iter.hasNext();) {
+ V_mandato_reversaleBulk copia = (V_mandato_reversaleBulk) iter.next();
+ if (copia.getPg_documento_cont().compareTo(bulk.getPg_documento_cont())==0 && copia.getCd_tipo_documento_cont().compareTo(bulk.getCd_tipo_documento_cont())!=0)
+ if (duplicati != null) {
+ if (!duplicati.contains(" "+bulk.getPg_documento_cont()))
+ duplicati=duplicati+" "+bulk.getPg_documento_cont();
+ } else
+ duplicati="Risultano presenti in distinta sia il mandato che la reversale n. " +bulk.getPg_documento_cont();
+ }
+ }
+ }
+ }
+ }
+ if (duplicati!=null)
+ throw new ApplicationException(duplicati);
+ } catch (Exception e) {
+ throw handleException(e);
+ }
+}
}
\ No newline at end of file
diff --git a/sigla-ejb/src/main/java/it/cnr/contab/incarichi00/bp/RicercaIncarichiRichiestaBP.java b/sigla-ejb/src/main/java/it/cnr/contab/incarichi00/bp/RicercaIncarichiRichiestaBP.java
index 8acedc29ea..60dd18a046 100644
--- a/sigla-ejb/src/main/java/it/cnr/contab/incarichi00/bp/RicercaIncarichiRichiestaBP.java
+++ b/sigla-ejb/src/main/java/it/cnr/contab/incarichi00/bp/RicercaIncarichiRichiestaBP.java
@@ -400,9 +400,7 @@ private Element generaDettaglioContratti(Document xmldoc, ContrattoBulk contratt
dato = contratto.getProcedura_amministrativa().getDs_proc_amm();
elementBeneficiario.appendChild(xmldoc.createTextNode(dato!=null?dato:""));
elementContratto.appendChild(elementBeneficiario);
-
-
-
+
Element elementDataInizio = xmldoc.createElement(getTagRadice()+":datainizio");
String datai=null;
if(contratto.getDt_inizio_validita()!=null)
@@ -444,7 +442,12 @@ else if(contratto.getDt_fine_validita()!=null)
dato = contratto.getFigura_giuridica_interna().getAnagrafico().getCodice_fiscale();
elementCodFisCnr.appendChild(xmldoc.createTextNode(dato!=null?dato:""));
elementContratto.appendChild(elementCodFisCnr);
-
+
+ Element elementCodiceAnac = xmldoc.createElement(getTagRadice()+":codice_anac");
+ dato = contratto.getProcedura_amministrativa().getCodice_anac();
+ elementCodiceAnac.appendChild(xmldoc.createTextNode(dato!=null?dato:""));
+ elementContratto.appendChild(elementCodiceAnac);
+
//eliminata pubblicazione dei file
for (AllegatoContrattoDocumentBulk allegato : contratto.getArchivioAllegati()) {
if (allegato.getType().equals(AllegatoContrattoDocumentBulk.CONTRATTO)){
diff --git a/sigla-ejb/src/main/resources/it/cnr/contab/config00/contratto/bulk/Procedure_amministrativeBasePersistentInfo.xml b/sigla-ejb/src/main/resources/it/cnr/contab/config00/contratto/bulk/Procedure_amministrativeBasePersistentInfo.xml
index f697b5b3d6..dfacbc7e2b 100644
--- a/sigla-ejb/src/main/resources/it/cnr/contab/config00/contratto/bulk/Procedure_amministrativeBasePersistentInfo.xml
+++ b/sigla-ejb/src/main/resources/it/cnr/contab/config00/contratto/bulk/Procedure_amministrativeBasePersistentInfo.xml
@@ -86,6 +86,12 @@
sqlTypeName="DECIMAL"
columnSize="22"
nullable="false" />
+