use of it.cnr.contab.config00.bulk.Configurazione_cnrHome in project sigla-main by consiglionazionaledellericerche.
the class ReversaleComponent method findUnita_organizzativa.
/**
* ricerca uo a cui assegnare la reversale per cds diverso da SAC
* PreCondition:
* E' stato generata la richiesta di creazione di una reversale di trasferimento
* Il Cds beneficiario dell'accreditamento è diverso dal SAC
* PostCondition:
* L'UO-cds del Cds beneficiario dell'accreditamento viene restituito
* <p>
* ricerca uo a cui assegnare la reversale per cds uguale a SAC
* PreCondition:
* E' stato generata la richiesta di creazione di una reversale di trasferimento
* Il Cds beneficiario dell'accreditamento è uguale al SAC
* PostCondition:
* Viene letta da Configurazione CNR il codice dell'uo per l'accreditamento SAC e vengono resituiti
* i dati di tale UO
*
* @param userContext lo <code>UserContext</code> che ha generato la richiesta
* @param mandato <code>MandatoAccreditamentoBulk</code> il mandato di accreditamento da generare
* @return Unita_organizzativaBulk l'uo a cui assegnare la reversale di trasferimento
*/
private Unita_organizzativaBulk findUnita_organizzativa(UserContext userContext, MandatoAccreditamentoBulk mandato) throws ComponentException {
try {
// verifico se è il cds SAC
boolean isSac = false;
SQLBuilder sql = getHome(userContext, CdsBulk.class).createSQLBuilder();
sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", SQLBuilder.EQUALS, mandato.getCodice_cds());
sql.addSQLClause("AND", "CD_TIPO_UNITA", SQLBuilder.EQUALS, Tipo_unita_organizzativaHome.TIPO_UO_SAC);
List result = getHome(userContext, CdsBulk.class).fetchAll(sql);
if (result.size() != 0)
isSac = true;
if (!isSac) {
// cerco l'uo-cds
sql = getHome(userContext, Unita_organizzativaBulk.class).createSQLBuilder();
sql.addSQLClause("AND", "CD_UNITA_PADRE", SQLBuilder.EQUALS, mandato.getCodice_cds());
sql.addSQLClause("AND", "FL_UO_CDS", SQLBuilder.EQUALS, "Y");
result = getHome(userContext, Unita_organizzativaBulk.class).fetchAll(sql);
if (result.size() != 1)
throw new ApplicationException("Non è possibile identificare l'uo-cds per il Cds " + mandato.getCodice_cds());
return ((Unita_organizzativaBulk) result.get(0));
} else {
// cerco l'uo in configurazione CNR
String cdUo = Optional.ofNullable(((Configurazione_cnrHome) getHome(userContext, Configurazione_cnrBulk.class)).getUoAccreditamentoSac(CNRUserContext.getEsercizio(userContext))).orElseThrow(() -> new ApplicationException("Configurazione CNR: manca la definizione dell'UO_SPECIALE per ACCREDITAMENTO SAC per l'esercizio " + CNRUserContext.getEsercizio(userContext) + "."));
return (Unita_organizzativaBulk) getHome(userContext, Unita_organizzativaBulk.class).findByPrimaryKey(new Unita_organizzativaBulk(cdUo));
}
} catch (Exception e) {
throw handleException(e);
}
}
use of it.cnr.contab.config00.bulk.Configurazione_cnrHome 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.bulk.Configurazione_cnrHome in project sigla-main by consiglionazionaledellericerche.
the class FatturaElettronicaPassivaComponent method getEmailPecSdi.
public Configurazione_cnrBulk getEmailPecSdi(UserContext userContext, boolean lock) throws it.cnr.jada.comp.ComponentException {
try {
Configurazione_cnrBulk configurazione_cnrBulk = new Configurazione_cnrBulk(Configurazione_cnrBulk.PK_EMAIL_PEC, Configurazione_cnrBulk.SK_SDI, "*", new Integer(0));
Configurazione_cnrHome configurazione_cnrHome = (Configurazione_cnrHome) getHome(userContext, Configurazione_cnrBulk.class);
configurazione_cnrBulk = (Configurazione_cnrBulk) configurazione_cnrHome.findAndLock(configurazione_cnrBulk);
if (lock) {
if ("Y".equalsIgnoreCase(configurazione_cnrBulk.getVal04()))
return null;
configurazione_cnrBulk.setVal04("Y");
configurazione_cnrBulk.setToBeUpdated();
configurazione_cnrHome.update(configurazione_cnrBulk, userContext);
}
return configurazione_cnrBulk;
} catch (BusyResourceException _ex) {
return null;
} catch (Throwable e) {
throw handleException(e);
}
}
use of it.cnr.contab.config00.bulk.Configurazione_cnrHome in project sigla-main by consiglionazionaledellericerche.
the class DistintaCassiereComponent method lockMessaggiSIOPEPlus.
public Configurazione_cnrBulk lockMessaggiSIOPEPlus(UserContext userContext) throws it.cnr.jada.comp.ComponentException {
try {
Configurazione_cnrBulk configurazione_cnrBulk = new Configurazione_cnrBulk(Configurazione_cnrBulk.PK_FLUSSO_ORDINATIVI, Configurazione_cnrBulk.SK_ATTIVO_SIOPEPLUS, "*", CNRUserContext.getEsercizio(userContext));
Configurazione_cnrHome configurazione_cnrHome = (Configurazione_cnrHome) getHome(userContext, Configurazione_cnrBulk.class);
configurazione_cnrBulk = (Configurazione_cnrBulk) configurazione_cnrHome.findAndLock(configurazione_cnrBulk);
if ("Y".equalsIgnoreCase(configurazione_cnrBulk.getVal04()))
return null;
configurazione_cnrBulk.setVal04("Y");
configurazione_cnrBulk.setToBeUpdated();
configurazione_cnrHome.update(configurazione_cnrBulk, userContext);
return configurazione_cnrBulk;
} catch (BusyResourceException _ex) {
return null;
} catch (Throwable e) {
throw handleException(e);
}
}
use of it.cnr.contab.config00.bulk.Configurazione_cnrHome in project sigla-main by consiglionazionaledellericerche.
the class ObbligazioneHome method findLineeAttivitaSAC.
/**
* <!-- @TODO: da completare -->
*
* @param capitoliList
* @return
* @throws IntrospectionException
* @throws PersistencyException
*/
public java.util.List findLineeAttivitaSAC(List cdrList, List capitoliList, ObbligazioneBulk obbligazione) throws IntrospectionException, PersistencyException {
try {
String statement = "SELECT DISTINCT A.* FROM " + EJBCommonServices.getDefaultSchema() + "V_PDG_OBBLIGAZIONE_SPE A " + "WHERE " + "(A.CATEGORIA_DETTAGLIO = ? OR " + "(A.CATEGORIA_DETTAGLIO = 'STI' AND A.CD_CENTRO_RESPONSABILITA = ? ) OR " + "A.CATEGORIA_DETTAGLIO = ?) AND " + "A.ESERCIZIO = ? AND " + "A.ESERCIZIO_RES = ? AND " + "A.TI_APPARTENENZA = ? AND " + "A.TI_GESTIONE = ? AND " + "A.CD_ELEMENTO_VOCE = ? AND ";
int sizeCapitoli = capitoliList.size();
if (sizeCapitoli == 0)
return Collections.EMPTY_LIST;
if (capitoliList.get(0) instanceof Voce_fBulk) {
statement = statement.concat("( (A.CD_FUNZIONE = ? AND A.CD_CENTRO_RESPONSABILITA = ? ) ");
for (int t = 1; t < sizeCapitoli; t++) statement = statement.concat("OR (A.CD_FUNZIONE = ? AND A.CD_CENTRO_RESPONSABILITA = ? ) ");
statement = statement.concat(" ) ");
} else {
int sizeCdr = cdrList.size();
if (sizeCdr == 0)
return Collections.EMPTY_LIST;
statement = statement.concat("( (A.CD_FUNZIONE = ? AND A.CD_CENTRO_RESPONSABILITA = ? ) ");
for (int t = 1; t < sizeCdr; t++) statement = statement.concat("OR (A.CD_FUNZIONE = ? AND A.CD_CENTRO_RESPONSABILITA = ? ) ");
statement = statement.concat(" ) ");
}
LoggableStatement ps = new LoggableStatement(getConnection(), statement, true, this.getClass());
try {
IVoceBilancioBulk capitolo = (IVoceBilancioBulk) capitoliList.iterator().next();
Optional<String> optCdrPersonale = Optional.ofNullable(((Configurazione_cnrHome) getHomeCache().getHome(Configurazione_cnrBulk.class)).getCdrPersonale(capitolo.getEsercizio()));
if (!optCdrPersonale.isPresent())
throw new RuntimeException("Non è possibile individuare il codice CDR del Personale per l'esercizio " + capitolo.getEsercizio() + ".");
ps.setString(1, Pdg_preventivo_detBulk.CAT_SINGOLO);
ps.setString(2, optCdrPersonale.get());
ps.setString(3, Pdg_modulo_spese_gestBulk.CAT_DIRETTA);
ps.setObject(4, capitolo.getEsercizio());
ps.setObject(5, obbligazione.getEsercizio_originale());
ps.setString(6, Elemento_voceHome.APPARTENENZA_CDS);
ps.setString(7, Elemento_voceHome.GESTIONE_SPESE);
ps.setString(8, capitolo.getCd_titolo_capitolo());
int j = 9;
Iterator i = capitoliList.iterator();
capitolo = (IVoceBilancioBulk) i.next();
if (capitolo instanceof Voce_fBulk) {
ps.setString(j++, capitolo.getCd_funzione());
ps.setString(j++, ((Voce_fBulk) capitolo).getCd_centro_responsabilita());
for (; i.hasNext(); ) {
capitolo = (Voce_fBulk) i.next();
ps.setString(j++, capitolo.getCd_funzione());
ps.setString(j++, ((Voce_fBulk) capitolo).getCd_centro_responsabilita());
}
} else {
// per cui non effettuo il loop sull'iterator capitoliList
for (Iterator iterator = cdrList.iterator(); iterator.hasNext(); ) {
CdrBulk cdr = (CdrBulk) iterator.next();
ps.setString(j++, capitolo.getCd_funzione());
ps.setString(j++, cdr.getCd_centro_responsabilita());
}
}
ResultSet rs = ps.executeQuery();
try {
PersistentHome pdgHome = getHomeCache().getHome(V_pdg_obbligazione_speBulk.class);
return pdgHome.fetchAll(pdgHome.createBroker(ps, rs));
} catch (Exception e) {
throw new PersistencyException(e);
} finally {
try {
rs.close();
} catch (java.sql.SQLException e) {
}
;
}
} catch (SQLException e) {
throw new PersistencyException(e);
} finally {
try {
ps.close();
} catch (java.sql.SQLException e) {
}
;
}
} catch (SQLException e) {
throw new PersistencyException(e);
}
}
Aggregations