use of it.cnr.contab.config00.sto.bulk.CdrBulk in project sigla-main by consiglionazionaledellericerche.
the class SaldoComponent method aggiornaSaldiAnniSuccessivi.
public void aggiornaSaldiAnniSuccessivi(UserContext userContext, String cd_cdr, String cd_linea_attivita, IVoceBilancioBulk voce, Integer esercizio_res, BigDecimal importo, Voce_f_saldi_cdr_lineaBulk saldoOld) throws ComponentException {
Voce_f_saldi_cdr_lineaBulk saldoNew;
try {
Ass_evold_evnewHome ass_evold_evnewHome = (Ass_evold_evnewHome) getHome(userContext, Ass_evold_evnewBulk.class);
CdrHome cdrHome = (CdrHome) getHome(userContext, CdrBulk.class);
CdrBulk cdr = (CdrBulk) cdrHome.findByPrimaryKey(new CdrBulk(cd_cdr));
getHomeCache(userContext).fetchAll(userContext, cdrHome);
if (((Parametri_cdsHome) getHome(userContext, Parametri_cdsBulk.class)).isRibaltato(userContext, cdr.getCd_cds())) {
// RECUPERO L'ELEMENTO DELL'ANNO IN CORSO
for (Iterator esercizi = ((EsercizioHome) getHome(userContext, EsercizioBulk.class)).findEserciziSuccessivi(new EsercizioBulk(CNRUserContext.getCd_cds(userContext), CNRUserContext.getEsercizio(userContext))).iterator(); esercizi.hasNext(); ) {
EsercizioBulk esercizio = (EsercizioBulk) esercizi.next();
String codiceVoce = voce.getCd_voce(), codiceVoceForSaldoNew = null;
// recupero la voce di ribaltamento
Elemento_voceBulk elemento_voce = null;
if (voce instanceof Voce_fBulk) {
if (!((Parametri_cnrHome) getHome(userContext, Parametri_cnrBulk.class)).isNuovoPdg(esercizio.getEsercizio())) {
voce = (Voce_fBulk) getHome(userContext, Voce_fBulk.class).findByPrimaryKey(new Voce_fBulk(voce.getCd_voce(), esercizio.getEsercizio(), saldoOld.getTi_appartenenza(), saldoOld.getTi_gestione()));
getHomeCache(userContext).fetchAll(userContext);
if (voce == null)
throw new ApplicationException("La voce: " + codiceVoce + " non è presente nell'esercizio: " + esercizio.getEsercizio());
saldoNew = findAndLock(userContext, esercizio.getEsercizio(), esercizio_res, cd_cdr, cd_linea_attivita, voce);
codiceVoceForSaldoNew = voce.getCd_voce();
elemento_voce = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(voce.getCd_elemento_voce(), esercizio.getEsercizio(), voce.getTi_appartenenza(), voce.getTi_gestione()));
} else {
// recupero la voce di ribaltamento
// Voce_fBulk voceOld = (Voce_fBulk)getHome(userContext,Voce_fBulk.class).findByPrimaryKey(
// new Voce_fBulk(voce.getCd_voce(),CNRUserContext.getEsercizio(userContext),saldoOld.getTi_appartenenza(),saldoOld.getTi_gestione())
// );
//
// getHomeCache(userContext).fetchAll(userContext);
//
// if (voceOld == null)
// throw new ApplicationException("La voce: "+ voce.getCd_voce() +" non è presente nell'esercizio: "+CNRUserContext.getEsercizio(userContext));
Elemento_voceBulk elementoVoceOld = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(saldoOld.getCd_voce(), CNRUserContext.getEsercizio(userContext), saldoOld.getTi_appartenenza(), saldoOld.getTi_gestione()));
if (elementoVoceOld == null)
throw new ApplicationException("Elemento voce non trovato per la Voce: " + saldoOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
// cerco la voce del nuovo anno
List listVociNew = ass_evold_evnewHome.findAssElementoVoceNewList(elementoVoceOld);
if (!listVociNew.isEmpty()) {
if (listVociNew.size() > 1)
throw new ApplicationException("Trovate nella tabella di associazione Vecchie/Nuove Voci più elementi voce nel nuovo anno per la Voce: " + elementoVoceOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
elemento_voce = (Elemento_voceBulk) listVociNew.get(0);
} else {
elemento_voce = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(elementoVoceOld.getCd_elemento_voce(), esercizio.getEsercizio(), elementoVoceOld.getTi_appartenenza(), elementoVoceOld.getTi_gestione()));
}
if (elemento_voce == null || elemento_voce.getEsercizio().compareTo(esercizio.getEsercizio()) != 0)
throw new ApplicationException("Elemento voce non trovato o associato ad una voce di anno differente rispetto a quello di ribaltamento per la Voce: " + saldoOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
saldoNew = findAndLock(userContext, esercizio.getEsercizio(), esercizio_res, cd_cdr, cd_linea_attivita, elemento_voce);
codiceVoceForSaldoNew = elemento_voce.getCd_voce();
}
} else {
// recupero la voce di ribaltamento
Elemento_voceBulk elementoVoceOld = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(voce.getCd_elemento_voce(), CNRUserContext.getEsercizio(userContext), voce.getTi_appartenenza(), voce.getTi_gestione()));
if (elementoVoceOld == null)
throw new ApplicationException("Elemento voce non trovato per la Voce: " + voce.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
getHomeCache(userContext).fetchAll(userContext);
// cerco la voce del nuovo anno
List listVociNew = ass_evold_evnewHome.findAssElementoVoceNewList(elementoVoceOld);
if (!listVociNew.isEmpty()) {
if (listVociNew.size() > 1)
throw new ApplicationException("Trovate nella tabella di associazione Vecchie/Nuove Voci più elementi voce nel nuovo anno per la Voce: " + elementoVoceOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
elemento_voce = (Elemento_voceBulk) listVociNew.get(0);
} else {
elemento_voce = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(elementoVoceOld.getCd_elemento_voce(), esercizio.getEsercizio(), elementoVoceOld.getTi_appartenenza(), elementoVoceOld.getTi_gestione()));
}
if (elemento_voce == null || elemento_voce.getEsercizio().compareTo(esercizio.getEsercizio()) != 0)
throw new ApplicationException("Elemento voce non trovato o associato ad una voce di anno differente rispetto a quello di ribaltamento per la Voce: " + elementoVoceOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
saldoNew = findAndLock(userContext, esercizio.getEsercizio(), esercizio_res, cd_cdr, cd_linea_attivita, elemento_voce);
codiceVoceForSaldoNew = elemento_voce.getCd_voce();
}
getHomeCache(userContext).fetchAll(userContext);
WorkpackageBulk workpackage = (WorkpackageBulk) getHome(userContext, WorkpackageBulk.class).findByPrimaryKey(new WorkpackageBulk(cd_cdr, cd_linea_attivita));
// Obbligatorio cofog sulle GAE
Parametri_cnrBulk par = (Parametri_cnrBulk) getHome(userContext, Parametri_cnrBulk.class).findByPrimaryKey(new Parametri_cnrBulk(esercizio.getEsercizio()));
if (par != null && par.getLivello_pdg_cofog() != 0)
if ((workpackage.getTi_gestione().compareTo(CostantiTi_gestione.TI_GESTIONE_SPESE) == 0) && workpackage.getCd_cofog() == null)
throw new ApplicationException("Non è possibile utilizzare GAE di spesa in cui non è indicata la classificazione Cofog.");
getHomeCache(userContext).fetchAll(userContext);
if (saldoNew == null) {
if (elemento_voce == null)
throw new ApplicationException("Elemento voce non trovato per la Voce: " + voce.getCd_voce() + " nell'esercizio: " + esercizio.getEsercizio());
saldoNew = new Voce_f_saldi_cdr_lineaBulk(esercizio.getEsercizio(), esercizio_res, cd_cdr, cd_linea_attivita, voce.getTi_appartenenza(), voce.getTi_gestione(), codiceVoceForSaldoNew);
saldoNew.setCd_elemento_voce(elemento_voce.getCd_elemento_voce());
saldoNew.inizializzaSommeAZero();
saldoNew.setToBeCreated();
insertBulk(userContext, saldoNew);
}
if (saldoNew != null) {
saldoNew.setIm_stanz_res_improprio(saldoNew.getIm_stanz_res_improprio().subtract(importo));
// calcolo i vincoli
Pdg_vincoloHome home = (Pdg_vincoloHome) getHome(userContext, Pdg_vincoloBulk.class);
List<Pdg_vincoloBulk> listVincoli = home.cercaDettagliVincolati(saldoNew);
BigDecimal impVincolo = listVincoli.stream().map(e -> e.getIm_vincolo()).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
BigDecimal diff = saldoNew.getDispAdImpResiduoImproprio().subtract(impVincolo);
if (diff.compareTo(Utility.ZERO) < 0) {
if (voce.getTi_gestione().equalsIgnoreCase(Voce_f_saldi_cdr_lineaBulk.TIPO_GESTIONE_SPESA)) {
if (!((elemento_voce.getFl_partita_giro() != null && elemento_voce.getFl_partita_giro().booleanValue()) || (elemento_voce.getFl_limite_ass_obblig() != null && !elemento_voce.getFl_limite_ass_obblig().booleanValue() && workpackage.getFl_limite_ass_obblig() != null && !workpackage.getFl_limite_ass_obblig().booleanValue()))) {
StringBuilder messaggio = new StringBuilder("Impossibile effettuare l'operazione !\n" + "Nell'esercizio " + esercizio.getEsercizio() + " e per il CdR " + cd_cdr + ", " + " Voce " + voce.getCd_voce() + " e GAE " + cd_linea_attivita + " lo stanziamento Residuo Improprio " + " diventerebbe negativo (" + new it.cnr.contab.util.EuroFormat().format(diff.abs()) + ")");
if (impVincolo.compareTo(BigDecimal.ZERO) > 0)
messaggio.append(" in conseguenza della presenza di vincoli di spesa per un importo di " + new it.cnr.contab.util.EuroFormat().format(impVincolo.abs()));
throw new ApplicationException(messaggio.toString());
}
}
}
saldoNew.setToBeUpdated();
updateBulk(userContext, saldoNew);
}
}
}
} catch (PersistencyException e) {
throw new ComponentException(e);
} catch (IntrospectionException e) {
throw new ComponentException(e);
}
}
use of it.cnr.contab.config00.sto.bulk.CdrBulk in project sigla-main by consiglionazionaledellericerche.
the class SaldoComponent method checkPdgPianoEconomico.
public void checkPdgPianoEconomico(UserContext userContext, Pdg_variazioneBulk variazione) throws ComponentException {
try {
if (Utility.createParametriEnteComponentSession().isProgettoPianoEconomicoEnabled(userContext, CNRUserContext.getEsercizio(userContext))) {
Unita_organizzativaBulk uoScrivania = (Unita_organizzativaBulk) getHome(userContext, Unita_organizzativaBulk.class).findByPrimaryKey(new Unita_organizzativaBulk(CNRUserContext.getCd_unita_organizzativa(userContext)));
/*
* non effettuo alcun controllo se è collegata la UO Ente e la variazione è fatta dalla UO Ente
* oppure
* la variazione è generata automaticamente (es. in fase di emissione obbligazione)
*/
if (variazione.getCentro_responsabilita().getUnita_padre().isUoEnte() && (uoScrivania.isUoEnte() || Pdg_variazioneBulk.MOTIVAZIONE_VARIAZIONE_AUTOMATICA.equals(variazione.getTiMotivazioneVariazione())))
return;
/*
* non effettuo alcun controllo se si tratta di variazione IVA
*/
PersistentHome homeLiqVar = getHome(userContext, Liquidazione_iva_variazioniBulk.class);
SQLBuilder sqlLiqVar = homeLiqVar.createSQLBuilder();
sqlLiqVar.addClause(FindClause.AND, "esercizio_variazione_comp", SQLBuilder.EQUALS, variazione.getEsercizio());
sqlLiqVar.addClause(FindClause.AND, "pg_variazione_comp", SQLBuilder.EQUALS, variazione.getPg_variazione_pdg());
if (sqlLiqVar.executeCountQuery(getConnection(userContext)) > 0)
return;
it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession configSession = Utility.createConfigurazioneCnrComponentSession();
List<CtrlPianoEco> listCtrlPianoEco = new ArrayList<CtrlPianoEco>();
String cdNaturaReimpiego = configSession.getVal01(userContext, new Integer(0), null, Configurazione_cnrBulk.PK_GESTIONE_PROGETTI, Configurazione_cnrBulk.SK_NATURA_REIMPIEGO);
String cdVoceSpeciale = configSession.getVal01(userContext, new Integer(0), null, Configurazione_cnrBulk.PK_ELEMENTO_VOCE_SPECIALE, Configurazione_cnrBulk.SK_TEMPO_IND_SU_PROGETTI_FINANZIATI);
String cdrPersonale = Optional.ofNullable(((Configurazione_cnrHome) getHome(userContext, Configurazione_cnrBulk.class)).getCdrPersonale(CNRUserContext.getEsercizio(userContext))).orElseThrow(() -> new ComponentException("Non è possibile individuare il codice CDR del Personale."));
CdrBulk cdrPersonaleBulk = (CdrBulk) getHome(userContext, CdrBulk.class).findByPrimaryKey(new CdrBulk(cdrPersonale));
String uoRagioneria = ((Configurazione_cnrHome) getHome(userContext, Configurazione_cnrBulk.class)).getUoRagioneria(CNRUserContext.getEsercizio(userContext));
Ass_pdg_variazione_cdrHome ass_cdrHome = (Ass_pdg_variazione_cdrHome) getHome(userContext, Ass_pdg_variazione_cdrBulk.class);
java.util.Collection<Pdg_variazione_riga_gestBulk> dettagliVariazione = ass_cdrHome.findDettagli(variazione);
for (Pdg_variazione_riga_gestBulk varStanzRiga : dettagliVariazione) {
// verifico se si tratta di area
CdrBulk cdrBulk = (CdrBulk) getHome(userContext, CdrBulk.class).findByPrimaryKey(new CdrBulk(varStanzRiga.getCd_cdr_assegnatario()));
Unita_organizzativaBulk uoBulk = (Unita_organizzativaBulk) getHome(userContext, Unita_organizzativaBulk.class).findByPrimaryKey(new Unita_organizzativaBulk(cdrBulk.getCd_unita_organizzativa()));
boolean isUoArea = uoBulk.getCd_tipo_unita().equals(Tipo_unita_organizzativaHome.TIPO_UO_AREA);
// verifico se si tratta di voce accentrata verso il personale
Elemento_voceBulk voce = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(varStanzRiga.getElemento_voce());
Classificazione_vociBulk classif = (Classificazione_vociBulk) getHome(userContext, Classificazione_vociBulk.class).findByPrimaryKey(new Classificazione_vociBulk(voce.getId_classificazione()));
boolean isDettPersonale = classif.getFl_accentrato() && cdrPersonale.equals(classif.getCdr_accentratore());
boolean isUoRagioneria = uoBulk.getCd_unita_organizzativa().equals(uoRagioneria);
// recupero la GAE
WorkpackageBulk linea = ((WorkpackageHome) getHome(userContext, WorkpackageBulk.class)).searchGAECompleta(userContext, varStanzRiga.getEsercizio(), varStanzRiga.getCd_cdr_assegnatario(), varStanzRiga.getCd_linea_attivita());
Optional.ofNullable(linea).orElseThrow(() -> new ApplicationException("Errore in fase di ricerca linea_attivita " + varStanzRiga.getEsercizio() + "/" + varStanzRiga.getCd_centro_responsabilita() + "/" + varStanzRiga.getCd_linea_attivita() + "."));
ProgettoBulk progetto = linea.getProgetto();
// effettuo controlli sulla validità del progetto
Optional.of(progetto.getOtherField()).filter(el -> el.isStatoApprovato() || el.isStatoChiuso()).orElseThrow(() -> new ApplicationException("Attenzione! Il progetto " + progetto.getCd_progetto() + " non risulta in stato approvato o chiuso. Variazione non consentita!"));
if (progetto.getOtherField().isDatePianoEconomicoRequired()) {
Optional.ofNullable(progetto.getOtherField().getDtInizio()).orElseThrow(() -> new ApplicationException("Attenzione! GAE " + linea.getCd_linea_attivita() + " non selezionabile. " + "La data inizio del progetto non risulta impostata."));
Optional.ofNullable(progetto.getOtherField().getDtFine()).orElseThrow(() -> new ApplicationException("Attenzione! GAE " + linea.getCd_linea_attivita() + " non selezionabile. " + "La data fine del progetto non risulta impostata."));
// Nelle variazioni controllare la più piccola data tra data inizio progetto e data stipula contratto definitivo
// Recupero la lista dei contratti attivi collegati al progetto
ProgettoHome progettoHome = (ProgettoHome) getHome(userContext, ProgettoBulk.class);
java.util.Collection<ContrattoBulk> contrattiAssociati = progettoHome.findContratti(progetto.getPg_progetto());
Optional<ContrattoBulk> optContratto = contrattiAssociati.stream().filter(el -> el.isAttivo() || el.isAttivo_e_Passivo()).min((p1, p2) -> p1.getDt_stipula().compareTo(p2.getDt_stipula())).filter(el -> el.getDt_stipula().before(progetto.getOtherField().getDtInizio()));
if (optContratto.isPresent())
optContratto.filter(ctr -> ctr.getDt_stipula().after(variazione.getDt_chiusura())).ifPresent(ctr -> {
throw new ApplicationRuntimeException("Attenzione! GAE " + linea.getCd_linea_attivita() + " non selezionabile. " + "La data stipula (" + new java.text.SimpleDateFormat("dd/MM/yyyy").format(ctr.getDt_stipula()) + ") del primo contratto " + ctr.getEsercizio() + "/" + ctr.getStato() + "/" + ctr.getPg_contratto() + " associato al progetto " + progetto.getCd_progetto() + " è successiva " + "rispetto alla data di chiusura della variazione (" + new java.text.SimpleDateFormat("dd/MM/yyyy").format(variazione.getDt_chiusura()) + ").");
});
else
Optional.of(progetto.getOtherField().getDtInizio()).filter(dt -> !dt.after(variazione.getDt_chiusura())).orElseThrow(() -> new ApplicationException("Attenzione! GAE " + linea.getCd_linea_attivita() + " non selezionabile. " + "La data inizio (" + new java.text.SimpleDateFormat("dd/MM/yyyy").format(progetto.getOtherField().getDtInizio()) + ") del progetto " + progetto.getCd_progetto() + " associato è successiva " + "rispetto alla data di chiusura della variazione (" + new java.text.SimpleDateFormat("dd/MM/yyyy").format(variazione.getDt_chiusura()) + ")."));
}
// recupero il record se presente altrimenti ne creo uno nuovo
CtrlPianoEco pianoEco = listCtrlPianoEco.stream().filter(el -> el.getProgetto().getPg_progetto().equals(progetto.getPg_progetto())).findFirst().orElse(new CtrlPianoEco(progetto));
if (variazione.isVariazioneRimodulazioneProgetto()) {
if (variazione.getProgettoRimodulazione().getPg_progetto().compareTo(progetto.getPg_progetto()) != 0)
throw new ApplicationException("Attenzione! Nella variazione " + variazione.getEsercizio() + "/" + variazione.getPg_variazione_pdg() + " risulta movimentato un progetto differente rispetto a quello della " + "rimodulazione associata. Operazione non possibile!");
pianoEco.setRimodulazione(variazione.getProgettoRimodulazione());
}
// creo il dettaglio
CtrlPianoEcoDett dett = new CtrlPianoEcoDett();
dett.setTipoDett(varStanzRiga.getTi_gestione());
dett.setImporto(varStanzRiga.getIm_variazione());
dett.setCdrPersonale(isDettPersonale);
dett.setUoArea(isUoArea);
dett.setUoRagioneria(isUoRagioneria);
dett.setElementoVoce(varStanzRiga.getElemento_voce());
if (Optional.ofNullable(cdNaturaReimpiego).map(el -> el.equals(linea.getNatura().getCd_natura())).orElse(Boolean.FALSE)) {
dett.setTipoNatura(CtrlPianoEcoDett.TIPO_REIMPIEGO);
if (!variazione.getTipo_variazione().isStorno())
throw new ApplicationException("Attenzione! Risultano movimentazioni sulla GAE " + linea.getCd_linea_attivita() + " con natura 6 - 'Reimpiego di risorse' " + " consentito solo per operazioni di storno. Operazione non possibile.");
} else if (linea.getNatura().isFonteEsterna())
dett.setTipoNatura(CtrlPianoEcoDett.TIPO_FONTE_ESTERNA);
else
dett.setTipoNatura(CtrlPianoEcoDett.TIPO_FONTE_INTERNA);
dett.setVoceSpeciale(Optional.ofNullable(cdVoceSpeciale).map(el -> el.equals(varStanzRiga.getCd_elemento_voce())).orElse(Boolean.FALSE));
pianoEco.getDett().add(dett);
if (!listCtrlPianoEco.contains(pianoEco))
listCtrlPianoEco.add(pianoEco);
}
controllaPdgPianoEconomico(userContext, variazione, listCtrlPianoEco, cdVoceSpeciale, cdrPersonaleBulk);
}
} catch (DetailedRuntimeException _ex) {
throw new ApplicationException(_ex.getMessage());
} catch (PersistencyException | RemoteException | IntrospectionException | SQLException e) {
throw new ComponentException(e);
}
}
use of it.cnr.contab.config00.sto.bulk.CdrBulk in project sigla-main by consiglionazionaledellericerche.
the class ObbligazioneComponent method inizializzaBulkPerStampa.
/**
* inizializzaBulkPerStampa method comment.
*/
private void inizializzaBulkPerStampa(UserContext userContext, Stampa_obbligazioni_LAVBulk stampa) throws ComponentException {
// Imposta i parametri CdS, Esercizio, UO, prendeno come rif. i valori di scrivania
stampa.setCd_cds(CNRUserContext.getCd_cds(userContext));
stampa.setEsercizio(CNRUserContext.getEsercizio(userContext));
stampa.setCdUoForPrint(CNRUserContext.getCd_unita_organizzativa(userContext));
// Setta la Data Inizio e Data Fine di default
stampa.setDataInizio(DateServices.getFirstDayOfYear(CNRUserContext.getEsercizio(userContext).intValue()));
stampa.setDataFine(getDataOdierna(userContext));
CdrBulk cdrUtente = cdrFromUserContext(userContext);
Unita_organizzativaBulk uoPadre = null;
try {
uoPadre = (Unita_organizzativaBulk) getHome(userContext, cdrUtente.getUnita_padre()).findByPrimaryKey(cdrUtente.getUnita_padre());
} catch (it.cnr.jada.persistency.PersistencyException pe) {
throw new it.cnr.jada.comp.ComponentException(pe);
}
stampa.setCdrUtente(cdrUtente);
stampa.setLivello_Responsabilita(getLivelloResponsabilitaCDR(userContext, cdrUtente));
stampa.setCdrForPrint(new CdrBulk());
stampa.setIsCdrForPrintEnabled(true);
}
use of it.cnr.contab.config00.sto.bulk.CdrBulk in project sigla-main by consiglionazionaledellericerche.
the class LiquidazioneRateMinicarrieraComponent method recuperaCdUOPerVoceF.
/**
* Recupera il codice dell'Unita Organizzativa da utilizzare nella query di ricerca
* della VoceF nel caso in cui l'Unita Organizzativa di Scrivania sia di TIPO SAC.
*/
private String recuperaCdUOPerVoceF(UserContext userContext, Unita_organizzativaBulk uo) throws ComponentException {
try {
CdrHome home = (CdrHome) getHome(userContext, CdrBulk.class);
SQLBuilder sql = (SQLBuilder) home.createSQLBuilder();
sql.addTableToHeader("CDR", "B");
sql.addSQLJoin("CDR.CD_CENTRO_RESPONSABILITA", "B.CD_CDR_AFFERENZA");
sql.addSQLClause("AND", "B.CD_UNITA_ORGANIZZATIVA", sql.EQUALS, uo.getCd_unita_organizzativa());
java.util.List l = home.fetchAll(sql);
if (l.isEmpty())
return uo.getCd_unita_organizzativa();
if (l.size() > 1)
throw new ApplicationException("Impossibile recuperare il capitolo per l'elemento voce e il GAE selezionato");
CdrBulk unitaOrg = (CdrBulk) l.get(0);
return unitaOrg.getCd_unita_organizzativa();
} catch (PersistencyException ex) {
throw handleException(ex);
}
}
use of it.cnr.contab.config00.sto.bulk.CdrBulk in project sigla-main by consiglionazionaledellericerche.
the class V_quote_utilizzatoriHome method selectByClause.
public SQLBuilder selectByClause(UserContext usercontext, CompoundFindClause compoundfindclause) throws PersistencyException {
SQLBuilder sql = super.selectByClause(usercontext, compoundfindclause);
Unita_organizzativa_enteBulk ente = (Unita_organizzativa_enteBulk) getHomeCache().getHome(Unita_organizzativa_enteBulk.class).findAll().get(0);
sql.addSQLClause("AND", "V_QUOTE_UTILIZZATORI.ESERCIZIO", sql.EQUALS, CNRUserContext.getEsercizio(usercontext));
// Se uo 999.000 in scrivania: visualizza tutto l'elenco
if (!((CNRUserContext) usercontext).getCd_unita_organizzativa().equals(ente.getCd_unita_organizzativa())) {
CdrBulk cdr = (CdrBulk) getHomeCache().getHome(CdrBulk.class).findByPrimaryKey(usercontext, new CdrBulk(CNRUserContext.getCd_cdr(usercontext)));
cdr.setUnita_padre((Unita_organizzativaBulk) getHomeCache().getHome(Unita_organizzativaBulk.class).findByPrimaryKey(usercontext, new Unita_organizzativaBulk(cdr.getUnita_padre().getCd_unita_organizzativa())));
if (cdr.isCdrSAC()) {
sql.addTableToHeader("V_UNITA_ORGANIZZATIVA_VALIDA,CDR");
sql.addSQLClause("AND", "V_UNITA_ORGANIZZATIVA_VALIDA.ESERCIZIO", SQLBuilder.EQUALS, it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(usercontext));
sql.addSQLClause("AND", "FL_CDS", SQLBuilder.EQUALS, "N");
sql.addSQLClause("AND", "CD_TIPO_UNITA", SQLBuilder.EQUALS, Tipo_unita_organizzativaHome.TIPO_UO_SAC);
sql.addSQLJoin("CDR.CD_UNITA_ORGANIZZATIVA", SQLBuilder.EQUALS, "V_UNITA_ORGANIZZATIVA_VALIDA.CD_UNITA_ORGANIZZATIVA");
sql.addSQLJoin("CDR.CD_CENTRO_RESPONSABILITA", SQLBuilder.EQUALS, "V_QUOTE_UTILIZZATORI.CDR");
} else {
sql.openParenthesis("AND");
sql.addSQLClause("AND", "CDR", SQLBuilder.EQUALS, CNRUserContext.getCd_cdr(usercontext));
sql.addSQLClause("OR", "CD_CDR_AFFERENZA", SQLBuilder.EQUALS, CNRUserContext.getCd_cdr(usercontext));
sql.closeParenthesis();
}
}
return sql;
}
Aggregations