From ebbba66e2bc9c82c834a9603411c1f3d9da1c2a9 Mon Sep 17 00:00:00 2001 From: "raffaele.pagano" Date: Wed, 13 Mar 2019 12:11:43 +0100 Subject: [PATCH] =?UTF-8?q?Piano=20economico:=20gestione=20finalit=C3=A0?= =?UTF-8?q?=20della=20variazione?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../contab/doccont00/comp/SaldoComponent.java | 4 +-- .../pdg00/action/PdGVariazioneAction.java | 1 + .../contab/pdg00/bulk/Pdg_variazioneBulk.java | 30 +++++++++++++------ .../action/CRUDVar_stanz_resAction.java | 7 +++++ .../varstanz00/bulk/Var_stanz_resBulk.java | 25 +++++++++++++++- .../pdg00/bulk/Pdg_variazioneBulkInfo.xml | 4 +-- .../varstanz00/bulk/Var_stanz_resBulkInfo.xml | 4 +-- .../pdg00/tab_pdg_variazione_testata.jsp | 7 ++++- 8 files changed, 65 insertions(+), 17 deletions(-) diff --git a/sigla-ejb/src/main/java/it/cnr/contab/doccont00/comp/SaldoComponent.java b/sigla-ejb/src/main/java/it/cnr/contab/doccont00/comp/SaldoComponent.java index d4f96433d6..6a6fff64d6 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/doccont00/comp/SaldoComponent.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/doccont00/comp/SaldoComponent.java @@ -2287,7 +2287,7 @@ private void controllaPdgPianoEconomico(UserContext userContext, OggettoBulk var if (impSpesaPositiviNaturaReimpiego.compareTo(BigDecimal.ZERO)>0 || impSpesaNegativiNaturaReimpiego.compareTo(BigDecimal.ZERO)>0) throw new ApplicationException("Attenzione! Risultano movimenti su GAE di natura 6 - 'Reimpiego di risorse' " - + " non consentito in quanto la variazione è di tipo 'Maggiori Entrate/Spese'."); + + " non consentiti in quanto la variazione è di tipo 'Maggiori Entrate/Spese'."); } else { listCtrlPianoEco.stream() .filter(el->el.getImpEntrataPositivi().compareTo(BigDecimal.ZERO)>0 || @@ -2354,7 +2354,7 @@ private void controllaPdgPianoEconomico(UserContext userContext, OggettoBulk var * 30. se un progetto è aperto è possibile attribuire somme su GAE non di natura 6 solo se stornate dallo stesso progetto * (regola non valida per progetti di Aree e CdrPersonale) */ - if (!isVariazioneArea) { + if (!isVariazioneArea && !(isVariazionePersonale && variazione instanceof Var_stanz_resBulk)) { boolean addSpesePersonale = !isAttivaGestioneTrasferimenti||isVariazionePersonale; listCtrlPianoEco.stream() .filter(el->!el.isScaduto(dataChiusura)) diff --git a/sigla-ejb/src/main/java/it/cnr/contab/pdg00/action/PdGVariazioneAction.java b/sigla-ejb/src/main/java/it/cnr/contab/pdg00/action/PdGVariazioneAction.java index 33603076dc..7ee558573c 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/pdg00/action/PdGVariazioneAction.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/pdg00/action/PdGVariazioneAction.java @@ -595,6 +595,7 @@ public Forward doOnChangeTipologia(ActionContext context) { if (!pdgVar.getTipo_variazione().isMovimentoSuFondi()) pdgVar.setElemento_voce(null); if (!pdgVar.getTipo_variazione().getFl_variazione_trasferimento()) { + pdgVar.setMapMotivazioneVariazione(null); pdgVar.setTiMotivazioneVariazione(null); pdgVar.setIdMatricola(null); pdgVar.setIdBando(null); diff --git a/sigla-ejb/src/main/java/it/cnr/contab/pdg00/bulk/Pdg_variazioneBulk.java b/sigla-ejb/src/main/java/it/cnr/contab/pdg00/bulk/Pdg_variazioneBulk.java index 23d85e5c77..5fb0bb2935 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/pdg00/bulk/Pdg_variazioneBulk.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/pdg00/bulk/Pdg_variazioneBulk.java @@ -9,6 +9,7 @@ import it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk; import it.cnr.contab.config00.pdcfin.bulk.NaturaBulk; import it.cnr.contab.config00.sto.bulk.CdrBulk; +import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk; import it.cnr.contab.pdg00.bp.PdGVariazioneBP; import it.cnr.contab.pdg00.cdip.bulk.Ass_pdg_variazione_cdrBulk; import it.cnr.contab.pdg01.bulk.Tipo_variazioneBulk; @@ -27,8 +28,10 @@ public class Pdg_variazioneBulk extends Pdg_variazioneBase implements ICancellat private static final java.util.Dictionary ti_statoKeys = new it.cnr.jada.util.OrderedHashtable(); private static final java.util.Dictionary ti_tipologia_finKeys = new it.cnr.jada.util.OrderedHashtable(); private static final java.util.Dictionary stato_invioKeys = new it.cnr.jada.util.OrderedHashtable(); - public static final java.util.Dictionary tiMotivazioneVariazioneKeys = new it.cnr.jada.util.OrderedHashtable(); + + //Elenco completo delle Finalità della Variazioni utilizzato dalle mappe in modalità ricerca public static final java.util.Dictionary tiMotivazioneVariazioneForSearchKeys = new it.cnr.jada.util.OrderedHashtable(); + private static final java.util.Dictionary ds_causaleKeys = new it.cnr.jada.util.OrderedHashtable(); private Long storageMatricola; @@ -67,18 +70,11 @@ public class Pdg_variazioneBulk extends Pdg_variazioneBase implements ICancellat stato_invioKeys.put(STATO_DA_INVIARE,"Da inviare"); stato_invioKeys.put(STATO_INVIATA,"Inviata"); - tiMotivazioneVariazioneKeys.put(MOTIVAZIONE_GENERICO,"Variazione Generica"); - tiMotivazioneVariazioneKeys.put(MOTIVAZIONE_BANDO,"Personale - Bando in corso"); - tiMotivazioneVariazioneKeys.put(MOTIVAZIONE_PROROGA,"Personale - Proroga"); - tiMotivazioneVariazioneKeys.put(MOTIVAZIONE_ALTRE_SPESE,"Personale - Altri Trasferimenti"); - tiMotivazioneVariazioneKeys.put(MOTIVAZIONE_TRASFERIMENTO_AREA,"Trasferimento ad Aree di Ricerca"); -// tiMotivazioneVariazioneKeys.put(MOTIVAZIONE_TRASFERIMENTO_AUTORIZZATO,"Trasferimento In Deroga"); - tiMotivazioneVariazioneForSearchKeys.put(MOTIVAZIONE_BANDO,"Personale - Bando da pubblicare"); tiMotivazioneVariazioneForSearchKeys.put(MOTIVAZIONE_PROROGA,"Personale - Proroga"); tiMotivazioneVariazioneForSearchKeys.put(MOTIVAZIONE_ALTRE_SPESE,"Personale - Altre Spese"); tiMotivazioneVariazioneForSearchKeys.put(MOTIVAZIONE_TRASFERIMENTO_AREA,"Trasferimento ad Aree di Ricerca"); - tiMotivazioneVariazioneForSearchKeys.put(MOTIVAZIONE_TRASFERIMENTO_AUTORIZZATO,"Trasferimento Autorizzato"); + tiMotivazioneVariazioneForSearchKeys.put(MOTIVAZIONE_TRASFERIMENTO_AUTORIZZATO,"Trasferimento In Deroga"); ds_causaleKeys.put(FONDO,"Fondo Perequativo Stabilizzazioni"); ds_causaleKeys.put(OVERHEAD,"Overhead/Spese Generali"); @@ -190,7 +186,23 @@ public final java.util.Dictionary getDs_causaleKeys() { public final java.util.Dictionary getTi_causale_respintaKeys() { return ti_causale_respintaKeys; } + public final java.util.Dictionary getTiMotivazioneVariazioneKeys() { + java.util.Dictionary tiMotivazioneVariazioneKeys = new it.cnr.jada.util.OrderedHashtable(); + tiMotivazioneVariazioneKeys.put(MOTIVAZIONE_GENERICO,"Variazione Generica"); + tiMotivazioneVariazioneKeys.put(MOTIVAZIONE_BANDO,"Personale - Bando in corso"); + tiMotivazioneVariazioneKeys.put(MOTIVAZIONE_PROROGA,"Personale - Proroga"); + tiMotivazioneVariazioneKeys.put(MOTIVAZIONE_ALTRE_SPESE,"Personale - Altri Trasferimenti"); + + if (!Optional.ofNullable(this.isVariazioneInternaIstituto()).orElse(Boolean.FALSE) || this.isMotivazioneTrasferimentoArea()) + tiMotivazioneVariazioneKeys.put(MOTIVAZIONE_TRASFERIMENTO_AREA,"Trasferimento ad Aree di Ricerca"); + + if (Optional.ofNullable(this.getCentro_responsabilita()) + .flatMap(el->Optional.ofNullable(el.getUnita_padre())) + .map(Unita_organizzativaBulk::isUoEnte) + .orElse(Boolean.FALSE) || this.isMotivazioneTrasferimentoAutorizzato()) + tiMotivazioneVariazioneKeys.put(MOTIVAZIONE_TRASFERIMENTO_AUTORIZZATO,"Trasferimento In Deroga"); + return tiMotivazioneVariazioneKeys; } diff --git a/sigla-ejb/src/main/java/it/cnr/contab/varstanz00/action/CRUDVar_stanz_resAction.java b/sigla-ejb/src/main/java/it/cnr/contab/varstanz00/action/CRUDVar_stanz_resAction.java index f17d8f380b..38f9769123 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/varstanz00/action/CRUDVar_stanz_resAction.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/varstanz00/action/CRUDVar_stanz_resAction.java @@ -317,6 +317,13 @@ public Forward doOnChangeTipologia(ActionContext context) { Var_stanz_resBulk var_stanz_res = (Var_stanz_resBulk)testataBP.getModel(); try{ fillModel(context); + Var_stanz_resBulk varRes = (Var_stanz_resBulk)getBusinessProcess(context).getModel(); + if (!Var_stanz_resBulk.TIPOLOGIA_STO.equals(var_stanz_res.getTipologia())) { + varRes.setMapMotivazioneVariazione(null); + varRes.setTiMotivazioneVariazione(null); + varRes.setIdMatricola(null); + varRes.setIdBando(null); + } if (!(Var_stanz_resBulk.TIPOLOGIA_STO.equals(var_stanz_res.getTipologia())||Var_stanz_resBulk.TIPOLOGIA_STO_INT.equals(var_stanz_res.getTipologia()))) var_stanz_res.setDs_causale(null); return context.findDefaultForward(); diff --git a/sigla-ejb/src/main/java/it/cnr/contab/varstanz00/bulk/Var_stanz_resBulk.java b/sigla-ejb/src/main/java/it/cnr/contab/varstanz00/bulk/Var_stanz_resBulk.java index be573028ce..ea702780f0 100644 --- a/sigla-ejb/src/main/java/it/cnr/contab/varstanz00/bulk/Var_stanz_resBulk.java +++ b/sigla-ejb/src/main/java/it/cnr/contab/varstanz00/bulk/Var_stanz_resBulk.java @@ -6,11 +6,13 @@ import java.math.BigDecimal; import java.text.ParseException; import java.util.GregorianCalendar; +import java.util.Optional; import it.cnr.contab.config00.esercizio.bulk.Esercizio_baseBulk; import it.cnr.contab.config00.pdcfin.bulk.NaturaBulk; import it.cnr.contab.config00.sto.bulk.CdrBulk; import it.cnr.contab.config00.sto.bulk.CdsBulk; +import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk; import it.cnr.contab.doccont00.core.bulk.Accertamento_modificaBulk; import it.cnr.contab.pdg00.bulk.Pdg_variazioneBulk; import it.cnr.contab.preventvar00.bulk.Var_bilancioBulk; @@ -513,9 +515,26 @@ public java.lang.String getMapMotivazioneVariazione() { public void setMapMotivazioneVariazione(String mapMotivazioneVariazione) { this.mapMotivazioneVariazione = mapMotivazioneVariazione; } + public final java.util.Dictionary getTiMotivazioneVariazioneKeys() { - return Pdg_variazioneBulk.tiMotivazioneVariazioneKeys; + java.util.Dictionary tiMotivazioneVariazioneKeys = new it.cnr.jada.util.OrderedHashtable(); + tiMotivazioneVariazioneKeys.put(Pdg_variazioneBulk.MOTIVAZIONE_GENERICO,"Variazione Generica"); + tiMotivazioneVariazioneKeys.put(Pdg_variazioneBulk.MOTIVAZIONE_BANDO,"Personale - Bando in corso"); + tiMotivazioneVariazioneKeys.put(Pdg_variazioneBulk.MOTIVAZIONE_PROROGA,"Personale - Proroga"); + tiMotivazioneVariazioneKeys.put(Pdg_variazioneBulk.MOTIVAZIONE_ALTRE_SPESE,"Personale - Altri Trasferimenti"); + + if (!Optional.ofNullable(this.isVariazioneInternaIstituto()).orElse(Boolean.FALSE) || this.isMotivazioneTrasferimentoArea()) + tiMotivazioneVariazioneKeys.put(Pdg_variazioneBulk.MOTIVAZIONE_TRASFERIMENTO_AREA,"Trasferimento ad Aree di Ricerca"); + + if (Optional.ofNullable(this.getCentroDiResponsabilita()) + .flatMap(el->Optional.ofNullable(el.getUnita_padre())) + .map(Unita_organizzativaBulk::isUoEnte) + .orElse(Boolean.FALSE) || this.isMotivazioneTrasferimentoAutorizzato()) + tiMotivazioneVariazioneKeys.put(Pdg_variazioneBulk.MOTIVAZIONE_TRASFERIMENTO_AUTORIZZATO,"Trasferimento In Deroga"); + + return tiMotivazioneVariazioneKeys; } + public final java.util.Dictionary getTiMotivazioneVariazioneForSearchKeys() { return Pdg_variazioneBulk.tiMotivazioneVariazioneForSearchKeys; } @@ -541,4 +560,8 @@ public boolean isVariazioneStorno() { return Var_stanz_resBulk.TIPOLOGIA_STO.equalsIgnoreCase(this.getTipologia())|| Var_stanz_resBulk.TIPOLOGIA_STO_INT.equalsIgnoreCase(this.getTipologia()); } + + public boolean isVariazioneInternaIstituto() { + return Var_stanz_resBulk.TIPOLOGIA_STO_INT.equalsIgnoreCase(this.getTipologia()); + } } \ No newline at end of file diff --git a/sigla-ejb/src/main/resources/it/cnr/contab/pdg00/bulk/Pdg_variazioneBulkInfo.xml b/sigla-ejb/src/main/resources/it/cnr/contab/pdg00/bulk/Pdg_variazioneBulkInfo.xml index 1e51154548..5f5a284bcd 100644 --- a/sigla-ejb/src/main/resources/it/cnr/contab/pdg00/bulk/Pdg_variazioneBulkInfo.xml +++ b/sigla-ejb/src/main/resources/it/cnr/contab/pdg00/bulk/Pdg_variazioneBulkInfo.xml @@ -425,7 +425,7 @@ enabledOnSearch="true" enabledOnEdit="true" nullable="false" - label="Motivo Variazione" /> + label="Finalità della Variazione" /> + label="Finalità della Variazione" /> + label="Finalità della Variazione" /> + label="Finalità della Variazione" /> <% bp.getController().writeFormLabel( out, "mapMotivazioneVariazione"); %> - <% bp.getController().writeFormInput(out,"default","mapMotivazioneVariazione",!bp.isSearching()&&(isAbilitato||!bk.isPropostaProvvisoria()),null,null);%> + <% if (bp.isSearching()) { %> + <% bp.getController().writeFormInput(out,"default","tiMotivazioneVariazione");%> + <% } else { %> + <% bp.getController().writeFormInput(out,"default","mapMotivazioneVariazione",!bp.isSearching()&&(isAbilitato||!bk.isPropostaProvvisoria()),null,null);%> + <% } %> + <% if (bp.isSearching() || bk.isMotivazioneVariazioneBandoPersonale()) {%> <% bp.getController().writeFormLabel( out, "idBando"); %> <% bp.getController().writeFormInput( out, "default","idBando",!bp.isSearching()&&(isAbilitato||!bk.isPropostaProvvisoria()),null,null); %>