use of it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk 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.Unita_organizzativaBulk in project sigla-main by consiglionazionaledellericerche.
the class ObbligazioneComponent method selectUoForPrintByClause.
public SQLBuilder selectUoForPrintByClause(UserContext userContext, Stampa_obb_doc_ammBulk stampa, Unita_organizzativaBulk uo, CompoundFindClause clauses) throws ComponentException, PersistencyException {
SQLBuilder sql = ((Unita_organizzativaHome) getHome(userContext, uo, "V_UNITA_ORGANIZZATIVA_VALIDA")).createSQLBuilder();
sql.addSQLClause("AND", "ESERCIZIO", sql.EQUALS, it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext));
sql.addSQLClause("AND", "CD_UNITA_PADRE", sql.EQUALS, stampa.getCdCdsForPrint());
sql.addClause(clauses);
return sql;
}
use of it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk in project sigla-main by consiglionazionaledellericerche.
the class ObbligazioneComponent method inizializzaBulkPerStampa.
/**
* inizializzaBulkPerStampa method comment.
*/
private void inizializzaBulkPerStampa(UserContext userContext, Stampa_registro_annotazione_spese_pgiroBulk stampa) throws ComponentException {
stampa.setEsercizio(CNRUserContext.getEsercizio(userContext));
stampa.setStato_obbligazione(stampa.STATO_OBB_TUTTI);
stampa.setDataInizio(DateServices.getFirstDayOfYear(CNRUserContext.getEsercizio(userContext).intValue()));
stampa.setDataFine(getDataOdierna(userContext));
stampa.setPgInizio(new Integer(0));
stampa.setPgFine(new Integer(999999999));
stampa.setCdsOrigineForPrint(new CdsBulk());
try {
Unita_organizzativaHome home = (Unita_organizzativaHome) getHome(userContext, Unita_organizzativaBulk.class);
Unita_organizzativaBulk uoScrivania = (Unita_organizzativaBulk) home.findByPrimaryKey(new Unita_organizzativaBulk(CNRUserContext.getCd_unita_organizzativa(userContext)));
String cd_cds_scrivania = it.cnr.contab.utenze00.bp.CNRUserContext.getCd_cds(userContext);
CdsHome cds_home = (CdsHome) getHome(userContext, CdsBulk.class);
CdsBulk cds_scrivania = (CdsBulk) cds_home.findByPrimaryKey(new CdsBulk(cd_cds_scrivania));
if (stampa.isStampa_cnr()) {
if (cds_scrivania.getCd_tipo_unita().equals(Tipo_unita_organizzativaHome.TIPO_UO_ENTE)) {
stampa.setCdsOrigineForPrint(new CdsBulk());
stampa.setIsCdsForPrintEnabled(true);
} else {
stampa.setCdsOrigineForPrint(cds_scrivania);
stampa.setIsCdsForPrintEnabled(false);
}
} else {
stampa.setCdsOrigineForPrint(cds_scrivania);
}
if (!uoScrivania.isUoCds()) {
stampa.setUoForPrint(uoScrivania);
stampa.setIsUOForPrintEnabled(false);
} else {
stampa.setUoForPrint(new Unita_organizzativaBulk());
stampa.setIsUOForPrintEnabled(true);
}
// stampa.setCdsUOInScrivania(uoScrivania.isUoCds());
// stampa.setUoForPrint((stampa.isCdsUOInScrivania())?new Unita_organizzativaBulk():uoScrivania);
} catch (it.cnr.jada.persistency.PersistencyException e) {
throw handleException(stampa, e);
}
}
use of it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk in project sigla-main by consiglionazionaledellericerche.
the class ObbligazionePGiroComponent method findUnitaOrganizzativaOptions.
/**
* ricerca Unità Organizzative
* PreCondition:
* La richiesta di identificazione delle Unità Organizzative per cui e' possibile creare un'obbliga-
* zione PGIRO e' stata generata
* PostCondition:
* Una lista contente l'UO Ente + l'UO di scrivania (se diverso da Ente) viene restituita
*
* @param userContext lo <code>UserContext</code> che ha generato la richiesta
* @param impegno <code>ImpegnoPGiroBulk</code> l'impegno su partita di giro da creare
*
* @return result la lista delle unità organizzative definite per l'impegno su partita di giro
*/
public List findUnitaOrganizzativaOptions(UserContext userContext, ImpegnoPGiroBulk impegno) throws it.cnr.jada.persistency.PersistencyException, it.cnr.jada.persistency.IntrospectionException, ComponentException {
SQLBuilder sql = getHome(userContext, Unita_organizzativa_enteBulk.class).createSQLBuilder();
List result = getHome(userContext, Unita_organizzativa_enteBulk.class).fetchAll(sql);
impegno.setCd_uo_ente(((Unita_organizzativaBulk) result.get(0)).getCd_unita_organizzativa());
if (!((Unita_organizzativaBulk) result.get(0)).getCd_unita_organizzativa().equals(impegno.getUnita_organizzativa().getCd_unita_organizzativa()))
result.add(impegno.getUnita_organizzativa());
return result;
}
use of it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk in project sigla-main by consiglionazionaledellericerche.
the class ObbligazionePGiroComponent method inizializzaBulkPerRicerca.
/**
* inizializzazione per ricerca
* PreCondition:
* La richiesta di inizializzazione di un ImpegnoPGiroBulk per ricerca
* e' stata generata
* PostCondition:
* Vengono impostati il codice Cds e il codice Cds di origine con il codice Cds di scrivania
*
* @param aUC lo <code>UserContext</code> che ha generato la richiesta
* @param bulk <code>OggettoBulk</code> l'impegno su partita di giro da inizializzare per la ricerca
*
* @return <code>OggettoBulk</code> l'impegno su partita di giro inizializzato per la ricerca
*/
public OggettoBulk inizializzaBulkPerRicerca(UserContext userContext, OggettoBulk bulk) throws ComponentException {
ImpegnoPGiroBulk imp_pgiro = (ImpegnoPGiroBulk) bulk;
try {
/*
imp_pgiro.setCds( (CdsBulk) getHome( aUC, CdsBulk.class).findByPrimaryKey( imp_pgiro.getUnita_organizzativa().getUnita_padre() ));
imp_pgiro.setCd_cds_origine( ((CNRUserContext) aUC).getCd_cds() );
// if (!((ObbligazioneHome)getHome(aUC, obbligazione.getClass())).verificaStatoEsercizio(obbligazione))
// throw handleException( new ApplicationException( "Non e' possibile creare obbligazioni: esercizio non ancora aperto!") );
return super.inizializzaBulkPerRicerca( aUC, imp_pgiro );
*/
imp_pgiro = (ImpegnoPGiroBulk) super.inizializzaBulkPerRicerca(userContext, imp_pgiro);
Unita_organizzativa_enteBulk uoEnte = (Unita_organizzativa_enteBulk) getHome(userContext, Unita_organizzativa_enteBulk.class).findAll().get(0);
// imposto cds e uo origine
if (!uoEnte.getCd_unita_organizzativa().equals(((CNRUserContext) userContext).getCd_unita_organizzativa())) {
Unita_organizzativaBulk uoScrivania = (Unita_organizzativaBulk) getHome(userContext, Unita_organizzativaBulk.class).findByPrimaryKey(new Unita_organizzativaBulk(((CNRUserContext) userContext).getCd_unita_organizzativa()));
imp_pgiro.setCd_uo_origine(uoScrivania.getCd_unita_organizzativa());
imp_pgiro.setCd_cds_origine(uoScrivania.getCd_unita_padre());
if (imp_pgiro.isResiduo()) {
imp_pgiro.setCd_cds(uoEnte.getCd_unita_padre());
imp_pgiro.setCd_unita_organizzativa(uoEnte.getCd_unita_organizzativa());
}
} else {
imp_pgiro.setCd_cds(uoEnte.getCd_unita_padre());
imp_pgiro.setCd_unita_organizzativa(uoEnte.getCd_unita_organizzativa());
}
return imp_pgiro;
} catch (it.cnr.jada.persistency.PersistencyException e) {
throw handleException(imp_pgiro, e);
}
}
Aggregations