All Downloads are FREE. Search and download functionalities are using the official Maven repository.

it.cnr.contab.pdg01.bp.CRUDPdgVariazioneRigaGestBP Maven / Gradle / Ivy

/*
 * Copyright (C) 2019  Consiglio Nazionale delle Ricerche
 *
 *     This program is free software: you can redistribute it and/or modify
 *     it under the terms of the GNU Affero General Public License as
 *     published by the Free Software Foundation, either version 3 of the
 *     License, or (at your option) any later version.
 *
 *     This program is distributed in the hope that it will be useful,
 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 *     GNU Affero General Public License for more details.
 *
 *     You should have received a copy of the GNU Affero General Public License
 *     along with this program.  If not, see .
 */

/*
 * Created on Apr 21, 2006
 *
 * To change the template for this generated file go to
 * Window>Preferences>Java>Code Generation>Code and Comments
 */
package it.cnr.contab.pdg01.bp;

import it.cnr.contab.config00.bulk.Parametri_cnrBulk;
import it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk;
import it.cnr.contab.config00.pdcfin.cla.bulk.V_classificazione_vociBulk;
import it.cnr.contab.config00.sto.bulk.DipartimentoBulk;
import it.cnr.contab.pdg00.bulk.Pdg_variazioneBulk;
import it.cnr.contab.pdg00.cdip.bulk.Ass_pdg_variazione_cdrBulk;
import it.cnr.contab.pdg00.ejb.PdGVariazioniComponentSession;
import it.cnr.contab.pdg01.bulk.Pdg_variazione_riga_entrata_gestBulk;
import it.cnr.contab.pdg01.bulk.Pdg_variazione_riga_gestBulk;
import it.cnr.contab.pdg01.bulk.Pdg_variazione_riga_spesa_gestBulk;
import it.cnr.contab.pdg01.ejb.CRUDPdgVariazioneRigaGestComponentSession;
import it.cnr.contab.utenze00.bp.CNRUserContext;
import it.cnr.contab.utenze00.bulk.CNRUserInfo;
import it.cnr.contab.util.Utility;
import it.cnr.jada.DetailedRuntimeException;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.action.HttpActionContext;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.bulk.ValidationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.util.action.CRUDBP;
import it.cnr.jada.util.action.SimpleCRUDBP;
import it.cnr.jada.util.action.SimpleDetailCRUDController;

import java.math.BigDecimal;
import java.rmi.RemoteException;
import java.util.Iterator;
import java.util.List;

/**
 * @author rpagano
 * 

* To change the template for this generated type comment go to * Window>Preferences>Java>Code Generation>Code and Comments */ public class CRUDPdgVariazioneRigaGestBP extends SimpleCRUDBP { private Parametri_cnrBulk parametriCnr; private it.cnr.contab.config00.sto.bulk.CdrBulk centro_responsabilita; private Pdg_variazioneBulk pdg_variazione; private DipartimentoBulk dipartimentoSrivania; private String uoScrivania; private String tipoGestione; private SimpleDetailCRUDController righeVariazioneEtrGest = new SimpleDetailCRUDController("RigheVariazioneEtrGest", Pdg_variazione_riga_entrata_gestBulk.class, "righeVariazioneEtrGest", this) { protected void setModel(ActionContext actioncontext, OggettoBulk oggettobulk) { super.setModel(actioncontext, oggettobulk); } public boolean isShrinkable() { return super.isShrinkable() && isDettaglioGestionaleEnable((Pdg_variazione_riga_gestBulk) getModel()); } public void removeAll(ActionContext actioncontext) throws ValidationException, BusinessProcessException { List list = getDetails(); for (int i = list.size() - 1; i >= 0; i--) { Pdg_variazione_riga_gestBulk dett = (Pdg_variazione_riga_gestBulk) list.get(i); if (isDettaglioGestionaleEnable(dett)) removeDetail(dett, i); } getParentController().setDirty(true); reset(actioncontext); } /** * Metodo per aggiungere alla toolbar del Controller un tasto necessario per apporre * il visto da parte del dipartimento. * @param context Il contesto dell'azione */ @Override public void writeHTMLToolbar( javax.servlet.jsp.PageContext context, boolean reset, boolean find, boolean delete, boolean closedToolbar) throws java.io.IOException, javax.servlet.ServletException { super.writeHTMLToolbar(context, reset, find, delete, false); if (getParentController() != null && ((Ass_pdg_variazione_cdrBulk) getParentController().getModel()).getPdg_variazione().isApprovata() && getDipartimentoSrivania() != null && getDipartimentoSrivania().getCd_dipartimento() != null) { String command = "javascript:submitForm('doApponiVistoDipartimento')"; it.cnr.jada.util.jsp.JSPUtils.toolbarButton( context, "img/properties16.gif", !(getDetails().isEmpty() || ((CRUDBP) getParentController()).isSearching()) ? command : null, true, "Apponi Visto", HttpActionContext.isFromBootstrap(context)); } super.closeButtonGROUPToolbar(context); } protected void validate(ActionContext actioncontext, OggettoBulk oggettobulk) throws ValidationException { Pdg_variazione_riga_gestBulk dett = (Pdg_variazione_riga_gestBulk) oggettobulk; validaRiga(actioncontext, dett); } }; private SimpleDetailCRUDController righeVariazioneSpeGest = new SimpleDetailCRUDController("RigheVariazioneSpeGest", Pdg_variazione_riga_spesa_gestBulk.class, "righeVariazioneSpeGest", this) { protected void setModel(ActionContext actioncontext, OggettoBulk oggettobulk) { super.setModel(actioncontext, oggettobulk); } public boolean isShrinkable() { return super.isShrinkable() && isDettaglioGestionaleEnable((Pdg_variazione_riga_gestBulk) getModel()); } public void removeAll(ActionContext actioncontext) throws ValidationException, BusinessProcessException { List list = getDetails(); for (int i = list.size() - 1; i >= 0; i--) { Pdg_variazione_riga_gestBulk dett = (Pdg_variazione_riga_gestBulk) list.get(i); if (isDettaglioGestionaleEnable(dett)) removeDetail(dett, i); } getParentController().setDirty(true); reset(actioncontext); } /** * Metodo per aggiungere alla toolbar del Controller un tasto necessario per apporre * il visto da parte del dipartimento. * @param context Il contesto dell'azione */ @Override public void writeHTMLToolbar( javax.servlet.jsp.PageContext context, boolean reset, boolean find, boolean delete, boolean closedToolbar) throws java.io.IOException, javax.servlet.ServletException { super.writeHTMLToolbar(context, reset, find, delete, false); if (getParentController() != null && ((Ass_pdg_variazione_cdrBulk) getParentController().getModel()).getPdg_variazione().isApprovata() && getDipartimentoSrivania() != null && getDipartimentoSrivania().getCd_dipartimento() != null) { String command = "javascript:submitForm('doApponiVistoDipartimento')"; it.cnr.jada.util.jsp.JSPUtils.toolbarButton( context, "img/properties16.gif", !(getDetails().isEmpty() || ((CRUDBP) getParentController()).isSearching()) ? command : null, true, "Apponi Visto", HttpActionContext.isFromBootstrap(context)); } super.closeButtonGROUPToolbar(context); } protected void validate(ActionContext actioncontext, OggettoBulk oggettobulk) throws ValidationException { Pdg_variazione_riga_gestBulk dett = (Pdg_variazione_riga_gestBulk) oggettobulk; validaRiga(actioncontext, dett); if (dett != null && dett.getIm_spese_gest_accentrata_int() != null && dett.getIm_spese_gest_decentrata_int() != null && dett.getIm_spese_gest_accentrata_int().compareTo(BigDecimal.ZERO) != 0 && dett.getIm_spese_gest_decentrata_int().compareTo(BigDecimal.ZERO) != 0) throw new ValidationException("Non è possibile indicare sulla stessa riga di variazione sia le spese Decentrate Esterne che le spese Accentrate Esterne, inserire un nuovo dettaglio."); else if (dett != null && dett.getIm_spese_gest_accentrata_est() != null && dett.getIm_spese_gest_decentrata_est() != null && dett.getIm_spese_gest_accentrata_est().compareTo(BigDecimal.ZERO) != 0 && dett.getIm_spese_gest_decentrata_est().compareTo(BigDecimal.ZERO) != 0) throw new ValidationException("Non è possibile indicare sulla stessa riga di variazione sia le spese Decentrate Esterne che le spese Accentrate Esterne, inserire un nuovo dettaglio."); else if (dett != null && dett.getIm_spese_gest_accentrata_int() != null && dett.getIm_spese_gest_accentrata_int().compareTo(BigDecimal.ZERO) < 0) throw new ValidationException("Non è possibile indicare un importo negativo per le spese Accentrare Interne, le restituzioni si registrano chiamando a partecipare alla variazione il CdR della SAC titolare della Spesa."); else if (dett != null && dett.getIm_spese_gest_accentrata_est() != null && dett.getIm_spese_gest_accentrata_est().compareTo(BigDecimal.ZERO) < 0) throw new ValidationException("Non è possibile indicare un importo negativo per le spese Accentrare Esterne, le restituzioni si registrano chiamando a partecipare alla variazione il CdR della SAC titolare della Spesa."); else { super.validate(actioncontext, oggettobulk); calcolaTotaleQuotaSpesaRipartita(); } } public OggettoBulk removeDetail(OggettoBulk oggettobulk, int i) { calcolaTotaleQuotaSpesaRipartita(); Ass_pdg_variazione_cdrBulk pdg = ((Ass_pdg_variazione_cdrBulk) getParentModel()); Pdg_variazione_riga_gestBulk varRiga = (Pdg_variazione_riga_gestBulk) oggettobulk; pdg.setTotale_quota_spesa(Utility.nvl(pdg.getTotale_quota_spesa()).subtract(Utility.nvl(varRiga.getIm_variazione()))); return super.removeDetail(oggettobulk, i); } public void calcolaTotaleQuotaSpesaRipartita() { Ass_pdg_variazione_cdrBulk pdg = ((Ass_pdg_variazione_cdrBulk) getParentModel()); pdg.setTotale_quota_spesa(Utility.ZERO); for (Iterator righeVar = getDetails().iterator(); righeVar.hasNext(); ) { Pdg_variazione_riga_gestBulk varRiga = (Pdg_variazione_riga_gestBulk) righeVar.next(); pdg.setTotale_quota_spesa(Utility.nvl(pdg.getTotale_quota_spesa()).add(Utility.nvl(varRiga.getIm_variazione()))); } } }; public CRUDPdgVariazioneRigaGestBP() { super(); } public CRUDPdgVariazioneRigaGestBP(String function) { super(function); } public CRUDPdgVariazioneRigaGestBP(String function, it.cnr.contab.config00.sto.bulk.CdrBulk cdr, Pdg_variazioneBulk pdg_variazione, String tipoGestione) { super(function); setCentro_responsabilita(cdr); setPdg_variazione(pdg_variazione); setTipoGestione(tipoGestione); } public void save(it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException, ValidationException { super.save(context); Ass_pdg_variazione_cdrBulk ass = (Ass_pdg_variazione_cdrBulk) this.getModel(); if (ass.getPdg_variazione().isApprovata()) { setStatus(VIEW); } } protected void validaRiga(ActionContext actioncontext, Pdg_variazione_riga_gestBulk oggettobulk) throws ValidationException { for (java.util.Iterator i = ((Ass_pdg_variazione_cdrBulk) this.getModel()).getRigheVariazioneEtrGest().iterator(); i.hasNext(); ) { Pdg_variazione_riga_gestBulk riga = (Pdg_variazione_riga_gestBulk) i.next(); if (!riga.equals(oggettobulk) && riga.getEsercizio().compareTo(oggettobulk.getEsercizio()) == 0 && riga.getCd_cdr_assegnatario().compareTo(oggettobulk.getCd_cdr_assegnatario()) == 0 && (( (riga.getCd_cds_area() != null && oggettobulk.getCd_cds_area() != null) && (riga.getCd_cds_area().compareTo(oggettobulk.getCd_cds_area()) == 0)) || (riga.getCd_cds_area() == null && oggettobulk.getCd_cds_area() == null) || (riga.getCd_cds_area() != null && riga.getCd_cds_area().compareTo(riga.getCdr_assegnatario().getCd_cds()) == 0 && oggettobulk.getCd_cds_area() == null) || (oggettobulk.getCd_cds_area() != null && oggettobulk.getCd_cds_area().compareTo(oggettobulk.getCdr_assegnatario().getCd_cds()) == 0 && riga.getCd_cds_area() == null)) && oggettobulk.getLinea_attivita() != null && riga.getLinea_attivita() != null && oggettobulk.getCd_linea_attivita() != null && riga.getCd_linea_attivita() != null && riga.getCd_linea_attivita().compareTo(oggettobulk.getCd_linea_attivita()) == 0 && riga.getCd_elemento_voce() != null && oggettobulk.getCd_elemento_voce() != null && riga.getCd_elemento_voce().compareTo(oggettobulk.getCd_elemento_voce()) == 0) throw new ValidationException("Attenzione: combinazione Esercizio/CdR/Area/G.A.E./Voce già inserita!"); } Ass_pdg_variazione_cdrBulk ass = (Ass_pdg_variazione_cdrBulk) this.getModel(); for (java.util.Iterator i = ((Ass_pdg_variazione_cdrBulk) this.getModel()).getRigheVariazioneSpeGest().iterator(); i.hasNext(); ) { Pdg_variazione_riga_gestBulk riga = (Pdg_variazione_riga_gestBulk) i.next(); if (!riga.equals(oggettobulk) && riga.getEsercizio().compareTo(oggettobulk.getEsercizio()) == 0 && riga.getCd_cdr_assegnatario().compareTo(oggettobulk.getCd_cdr_assegnatario()) == 0 && (( (riga.getCd_cds_area() != null && oggettobulk.getCd_cds_area() != null) && (riga.getCd_cds_area().compareTo(oggettobulk.getCd_cds_area()) == 0)) || (riga.getCd_cds_area() == null && oggettobulk.getCd_cds_area() == null) || (riga.getCd_cds_area() != null && riga.getCd_cds_area().compareTo(riga.getCdr_assegnatario().getCd_cds()) == 0 && oggettobulk.getCd_cds_area() == null) || (oggettobulk.getCd_cds_area() != null && oggettobulk.getCd_cds_area().compareTo(oggettobulk.getCdr_assegnatario().getCd_cds()) == 0 && riga.getCd_cds_area() == null)) && oggettobulk.getLinea_attivita() != null && riga.getLinea_attivita() != null && oggettobulk.getCd_linea_attivita() != null && riga.getCd_linea_attivita() != null && riga.getCd_linea_attivita().compareTo(oggettobulk.getCd_linea_attivita()) == 0 && riga.getCd_elemento_voce() != null && oggettobulk.getCd_elemento_voce() != null && riga.getCd_elemento_voce().compareTo(oggettobulk.getCd_elemento_voce()) == 0) throw new ValidationException("Attenzione: combinazione Esercizio/CdR/Area/G.A.E./Voce già inserita!"); } } /** * Imposta come attivi i tab di default. * * @param context ActionContext */ protected void init(it.cnr.jada.action.Config config, it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException { super.init(config, context); resetTabs(); } protected void resetTabs() { setTab("tab", "tabTotaliGest"); } public boolean isNewButtonHidden() { return true; } public boolean isFreeSearchButtonHidden() { return true; } public boolean isSearchButtonHidden() { return true; } public boolean isDeleteDettagliButtonEnabled() { return isSaveButtonEnabled() && ((isGestioneSpesa() && getRigheVariazioneSpeGest().countDetails() != 0) || (!isGestioneSpesa() && getRigheVariazioneEtrGest().countDetails() != 0)); } protected void initialize(ActionContext actioncontext) throws BusinessProcessException { super.initialize(actioncontext); edit(actioncontext, new Ass_pdg_variazione_cdrBulk(pdg_variazione.getEsercizio(), pdg_variazione.getPg_variazione_pdg(), centro_responsabilita.getCd_centro_responsabilita())); setUoScrivania(CNRUserContext.getCd_unita_organizzativa(actioncontext.getUserContext())); if (it.cnr.contab.utenze00.bulk.CNRUserInfo.getDipartimento(actioncontext) != null) setDipartimentoSrivania(it.cnr.contab.utenze00.bulk.CNRUserInfo.getDipartimento(actioncontext)); try { setParametriCnr(Utility.createParametriCnrComponentSession().getParametriCnr(actioncontext.getUserContext(), CNRUserContext.getEsercizio(actioncontext.getUserContext()))); } catch (ComponentException e1) { throw handleException(e1); } catch (RemoteException e1) { throw handleException(e1); } } public Pdg_variazioneBulk getPdg_variazione() { return pdg_variazione; } public void setPdg_variazione(Pdg_variazioneBulk bulk) { pdg_variazione = bulk; } public String getUoScrivania() { return uoScrivania; } public void setUoScrivania(String string) { uoScrivania = string; } public String getTitle() { if (isGestioneSpesa()) return ("Pdg Gestionale - Variazione Spesa"); return ("Pdg Gestionale - Variazione Entrata"); } /* * da verificare se eliminare */ public boolean isDettagliGestionaliEnable(Pdg_variazioneBulk variazione) { return true; } /* * da verificare se eliminare */ public boolean isDettaglioGestionaleEnable(Pdg_variazione_riga_gestBulk riga) { try { return isDettagliGestionaliEnable(riga.getPdg_variazione()); } catch (NullPointerException e) { return true; } } /** * Ritorna TRUE se il CDR assegnatario appartiene ad una UO di tipo Area * * @param Pdg_variazione_riga_gestBulk La riga di variazione * @return boolean */ public boolean isUoArea() { Ass_pdg_variazione_cdrBulk bulk = (Ass_pdg_variazione_cdrBulk) getModel(); return bulk != null && bulk.getCentro_responsabilita() != null && bulk.getCentro_responsabilita().getUnita_padre() != null && bulk.getCentro_responsabilita().getUnita_padre().getCd_tipo_unita().compareTo(it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome.TIPO_UO_AREA) == 0; } public it.cnr.contab.config00.sto.bulk.CdrBulk getCentro_responsabilita() { return centro_responsabilita; } public void setCentro_responsabilita( it.cnr.contab.config00.sto.bulk.CdrBulk centro_responsabilita) { this.centro_responsabilita = centro_responsabilita; } public SimpleDetailCRUDController getRigheVariazioneEtrGest() { return righeVariazioneEtrGest; } public void setRigheVariazioneEtrGest(SimpleDetailCRUDController righeVariazioneEtrGest) { this.righeVariazioneEtrGest = righeVariazioneEtrGest; } public SimpleDetailCRUDController getRigheVariazioneSpeGest() { return righeVariazioneSpeGest; } public void setRigheVariazioneSpeGest( SimpleDetailCRUDController righeVariazioneSpeGest) { this.righeVariazioneSpeGest = righeVariazioneSpeGest; } public SimpleDetailCRUDController getRigheVariazioneGestionale() { if (isGestioneSpesa()) return righeVariazioneSpeGest; return righeVariazioneEtrGest; } private String getTipoGestione() { return tipoGestione; } private void setTipoGestione(String tipoGestione) { this.tipoGestione = tipoGestione; } public boolean isGestioneSpesa() { return getTipoGestione().equals(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome.GESTIONE_SPESE); } public DipartimentoBulk getDipartimentoSrivania() { return dipartimentoSrivania; } private void setDipartimentoSrivania( DipartimentoBulk dipartimentoSrivania) { this.dipartimentoSrivania = dipartimentoSrivania; } public Pdg_variazione_riga_gestBulk preparaNuovaRiga(ActionContext context) throws it.cnr.jada.action.BusinessProcessException { Pdg_variazione_riga_gestBulk riga = new Pdg_variazione_riga_spesa_gestBulk(); Ass_pdg_variazione_cdrBulk bulk = (Ass_pdg_variazione_cdrBulk) getModel(); if (isVariazioneApprovata(context)) { PdGVariazioniComponentSession comp = Utility.createPdGVariazioniComponentSession(); try { Pdg_variazione_riga_spesa_gestBulk rigaDB = (Pdg_variazione_riga_spesa_gestBulk) comp.recuperoRigaLiquidazioneIva(context.getUserContext(), bulk); if (rigaDB != null) { Elemento_voceBulk elementoVoce = (Elemento_voceBulk) createComponentSession().findByPrimaryKey(context.getUserContext(), new Elemento_voceBulk(rigaDB.getElemento_voce().getCd_elemento_voce(), rigaDB.getElemento_voce().getEsercizio(), rigaDB.getElemento_voce().getTi_appartenenza(), rigaDB.getElemento_voce().getTi_gestione())); if (elementoVoce.getV_classificazione_voci() != null) { V_classificazione_vociBulk vClassDB = elementoVoce.getV_classificazione_voci(); V_classificazione_vociBulk vClass = (V_classificazione_vociBulk) createComponentSession().findByPrimaryKey(context.getUserContext(), new V_classificazione_vociBulk(vClassDB.getId_classificazione())); elementoVoce.setV_classificazione_voci(vClass); } riga.setElemento_voce(elementoVoce); } } catch (RemoteException e1) { throw handleException(e1); } catch (ComponentException e1) { throw handleException(e1); } } return riga; } public boolean isVariazioneApprovata(ActionContext context) { Ass_pdg_variazione_cdrBulk bulk = (Ass_pdg_variazione_cdrBulk) getModel(); if (bulk.getPdg_variazione().isApprovata()) { return true; } return false; } public void apponiVistoDipartimento(ActionContext context, Pdg_variazione_riga_gestBulk riga) throws it.cnr.jada.action.BusinessProcessException { try { PdGVariazioniComponentSession comp = Utility.createPdGVariazioniComponentSession(); riga = (Pdg_variazione_riga_gestBulk) comp.apponiVistoDipartimento(context.getUserContext(), riga, CNRUserInfo.getDipartimento(context)); } catch (it.cnr.jada.comp.ComponentException ex) { throw handleException(ex); } catch (java.rmi.RemoteException ex) { throw handleException(ex); } } public Parametri_cnrBulk getParametriCnr() { return parametriCnr; } private void setParametriCnr(Parametri_cnrBulk parametriCnr) { this.parametriCnr = parametriCnr; } public void valorizzaProgettoLineaAttivita(ActionContext actioncontext, Pdg_variazione_riga_gestBulk riga) throws BusinessProcessException { try { if (riga.getLinea_attivita() != null && riga.getLinea_attivita().getCd_linea_attivita() != null) riga.setProgetto(((CRUDPdgVariazioneRigaGestComponentSession) createComponentSession()).getProgettoLineaAttivita(actioncontext.getUserContext(), riga)); else riga.setProgetto(null); } catch (DetailedRuntimeException e) { throw new BusinessProcessException(e); } catch (ComponentException e) { throw new BusinessProcessException(e); } catch (RemoteException e) { throw new BusinessProcessException(e); } } }





© 2015 - 2025 Weber Informatics LLC | Privacy Policy