Search in sources :

Example 1 with ApplicationRuntimeException

use of it.cnr.jada.comp.ApplicationRuntimeException in project sigla-main by consiglionazionaledellericerche.

the class ObbligazioneResComponent method calcolaPercentualeImputazioneObbligazione.

private ObbligazioneBulk calcolaPercentualeImputazioneObbligazione(UserContext aUC, ObbligazioneBulk obbligazione, String tipoErrore, StringBuffer errControllo) throws ComponentException {
    try {
        BigDecimal percentuale = new BigDecimal(100);
        BigDecimal totaleScad = new BigDecimal(0);
        BigDecimal diffScad = new BigDecimal(0);
        Obbligazione_scad_voceBulk osv;
        Obbligazione_scadenzarioBulk os;
        Obbligazione_scad_voceBulk key = new Obbligazione_scad_voceBulk();
        boolean cdsModObblResImporto = isCdsModObblResImporto(aUC, obbligazione.getCd_cds());
        // recupero le percentuali di imputazione finanziaria per le linee di attivita da pdg
        // 100 - percentuali specificate x linee att non da PDG
        PrimaryKeyHashtable prcImputazioneFinanziariaTable = getOldRipartizioneCdrVoceLinea(aUC, obbligazione);
        if (obbligazione.getFl_calcolo_automatico().booleanValue()) {
            if (obbligazione.getIm_obbligazione() == null || obbligazione.getIm_obbligazione().compareTo(Utility.ZERO) <= 0)
                throw new ApplicationException("Non è possibile effettuare il calcolo automatico su una obbligazione con importo nullo.");
            for (Enumeration e = prcImputazioneFinanziariaTable.keys(); e.hasMoreElements(); ) {
                key = (Obbligazione_scad_voceBulk) e.nextElement();
                totaleScad = (BigDecimal) prcImputazioneFinanziariaTable.get(key);
                percentuale = totaleScad.multiply(new BigDecimal(100)).divide(obbligazione.getIm_obbligazione(), 100, BigDecimal.ROUND_HALF_UP);
                for (Iterator s = obbligazione.getObbligazione_scadenzarioColl().iterator(); s.hasNext(); ) {
                    os = (Obbligazione_scadenzarioBulk) s.next();
                    for (Iterator d = os.getObbligazione_scad_voceColl().iterator(); d.hasNext(); ) {
                        osv = (Obbligazione_scad_voceBulk) d.next();
                        // totale per Cdr e per scadenza
                        if (key.getCd_centro_responsabilita().equals(osv.getCd_centro_responsabilita()) && key.getCd_linea_attivita().equals(osv.getCd_linea_attivita()) && key.getCd_voce().equals(osv.getCd_voce())) {
                            osv.setToBeUpdated();
                            osv.setIm_voce(osv.getObbligazione_scadenzario().getIm_scadenza().multiply(percentuale).divide(new BigDecimal(100), 2, BigDecimal.ROUND_HALF_UP));
                            break;
                        }
                    }
                }
            }
        }
        boolean trovato = false;
        // verifico che nella nuova Obbligazione non ci siano linee o voci nuove rispetto alla precedente
        for (Iterator s = obbligazione.getObbligazione_scadenzarioColl().iterator(); s.hasNext(); ) {
            os = (Obbligazione_scadenzarioBulk) s.next();
            for (Iterator d = os.getObbligazione_scad_voceColl().iterator(); d.hasNext(); ) {
                osv = (Obbligazione_scad_voceBulk) d.next();
                trovato = false;
                for (Enumeration e = prcImputazioneFinanziariaTable.keys(); e.hasMoreElements(); ) {
                    key = (Obbligazione_scad_voceBulk) e.nextElement();
                    if (key.getCd_centro_responsabilita().equals(osv.getCd_centro_responsabilita()) && key.getCd_linea_attivita().equals(osv.getCd_linea_attivita()) && key.getCd_voce().equals(osv.getCd_voce())) {
                        trovato = true;
                        break;
                    }
                }
                if (!trovato)
                    throw new ApplicationException("Non è possibile aggiungere nuove linee di attività/voci (" + osv.getCd_linea_attivita() + "/" + osv.getCd_voce() + ") ai residui propri.");
            }
        }
        // verifico che nella nuova Obbligazione alle linee/voci siano stati assegnati gli stessi importi
        for (Enumeration e = prcImputazioneFinanziariaTable.keys(); e.hasMoreElements(); ) {
            key = (Obbligazione_scad_voceBulk) e.nextElement();
            totaleScad = new BigDecimal(0);
            for (Iterator s = obbligazione.getObbligazione_scadenzarioColl().iterator(); s.hasNext(); ) {
                os = (Obbligazione_scadenzarioBulk) s.next();
                for (Iterator d = os.getObbligazione_scad_voceColl().iterator(); d.hasNext(); ) {
                    osv = (Obbligazione_scad_voceBulk) d.next();
                    // totale per Cdr e per scadenza
                    if (key.getCd_centro_responsabilita().equals(osv.getCd_centro_responsabilita()) && key.getCd_linea_attivita().equals(osv.getCd_linea_attivita()) && key.getCd_voce().equals(osv.getCd_voce())) {
                        totaleScad = totaleScad.add(Utility.nvl(osv.getIm_voce()));
                    }
                }
            }
            if (totaleScad.compareTo((BigDecimal) prcImputazioneFinanziariaTable.get(key)) != 0) {
                // se modifico l'importo del residuo devo controllare che non sia bloccata la creazione/modifica del residuo se attiva la gestione del limite sui residui sia sul CDS che sulla voce e per la natura e tipo
                // finanziamento indicato in CONFIGURAZIONE_CNR
                WorkpackageBulk latt = ((WorkpackageHome) getHome(aUC, WorkpackageBulk.class)).searchGAECompleta(aUC, CNRUserContext.getEsercizio(aUC), key.getCd_centro_responsabilita(), key.getCd_linea_attivita());
                if (!UtenteBulk.isAbilitatoSbloccoImpegni(aUC))
                    Utility.createSaldoComponentSession().checkBloccoImpegniNatfin(aUC, latt, obbligazione.getElemento_voce(), obbligazione.isObbligazioneResiduo() ? ObbligazioneBulk.TIPO_RESIDUO_PROPRIO : ObbligazioneBulk.TIPO_RESIDUO_IMPROPRIO);
                // se aumento l'importo del residuo devo controllare che il progetto non sia scaduto
                if (totaleScad.compareTo((BigDecimal) prcImputazioneFinanziariaTable.get(key)) > 0 && Utility.createParametriEnteComponentSession().isProgettoPianoEconomicoEnabled(aUC, CNRUserContext.getEsercizio(aUC))) {
                    ProgettoBulk progetto = latt.getProgetto();
                    Optional.ofNullable(progetto.getOtherField()).filter(el -> el.isStatoApprovato() || el.isStatoChiuso()).orElseThrow(() -> new ApplicationException("Attenzione! Aumento importo GAE " + latt.getCd_linea_attivita() + " non consentito. " + "Il progetto associato " + progetto.getCd_progetto() + " non risulta in stato Approvato o Chiuso."));
                    if (progetto.isDatePianoEconomicoRequired()) {
                        // Negli impegni controllare la più piccola data tra data inizio progetto e data stipula contratto definitivo
                        ProgettoHome progettoHome = (ProgettoHome) getHome(aUC, ProgettoBulk.class);
                        java.util.Collection<ContrattoBulk> contratti = progettoHome.findContratti(progetto.getPg_progetto());
                        Optional<ContrattoBulk> optContratto = contratti.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(obbligazione.getDt_registrazione())).ifPresent(ctr -> {
                                throw new ApplicationRuntimeException("Attenzione! Aumento importo GAE " + latt.getCd_linea_attivita() + " non consentito. " + "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 registrazione dell'obbligazione (" + new java.text.SimpleDateFormat("dd/MM/yyyy").format(obbligazione.getDt_registrazione()) + ").");
                            });
                        else
                            Optional.ofNullable(progetto.getOtherField().getDtInizio()).filter(dt -> !dt.after(obbligazione.getDt_registrazione())).orElseThrow(() -> new ApplicationException("Attenzione! Aumento importo GAE " + latt.getCd_linea_attivita() + " non consentito. " + "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 registrazione dell'obbligazione (" + new java.text.SimpleDateFormat("dd/MM/yyyy").format(obbligazione.getDt_registrazione()) + ")."));
                    }
                    LocalDate localDateFineProgetto = Optional.ofNullable(progetto.getOtherField().getDtProroga()).orElse(Optional.ofNullable(progetto.getOtherField().getDtFine()).orElse(DateUtils.firstDateOfTheYear(3000))).toLocalDateTime().toLocalDate();
                    int ggProroga = Optional.ofNullable(obbligazione.getElemento_voce()).flatMap(el -> {
                        if (obbligazione.isCompetenza())
                            return Optional.ofNullable(el.getGg_deroga_obbl_comp_prg_scad());
                        else
                            return Optional.ofNullable(el.getGg_deroga_obbl_res_prg_scad());
                    }).filter(el -> el.compareTo(0) > 0).orElse(0);
                    localDateFineProgetto = localDateFineProgetto.plusDays(ggProroga);
                    if (localDateFineProgetto.isBefore(EJBCommonServices.getServerDate().toLocalDateTime().toLocalDate()))
                        throw new ApplicationMessageFormatException("Attenzione! Aumento importo GAE {0} non consentito. " + "La data fine/proroga del progetto {1} {2} ({3}) è precedente rispetto alla data odierna.", latt.getCd_linea_attivita(), progetto.getCd_progetto(), (ggProroga > 0 ? ", aumentata di " + ggProroga + " giorni," : ""), localDateFineProgetto.format(DateTimeFormatter.ofPattern("dd/MM/yyyy")));
                }
                if (!obbligazione.getFl_calcolo_automatico().booleanValue()) {
                    String errore = "L'importo (" + new it.cnr.contab.util.EuroFormat().format(totaleScad) + ") assegnato alla GAE " + key.getCd_linea_attivita() + " e alla voce " + obbligazione.getElemento_voce().getCd_elemento_voce() + " è " + new String(totaleScad.compareTo((BigDecimal) prcImputazioneFinanziariaTable.get(key)) == 1 ? "maggiore" : "minore") + " di " + new it.cnr.contab.util.EuroFormat().format(totaleScad.subtract((BigDecimal) prcImputazioneFinanziariaTable.get(key)).abs()) + " rispetto al valore originario dell'impegno residuo proprio (" + new it.cnr.contab.util.EuroFormat().format((BigDecimal) prcImputazioneFinanziariaTable.get(key)) + ")";
                    // un movimento di modifica altrimenti è errore bloccante
                    if (totaleScad.subtract((BigDecimal) prcImputazioneFinanziariaTable.get(key)).compareTo(Utility.ZERO) < 0) {
                        // oppure nessun errore
                        if (tipoErrore.equals(TIPO_ERRORE_CONTROLLO)) {
                            errControllo.append(errore);
                            return obbligazione;
                        }
                    } else if (totaleScad.subtract((BigDecimal) prcImputazioneFinanziariaTable.get(key)).compareTo(Utility.ZERO) > 0) {
                        // oppure nessun errore
                        if (cdsModObblResImporto) {
                            if (tipoErrore.equals(TIPO_ERRORE_CONTROLLO)) {
                                errControllo.append(errore);
                                return obbligazione;
                            }
                        } else
                            throw new ApplicationException(errore);
                    } else
                        throw new ApplicationException(errore);
                } else // }
                {
                    diffScad = totaleScad.subtract((BigDecimal) prcImputazioneFinanziariaTable.get(key));
                    for (Iterator s = obbligazione.getObbligazione_scadenzarioColl().iterator(); s.hasNext() && diffScad.compareTo(Utility.ZERO) != 0; ) {
                        os = (Obbligazione_scadenzarioBulk) s.next();
                        if (os.getIm_associato_doc_amm().compareTo(Utility.ZERO) == 0) {
                            for (Iterator d = os.getObbligazione_scad_voceColl().iterator(); d.hasNext() && diffScad.compareTo(Utility.ZERO) != 0; ) {
                                osv = (Obbligazione_scad_voceBulk) d.next();
                                // totale per Cdr e per scadenza
                                if (key.getCd_centro_responsabilita().equals(osv.getCd_centro_responsabilita()) && key.getCd_linea_attivita().equals(osv.getCd_linea_attivita()) && key.getCd_voce().equals(osv.getCd_voce())) {
                                    if (osv.getIm_voce().subtract(diffScad).compareTo(Utility.ZERO) == 1) {
                                        osv.setToBeUpdated();
                                        osv.setIm_voce(osv.getIm_voce().subtract(diffScad));
                                        diffScad = Utility.ZERO;
                                    } else {
                                        osv.setToBeUpdated();
                                        osv.setIm_voce(Utility.ZERO);
                                        diffScad = diffScad.subtract(osv.getIm_voce());
                                    }
                                }
                            }
                        }
                    }
                    if (diffScad.compareTo(Utility.ZERO) != 0)
                        throw new ApplicationException("Si è verificato un errore durante la ripartizione dell'importo assegnato alla GAE " + key.getCd_linea_attivita() + " e alla voce " + obbligazione.getElemento_voce().getCd_elemento_voce() + ". Procedere con l'imputazione manuale.");
                }
            }
        }
        return obbligazione;
    } catch (Exception ex) {
        throw handleException(ex);
    }
}
Also used : UserContext(it.cnr.jada.UserContext) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) Enumeration(java.util.Enumeration) PrimaryKeyHashtable(it.cnr.jada.bulk.PrimaryKeyHashtable) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) Parametri_cdsBulk(it.cnr.contab.config00.bulk.Parametri_cdsBulk) ProgettoHome(it.cnr.contab.progettiric00.core.bulk.ProgettoHome) Utility(it.cnr.contab.util.Utility) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) BigDecimal(java.math.BigDecimal) Calendar(java.util.Calendar) Obbligazione_modificaBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_modificaBulk) Obbligazione_scad_voceBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceBulk) DateUtils(it.cnr.jada.util.DateUtils) Obbligazione_mod_voceBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_mod_voceBulk) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) WorkpackageHome(it.cnr.contab.config00.latt.bulk.WorkpackageHome) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) GregorianCalendar(java.util.GregorianCalendar) Iterator(java.util.Iterator) UtenteBulk(it.cnr.contab.utenze00.bulk.UtenteBulk) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) BulkList(it.cnr.jada.bulk.BulkList) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) ProgettoBulk(it.cnr.contab.progettiric00.core.bulk.ProgettoBulk) ObbligazioneBulk(it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk) LocalDate(java.time.LocalDate) DateTimeFormatter(java.time.format.DateTimeFormatter) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) Optional(java.util.Optional) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) Obbligazione_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk) ComponentException(it.cnr.jada.comp.ComponentException) Obbligazione_scad_voceBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceBulk) ProgettoBulk(it.cnr.contab.progettiric00.core.bulk.ProgettoBulk) WorkpackageHome(it.cnr.contab.config00.latt.bulk.WorkpackageHome) LocalDate(java.time.LocalDate) Iterator(java.util.Iterator) UserContext(it.cnr.jada.UserContext) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) Enumeration(java.util.Enumeration) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) BigDecimal(java.math.BigDecimal) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) ComponentException(it.cnr.jada.comp.ComponentException) ApplicationException(it.cnr.jada.comp.ApplicationException) ProgettoHome(it.cnr.contab.progettiric00.core.bulk.ProgettoHome) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) PrimaryKeyHashtable(it.cnr.jada.bulk.PrimaryKeyHashtable) Obbligazione_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk)

Example 2 with ApplicationRuntimeException

use of it.cnr.jada.comp.ApplicationRuntimeException 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);
    }
}
Also used : V_classificazione_vociBulk(it.cnr.contab.config00.pdcfin.cla.bulk.V_classificazione_vociBulk) Pdg_variazione_riga_gestBulk(it.cnr.contab.pdg01.bulk.Pdg_variazione_riga_gestBulk) EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk) Voce_piano_economico_prgBulk(it.cnr.contab.progettiric00.tabrif.bulk.Voce_piano_economico_prgBulk) BigDecimal(java.math.BigDecimal) Liquidazione_iva_variazioniBulk(it.cnr.contab.gestiva00.core.bulk.Liquidazione_iva_variazioniBulk) Var_stanz_res_rigaBulk(it.cnr.contab.varstanz00.bulk.Var_stanz_res_rigaBulk) CostantiTi_gestione(it.cnr.contab.config00.latt.bulk.CostantiTi_gestione) it.cnr.contab.progettiric00.core.bulk(it.cnr.contab.progettiric00.core.bulk) ObjectNotFoundException(it.cnr.jada.persistency.ObjectNotFoundException) Ass_var_stanz_res_cdrBulk(it.cnr.contab.varstanz00.bulk.Ass_var_stanz_res_cdrBulk) Pdg_variazioneBulk(it.cnr.contab.pdg00.bulk.Pdg_variazioneBulk) PersistentHome(it.cnr.jada.persistency.sql.PersistentHome) CdrHome(it.cnr.contab.config00.sto.bulk.CdrHome) Classificazione_vociBulk(it.cnr.contab.config00.pdcfin.cla.bulk.Classificazione_vociBulk) Timestamp(java.sql.Timestamp) it.cnr.contab.config00.bulk(it.cnr.contab.config00.bulk) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Tipo_unita_organizzativaHome(it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome) Pdg_modulo_speseBulk(it.cnr.contab.prevent01.bulk.Pdg_modulo_speseBulk) Collectors(java.util.stream.Collectors) Ass_pdg_variazione_cdrHome(it.cnr.contab.pdg00.cdip.bulk.Ass_pdg_variazione_cdrHome) Serializable(java.io.Serializable) RemoteException(java.rmi.RemoteException) Ass_var_stanz_res_cdrHome(it.cnr.contab.varstanz00.bulk.Ass_var_stanz_res_cdrHome) EJBException(javax.ejb.EJBException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) Stream(java.util.stream.Stream) Var_stanz_resBulk(it.cnr.contab.varstanz00.bulk.Var_stanz_resBulk) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) Voce_piano_economico_prgHome(it.cnr.contab.progettiric00.tabrif.bulk.Voce_piano_economico_prgHome) UserContext(it.cnr.jada.UserContext) java.util(java.util) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) Utility(it.cnr.contab.util.Utility) it.cnr.contab.prevent00.bulk(it.cnr.contab.prevent00.bulk) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) Pdg_variazioneHome(it.cnr.contab.pdg00.bulk.Pdg_variazioneHome) Pdg_modulo_costiBulk(it.cnr.contab.prevent01.bulk.Pdg_modulo_costiBulk) SQLException(java.sql.SQLException) it.cnr.contab.config00.pdcfin.bulk(it.cnr.contab.config00.pdcfin.bulk) V_classificazione_vociHome(it.cnr.contab.config00.pdcfin.cla.bulk.V_classificazione_vociHome) Var_stanz_res_rigaHome(it.cnr.contab.varstanz00.bulk.Var_stanz_res_rigaHome) Tipo_variazioneBulk(it.cnr.contab.pdg01.bulk.Tipo_variazioneBulk) FindClause(it.cnr.jada.persistency.sql.FindClause) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) WorkpackageHome(it.cnr.contab.config00.latt.bulk.WorkpackageHome) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) Var_stanz_resHome(it.cnr.contab.varstanz00.bulk.Var_stanz_resHome) CdrBulk(it.cnr.contab.config00.sto.bulk.CdrBulk) BulkList(it.cnr.jada.bulk.BulkList) Pdg_variazione_riga_gestHome(it.cnr.contab.pdg01.bulk.Pdg_variazione_riga_gestHome) Numerazione_doc_contBulk(it.cnr.contab.doccont00.core.bulk.Numerazione_doc_contBulk) ObbligazioneBulk(it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk) EsercizioHome(it.cnr.contab.config00.esercizio.bulk.EsercizioHome) ComponentException(it.cnr.jada.comp.ComponentException) Ass_pdg_variazione_cdrBulk(it.cnr.contab.pdg00.cdip.bulk.Ass_pdg_variazione_cdrBulk) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) SQLException(java.sql.SQLException) WorkpackageHome(it.cnr.contab.config00.latt.bulk.WorkpackageHome) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) Ass_pdg_variazione_cdrHome(it.cnr.contab.pdg00.cdip.bulk.Ass_pdg_variazione_cdrHome) CdrBulk(it.cnr.contab.config00.sto.bulk.CdrBulk) Ass_pdg_variazione_cdrBulk(it.cnr.contab.pdg00.cdip.bulk.Ass_pdg_variazione_cdrBulk) Pdg_variazione_riga_gestBulk(it.cnr.contab.pdg01.bulk.Pdg_variazione_riga_gestBulk) PersistencyException(it.cnr.jada.persistency.PersistencyException) UserContext(it.cnr.jada.UserContext) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) Classificazione_vociBulk(it.cnr.contab.config00.pdcfin.cla.bulk.Classificazione_vociBulk) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) ApplicationException(it.cnr.jada.comp.ApplicationException) java.util(java.util) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) ComponentException(it.cnr.jada.comp.ComponentException) PersistentHome(it.cnr.jada.persistency.sql.PersistentHome) RemoteException(java.rmi.RemoteException)

Example 3 with ApplicationRuntimeException

use of it.cnr.jada.comp.ApplicationRuntimeException in project sigla-main by consiglionazionaledellericerche.

the class ReversaleAutomaticaComponent method creaReversaleAutomaticaDaDocAttivi.

private OggettoBulk creaReversaleAutomaticaDaDocAttivi(UserContext userContext, ReversaleAutomaticaWizardBulk wizard, Collection<V_doc_attivo_accertamento_wizardBulk> docAttiviColl) throws ComponentException {
    try {
        Map<Integer, Map<Optional<String>, Map<Optional<Long>, List<V_doc_attivo_accertamento_wizardBulk>>>> mapTerzo = docAttiviColl.stream().collect(Collectors.groupingBy(V_doc_attivo_accertamento_wizardBulk::getCd_terzo, Collectors.groupingBy(p -> Optional.ofNullable(p.getCd_modalita_pag()), Collectors.groupingBy(q -> Optional.ofNullable(q.getPg_banca())))));
        mapTerzo.keySet().stream().forEach(aCdTerzo -> {
            mapTerzo.get(aCdTerzo).keySet().forEach(aCdModalitaPag -> {
                mapTerzo.get(aCdTerzo).get(aCdModalitaPag).keySet().forEach(aPgBanca -> {
                    try {
                        List docAttiviCompetenzaColl = new ArrayList();
                        List docAttiviResiduiColl = new ArrayList();
                        mapTerzo.get(aCdTerzo).get(aCdModalitaPag).get(aPgBanca).forEach(docTerzo -> {
                            try {
                                Accertamento_scadenzarioBulk as = (Accertamento_scadenzarioBulk) getHome(userContext, Accertamento_scadenzarioBulk.class).findAndLock(new Accertamento_scadenzarioBulk(docTerzo.getCd_cds(), docTerzo.getEsercizio(), docTerzo.getEsercizio_ori_accertamento(), docTerzo.getPg_accertamento(), docTerzo.getPg_accertamento_scadenzario()));
                                if (as.getIm_scadenza().compareTo(docTerzo.getIm_scadenza()) != 0 || as.getIm_associato_doc_contabile().compareTo(docTerzo.getIm_associato_doc_contabile()) != 0)
                                    throw new ApplicationException("Operazione non possibile! E' stata utilizzata da un altro utente la scadenza nr." + docTerzo.getPg_accertamento_scadenzario() + " dell'accertamento " + docTerzo.getEsercizio_ori_accertamento() + "/" + docTerzo.getPg_accertamento());
                                if (docTerzo.isCompetenza() || wizard.isFlGeneraReversaleUnica())
                                    docAttiviCompetenzaColl.add(docTerzo);
                                else
                                    docAttiviResiduiColl.add(docTerzo);
                            } catch (Exception e) {
                                throw new ApplicationRuntimeException(e);
                            }
                        });
                        ReversaleBulk reversaleCompetenza, reversaleResiduo;
                        if (!docAttiviCompetenzaColl.isEmpty()) {
                            reversaleCompetenza = creaReversaleAutomatica(userContext, wizard, MandatoBulk.TIPO_COMPETENZA);
                            reversaleCompetenza.setReversale_terzo(creaReversaleTerzo(reversaleCompetenza, cercaTerzo(userContext, aCdTerzo), wizard.getReversale_terzo().getTipoBollo()));
                            reversaleCompetenza = aggiungiDocAttivi(userContext, reversaleCompetenza, docAttiviCompetenzaColl);
                            reversaleCompetenza.refreshImporto();
                            verificaReversale(userContext, reversaleCompetenza, Boolean.TRUE);
                            super.creaConBulk(userContext, reversaleCompetenza);
                            aggiornaStatoFattura(userContext, reversaleCompetenza, INSERIMENTO_REVERSALE_ACTION);
                            wizard.getReversaliColl().add(reversaleCompetenza);
                        }
                        if (!docAttiviResiduiColl.isEmpty()) {
                            reversaleResiduo = creaReversaleAutomatica(userContext, wizard, MandatoBulk.TIPO_RESIDUO);
                            reversaleResiduo.setReversale_terzo(creaReversaleTerzo(reversaleResiduo, cercaTerzo(userContext, aCdTerzo), wizard.getReversale_terzo().getTipoBollo()));
                            reversaleResiduo = aggiungiDocAttivi(userContext, reversaleResiduo, docAttiviResiduiColl);
                            reversaleResiduo.refreshImporto();
                            verificaReversale(userContext, reversaleResiduo, Boolean.TRUE);
                            super.creaConBulk(userContext, reversaleResiduo);
                            aggiornaStatoFattura(userContext, reversaleResiduo, INSERIMENTO_REVERSALE_ACTION);
                            wizard.getReversaliColl().add(reversaleResiduo);
                        }
                    } catch (Exception e) {
                        throw new DetailedRuntimeException(e);
                    }
                });
            });
        });
        return wizard;
    } catch (Exception e) {
        throw handleException(e);
    }
}
Also used : TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) UserContext(it.cnr.jada.UserContext) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) java.util(java.util) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) Utility(it.cnr.contab.util.Utility) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) BigDecimal(java.math.BigDecimal) ObbligazioneWizard(it.cnr.contab.doccont00.core.ObbligazioneWizard) Modalita_pagamentoBulk(it.cnr.contab.anagraf00.core.bulk.Modalita_pagamentoBulk) BancaBulk(it.cnr.contab.anagraf00.core.bulk.BancaBulk) FindClause(it.cnr.jada.persistency.sql.FindClause) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) V_anagrafico_terzoBulk(it.cnr.contab.anagraf00.core.bulk.V_anagrafico_terzoBulk) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Documento_genericoBulk(it.cnr.contab.docamm00.docs.bulk.Documento_genericoBulk) AccertamentoWizard(it.cnr.contab.doccont00.core.AccertamentoWizard) Tipo_bolloHome(it.cnr.contab.doccont00.tabrif.bulk.Tipo_bolloHome) Collectors(java.util.stream.Collectors) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) CdsBulk(it.cnr.contab.config00.sto.bulk.CdsBulk) Tipo_bolloBulk(it.cnr.contab.doccont00.tabrif.bulk.Tipo_bolloBulk) ComponentException(it.cnr.jada.comp.ComponentException) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) ComponentException(it.cnr.jada.comp.ComponentException) ApplicationException(it.cnr.jada.comp.ApplicationException) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException)

Example 4 with ApplicationRuntimeException

use of it.cnr.jada.comp.ApplicationRuntimeException in project sigla-main by consiglionazionaledellericerche.

the class ObbligazioneComponent method verificaCoerenzaGaeContratto.

public void verificaCoerenzaGaeContratto(UserContext aUC, ObbligazioneBulk obbligazione) throws ComponentException {
    try {
        Optional<Integer> optPrgContratto = Optional.ofNullable(obbligazione).flatMap(el -> Optional.ofNullable(el.getContratto())).flatMap(el -> Optional.ofNullable(el.getPg_progetto()));
        if (optPrgContratto.isPresent()) {
            ProgettoHome progettoHome = (ProgettoHome) getHome(aUC, ProgettoBulk.class);
            WorkpackageHome home = (WorkpackageHome) getHome(aUC, WorkpackageBulk.class);
            obbligazione.getObbligazione_scadenzarioColl().stream().flatMap(el -> Optional.ofNullable(el.getObbligazione_scad_voceColl()).map(List::stream).orElse(Stream.empty())).map(el -> el.getLinea_attivita()).distinct().forEach(el -> {
                try {
                    WorkpackageBulk lineaAttivita = home.searchGAECompleta(aUC, obbligazione.getEsercizio(), el.getCd_centro_responsabilita(), el.getCd_linea_attivita());
                    if (!lineaAttivita.getPg_progetto().equals(optPrgContratto.get())) {
                        ProgettoBulk prgContratto = (ProgettoBulk) progettoHome.findByPrimaryKey(new ProgettoBulk(obbligazione.getEsercizio(), optPrgContratto.get(), ProgettoBulk.TIPO_FASE_NON_DEFINITA));
                        throw new ApplicationRuntimeException("Linea di Attività " + el.getCd_linea_attivita() + " del CDR " + el.getCd_centro_responsabilita() + " non selezionabile in quanto appartenente al progetto " + lineaAttivita.getCd_progetto() + " diverso dal progetto " + prgContratto.getCd_progetto() + " del contratto associato all'impegno.");
                    }
                } catch (ComponentException | PersistencyException e) {
                    throw new ApplicationRuntimeException(e);
                }
            });
        }
    } catch (Throwable e) {
        throw handleException(e);
    }
}
Also used : EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk) Parametri_cdsBulk(it.cnr.contab.config00.bulk.Parametri_cdsBulk) TerzoHome(it.cnr.contab.anagraf00.core.bulk.TerzoHome) IVoceBilancioBulk(it.cnr.contab.config00.pdcfin.bulk.IVoceBilancioBulk) BigDecimal(java.math.BigDecimal) CostantiTi_gestione(it.cnr.contab.config00.latt.bulk.CostantiTi_gestione) ObjectNotFoundException(it.cnr.jada.persistency.ObjectNotFoundException) ValidationException(it.cnr.jada.bulk.ValidationException) Incarichi_repertorioHome(it.cnr.contab.incarichi00.bulk.Incarichi_repertorioHome) UtenteBulk(it.cnr.contab.utenze00.bulk.UtenteBulk) PersistentHome(it.cnr.jada.persistency.sql.PersistentHome) Classificazione_vociBulk(it.cnr.contab.config00.pdcfin.cla.bulk.Classificazione_vociBulk) Timestamp(java.sql.Timestamp) CdsHome(it.cnr.contab.config00.sto.bulk.CdsHome) BulkHome(it.cnr.jada.bulk.BulkHome) LoggableStatement(it.cnr.jada.persistency.sql.LoggableStatement) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Tipo_unita_organizzativaHome(it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) Parametri_cnrBulk(it.cnr.contab.config00.bulk.Parametri_cnrBulk) Esercizio_baseBulk(it.cnr.contab.config00.esercizio.bulk.Esercizio_baseBulk) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) Serializable(java.io.Serializable) RemoteException(java.rmi.RemoteException) EJBException(javax.ejb.EJBException) IPrintMgr(it.cnr.jada.comp.IPrintMgr) Stream(java.util.stream.Stream) Pdg_modulo_spese_gestBulk(it.cnr.contab.pdg01.bulk.Pdg_modulo_spese_gestBulk) Query(it.cnr.jada.persistency.sql.Query) LocalDate(java.time.LocalDate) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) Ass_evold_evnewBulk(it.cnr.contab.config00.pdcfin.bulk.Ass_evold_evnewBulk) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) Types(java.sql.Types) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) SaldoComponentSession(it.cnr.contab.doccont00.ejb.SaldoComponentSession) UserContext(it.cnr.jada.UserContext) java.util(java.util) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) PrimaryKeyHashtable(it.cnr.jada.bulk.PrimaryKeyHashtable) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) Parametri_cdsHome(it.cnr.contab.config00.bulk.Parametri_cdsHome) ProgettoHome(it.cnr.contab.progettiric00.core.bulk.ProgettoHome) Utility(it.cnr.contab.util.Utility) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) it.cnr.contab.prevent00.bulk(it.cnr.contab.prevent00.bulk) SQLBroker(it.cnr.jada.persistency.sql.SQLBroker) Anagrafico_terzoBulk(it.cnr.contab.anagraf00.core.bulk.Anagrafico_terzoBulk) FunzioneBulk(it.cnr.contab.config00.pdcfin.bulk.FunzioneBulk) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) Ass_evold_evnewHome(it.cnr.contab.config00.pdcfin.bulk.Ass_evold_evnewHome) ContrattoHome(it.cnr.contab.config00.contratto.bulk.ContrattoHome) SQLException(java.sql.SQLException) Ass_contratto_uoBulk(it.cnr.contab.config00.contratto.bulk.Ass_contratto_uoBulk) EnteBulk(it.cnr.contab.config00.sto.bulk.EnteBulk) PrimaryKeyHashMap(it.cnr.jada.bulk.PrimaryKeyHashMap) NaturaBulk(it.cnr.contab.config00.pdcfin.bulk.NaturaBulk) Elemento_voceHome(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome) ICRUDMgr(it.cnr.jada.comp.ICRUDMgr) FindClause(it.cnr.jada.persistency.sql.FindClause) V_struttura_organizzativaBulk(it.cnr.contab.config00.sto.bulk.V_struttura_organizzativaBulk) DateUtils(it.cnr.jada.util.DateUtils) Esercizio_baseHome(it.cnr.contab.config00.esercizio.bulk.Esercizio_baseHome) Voce_fBulk(it.cnr.contab.config00.pdcfin.bulk.Voce_fBulk) AnagraficoHome(it.cnr.contab.anagraf00.core.bulk.AnagraficoHome) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) WorkpackageHome(it.cnr.contab.config00.latt.bulk.WorkpackageHome) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) CdrBulk(it.cnr.contab.config00.sto.bulk.CdrBulk) Incarichi_repertorioBulk(it.cnr.contab.incarichi00.bulk.Incarichi_repertorioBulk) BulkList(it.cnr.jada.bulk.BulkList) DatiFinanziariScadenzeDTO(it.cnr.contab.doccont00.core.DatiFinanziariScadenzeDTO) Unita_organizzativa_enteBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk) ProgettoBulk(it.cnr.contab.progettiric00.core.bulk.ProgettoBulk) CdsBulk(it.cnr.contab.config00.sto.bulk.CdsBulk) DateTimeFormatter(java.time.format.DateTimeFormatter) Pdg_preventivo_spe_detBulk(it.cnr.contab.pdg00.bulk.Pdg_preventivo_spe_detBulk) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) Unita_organizzativaHome(it.cnr.contab.config00.sto.bulk.Unita_organizzativaHome) Ass_incarico_uoBulk(it.cnr.contab.incarichi00.bulk.Ass_incarico_uoBulk) Parametri_cnrHome(it.cnr.contab.config00.bulk.Parametri_cnrHome) ComponentException(it.cnr.jada.comp.ComponentException) CompoundFindClause(it.cnr.jada.persistency.sql.CompoundFindClause) ProgettoHome(it.cnr.contab.progettiric00.core.bulk.ProgettoHome) ProgettoBulk(it.cnr.contab.progettiric00.core.bulk.ProgettoBulk) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) WorkpackageHome(it.cnr.contab.config00.latt.bulk.WorkpackageHome) ComponentException(it.cnr.jada.comp.ComponentException) PersistencyException(it.cnr.jada.persistency.PersistencyException) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk)

Example 5 with ApplicationRuntimeException

use of it.cnr.jada.comp.ApplicationRuntimeException in project sigla-main by consiglionazionaledellericerche.

the class ObbligazioneComponent method validaCdrLineaVoce.

/**
 *  Effettua controlli sulle combinazione Cdr/Voce/Linea indicati come parametri
 *    PreCondition:
 *      Una nuova combinazione Cdr/Voce/Linea è stata scelta o è stato aumentato l'importo
 * 		complessivo assegnato al Cdr/Voce/Linea
 *    PostCondition:
 *      Se l'impegno creato è di competenza viene verificato che la disponibilità residua ad assumere
 * 		impegni residui impropri non sia superiore al limite indicato nei Parametri CNR
 *
 * @param userContext lo user context
 * @param obbligazione l'obbligazione di cui sto aggiornando l'imputazione finanziaria
 * @param oldRipartizioneCdrVoceLinea la chiave restituita dalla chiamata alla procedura getOldRipartizioneCdrVoceLinea
 * @param cdr il centro di responsabilità
 * @param latt il codice della GAE
 * @param voce l'istanza di <code>Voce_fBulk</code> contenente l'elemento voce da verificare
 * @throws ComponentException
 */
private void validaCdrLineaVoce(UserContext userContext, ObbligazioneBulk obbligazione, PrimaryKeyHashtable oldRipartizioneCdrVoceLinea, String cdr, String latt, IVoceBilancioBulk voce) throws ComponentException {
    BigDecimal totaleOldScad = new BigDecimal(0);
    BigDecimal totaleNewScad = new BigDecimal(0);
    Obbligazione_scad_voceBulk key = new Obbligazione_scad_voceBulk();
    boolean found = false;
    try {
        Parametri_cdsBulk param_cds = (Parametri_cdsBulk) (getHome(userContext, Parametri_cdsBulk.class)).findByPrimaryKey(new Parametri_cdsBulk(CNRUserContext.getCd_cds(userContext), CNRUserContext.getEsercizio(userContext)));
        boolean isObbligazioneResiduo = obbligazione.isObbligazioneResiduo() || obbligazione.isObbligazioneResiduoImproprio();
        SaldoComponentSession saldoSession = Utility.createSaldoComponentSession();
        // finanziamento indicato in CONFIGURAZIONE_CNR
        if ((obbligazione.isCompetenza() && Optional.ofNullable(param_cds.getIm_soglia_consumo_residuo()).isPresent()) || isObbligazioneResiduo) {
            totaleNewScad = obbligazione.getObbligazione_scadenzarioColl().stream().flatMap(os -> os.getObbligazione_scad_voceColl().stream()).filter(osv -> osv.getCd_centro_responsabilita().equals(cdr)).filter(osv -> osv.getCd_linea_attivita().equals(latt)).filter(osv -> osv.getCd_voce().equals(voce.getCd_voce())).map(Obbligazione_scad_voceBulk::getIm_voce).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
            for (Enumeration e = oldRipartizioneCdrVoceLinea.keys(); e.hasMoreElements(); ) {
                key = (Obbligazione_scad_voceBulk) e.nextElement();
                found = false;
                if (key.getCd_centro_responsabilita().equals(cdr) && key.getCd_linea_attivita().equals(latt) && key.getCd_voce().equals(voce.getCd_voce())) {
                    totaleOldScad = (BigDecimal) oldRipartizioneCdrVoceLinea.get(key);
                    found = true;
                    break;
                }
            }
            /*
			 * Controllo, in caso di creazione impegni di competenza o aumento dell'importo assegnato,
			 * che la disponibilità ad assumere impegni residui impropri non sia superiore al limite
			 * previsto nei parametri CNR
			 *
			 **/
            if (totaleOldScad.compareTo(totaleNewScad) == -1 || !found) {
                if (!UtenteBulk.isAbilitatoSbloccoImpegni(userContext)) {
                    if (obbligazione.isCompetenza())
                        saldoSession.checkBloccoImpegniNatfin(userContext, cdr, latt, (Elemento_voceBulk) voce, ObbligazioneBulk.TIPO_COMPETENZA);
                    if (obbligazione.isObbligazioneResiduo())
                        saldoSession.checkBloccoImpegniNatfin(userContext, cdr, latt, (Elemento_voceBulk) voce, ObbligazioneBulk.TIPO_RESIDUO_PROPRIO);
                    if (obbligazione.isObbligazioneResiduoImproprio())
                        saldoSession.checkBloccoImpegniNatfin(userContext, cdr, latt, (Elemento_voceBulk) voce, ObbligazioneBulk.TIPO_RESIDUO_IMPROPRIO);
                }
                if (obbligazione.isCompetenza()) {
                    BigDecimal totaleResidui = saldoSession.getTotaleSaldoResidui(userContext, cdr, latt, voce);
                    if (totaleResidui.compareTo(param_cds.getIm_soglia_consumo_residuo()) == 1)
                        if (!found)
                            throw new ApplicationException("Non è possibile assumere impegni di competenza per il CDR/GAE/Voce (" + cdr + "/" + latt + "/" + voce.getCd_voce() + "), in quanto esiste una disponibilità ad assumere impegni " + "su stanziamenti residui impropri (" + new it.cnr.contab.util.EuroFormat().format(totaleResidui) + ").");
                        else
                            throw new ApplicationException("Non è possibile aumentare di " + new it.cnr.contab.util.EuroFormat().format(totaleNewScad.subtract(totaleOldScad)) + " l'importo di competenza già assegnato per il CDR/GAE/Voce (" + cdr + "/" + latt + "/" + voce.getCd_voce() + "), in quanto esiste una disponibilità ad assumere impegni " + "su stanziamenti residui impropri (" + new it.cnr.contab.util.EuroFormat().format(totaleResidui) + ").");
                }
            }
        }
        // è già presente in ObbligazioneResComponent
        if (!obbligazione.isObbligazioneResiduo() && Utility.createParametriEnteComponentSession().isProgettoPianoEconomicoEnabled(userContext, CNRUserContext.getEsercizio(userContext))) {
            WorkpackageBulk linea = ((WorkpackageHome) getHome(userContext, WorkpackageBulk.class)).searchGAECompleta(userContext, CNRUserContext.getEsercizio(userContext), cdr, latt);
            ProgettoBulk progetto = linea.getProgetto();
            Optional.ofNullable(progetto.getOtherField()).filter(el -> el.isStatoApprovato() || el.isStatoChiuso()).orElseThrow(() -> new ApplicationException("Attenzione! GAE " + linea.getCd_linea_attivita() + " non selezionabile. " + "Il progetto associato " + progetto.getCd_progetto() + " non risulta in stato Approvato o Chiuso."));
            if (progetto.isDatePianoEconomicoRequired()) {
                // Negli impegni controllare la più piccola data tra data inizio progetto e data stipula contratto definitivo
                ProgettoHome progettoHome = (ProgettoHome) getHome(userContext, ProgettoBulk.class);
                java.util.Collection<ContrattoBulk> contratti = progettoHome.findContratti(progetto.getPg_progetto());
                Optional<ContrattoBulk> optContratto = contratti.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(obbligazione.getDt_registrazione())).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 registrazione dell'obbligazione (" + new java.text.SimpleDateFormat("dd/MM/yyyy").format(obbligazione.getDt_registrazione()) + ").");
                    });
                else
                    Optional.of(progetto.getOtherField().getDtInizio()).filter(dt -> !dt.after(obbligazione.getDt_registrazione())).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 registrazione dell'obbligazione (" + new java.text.SimpleDateFormat("dd/MM/yyyy").format(obbligazione.getDt_registrazione()) + ")."));
            }
            LocalDate localDateFineProgetto = Optional.ofNullable(progetto.getOtherField().getDtProroga()).orElse(Optional.ofNullable(progetto.getOtherField().getDtFine()).orElse(DateUtils.firstDateOfTheYear(3000))).toLocalDateTime().toLocalDate();
            int ggProroga = Optional.ofNullable(obbligazione.getElemento_voce()).flatMap(el -> {
                if (obbligazione.isCompetenza())
                    return Optional.ofNullable(el.getGg_deroga_obbl_comp_prg_scad());
                else
                    return Optional.ofNullable(el.getGg_deroga_obbl_res_prg_scad());
            }).filter(el -> el.compareTo(0) > 0).orElse(0);
            localDateFineProgetto = localDateFineProgetto.plusDays(ggProroga);
            if (localDateFineProgetto.isBefore(obbligazione.getDt_registrazione().toLocalDateTime().toLocalDate()))
                throw new ApplicationMessageFormatException("Attenzione! GAE {0} non selezionabile. " + "La data fine/proroga del progetto {1} {2} ({3}) è precedente rispetto alla data di registrazione dell''impegno ({4}).", linea.getCd_linea_attivita(), progetto.getCd_progetto(), (ggProroga > 0 ? ", aumentata di " + ggProroga + " giorni," : ""), localDateFineProgetto.format(DateTimeFormatter.ofPattern("dd/MM/yyyy")), new java.text.SimpleDateFormat("dd/MM/yyyy").format(obbligazione.getDt_registrazione()));
        }
    } catch (Exception e) {
        throw handleException(e);
    }
}
Also used : EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk) Parametri_cdsBulk(it.cnr.contab.config00.bulk.Parametri_cdsBulk) TerzoHome(it.cnr.contab.anagraf00.core.bulk.TerzoHome) IVoceBilancioBulk(it.cnr.contab.config00.pdcfin.bulk.IVoceBilancioBulk) BigDecimal(java.math.BigDecimal) CostantiTi_gestione(it.cnr.contab.config00.latt.bulk.CostantiTi_gestione) ObjectNotFoundException(it.cnr.jada.persistency.ObjectNotFoundException) ValidationException(it.cnr.jada.bulk.ValidationException) Incarichi_repertorioHome(it.cnr.contab.incarichi00.bulk.Incarichi_repertorioHome) UtenteBulk(it.cnr.contab.utenze00.bulk.UtenteBulk) PersistentHome(it.cnr.jada.persistency.sql.PersistentHome) Classificazione_vociBulk(it.cnr.contab.config00.pdcfin.cla.bulk.Classificazione_vociBulk) Timestamp(java.sql.Timestamp) CdsHome(it.cnr.contab.config00.sto.bulk.CdsHome) BulkHome(it.cnr.jada.bulk.BulkHome) LoggableStatement(it.cnr.jada.persistency.sql.LoggableStatement) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Tipo_unita_organizzativaHome(it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) Parametri_cnrBulk(it.cnr.contab.config00.bulk.Parametri_cnrBulk) Esercizio_baseBulk(it.cnr.contab.config00.esercizio.bulk.Esercizio_baseBulk) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) Serializable(java.io.Serializable) RemoteException(java.rmi.RemoteException) EJBException(javax.ejb.EJBException) IPrintMgr(it.cnr.jada.comp.IPrintMgr) Stream(java.util.stream.Stream) Pdg_modulo_spese_gestBulk(it.cnr.contab.pdg01.bulk.Pdg_modulo_spese_gestBulk) Query(it.cnr.jada.persistency.sql.Query) LocalDate(java.time.LocalDate) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) Ass_evold_evnewBulk(it.cnr.contab.config00.pdcfin.bulk.Ass_evold_evnewBulk) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) Types(java.sql.Types) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) SaldoComponentSession(it.cnr.contab.doccont00.ejb.SaldoComponentSession) UserContext(it.cnr.jada.UserContext) java.util(java.util) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) PrimaryKeyHashtable(it.cnr.jada.bulk.PrimaryKeyHashtable) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) Parametri_cdsHome(it.cnr.contab.config00.bulk.Parametri_cdsHome) ProgettoHome(it.cnr.contab.progettiric00.core.bulk.ProgettoHome) Utility(it.cnr.contab.util.Utility) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) it.cnr.contab.prevent00.bulk(it.cnr.contab.prevent00.bulk) SQLBroker(it.cnr.jada.persistency.sql.SQLBroker) Anagrafico_terzoBulk(it.cnr.contab.anagraf00.core.bulk.Anagrafico_terzoBulk) FunzioneBulk(it.cnr.contab.config00.pdcfin.bulk.FunzioneBulk) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) Ass_evold_evnewHome(it.cnr.contab.config00.pdcfin.bulk.Ass_evold_evnewHome) ContrattoHome(it.cnr.contab.config00.contratto.bulk.ContrattoHome) SQLException(java.sql.SQLException) Ass_contratto_uoBulk(it.cnr.contab.config00.contratto.bulk.Ass_contratto_uoBulk) EnteBulk(it.cnr.contab.config00.sto.bulk.EnteBulk) PrimaryKeyHashMap(it.cnr.jada.bulk.PrimaryKeyHashMap) NaturaBulk(it.cnr.contab.config00.pdcfin.bulk.NaturaBulk) Elemento_voceHome(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome) ICRUDMgr(it.cnr.jada.comp.ICRUDMgr) FindClause(it.cnr.jada.persistency.sql.FindClause) V_struttura_organizzativaBulk(it.cnr.contab.config00.sto.bulk.V_struttura_organizzativaBulk) DateUtils(it.cnr.jada.util.DateUtils) Esercizio_baseHome(it.cnr.contab.config00.esercizio.bulk.Esercizio_baseHome) Voce_fBulk(it.cnr.contab.config00.pdcfin.bulk.Voce_fBulk) AnagraficoHome(it.cnr.contab.anagraf00.core.bulk.AnagraficoHome) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) WorkpackageHome(it.cnr.contab.config00.latt.bulk.WorkpackageHome) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) CdrBulk(it.cnr.contab.config00.sto.bulk.CdrBulk) Incarichi_repertorioBulk(it.cnr.contab.incarichi00.bulk.Incarichi_repertorioBulk) BulkList(it.cnr.jada.bulk.BulkList) DatiFinanziariScadenzeDTO(it.cnr.contab.doccont00.core.DatiFinanziariScadenzeDTO) Unita_organizzativa_enteBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk) ProgettoBulk(it.cnr.contab.progettiric00.core.bulk.ProgettoBulk) CdsBulk(it.cnr.contab.config00.sto.bulk.CdsBulk) DateTimeFormatter(java.time.format.DateTimeFormatter) Pdg_preventivo_spe_detBulk(it.cnr.contab.pdg00.bulk.Pdg_preventivo_spe_detBulk) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) Unita_organizzativaHome(it.cnr.contab.config00.sto.bulk.Unita_organizzativaHome) Ass_incarico_uoBulk(it.cnr.contab.incarichi00.bulk.Ass_incarico_uoBulk) Parametri_cnrHome(it.cnr.contab.config00.bulk.Parametri_cnrHome) ComponentException(it.cnr.jada.comp.ComponentException) CompoundFindClause(it.cnr.jada.persistency.sql.CompoundFindClause) ProgettoBulk(it.cnr.contab.progettiric00.core.bulk.ProgettoBulk) WorkpackageHome(it.cnr.contab.config00.latt.bulk.WorkpackageHome) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) LocalDate(java.time.LocalDate) UserContext(it.cnr.jada.UserContext) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) Parametri_cdsBulk(it.cnr.contab.config00.bulk.Parametri_cdsBulk) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) BigDecimal(java.math.BigDecimal) ObjectNotFoundException(it.cnr.jada.persistency.ObjectNotFoundException) ValidationException(it.cnr.jada.bulk.ValidationException) RemoteException(java.rmi.RemoteException) EJBException(javax.ejb.EJBException) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) SQLException(java.sql.SQLException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) ComponentException(it.cnr.jada.comp.ComponentException) ApplicationException(it.cnr.jada.comp.ApplicationException) java.util(java.util) ProgettoHome(it.cnr.contab.progettiric00.core.bulk.ProgettoHome) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) SaldoComponentSession(it.cnr.contab.doccont00.ejb.SaldoComponentSession)

Aggregations

ApplicationRuntimeException (it.cnr.jada.comp.ApplicationRuntimeException)35 ApplicationException (it.cnr.jada.comp.ApplicationException)30 ComponentException (it.cnr.jada.comp.ComponentException)30 PersistencyException (it.cnr.jada.persistency.PersistencyException)27 BigDecimal (java.math.BigDecimal)25 Utility (it.cnr.contab.util.Utility)23 UserContext (it.cnr.jada.UserContext)23 OggettoBulk (it.cnr.jada.bulk.OggettoBulk)23 RemoteException (java.rmi.RemoteException)22 Unita_organizzativaBulk (it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk)20 CNRUserContext (it.cnr.contab.utenze00.bp.CNRUserContext)20 SQLBuilder (it.cnr.jada.persistency.sql.SQLBuilder)20 WorkpackageBulk (it.cnr.contab.config00.latt.bulk.WorkpackageBulk)19 BulkList (it.cnr.jada.bulk.BulkList)19 FindClause (it.cnr.jada.persistency.sql.FindClause)18 DateUtils (it.cnr.jada.util.DateUtils)18 SQLException (java.sql.SQLException)18 TerzoBulk (it.cnr.contab.anagraf00.core.bulk.TerzoBulk)17 ContrattoBulk (it.cnr.contab.config00.contratto.bulk.ContrattoBulk)17 ObbligazioneBulk (it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk)17