it.cnr.contab.config00.bp.CRUDWorkpackageBP 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 .
*/
package it.cnr.contab.config00.bp;
import java.rmi.RemoteException;
import it.cnr.contab.config00.bulk.Parametri_cnrBulk;
import it.cnr.contab.config00.bulk.Parametri_enteBulk;
import it.cnr.contab.config00.latt.bulk.WorkpackageBulk;
import it.cnr.contab.config00.sto.bulk.CdrBulk;
import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk;
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.prevent01.bulk.Pdg_Modulo_EntrateBulk;
import it.cnr.contab.prevent01.bulk.Pdg_modulo_speseBulk;
import it.cnr.contab.prevent01.bulk.Pdg_programmaBulk;
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_sipBulk;
import it.cnr.contab.progettiric00.ejb.ProgettoRicercaPadreComponentSession;
import it.cnr.contab.utenze00.bp.CNRUserContext;
import it.cnr.contab.util.Utility;
import it.cnr.jada.UserContext;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.BusinessProcessException;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.bulk.ValidationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.persistency.sql.CompoundFindClause;
import it.cnr.jada.persistency.sql.FindClause;
import it.cnr.jada.persistency.sql.SQLBuilder;
import it.cnr.jada.util.RemoteIterator;
import it.cnr.jada.util.SendMail;
import it.cnr.jada.util.action.SimpleCRUDBP;
import it.cnr.jada.util.action.SimpleDetailCRUDController;
public class CRUDWorkpackageBP extends SimpleCRUDBP {
private final SimpleDetailCRUDController risultati = new SimpleDetailCRUDController("risultati",it.cnr.contab.config00.latt.bulk.RisultatoBulk.class,"risultati",this);
private boolean flNuovoPdg = false;
private boolean flTiGestioneES = false;
private Unita_organizzativaBulk uoScrivania;
private Integer esercizioScrivania;
private Pdg_modulo_speseBulk pdgModuloSpese;
private Pdg_Modulo_EntrateBulk pdgModuloEntrate;
private Pdg_variazione_riga_gestBulk pdgVariazioneRigaSpese;
private Pdg_variazione_riga_entrata_gestBulk pdgVariazioneRigaEntrate;
private CdrBulk pdgCdrAssegnatario;
public CRUDWorkpackageBP() {
super();
}
public CRUDWorkpackageBP(String function) {
super(function);
}
public CRUDWorkpackageBP(String function, Pdg_modulo_speseBulk pdgModuloSpese, CdrBulk pdgCdrAssegnatario)
throws BusinessProcessException {
this(function);
this.pdgModuloSpese = pdgModuloSpese;
this.pdgCdrAssegnatario = pdgCdrAssegnatario;
}
public CRUDWorkpackageBP(String function, Pdg_Modulo_EntrateBulk pdgModuloEntrate, CdrBulk pdgCdrAssegnatario)
throws BusinessProcessException {
this(function);
this.pdgModuloEntrate = pdgModuloEntrate;
this.pdgCdrAssegnatario = pdgCdrAssegnatario;
}
public CRUDWorkpackageBP(String function, Pdg_variazione_riga_gestBulk pdgVariazioneRiga, CdrBulk pdgCdrAssegnatario)
throws BusinessProcessException {
this(function);
if (pdgVariazioneRiga instanceof Pdg_variazione_riga_entrata_gestBulk)
this.pdgVariazioneRigaEntrate = (Pdg_variazione_riga_entrata_gestBulk)pdgVariazioneRiga;
else
this.pdgVariazioneRigaSpese = pdgVariazioneRiga;
this.pdgCdrAssegnatario = pdgCdrAssegnatario;
}
/**
* Ritorna i risultati della linea di attività
*
* @return it.cnr.jada.util.action.SimpleDetailCRUDController
*/
public final it.cnr.jada.util.action.SimpleDetailCRUDController getRisultati() {
return risultati;
}
public boolean isDeleteButtonEnabled() {
it.cnr.contab.config00.latt.bulk.WorkpackageBulk tipo_la = (it.cnr.contab.config00.latt.bulk.WorkpackageBulk)getModel();
return
super.isDeleteButtonEnabled() &&
tipo_la != null &&
(tipo_la.getTipo_linea_attivita() != null) &&
(tipo_la.getTipo_linea_attivita().getTi_tipo_la().equals(it.cnr.contab.config00.latt.bulk.Tipo_linea_attivitaBulk.PROPRIA));
}
public void reset(ActionContext context) throws BusinessProcessException {
super.reset(context);
resetTabs();
}
public void resetForSearch(ActionContext context) throws BusinessProcessException {
super.resetForSearch(context);
resetTabs();
}
private void resetTabs() {
setTab("tab","tabTestata");
}
/*
* Necessario per la creazione di una form con enctype di tipo "multipart/form-data"
* Sovrascrive quello presente nelle superclassi
*
*/
public void openForm(javax.servlet.jsp.PageContext context,String action,String target) throws java.io.IOException,javax.servlet.ServletException {
openForm(context,action,target,"multipart/form-data");
}
public static ProgettoRicercaPadreComponentSession getProgettoRicercaPadreComponentSession() throws javax.ejb.EJBException, java.rmi.RemoteException {
return (ProgettoRicercaPadreComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRPROGETTIRIC00_EJB_ProgettoRicercaPadreComponentSession",ProgettoRicercaPadreComponentSession.class);
}
private void aggiornaGECO(UserContext userContext) {
try {
getProgettoRicercaPadreComponentSession().aggiornaGECO(userContext);
} catch (Exception e) {
String text = "Errore interno del Server Utente:"+CNRUserContext.getUser(userContext);
SendMail.sendErrorMail(text,e.toString());
}
}
@Override
protected void initialize(ActionContext actioncontext) throws BusinessProcessException {
try {
setUoScrivania(it.cnr.contab.utenze00.bulk.CNRUserInfo.getUnita_organizzativa(actioncontext));
setEsercizioScrivania(it.cnr.contab.utenze00.bulk.CNRUserInfo.getEsercizio(actioncontext));
Parametri_cnrBulk parCnr = Utility.createParametriCnrComponentSession().getParametriCnr(actioncontext.getUserContext(), CNRUserContext.getEsercizio(actioncontext.getUserContext()));
setFlNuovoPdg(parCnr.getFl_nuovo_pdg().booleanValue());
Parametri_enteBulk parEnte = Utility.createParametriEnteComponentSession().getParametriEnte(actioncontext.getUserContext());
setFlTiGestioneES(parEnte.getFl_gae_es().booleanValue());
if (parEnte.getFl_informix())
aggiornaGECO(actioncontext.getUserContext());
super.initialize(actioncontext);
} catch (ComponentException e) {
throw new BusinessProcessException(e);
} catch (RemoteException e) {
throw new BusinessProcessException(e);
}
}
@Override
public boolean isNewButtonEnabled() {
if (isUoArea() && !this.isFlNuovoPdg())
return false;
else
return super.isNewButtonEnabled();
}
public boolean isUoArea(){
return (getUoScrivania().getCd_tipo_unita().compareTo(it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome.TIPO_UO_AREA)==0);
}
public Unita_organizzativaBulk getUoScrivania() {
return uoScrivania;
}
public void setUoScrivania(Unita_organizzativaBulk uoScrivania) {
this.uoScrivania = uoScrivania;
}
public Integer getEsercizioScrivania() {
return esercizioScrivania;
}
public void setEsercizioScrivania(Integer esercizioScrivania) {
this.esercizioScrivania = esercizioScrivania;
}
public boolean isFlNuovoPdg() {
return flNuovoPdg;
}
private void setFlNuovoPdg(boolean flNuovoPdg) {
this.flNuovoPdg = flNuovoPdg;
}
public boolean isFlTiGestioneES() {
return flTiGestioneES;
}
public void setFlTiGestioneES(boolean flTiGestioneES) {
this.flTiGestioneES = flTiGestioneES;
}
@Override
public String getSearchResultColumnSet() {
if (this.isFlNuovoPdg()) return "prg_liv2";
return super.getSearchResultColumnSet();
}
@Override
public OggettoBulk initializeModelForInsert(ActionContext actioncontext, OggettoBulk oggettobulk)
throws BusinessProcessException {
oggettobulk = super.initializeModelForInsert(actioncontext, oggettobulk);
try {
if (this.pdgCdrAssegnatario!=null) {
((WorkpackageBulk)oggettobulk).setCentro_responsabilita(this.pdgCdrAssegnatario);
if (this.pdgModuloSpese!=null) {
Progetto_sipBulk progettoSip = this.pdgModuloSpese.getPdg_modulo_costi().getPdg_modulo().getProgetto();
ProgettoBulk progetto = (ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(progettoSip.getEsercizio(), progettoSip.getPg_progetto(), progettoSip.getTipo_fase()));
progetto.setProgettopadre((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(progetto.getEsercizio(), progetto.getPg_progetto_padre(), progetto.getTipo_fase())));
progetto.setOtherField((Progetto_other_fieldBulk)createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new Progetto_other_fieldBulk(progetto.getPg_progetto())));
((WorkpackageBulk)oggettobulk).setTi_gestione(WorkpackageBulk.TI_GESTIONE_ENTRAMBE);
((WorkpackageBulk)oggettobulk).setProgetto2016(progetto);
((WorkpackageBulk)oggettobulk).setPdgMissione(this.pdgModuloSpese.getPdgMissione());
((WorkpackageBulk)oggettobulk).setPdgProgramma((Pdg_programmaBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(), progetto.getProgettopadre().getPdgProgramma()));
((WorkpackageBulk)oggettobulk).setCofog(this.pdgModuloSpese.getCofog());
} else if (this.pdgModuloEntrate!=null) {
Progetto_sipBulk progettoSip = this.pdgModuloEntrate.getTestata().getProgetto();
ProgettoBulk progetto = ((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(progettoSip.getEsercizio(), progettoSip.getPg_progetto(), progettoSip.getTipo_fase())));
progetto.setProgettopadre((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(progetto.getEsercizio(), progetto.getPg_progetto_padre(), progetto.getTipo_fase())));
progetto.setOtherField((Progetto_other_fieldBulk)createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new Progetto_other_fieldBulk(progetto.getPg_progetto())));
((WorkpackageBulk)oggettobulk).setTi_gestione(WorkpackageBulk.TI_GESTIONE_ENTRAMBE);
((WorkpackageBulk)oggettobulk).setProgetto2016(progetto);
((WorkpackageBulk)oggettobulk).setPdgProgramma((Pdg_programmaBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(), progetto.getProgettopadre().getPdgProgramma()));
} else if (this.pdgVariazioneRigaSpese!=null) {
if (this.pdgVariazioneRigaSpese.getProgetto()!=null && this.pdgVariazioneRigaSpese.getProgetto().getPg_progetto()!=null) {
ProgettoBulk progetto = ((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(this.pdgVariazioneRigaSpese.getProgetto().getEsercizio(), this.pdgVariazioneRigaSpese.getProgetto().getPg_progetto(), this.pdgVariazioneRigaSpese.getProgetto().getTipo_fase())));
progetto.setProgettopadre((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(progetto.getEsercizio(), progetto.getPg_progetto_padre(), progetto.getTipo_fase())));
progetto.setOtherField((Progetto_other_fieldBulk)createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new Progetto_other_fieldBulk(progetto.getPg_progetto())));
((WorkpackageBulk)oggettobulk).setTi_gestione(WorkpackageBulk.TI_GESTIONE_ENTRAMBE);
((WorkpackageBulk)oggettobulk).setProgetto2016(progetto);
((WorkpackageBulk)oggettobulk).setPdgProgramma((Pdg_programmaBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(), progetto.getProgettopadre().getPdgProgramma()));
}
} else if (this.pdgVariazioneRigaEntrate!=null) {
if (this.pdgVariazioneRigaEntrate.getProgetto()!=null && this.pdgVariazioneRigaEntrate.getProgetto().getPg_progetto()!=null) {
ProgettoBulk progetto = ((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(this.pdgVariazioneRigaEntrate.getProgetto().getEsercizio(), this.pdgVariazioneRigaEntrate.getProgetto().getPg_progetto(), this.pdgVariazioneRigaEntrate.getProgetto().getTipo_fase())));
progetto.setProgettopadre((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(progetto.getEsercizio(), progetto.getPg_progetto_padre(), progetto.getTipo_fase())));
progetto.setOtherField((Progetto_other_fieldBulk)createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new Progetto_other_fieldBulk(progetto.getPg_progetto())));
((WorkpackageBulk)oggettobulk).setTi_gestione(WorkpackageBulk.TI_GESTIONE_ENTRAMBE);
((WorkpackageBulk)oggettobulk).setProgetto2016(progetto);
((WorkpackageBulk)oggettobulk).setPdgProgramma((Pdg_programmaBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(), progetto.getProgettopadre().getPdgProgramma()));
}
}
}
} catch (ComponentException e) {
throw new BusinessProcessException(e);
} catch (RemoteException e) {
throw new BusinessProcessException(e);
}
return oggettobulk;
}
@Override
public OggettoBulk initializeModelForSearch(ActionContext actioncontext, OggettoBulk oggettobulk)
throws BusinessProcessException {
oggettobulk = super.initializeModelForSearch(actioncontext, oggettobulk);
try {
if (this.pdgCdrAssegnatario!=null) {
((WorkpackageBulk)oggettobulk).setCentro_responsabilita(this.pdgCdrAssegnatario);
if (this.pdgModuloSpese!=null) {
Progetto_sipBulk progettoSip = this.pdgModuloSpese.getPdg_modulo_costi().getPdg_modulo().getProgetto();
ProgettoBulk progetto = ((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(progettoSip.getEsercizio(), progettoSip.getPg_progetto(), progettoSip.getTipo_fase())));
progetto.setProgettopadre((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(progetto.getEsercizio(), progetto.getPg_progetto_padre(), progetto.getTipo_fase())));
((WorkpackageBulk)oggettobulk).setProgetto2016(progetto);
((WorkpackageBulk)oggettobulk).setPdgMissione(this.pdgModuloSpese.getPdgMissione());
((WorkpackageBulk)oggettobulk).setPdgProgramma((Pdg_programmaBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(), progetto.getProgettopadre().getPdgProgramma()));
((WorkpackageBulk)oggettobulk).setCofog(this.pdgModuloSpese.getCofog());
} else if (this.pdgModuloEntrate!=null) {
Progetto_sipBulk progettoSip = this.pdgModuloEntrate.getTestata().getProgetto();
ProgettoBulk progetto = ((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(progettoSip.getEsercizio(), progettoSip.getPg_progetto(), progettoSip.getTipo_fase())));
progetto.setProgettopadre((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(progetto.getEsercizio(), progetto.getPg_progetto_padre(), progetto.getTipo_fase())));
((WorkpackageBulk)oggettobulk).setProgetto2016(progetto);
((WorkpackageBulk)oggettobulk).setPdgProgramma((Pdg_programmaBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(), progetto.getProgettopadre().getPdgProgramma()));
} else if (this.pdgVariazioneRigaSpese!=null) {
if (this.pdgVariazioneRigaSpese.getProgetto()!=null && this.pdgVariazioneRigaSpese.getProgetto().getPg_progetto()!=null) {
ProgettoBulk progetto = ((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(this.pdgVariazioneRigaSpese.getProgetto().getEsercizio(), this.pdgVariazioneRigaSpese.getProgetto().getPg_progetto(), this.pdgVariazioneRigaSpese.getProgetto().getTipo_fase())));
progetto.setProgettopadre((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(progetto.getEsercizio(), progetto.getPg_progetto_padre(), progetto.getTipo_fase())));
progetto.setOtherField((Progetto_other_fieldBulk)createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new Progetto_other_fieldBulk(progetto.getPg_progetto())));
((WorkpackageBulk)oggettobulk).setProgetto2016(progetto);
((WorkpackageBulk)oggettobulk).setPdgProgramma((Pdg_programmaBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(), progetto.getProgettopadre().getPdgProgramma()));
}
} else if (this.pdgVariazioneRigaEntrate!=null) {
if (this.pdgVariazioneRigaEntrate.getProgetto()!=null && this.pdgVariazioneRigaEntrate.getProgetto().getPg_progetto()!=null) {
ProgettoBulk progetto = ((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(this.pdgVariazioneRigaEntrate.getProgetto().getEsercizio(), this.pdgVariazioneRigaEntrate.getProgetto().getPg_progetto(), this.pdgVariazioneRigaEntrate.getProgetto().getTipo_fase())));
progetto.setProgettopadre((ProgettoBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new ProgettoBulk(progetto.getEsercizio(), progetto.getPg_progetto_padre(), progetto.getTipo_fase())));
progetto.setOtherField((Progetto_other_fieldBulk)createComponentSession().findByPrimaryKey(actioncontext.getUserContext(),
new Progetto_other_fieldBulk(progetto.getPg_progetto())));
((WorkpackageBulk)oggettobulk).setProgetto2016(progetto);
((WorkpackageBulk)oggettobulk).setPdgProgramma((Pdg_programmaBulk)this.createComponentSession().findByPrimaryKey(actioncontext.getUserContext(), progetto.getProgettopadre().getPdgProgramma()));
}
}
}
} catch (ComponentException e) {
throw new BusinessProcessException(e);
} catch (RemoteException e) {
throw new BusinessProcessException(e);
}
return oggettobulk;
}
public boolean isMapFromPianoGestioneSpese(){
return this.pdgModuloSpese!=null;
}
public boolean isMapFromPianoGestioneEntrate(){
return this.pdgModuloEntrate!=null;
}
public boolean isMapFromVariazioneGestioneSpese(){
return this.pdgVariazioneRigaSpese!=null;
}
public boolean isMapFromVariazioneGestioneEntrate(){
return this.pdgVariazioneRigaEntrate!=null;
}
public boolean isFieldProgettoDisable(){
return this.isMapFromPianoGestioneSpese()||this.isMapFromPianoGestioneEntrate()||
(this.isMapFromVariazioneGestioneSpese() && this.pdgVariazioneRigaSpese.getProgetto()!=null && this.pdgVariazioneRigaSpese.getProgetto().getPg_progetto()!=null)||
(this.isMapFromVariazioneGestioneEntrate() && this.pdgVariazioneRigaEntrate.getProgetto()!=null && this.pdgVariazioneRigaEntrate.getProgetto().getPg_progetto()!=null);
}
@Override
public void validate(ActionContext actioncontext) throws ValidationException {
if ((isMapFromPianoGestioneSpese() || isMapFromVariazioneGestioneSpese()) && WorkpackageBulk.TI_GESTIONE_ENTRATE.equals(((WorkpackageBulk)getModel()).getTi_gestione()))
throw new ValidationException("Il tipo di gestione non può essere di tipo entrata.");
if ((isMapFromPianoGestioneEntrate() || isMapFromVariazioneGestioneEntrate()) && WorkpackageBulk.TI_GESTIONE_SPESE.equals(((WorkpackageBulk)getModel()).getTi_gestione()))
throw new ValidationException("Il tipo di gestione non può essere di tipo spesa.");
super.validate(actioncontext);
}
@Override
public RemoteIterator find(ActionContext actioncontext, CompoundFindClause compoundfindclause, OggettoBulk oggettobulk) throws BusinessProcessException {
if (compoundfindclause==null)
compoundfindclause = new CompoundFindClause();
if (isMapFromPianoGestioneSpese() || isMapFromVariazioneGestioneSpese())
compoundfindclause.addClause(FindClause.AND, "ti_gestione", SQLBuilder.NOT_EQUALS, WorkpackageBulk.TI_GESTIONE_ENTRATE);
else if (isMapFromPianoGestioneEntrate() || isMapFromVariazioneGestioneEntrate())
compoundfindclause.addClause(FindClause.AND, "ti_gestione", SQLBuilder.NOT_EQUALS, WorkpackageBulk.TI_GESTIONE_SPESE);
return super.find(actioncontext, compoundfindclause, oggettobulk);
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy