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" /> + @@ -113,4 +119,6 @@ name="utuv" /> + \ No newline at end of file diff --git a/sigla-ejb/src/main/resources/it/cnr/contab/config00/contratto/bulk/Procedure_amministrativeBulkInfo.xml b/sigla-ejb/src/main/resources/it/cnr/contab/config00/contratto/bulk/Procedure_amministrativeBulkInfo.xml index 00c11f21a6..9e7a8c2e92 100644 --- a/sigla-ejb/src/main/resources/it/cnr/contab/config00/contratto/bulk/Procedure_amministrativeBulkInfo.xml +++ b/sigla-ejb/src/main/resources/it/cnr/contab/config00/contratto/bulk/Procedure_amministrativeBulkInfo.xml @@ -89,7 +89,15 @@ enabledOnEdit="false" enabledOnInsert="true" label="Gestione dei Collaboratori Meramente Occasionali" /> - +
@@ -122,7 +130,8 @@ name="find_gruppo_file" /> - +