it.cnr.contab.prevent01.comp.CRUDPdg_Modulo_EntrateComponent 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 Sep 19, 2005
*
* To change the template for this generated file go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
package it.cnr.contab.prevent01.comp;
import java.rmi.RemoteException;
import java.util.Iterator;
import javax.ejb.EJBException;
import it.cnr.contab.config00.bulk.Parametri_cnrBulk;
import it.cnr.contab.config00.bulk.Parametri_cnrHome;
import it.cnr.contab.config00.bulk.Parametri_enteBulk;
import it.cnr.contab.config00.bulk.Parametri_enteHome;
import it.cnr.contab.config00.latt.bulk.WorkpackageBulk;
import it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome;
import it.cnr.contab.config00.pdcfin.bulk.NaturaBulk;
import it.cnr.contab.config00.pdcfin.cla.bulk.Classificazione_vociBulk;
import it.cnr.contab.config00.pdcfin.cla.bulk.Parametri_livelliBulk;
import it.cnr.contab.config00.pdcfin.cla.bulk.Parametri_livelliHome;
import it.cnr.contab.config00.pdcfin.cla.bulk.V_classificazione_vociBulk;
import it.cnr.contab.config00.sto.bulk.CdrBulk;
import it.cnr.contab.config00.sto.bulk.CdsBulk;
import it.cnr.contab.config00.sto.bulk.CdsHome;
import it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome;
import it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk;
import it.cnr.contab.pdg01.consultazioni.bulk.V_cons_pdgp_pdgg_etrBulk;
import it.cnr.contab.prevent01.bp.CRUDPdg_Modulo_EntrateBP;
import it.cnr.contab.prevent01.bulk.Pdg_moduloBulk;
import it.cnr.contab.prevent01.bulk.Pdg_Modulo_EntrateBulk;
import it.cnr.contab.prevent01.bulk.Pdg_Modulo_EntrateHome;
import it.cnr.contab.prevent01.ejb.PdgModuloEntrateComponentSession;
import it.cnr.contab.progettiric00.core.bulk.ProgettoBulk;
import it.cnr.contab.progettiric00.core.bulk.Progetto_other_fieldBulk;
import it.cnr.contab.progettiric00.core.bulk.Progetto_other_fieldHome;
import it.cnr.contab.progettiric00.core.bulk.Progetto_piano_economicoBulk;
import it.cnr.contab.progettiric00.core.bulk.Progetto_piano_economicoHome;
import it.cnr.contab.progettiric00.core.bulk.Progetto_sipBulk;
import it.cnr.contab.progettiric00.tabrif.bulk.Voce_piano_economico_prgBulk;
import it.cnr.contab.progettiric00.tabrif.bulk.Voce_piano_economico_prgHome;
import it.cnr.contab.utenze00.bp.CNRUserContext;
import it.cnr.contab.utenze00.bulk.UtenteBulk;
import it.cnr.contab.utenze00.bulk.UtenteComuneBulk;
import it.cnr.contab.util.Utility;
import it.cnr.jada.DetailedRuntimeException;
import it.cnr.jada.UserContext;
import it.cnr.jada.bulk.BulkList;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.bulk.SimpleBulkList;
import it.cnr.jada.comp.ApplicationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.persistency.PersistencyException;
import it.cnr.jada.persistency.sql.CompoundFindClause;
import it.cnr.jada.persistency.sql.FindClause;
import it.cnr.jada.persistency.sql.HomeCache;
import it.cnr.jada.persistency.sql.Query;
import it.cnr.jada.persistency.sql.SQLBuilder;
/**
* @author rpucciarelli
*
* To change the template for this generated type comment go to
* Window>Preferences>Java>Code Generation>Code and Comments
*/
public class CRUDPdg_Modulo_EntrateComponent extends it.cnr.jada.comp.CRUDComponent {
public CRUDPdg_Modulo_EntrateComponent() {
super();
}
public OggettoBulk modificaConBulk(UserContext usercontext, OggettoBulk oggettobulk) throws ComponentException {
oggettobulk.setCrudStatus(OggettoBulk.NORMAL);
return super.modificaConBulk(usercontext, oggettobulk);
}
public OggettoBulk creaConBulk(UserContext usercontext, OggettoBulk oggettobulk) throws ComponentException {
oggettobulk.setCrudStatus(OggettoBulk.NORMAL);
return super.creaConBulk(usercontext, oggettobulk);
}
/**
* Ritorna il bulk dei parametri livelli dell'Esercizio indicato .
*/
public Parametri_livelliBulk findParametriLivelli(UserContext userContext, Integer esercizio) throws it.cnr.jada.comp.ComponentException {
try
{
Parametri_livelliHome parametri_livelliHome = (Parametri_livelliHome) getHome(userContext, Parametri_livelliBulk.class );
Parametri_livelliBulk parametri_livelliBulk = (Parametri_livelliBulk)parametri_livelliHome.findByPrimaryKey(new Parametri_livelliBulk(esercizio));
if (parametri_livelliBulk==null)
throw new ApplicationException("Parametri Livelli non definiti per l'esercizio " + esercizio + ".");
return parametri_livelliBulk;
}
catch (Exception e )
{
throw handleException( e );
}
}
public SQLBuilder selectLinea_attivitaByClause(UserContext userContext, Pdg_Modulo_EntrateBulk dettaglio, it.cnr.contab.config00.latt.bulk.WorkpackageBulk l_att, CompoundFindClause clauses)
throws ComponentException
{
SQLBuilder sql = getHome(userContext, it.cnr.contab.config00.latt.bulk.WorkpackageBulk.class,"V_LINEA_ATTIVITA_VALIDA").createSQLBuilder();
sql.addClause( clauses );
if (dettaglio.getCdr_linea()!=null)
sql.addSQLClause("AND","ESERCIZIO",sql.EQUALS,it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext));
sql.addSQLClause("AND","CD_CENTRO_RESPONSABILITA",sql.EQUALS, dettaglio.getCdr_linea());
sql.addSQLClause("AND","TI_GESTIONE",sql.EQUALS, "E");
return sql;
}
public SQLBuilder selectAreaByClause (UserContext userContext,Pdg_Modulo_EntrateBulk dett,CdsBulk ass_uo,CompoundFindClause clause) throws ComponentException, PersistencyException
{
SQLBuilder sql = ((CdsHome)getHome(userContext, CdsBulk.class)).createSQLBuilder();
if (clause != null)
sql.addClause(clause);
sql.addTableToHeader("ASS_UO_AREA");
sql.addTableToHeader("UNITA_ORGANIZZATIVA UO");
sql.addTableToHeader("UNITA_ORGANIZZATIVA CDS");
sql.addSQLClause("AND", "ASS_UO_AREA.ESERCIZIO", sql.EQUALS, CNRUserContext.getEsercizio(userContext));
sql.addSQLClause("AND", "UO.CD_UNITA_ORGANIZZATIVA", sql.EQUALS, CNRUserContext.getCd_unita_organizzativa(userContext));
sql.addSQLJoin("CDS.CD_UNITA_PADRE","UO.CD_UNITA_PADRE");
sql.addSQLJoin("CDS.CD_UNITA_ORGANIZZATIVA","ASS_UO_AREA.CD_UNITA_ORGANIZZATIVA");
sql.addSQLJoin("ASS_UO_AREA.CD_AREA_RICERCA","UNITA_ORGANIZZATIVA.CD_UNITA_ORGANIZZATIVA");
SQLBuilder sql2 = ((CdsHome)getHome(userContext, CdsBulk.class)).createSQLBuilder();
sql2.addTableToHeader("UNITA_ORGANIZZATIVA UO");
sql2.addSQLClause("AND", "UO.CD_UNITA_ORGANIZZATIVA", sql.EQUALS, CNRUserContext.getCd_unita_organizzativa(userContext));
sql2.addSQLJoin("UNITA_ORGANIZZATIVA.CD_UNITA_ORGANIZZATIVA","UO.CD_UNITA_PADRE");
return sql.union(sql2,true);
}
public SQLBuilder selectClassificazione_vociByClause(CNRUserContext userContext, Pdg_Modulo_EntrateBulk dettaglio,V_classificazione_vociBulk clas, CompoundFindClause clauses)
throws ComponentException
{
Parametri_cnrBulk param= parametriCnr(userContext);
SQLBuilder sql = getHome(userContext, V_classificazione_vociBulk.class).createSQLBuilder();
sql.addTableToHeader("UNITA_ORGANIZZATIVA");
sql.addTableToHeader("CDR");
sql.addSQLClause("AND", "V_CLASSIFICAZIONE_VOCI.TI_GESTIONE", sql.EQUALS, Elemento_voceHome.GESTIONE_ENTRATE);
sql.addSQLClause("AND", "V_CLASSIFICAZIONE_VOCI.NR_LIVELLO", sql.EQUALS,param.getLivello_pdg_decis_etr());
sql.addSQLClause("AND", "V_CLASSIFICAZIONE_VOCI.ESERCIZIO", sql.EQUALS, param.getEsercizio());
sql.addSQLClause("AND", "CDR.CD_CENTRO_RESPONSABILITA", sql.EQUALS, dettaglio.getCd_centro_responsabilita());
sql.addSQLJoin("CDR.CD_UNITA_ORGANIZZATIVA","UNITA_ORGANIZZATIVA.CD_UNITA_ORGANIZZATIVA");
sql.openParenthesis("AND");
sql.addSQLClause("AND", "UNITA_ORGANIZZATIVA.CD_TIPO_UNITA", sql.EQUALS, Tipo_unita_organizzativaHome.TIPO_UO_SAC);
sql.openParenthesis("OR");
sql.addSQLClause("AND", "UNITA_ORGANIZZATIVA.CD_TIPO_UNITA", sql.NOT_EQUALS, Tipo_unita_organizzativaHome.TIPO_UO_SAC);
sql.addSQLClause("AND", "V_CLASSIFICAZIONE_VOCI.FL_CLASS_SAC", sql.EQUALS, "N");
sql.closeParenthesis();
sql.closeParenthesis();
sql.addSQLClause("AND", "V_CLASSIFICAZIONE_VOCI.FL_SOLO_GESTIONE", sql.EQUALS, "N");
if (clauses != null)
sql.addClause(clauses);
return sql;
}/**
* Ricerca i parametri ente per l'anno di esercizio in scrivania
* @param aUC UserContext
* @return Parametri_cnrBulk contenente i parametri ente
* @throws it.cnr.jada.comp.ComponentException
*/
public Parametri_cnrBulk parametriCnr(UserContext aUC) throws it.cnr.jada.comp.ComponentException {
Parametri_cnrBulk param;
try {
param = (Parametri_cnrBulk) getHome( aUC, Parametri_cnrBulk.class ).findByPrimaryKey(
new Parametri_cnrBulk(
((CNRUserContext) aUC).getEsercizio()));
} catch (PersistencyException ex) {
throw handleException(ex);
} catch (ComponentException ex) {
throw handleException(ex);
}
if (param == null) {
throw new ApplicationException("Parametri CNR non trovati.");
}
return param;
}
public SQLBuilder selectNaturaByClause(UserContext aUC, Pdg_Modulo_EntrateBulk dettaglio,NaturaBulk natura,CompoundFindClause clauses)
throws ComponentException
{
SQLBuilder sql = getHome(aUC, NaturaBulk.class).createSQLBuilder();
Parametri_cnrBulk param= parametriCnr(aUC);
sql.addClause( clauses );
sql.setDistinctClause(true);
sql.addTableToHeader("ASS_EV_EV ASS,ELEMENTO_VOCE E,V_CLASSIFICAZIONE_VOCI_ALL V");
sql.addSQLJoin("natura.cd_natura", "ass.cd_natura");
sql.addSQLJoin("e.id_classificazione", "v.id_classificazione");
sql.addSQLJoin("e.cd_elemento_voce", "ass.cd_elemento_voce");
sql.addSQLJoin("v.esercizio", "ass.esercizio");
sql.addSQLJoin("v.ti_gestione", "ass.ti_gestione");
sql.addSQLClause("AND", "v.TI_GESTIONE", sql.EQUALS, Elemento_voceHome.GESTIONE_ENTRATE);
sql.addSQLClause("AND", "v.CD_LIV"+param.getLivello_pdg_decis_etr(), sql.EQUALS,dettaglio.getClassificazione_voci().getCd_classificazione());
sql.addSQLClause("AND", "V.FL_MASTRINO", sql.EQUALS,"Y");
sql.addSQLClause("AND", "V.ESERCIZIO", sql.EQUALS, dettaglio.getEsercizio());
return sql;
}
public java.util.Collection findNatura(UserContext aUC,Pdg_Modulo_EntrateBulk dett) throws ComponentException,it.cnr.jada.persistency.PersistencyException {
if (dett.getClassificazione_voci() == null || dett ==null) return null;
return getHome(aUC, NaturaBulk.class).fetchAll(selectNaturaByClause(aUC,dett, null, null));
}
public OggettoBulk inizializzaBulkPerModifica (UserContext userContext,OggettoBulk bulk) throws ComponentException
{
Pdg_moduloBulk testata = (Pdg_moduloBulk)bulk;
try {
testata = (Pdg_moduloBulk)getHome(userContext,Pdg_moduloBulk.class).findByPrimaryKey(testata);
Pdg_Modulo_EntrateHome dettHome = (Pdg_Modulo_EntrateHome)getHome(userContext,Pdg_Modulo_EntrateBulk.class);
testata.setDettagli_entrata(new BulkList(dettHome.findDetailsFor(testata)));
aggiornaImportiTotali(userContext,testata);
testata.getProgetto().setOtherField(
(Progetto_other_fieldBulk)getHome(userContext, Progetto_other_fieldBulk.class)
.findByPrimaryKey(new Progetto_other_fieldBulk(testata.getProgetto().getPg_progetto())));
for (Iterator dett = testata.getDettagli_entrata().iterator();dett.hasNext();){
Pdg_Modulo_EntrateBulk pdg_modulo_entrate = (Pdg_Modulo_EntrateBulk)dett.next();
pdg_modulo_entrate.setNature(((PdgModuloEntrateComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRPREVENT01_EJB_Pdg_Modulo_EntrateComponentSession",it.cnr.contab.prevent01.ejb.PdgModuloEntrateComponentSession.class)).findNatura(userContext, pdg_modulo_entrate));
}
getHomeCache(userContext).fetchAll(userContext,dettHome);
} catch (PersistencyException e) {
throw new ComponentException(e);
} catch (DetailedRuntimeException e) {
throw new ComponentException(e);
} catch (RemoteException e) {
throw new ComponentException(e);
}
return testata;
}
public boolean isUtenteEnte(UserContext userContext) throws ComponentException {
try {
CdsHome cds_home = (CdsHome)getHome(userContext, CdsBulk.class);
CdsBulk cds_scrivania = (CdsBulk)cds_home.findByPrimaryKey(new CdsBulk(CNRUserContext.getCd_cds(userContext)));
if (cds_scrivania.getCd_tipo_unita().equals(Tipo_unita_organizzativaHome.TIPO_UO_ENTE))
return true;
return false;
} catch(Throwable e) {
throw handleException(e);
}
}
public Pdg_moduloBulk aggiornaImportiTotali(it.cnr.jada.UserContext uc, Pdg_moduloBulk testata) throws ComponentException {
SimpleBulkList dettaglio= testata.getDettagli_entrata();
if (dettaglio == null)
return testata;
java.math.BigDecimal totale= new java.math.BigDecimal(0);
totale= totale.setScale(2, java.math.BigDecimal.ROUND_HALF_UP);
try {
for (Iterator i= dettaglio.iterator(); i.hasNext();) {
Pdg_Modulo_EntrateBulk riga= (Pdg_Modulo_EntrateBulk) i.next();
totale= totale.add(riga.getIm_entrata());
}
} catch (Throwable t) {
throw handleException(testata, t);
}
testata.setImporto_progetto(totale);
return testata;
}
public Pdg_Modulo_EntrateBulk getPdgModuloEntrateBulk(it.cnr.jada.UserContext userContext, V_cons_pdgp_pdgg_etrBulk consPdg) throws ComponentException {
try {
Pdg_Modulo_EntrateHome pdgEtrhome = (Pdg_Modulo_EntrateHome)getHome(userContext, Pdg_Modulo_EntrateBulk.class);
Pdg_Modulo_EntrateBulk pdgEtrBulk = (Pdg_Modulo_EntrateBulk)pdgEtrhome.findByPrimaryKey(new Pdg_Modulo_EntrateBulk(consPdg.getEsercizio(),consPdg.getCd_centro_responsabilita(),consPdg.getPg_progetto(),consPdg.getCd_natura(),consPdg.getId_classificazione(),consPdg.getPg_dettaglio(),consPdg.getCd_cds_area()));
return pdgEtrBulk;
} catch(Throwable e) {
throw handleException(e);
}
}
public SQLBuilder selectVoce_piano_economicoByClause(UserContext userContext, Pdg_Modulo_EntrateBulk dettaglio, Voce_piano_economico_prgBulk vocePiano, CompoundFindClause clause) throws ComponentException, PersistencyException {
Voce_piano_economico_prgHome vocePianoHome = (Voce_piano_economico_prgHome)getHome(userContext, Voce_piano_economico_prgBulk.class);
Integer pgProgetto=null;
if (dettaglio!=null && dettaglio.getPg_progetto()!=null)
pgProgetto = dettaglio.getPg_progetto();
SQLBuilder sql = vocePianoHome.findVocePianoEconomicoPrgList(pgProgetto);
if (clause != null)
sql.addClause(clause);
return sql;
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy