Search in sources :

Example 1 with ObbligazioneBulk

use of it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDFatturaPassivaBP method sdoppiaDettaglioInAutomatico.

public void sdoppiaDettaglioInAutomatico(ActionContext context) throws ValidationException, BusinessProcessException {
    try {
        it.cnr.contab.doccont00.ejb.ObbligazioneAbstractComponentSession h = it.cnr.contab.doccont00.bp.CRUDVirtualObbligazioneBP.getVirtualComponentSession(context, true);
        FatturaPassivaComponentSession session = (FatturaPassivaComponentSession) createComponentSession();
        Fattura_passivaBulk documento = (Fattura_passivaBulk) getModel();
        Fattura_passiva_rigaIBulk dettaglioSelezionato = (Fattura_passiva_rigaIBulk) getDettaglio().getModel();
        Obbligazione_scadenzarioBulk scadenzaNuova = null;
        if (dettaglioSelezionato == null)
            return;
        if (documento.getStato_cofi() != null && documento.getStato_cofi().equals(documento.STATO_PAGATO))
            setMessage("Non è possibile sdoppiare righe in un documento pagato.");
        if (dettaglioSelezionato.getIm_riga_sdoppia() == null || dettaglioSelezionato.getIm_riga_sdoppia().equals(Utility.ZERO) || dettaglioSelezionato.getIm_riga_sdoppia().compareTo(dettaglioSelezionato.getSaldo()) != -1) {
            setMessage("Il nuovo importo della riga da sdoppiare deve essere positivo ed inferiore " + "al saldo originario.");
            return;
        }
        Obbligazione_scadenzarioBulk scadenzaVecchia = dettaglioSelezionato.getObbligazione_scadenziario();
        BigDecimal newImportoRigaVecchia = dettaglioSelezionato.getIm_riga_sdoppia().add(dettaglioSelezionato.getIm_diponibile_nc().subtract(dettaglioSelezionato.getSaldo()));
        BigDecimal newImportoRigaNuova = dettaglioSelezionato.getSaldo().subtract(dettaglioSelezionato.getIm_riga_sdoppia());
        BigDecimal newPrezzoRigaVecchia = newImportoRigaVecchia.divide(documento.getCambio(), 2, BigDecimal.ROUND_HALF_UP).divide(dettaglioSelezionato.getQuantita().multiply(dettaglioSelezionato.getVoce_iva().getPercentuale().divide(new BigDecimal(100)).add(new java.math.BigDecimal(1))), 2, BigDecimal.ROUND_HALF_UP);
        BigDecimal newPrezzoRigaNuova = dettaglioSelezionato.getPrezzo_unitario().subtract(newPrezzoRigaVecchia);
        BigDecimal oldImportoIvaVecchia = BigDecimal.ZERO;
        BigDecimal tot_imp = BigDecimal.ZERO;
        if (dettaglioSelezionato.getVoce_iva().getFl_autofattura() || documento.quadraturaInDeroga()) {
            oldImportoIvaVecchia = dettaglioSelezionato.getIm_iva();
            tot_imp = newPrezzoRigaVecchia.multiply(documento.getCambio()).multiply(dettaglioSelezionato.getQuantita()).setScale(2, BigDecimal.ROUND_HALF_UP);
        } else
            tot_imp = dettaglioSelezionato.getIm_riga_sdoppia();
        if (dettaglioSelezionato.getObbligazione_scadenziario() != null) {
            scadenzaNuova = (Obbligazione_scadenzarioBulk) h.sdoppiaScadenzaInAutomatico(context.getUserContext(), scadenzaVecchia, scadenzaVecchia.getIm_scadenza().subtract(dettaglioSelezionato.getSaldo().subtract(oldImportoIvaVecchia)).add(tot_imp));
            // ricarico obbligazione e recupero i riferimenti alle scadenze
            ObbligazioneBulk obbligazione = (ObbligazioneBulk) h.inizializzaBulkPerModifica(context.getUserContext(), scadenzaNuova.getObbligazione());
            if (!obbligazione.getObbligazione_scadenzarioColl().containsByPrimaryKey(scadenzaVecchia) || !obbligazione.getObbligazione_scadenzarioColl().containsByPrimaryKey(scadenzaNuova))
                throw new ValidationException("Errore nello sdoppiamento della scadenza dell'impegno.");
            scadenzaVecchia = (Obbligazione_scadenzarioBulk) obbligazione.getObbligazione_scadenzarioColl().get(obbligazione.getObbligazione_scadenzarioColl().indexOfByPrimaryKey(scadenzaVecchia));
            scadenzaNuova = (Obbligazione_scadenzarioBulk) obbligazione.getObbligazione_scadenzarioColl().get(obbligazione.getObbligazione_scadenzarioColl().indexOfByPrimaryKey(scadenzaNuova));
        }
        // creo la nuova riga di dettaglio e la associo al documento
        Fattura_passiva_rigaIBulk nuovoDettaglio = new Fattura_passiva_rigaIBulk();
        getDettaglio().addDetail(nuovoDettaglio);
        nuovoDettaglio = copyByRigaDocumento(context, nuovoDettaglio, dettaglioSelezionato);
        nuovoDettaglio.setQuantita(dettaglioSelezionato.getQuantita());
        nuovoDettaglio.setPrezzo_unitario(newPrezzoRigaNuova);
        nuovoDettaglio.calcolaCampiDiRiga();
        // setto im_diponibile prime per la verifica e dopo
        nuovoDettaglio.setIm_diponibile_nc(nuovoDettaglio.getSaldo());
        if (nuovoDettaglio.getIm_diponibile_nc().compareTo(newImportoRigaNuova) != 0) {
            nuovoDettaglio.setIm_iva(nuovoDettaglio.getIm_iva().add(newImportoRigaNuova.subtract(nuovoDettaglio.getIm_diponibile_nc())));
            nuovoDettaglio.setIm_totale_divisa(newImportoRigaNuova.subtract(nuovoDettaglio.getIm_iva()));
            nuovoDettaglio.setFl_iva_forzata(Boolean.TRUE);
            nuovoDettaglio.calcolaCampiDiRiga();
        }
        nuovoDettaglio.setIm_diponibile_nc(nuovoDettaglio.getSaldo());
        // Aggiorno la vecchia riga di dettaglio ed in particolare l'importo
        // della riga da sdoppiare
        // del doc amministrativo
        BigDecimal oldImpTotaleDivisa = dettaglioSelezionato.getIm_totale_divisa();
        dettaglioSelezionato.setPrezzo_unitario(newPrezzoRigaVecchia);
        dettaglioSelezionato.calcolaCampiDiRiga();
        // setto im_diponibile prime per la verifica e dopo
        dettaglioSelezionato.setIm_diponibile_nc(dettaglioSelezionato.getSaldo());
        if (dettaglioSelezionato.getIm_diponibile_nc().compareTo(newImportoRigaVecchia) != 0) {
            dettaglioSelezionato.setIm_iva(dettaglioSelezionato.getIm_iva().add(newImportoRigaVecchia.subtract(dettaglioSelezionato.getIm_diponibile_nc())));
            dettaglioSelezionato.setIm_totale_divisa(newImportoRigaVecchia.subtract(dettaglioSelezionato.getIm_iva()));
            dettaglioSelezionato.setFl_iva_forzata(Boolean.TRUE);
            dettaglioSelezionato.calcolaCampiDiRiga();
        }
        dettaglioSelezionato.setIm_diponibile_nc(dettaglioSelezionato.getSaldo());
        dettaglioSelezionato.setToBeUpdated();
        if (scadenzaVecchia != null) {
            for (Iterator i = documento.getFattura_passiva_dettColl().iterator(); i.hasNext(); ) {
                Fattura_passiva_rigaIBulk riga = (Fattura_passiva_rigaIBulk) i.next();
                if (riga.getObbligazione_scadenziario() != null && riga.getObbligazione_scadenziario().equalsByPrimaryKey(scadenzaVecchia)) {
                    riga.setObbligazione_scadenziario(scadenzaVecchia);
                    documento.addToDefferredSaldi(scadenzaVecchia.getObbligazione(), scadenzaVecchia.getObbligazione().getSaldiInfo());
                }
            }
        }
        if (scadenzaNuova != null) {
            BulkList selectedModels = new BulkList();
            selectedModels.add(nuovoDettaglio);
            documento = session.contabilizzaDettagliSelezionati(context.getUserContext(), documento, selectedModels, scadenzaNuova);
            documento.addToFattura_passiva_obbligazioniHash(scadenzaNuova, nuovoDettaglio);
            documento.addToDefferredSaldi(scadenzaNuova.getObbligazione(), scadenzaNuova.getObbligazione().getSaldiInfo());
            // Sdoppia associazione inventario in automatico
            if (nuovoDettaglio.isInventariato()) {
                // r.p. Prendo il progressivo dalla fattura_passivaBulk
                // perchè viene aggiornato
                BuonoCaricoScaricoComponentSession r = (it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession", it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession.class);
                Ass_inv_bene_fatturaBulk newAss = r.sdoppiaAssociazioneFor(context.getUserContext(), (Fattura_passiva_rigaBulk) dettaglioSelezionato, (Fattura_passiva_rigaBulk) nuovoDettaglio);
                documento.addToAssociazioniInventarioHash(newAss, nuovoDettaglio);
            }
        }
        documento = (Fattura_passivaBulk) session.rebuildDocumento(context.getUserContext(), documento);
        getObbligazioniController().getSelection().clear();
        getObbligazioniController().setModelIndex(context, -1);
        getObbligazioniController().setModelIndex(context, it.cnr.jada.bulk.BulkCollections.indexOfByPrimaryKey(getObbligazioniController().getDetails(), dettaglioSelezionato));
        documento.setDetailDoubled(true);
        setModel(context, documento);
    } catch (Exception e) {
        throw handleException(e);
    }
}
Also used : ValidationException(it.cnr.jada.bulk.ValidationException) BulkList(it.cnr.jada.bulk.BulkList) Ass_inv_bene_fatturaBulk(it.cnr.contab.inventario00.docs.bulk.Ass_inv_bene_fatturaBulk) BuonoCaricoScaricoComponentSession(it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) FatturaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession) BigDecimal(java.math.BigDecimal) ServletException(javax.servlet.ServletException) ValidationException(it.cnr.jada.bulk.ValidationException) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) TransformerException(javax.xml.transform.TransformerException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) IOException(java.io.IOException) ComponentException(it.cnr.jada.comp.ComponentException) BigDecimal(java.math.BigDecimal) ObbligazioneBulk(it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk) Iterator(java.util.Iterator) Obbligazione_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk)

Example 2 with ObbligazioneBulk

use of it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk in project sigla-main by consiglionazionaledellericerche.

the class ObbligazioneModificaComponent method inserisciModifiche.

private Obbligazione_modificaBulk inserisciModifiche(UserContext aUC, Obbligazione_modificaBulk bulk) throws it.cnr.jada.comp.ComponentException {
    try {
        Obbligazione_modificaBulk obbMod = (Obbligazione_modificaBulk) bulk;
        ObbligazioneBulk obbligazione = obbMod.getObbligazione();
        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();
        PrimaryKeyHashtable prcImputazioneFinanziariaTable = getOldRipartizioneCdrVoceLinea(aUC, obbligazione);
        // 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) {
                Obbligazione_mod_voceBulk obbModVoce = new Obbligazione_mod_voceBulk(obbMod.getCd_cds(), obbMod.getEsercizio(), obbMod.getPg_modifica(), key.getTi_appartenenza(), key.getTi_gestione(), key.getCd_voce(), key.getCd_centro_responsabilita(), key.getCd_linea_attivita());
                IVoceBilancioBulk voce = null;
                if (((Parametri_cnrHome) getHome(aUC, Parametri_cnrBulk.class)).isNuovoPdg(aUC)) {
                    voce = new Elemento_voceBulk(key.getCd_voce(), obbMod.getEsercizio(), key.getTi_appartenenza(), key.getTi_gestione());
                    voce = (Elemento_voceBulk) getHome(aUC, Elemento_voceBulk.class).findByPrimaryKey(voce);
                } else {
                    voce = new Voce_fBulk(key.getCd_voce(), obbMod.getEsercizio(), key.getTi_appartenenza(), key.getTi_gestione());
                    voce = (Voce_fBulk) getHome(aUC, Voce_fBulk.class).findByPrimaryKey(voce);
                }
                obbModVoce.setVoce(voce);
                WorkpackageBulk linea = new WorkpackageBulk(key.getCd_centro_responsabilita(), key.getCd_linea_attivita());
                linea = (WorkpackageBulk) getHome(aUC, linea).findByPrimaryKey(linea);
                obbModVoce.setLinea_attivita(linea);
                obbModVoce.setIm_modifica(totaleScad.subtract((BigDecimal) prcImputazioneFinanziariaTable.get(key)));
                obbModVoce.setToBeCreated();
                obbMod.addToObbligazione_mod_voceColl(obbModVoce);
            }
        }
        return obbMod;
    } catch (Exception e) {
        throw handleException(e);
    }
}
Also used : Enumeration(java.util.Enumeration) Obbligazione_scad_voceBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceBulk) Obbligazione_modificaBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_modificaBulk) IVoceBilancioBulk(it.cnr.contab.config00.pdcfin.bulk.IVoceBilancioBulk) Parametri_cnrHome(it.cnr.contab.config00.bulk.Parametri_cnrHome) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) BigDecimal(java.math.BigDecimal) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ComponentException(it.cnr.jada.comp.ComponentException) Voce_fBulk(it.cnr.contab.config00.pdcfin.bulk.Voce_fBulk) Obbligazione_mod_voceBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_mod_voceBulk) ObbligazioneBulk(it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk) PrimaryKeyHashtable(it.cnr.jada.bulk.PrimaryKeyHashtable) Iterator(java.util.Iterator) Obbligazione_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk) Parametri_cnrBulk(it.cnr.contab.config00.bulk.Parametri_cnrBulk) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk)

Example 3 with ObbligazioneBulk

use of it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk in project sigla-main by consiglionazionaledellericerche.

the class ObbligazioneResComponent method generaDettagliScadenzaObbligazione.

protected ObbligazioneBulk generaDettagliScadenzaObbligazione(UserContext aUC, ObbligazioneBulk obbligazione, Obbligazione_scadenzarioBulk scadenzario, boolean allineaImputazioneFinanziaria) throws ComponentException {
    Obbligazione_scadenzarioBulk os;
    // non e' ancora stata selezionata l'imputazione finanziaria
    if (obbligazione.getLineeAttivitaSelezionateColl().size() == 0 && obbligazione.getNuoveLineeAttivitaColl().size() == 0)
        return obbligazione;
    // non sono ancora state inserite le scadenze
    if (obbligazione.getObbligazione_scadenzarioColl().size() == 0)
        return obbligazione;
    if (// una sola scadenza e' stata modificata
    scadenzario != null) {
        // creo i dettagli della scadenza per le linee attivita da PDG
        creaDettagliScadenzaPerLineeAttivitaDaPdG(aUC, obbligazione, scadenzario);
        // creo i dettagli della scadenza per le nuove linee attivita
        creaDettagliScadenzaPerNuoveLineeAttivita(aUC, obbligazione, scadenzario);
    } else // imputazione finanziaria e' stata modificata, quindi rigenero i dettagli per tutte le scadenze
    {
        // per ogni scadenza aggiorno i suoi dettagli in base alle linee di attività specificate dall'utente
        for (Iterator scadIterator = obbligazione.getObbligazione_scadenzarioColl().iterator(); scadIterator.hasNext(); ) {
            os = (Obbligazione_scadenzarioBulk) scadIterator.next();
            // cancello i dettagli della scadenza per le linee attivita che non esistono piu'
            cancellaDettaglioScadenze(aUC, obbligazione, os);
            // creo i dettagli della scadenza per le linee attivita da PDG
            creaDettagliScadenzaPerLineeAttivitaDaPdG(aUC, obbligazione, os);
            // creo i dettagli della scadenza per le nuove linee attivita
            creaDettagliScadenzaPerNuoveLineeAttivita(aUC, obbligazione, os);
        }
    }
    if (allineaImputazioneFinanziaria)
        obbligazione = calcolaPercentualeImputazioneObbligazione(aUC, obbligazione);
    return obbligazione;
}
Also used : Iterator(java.util.Iterator) Obbligazione_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk)

Example 4 with ObbligazioneBulk

use of it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk 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 5 with ObbligazioneBulk

use of it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk in project sigla-main by consiglionazionaledellericerche.

the class ObbligazioneComponent method aggiornaSaldiInModifica.

/**
 * Pre-post-conditions:
 *
 * Nome: Aggiorna saldi in contesto non transazionale
 * Pre:  Un'obbligazione e' stata modificata/eliminata in un contesto non transazionale
 *			La disponibilità di cassa e' già stata verificata
 * Post: Per ogni V_mod_saldi_obbligBulk presente nel database a fronte dell'obbligazione e del suo pg_ver_rec
 *       e' stato richiamato il metodo sulla Component di gestione dei Saldi (SaldoCompoennt) per aggiornare
 *       il saldo del capitolo corrispondente senza effettuare la verifica della disponibilità di cassa; se necessario
 *       anche i saldi relativi ai mandati e al pagato vengono aggiornati.
 *
 * Nome: Aggiorna saldi in contesto transazionale senza verifica disponibilità di cassa sul capitolo
 * Pre:  Un'obbligazione e' stata modificata in un contesto transazionale
 *       L'utente ha già confermato che intende forzare la verifica della disponibilità di cassa sui capitoli interessati dall'obbligazione.
 * Post: Per ogni V_mod_saldi_obbligBulk presente nel database a fronte dell'obbligazione e del suo pg_ver_rec
 *       e' stato richiamato il metodo sulla Component di gestione dei Saldi (SaldoCompoennt) per aggiornare
 *       il saldo del capitolo corrispondente senza effettuare la verifica della disponibilità di cassa
 *
 * Nome: Aggiorna saldi in contesto transazionale con verifica disponibilità di cassa sul capitolo
 * Pre:  Un'obbligazione e' stata modificata in un contesto transazionale
 *       L'utente non ha ancora confermato che intende forzare la verifica della disponibilità di cassa sui capitoli interessati dall'obbligazione.
 * Post: Per ogni V_mod_saldi_obbligBulk presente nel database a fronte dell'obbligazione e del suo pg_ver_rec
 *       e' stato richiamato il metodo sulla Component di gestione dei Saldi (SaldoCompoennt) per aggiornare
 *       il saldo del capitolo corrispondente richiedendo di effettuare la verifica della disponibilità di cassa.
 *
 * @param	userContext	lo UserContext che ha generato la richiesta
 * @param	obbligazione	l'ObbligazioneBulk per cui aggiornare i saldi
 * @param	pg_ver_rec	il "pg_ver_rec" iniziale dell'obbligazione
 * @param	forzaDispCassa il parametro che indica se l'utente ha confermato di forzare il controllo della disp. di cassa e' necessario
 */
private void aggiornaSaldiInModifica(UserContext userContext, ObbligazioneBulk obbligazione, Long pg_ver_rec, Boolean forzaDispCassa) throws it.cnr.jada.persistency.PersistencyException, ComponentException, java.rmi.RemoteException {
    SaldoComponentSession session = createSaldoComponentSession();
    /* in realtà siamo sempre a competenza ma è meglio verificare */
    String ti_competenza_residuo;
    String tipo_imp;
    if (obbligazione.isResiduo())
        ti_competenza_residuo = ReversaleBulk.TIPO_RESIDUO;
    else
        ti_competenza_residuo = ReversaleBulk.TIPO_COMPETENZA;
    List saldiDaAggiornare = ((V_mod_saldi_obbligHome) getHome(userContext, V_mod_saldi_obbligBulk.class)).findModificheSaldiFor(obbligazione, pg_ver_rec);
    if (userContext.isTransactional() && saldiDaAggiornare.size() == 0)
        throw new ApplicationException("Attenzione! I saldi relativi all'impegno " + obbligazione.getEsercizio_originale() + "/" + obbligazione.getPg_obbligazione() + " non possono essere aggiornati perchè l'impegno non e' presente nello storico.");
    for (Iterator i = saldiDaAggiornare.iterator(); i.hasNext(); ) {
        V_mod_saldi_obbligBulk modSaldo = (V_mod_saldi_obbligBulk) i.next();
        if (modSaldo.getIm_delta_voce().compareTo(new BigDecimal(0)) != 0) {
            Voce_fBulk voce = new Voce_fBulk(modSaldo.getCd_voce(), obbligazione.getEsercizio(), modSaldo.getTi_appartenenza(), modSaldo.getTi_gestione());
            /* il check della disponabilità di cassa deve essere eseguito solo se 
			    l'importo delta del saldo e' positivo e
			    l'utente non ha ancora avuto il warning sulla disp.cassa oppure
		 	   l'utente ha avuto il warning sulla disp.cassa e ha risposto no */
            boolean checkDispCassa = modSaldo.getIm_delta_voce().compareTo(new BigDecimal(0)) > 0 && (forzaDispCassa == null || forzaDispCassa != null && !forzaDispCassa.booleanValue());
            session.aggiornaObbligazioniAccertamenti(userContext, voce, obbligazione.getCd_cds(), modSaldo.getIm_delta_voce(), ti_competenza_residuo, checkDispCassa);
            if (modSaldo.getIm_delta_man_voce().compareTo(new BigDecimal(0)) != 0)
                session.aggiornaMandatiReversali(userContext, voce, obbligazione.getCd_cds(), modSaldo.getIm_delta_man_voce(), ti_competenza_residuo, checkDispCassa);
            if (modSaldo.getIm_delta_pag_voce().compareTo(new BigDecimal(0)) != 0)
                session.aggiornaPagamentiIncassi(userContext, voce, obbligazione.getCd_cds(), modSaldo.getIm_delta_pag_voce(), ti_competenza_residuo);
        }
    }
    /*
	* Aggiorno i Saldi per CDR/Linea
	*/
    List saldiDaAggiornareCdrLinea = ((V_mod_saldi_obblig_scad_voceHome) getHome(userContext, V_mod_saldi_obblig_scad_voceBulk.class)).findModificheSaldiFor(obbligazione, pg_ver_rec);
    if (userContext.isTransactional() && saldiDaAggiornareCdrLinea.size() == 0)
        throw new ApplicationException("Attenzione! I saldi relativi all'impegno " + obbligazione.getEsercizio_originale() + "/" + obbligazione.getPg_obbligazione() + " non possono essere aggiornati perchè l'impegno non e' presente nello storico.");
    for (Iterator i = saldiDaAggiornareCdrLinea.iterator(); i.hasNext(); ) {
        V_mod_saldi_obblig_scad_voceBulk modSaldo = (V_mod_saldi_obblig_scad_voceBulk) i.next();
        Voce_fBulk voce = new Voce_fBulk(modSaldo.getCd_voce(), obbligazione.getEsercizio(), modSaldo.getTi_appartenenza(), modSaldo.getTi_gestione());
        /* il check della disponabilità di cassa deve essere eseguito solo se 
			l'importo delta del saldo e' positivo e
			l'utente non ha ancora avuto il warning sulla disp.cassa oppure
		   l'utente ha avuto il warning sulla disp.cassa e ha risposto no */
        boolean checkDispCassa = modSaldo.getIm_delta_voce().compareTo(new BigDecimal(0)) > 0 && (forzaDispCassa == null || forzaDispCassa != null && !forzaDispCassa.booleanValue());
        if (modSaldo.getIm_delta_voce().compareTo(new BigDecimal(0)) != 0) {
            // non deve variare il valore sul campo IM_OBBL_RES_IMP
            if (!obbligazione.isObbligazioneResiduo())
                session.aggiornaObbligazioniAccertamenti(userContext, modSaldo.getCd_centro_responsabilita(), modSaldo.getCd_linea_attivita(), voce, modSaldo.getEsercizio_originale(), modSaldo.getCd_tipo_documento_cont().equals(Numerazione_doc_contBulk.TIPO_OBB_RES_IMPROPRIA) ? Voce_f_saldi_cdr_lineaBulk.TIPO_RESIDUO_IMPROPRIO : Voce_f_saldi_cdr_lineaBulk.TIPO_RESIDUO_PROPRIO, modSaldo.getIm_delta_voce(), modSaldo.getCd_tipo_documento_cont());
        }
        if (modSaldo.getIm_delta_man_voce().compareTo(new BigDecimal(0)) != 0)
            session.aggiornaMandatiReversali(userContext, modSaldo.getCd_centro_responsabilita(), modSaldo.getCd_linea_attivita(), voce, modSaldo.getEsercizio_originale(), modSaldo.getIm_delta_man_voce(), modSaldo.getCd_tipo_documento_cont().equals(Numerazione_doc_contBulk.TIPO_OBB_RES_IMPROPRIA) ? Voce_f_saldi_cdr_lineaBulk.TIPO_RESIDUO_IMPROPRIO : Voce_f_saldi_cdr_lineaBulk.TIPO_RESIDUO_PROPRIO, checkDispCassa);
        if (modSaldo.getIm_delta_pag_voce().compareTo(new BigDecimal(0)) != 0)
            session.aggiornaPagamentiIncassi(userContext, modSaldo.getCd_centro_responsabilita(), modSaldo.getCd_linea_attivita(), voce, modSaldo.getEsercizio_originale(), modSaldo.getIm_delta_pag_voce());
    }
    // aggiorniamo i saldi legati alle modifiche agli impegni residui
    aggiornaSaldiImpegniResiduiPropri(userContext, obbligazione);
    if (obbligazione.isObbligazioneResiduo()) {
        // aggiorniamo il progressivo in definitivo
        Obbligazione_modificaBulk obbMod = ((ObbligazioneResBulk) obbligazione).getObbligazione_modifica();
        if (obbMod != null && obbMod.isTemporaneo()) {
            aggiornaObbligazioneModificaTemporanea(userContext, obbMod);
        }
    }
    checkDispObbligazioniAccertamenti(userContext, obbligazione);
}
Also used : BigDecimal(java.math.BigDecimal) Voce_fBulk(it.cnr.contab.config00.pdcfin.bulk.Voce_fBulk) ApplicationException(it.cnr.jada.comp.ApplicationException) BulkList(it.cnr.jada.bulk.BulkList) SaldoComponentSession(it.cnr.contab.doccont00.ejb.SaldoComponentSession)

Aggregations

RemoteException (java.rmi.RemoteException)42 ObbligazioneBulk (it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk)33 BigDecimal (java.math.BigDecimal)33 PersistencyException (it.cnr.jada.persistency.PersistencyException)30 ApplicationException (it.cnr.jada.comp.ApplicationException)28 ComponentException (it.cnr.jada.comp.ComponentException)27 java.util (java.util)27 it.cnr.contab.doccont00.core.bulk (it.cnr.contab.doccont00.core.bulk)26 IntrospectionException (it.cnr.jada.persistency.IntrospectionException)24 EJBException (javax.ejb.EJBException)23 ValidationException (it.cnr.jada.bulk.ValidationException)21 BulkList (it.cnr.jada.bulk.BulkList)19 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)18 WorkpackageBulk (it.cnr.contab.config00.latt.bulk.WorkpackageBulk)17 Elemento_voceBulk (it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk)17 Obbligazione_scadenzarioBulk (it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk)16 ApplicationMessageFormatException (it.cnr.contab.util.ApplicationMessageFormatException)14 ApplicationRuntimeException (it.cnr.jada.comp.ApplicationRuntimeException)14 SQLException (java.sql.SQLException)14 Iterator (java.util.Iterator)14