Search in sources :

Example 96 with ApplicationException

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

the class MandatoAutomaticoComponent method findModalita_pagamentoOptions.

/**
 *  lista le modalità di pagamento
 *    PreCondition:
 *      E' stato creata una riga di mandato  di trasferimento
 *    PostCondition:
 *     La lista delle modalità di pagamento del terzo beneficiario, tutte appartenenti alla stessa classe (Bancario/Postale/..) per cui si sta emettendo il mandato,
 *     viene estratta.Vengono escluse le modalità di pagamento riferite a terzi cessionari
 *
 * @param userContext lo <code>UserContext</code> che ha generato la richiesta
 * @param mandato <code>MandatoAccreditamentoBulk</code> il mandato di trasferimento
 *
 * @return result la lista delle modalità di pagamento definite per il terzo beneficiario del mandato
 *			null non è stata definita nessuna modalità di pagamento per il terzo beneficiario del mandato
 */
public List findModalita_pagamentoOptions(UserContext userContext, MandatoAutomaticoWizardBulk mandato) throws it.cnr.jada.persistency.PersistencyException, it.cnr.jada.persistency.IntrospectionException, ComponentException {
    if (mandato.getMandato_terzo() != null) {
        SQLBuilder sql = getHome(userContext, Modalita_pagamentoBulk.class).createSQLBuilder();
        sql.addTableToHeader("RIF_MODALITA_PAGAMENTO");
        sql.addSQLJoin("MODALITA_PAGAMENTO.CD_MODALITA_PAG", "RIF_MODALITA_PAGAMENTO.CD_MODALITA_PAG");
        sql.addClause("AND", "cd_terzo", sql.EQUALS, mandato.getMandato_terzo().getCd_terzo());
        sql.addClause("AND", "cd_terzo_delegato", sql.ISNULL, null);
        List result = getHome(userContext, Modalita_pagamentoBulk.class).fetchAll(sql);
        if (result.size() == 0)
            throw new ApplicationException("Non esistono modalità di pagamento per il terzo " + mandato.getMandato_terzo().getCd_terzo());
        return result;
    } else
        return null;
}
Also used : SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Modalita_pagamentoBulk(it.cnr.contab.anagraf00.core.bulk.Modalita_pagamentoBulk) ApplicationException(it.cnr.jada.comp.ApplicationException)

Example 97 with ApplicationException

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

the class MandatoAutomaticoComponent method inizializzaMappaAutomatismo.

public OggettoBulk inizializzaMappaAutomatismo(UserContext aUC, OggettoBulk bulk) throws ComponentException {
    try {
        MandatoAutomaticoWizardBulk mandato = (MandatoAutomaticoWizardBulk) bulk;
        mandato.getMandatiColl().clear();
        if (mandato.isAutomatismoDaImpegni()) {
            if (mandato.getFind_doc_passivi().getCd_terzo() == null && mandato.getFind_doc_passivi().getCd_precedente() == null && mandato.getFind_doc_passivi().getCognome() == null && mandato.getFind_doc_passivi().getRagione_sociale() == null && mandato.getFind_doc_passivi().getNome() == null && mandato.getFind_doc_passivi().getPartita_iva() == null && mandato.getFind_doc_passivi().getCodice_fiscale() == null)
                throw new ApplicationException("Attenzione! Deve essere specificato almeno un campo dell'anagrafica.");
            else {
                mandato.getImpegniSelezionatiColl().clear();
                mandato.getImpegniColl().clear();
                mandato.setMandato_terzo(creaMandatoTerzo(aUC, mandato, cercaTerzo(aUC, mandato)));
                mandato = listaImpegniTerzo(aUC, mandato);
                mandato.setModalita_pagamento((Modalita_pagamentoBulk) findModalita_pagamentoOptions(aUC, mandato).get(0));
                mandato.setBanca((BancaBulk) findBancaOptions(aUC, mandato).get(0));
                mandato.getModelloDocumento().setDt_da_competenza_coge(mandato.getDt_emissione());
                mandato.getModelloDocumento().setDt_a_competenza_coge(mandato.getDt_emissione());
                initializeKeysAndOptionsInto(aUC, bulk);
            }
        } else if (mandato.isAutomatismoDaDocumentiPassivi()) {
            mandato.getDocPassiviColl().clear();
            /*
				 * Necessario per caricare il bollo di default 
				 */
            mandato.setMandato_terzo(creaMandatoTerzo(aUC, mandato, null));
            bulk = listaDocPassivi(aUC, mandato);
        }
        return bulk;
    } catch (Exception e) {
        throw handleException(bulk, e);
    }
}
Also used : ApplicationException(it.cnr.jada.comp.ApplicationException) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) RemoteException(java.rmi.RemoteException) ComponentException(it.cnr.jada.comp.ComponentException)

Example 98 with ApplicationException

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

the class ObbligazioneBilEnteComponent method creaConBulk.

/**
 *  creazione
 *    PreCondition:
 *      L'utente richiede la creazione di un nuovo impegno su partita di giro
 *    PostCondition:
 *      L'impegno, dopo essere stato validato (metodo verificaObbligazione), viene creato e in automatico viene creata una
 *		 scadenza (metodo creaObbligazione_scadenzario) e un dettaglio di scadenza (metodo creaObbligazione_scad_voce).
 *		 I saldi relativi alla voce del piano dell'obbligazione vengono aggiornati (metodo aggiornaCapitoloSaldoObbligazione).
 *		 Alla componente che gestisce gli AccertamentiPGiro viene chiesta la creazione di un Accertamento (metodo creaAccertamento).
 *		 Viene creata l'associazione (Ass_obb_acr_pgiroBulk) fra l'impegno e l'accertamento su partita di giro (metodo creaAss_obb_acr_pgiro)
 *
 * @param uc lo <code>UserContext</code> che ha generato la richiesta
 * @param bulk <code>OggettoBulk</code> l'impegno su partita di giro da creare
 *
 * @return imp L'impegno su partita di giro creato
 */
public OggettoBulk creaConBulk(UserContext uc, OggettoBulk bulk) throws ComponentException {
    try {
        ImpegnoBulk imp = (ImpegnoBulk) bulk;
        // controlliamo che non esista già un impegno su bilancio ente per la voce selezionata
        // ObbligazioneHome vocehome =(ObbligazioneHome)getHome(uc, ObbligazioneBulk.class);
        Obbligazione_scad_voceHome vocehome = (Obbligazione_scad_voceHome) getHome(uc, Obbligazione_scad_voceBulk.class);
        SQLBuilder sql = vocehome.createSQLBuilder();
        sql.addTableToHeader("OBBLIGAZIONE");
        sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.CD_CDS", "OBBLIGAZIONE.CD_CDS");
        sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.ESERCIZIO", "OBBLIGAZIONE.ESERCIZIO");
        sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.ESERCIZIO_ORIGINALE", "OBBLIGAZIONE.ESERCIZIO_ORIGINALE");
        sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.PG_OBBLIGAZIONE", "OBBLIGAZIONE.PG_OBBLIGAZIONE");
        sql.addClause("AND", "esercizio", sql.EQUALS, imp.getEsercizio());
        sql.addClause("AND", "cd_cds", sql.EQUALS, imp.getUnita_organizzativa().getCd_unita_padre());
        sql.addClause("AND", "cd_voce", sql.EQUALS, imp.getVoce_f().getCd_voce());
        sql.addSQLClause("AND", "cd_tipo_documento_cont", sql.EQUALS, Numerazione_doc_contBulk.TIPO_IMP);
        List result = vocehome.fetchAll(sql);
        if (!result.isEmpty())
            throw new ApplicationException("Impossibile creare l'impegno con la voce del piano selezionata poichè è già stato creato un impegno su bilancio ente per tale voce.");
        imp.setCd_cds(imp.getUnita_organizzativa().getCd_unita_padre());
        if (imp.getCd_unita_organizzativa().equals(imp.getCd_uo_ente()))
            imp.setCd_tipo_documento_cont(Numerazione_doc_contBulk.TIPO_IMP);
        else
            imp.setCd_tipo_documento_cont(Numerazione_doc_contBulk.TIPO_OBB_PGIRO);
        verificaObbligazione(uc, imp);
        // viene già impostato nel doBringBack ma lo rifacciamo
        if (imp.getVoce_f() != null)
            imp.setElemento_voce(((ImpegnoHome) getHome(uc, ImpegnoBulk.class)).findElementoVoceFor(imp.getVoce_f()));
        Obbligazione_scadenzarioBulk obblig_scad = creaObbligazione_scadenzario(uc, imp);
        creaObbligazione_scad_voce(uc, obblig_scad);
        imp = (ImpegnoBulk) super.creaConBulk(uc, imp);
        if (!uc.isTransactional())
            // aggiorna i saldi
            aggiornaCapitoloSaldoObbligazione(uc, imp, INSERIMENTO);
        // AccertamentoPGiroBulk accert_pgiro = createAccertamentoPGiroComponent().creaAccertamento( uc, imp);
        // Ass_obb_acr_pgiroBulk ass_oa_pgiro = (Ass_obb_acr_pgiroBulk) creaAss_obb_acr_pgiro( uc, imp, accert_pgiro);
        verificaStatoEsercizio(uc, ((CNRUserContext) uc).getEsercizio(), imp.getCd_cds());
        return imp;
    } catch (Exception e) {
        throw handleException(bulk, e);
    }
}
Also used : SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) ApplicationException(it.cnr.jada.comp.ApplicationException) Obbligazione_scad_voceBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceBulk) ImpegnoHome(it.cnr.contab.doccont00.core.bulk.ImpegnoHome) ImpegnoBulk(it.cnr.contab.doccont00.core.bulk.ImpegnoBulk) Obbligazione_scad_voceHome(it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceHome) List(java.util.List) Obbligazione_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk) SQLException(java.sql.SQLException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ComponentException(it.cnr.jada.comp.ComponentException)

Example 99 with ApplicationException

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

the class ObbligazioneBilEnteComponent method verificaObbligazione.

/**
 *  Tutti controlli superati
 *    PreCondition:
 *      La data di registrazione dell'obbligazione su partita di giro è corretta.
 *    PostCondition:
 *      L'obbligazione su partita di giro è valida. E' consentito eseguire l'attività di salvataggio.
 *  La data di registrazione dell'obbligazione su partita di giro non è corretta.
 *    PreCondition:
 *     E' stata inserita dall'utente una data di registrazione antecedente a quella dell'ultima obbligazione pgiro
 *		salvata sul database
 *    PostCondition:
 *      L'utente viene avvisato tramite un messaggio di errore che non è possibile inserire un'obbligazione su partita
 *		 di giro con data anteriore a quella dell'ultima obbligazione salvata su database. L'attività non è consentita.
 *
 * @param userContext lo <code>UserContext</code> che ha generato la richiesta
 * @param impegno <code>ImpegnoBulk</code> l'obbligazione su partita di giro da validare
 */
protected void verificaObbligazione(UserContext userContext, ImpegnoBulk impegno) throws it.cnr.jada.persistency.PersistencyException, ComponentException, ApplicationException, javax.ejb.EJBException {
    if (impegno.isToBeCreated()) {
        Timestamp lastDayOfTheYear = DateServices.getLastDayOfYear(impegno.getEsercizio().intValue());
        if (impegno.getDt_registrazione().before(DateServices.getFirstDayOfYear(impegno.getEsercizio().intValue())) || impegno.getDt_registrazione().after(lastDayOfTheYear))
            throw new ApplicationException("La data di registrazione deve appartenere all'esercizio di scrivania");
        Timestamp today = it.cnr.jada.util.ejb.EJBCommonServices.getServerDate();
        if (today.after(lastDayOfTheYear) && impegno.getDt_registrazione().compareTo(lastDayOfTheYear) != 0)
            throw new ApplicationException("La data di registrazione deve essere " + java.text.DateFormat.getDateInstance().format(lastDayOfTheYear));
        Timestamp dataUltObbligazione = ((ImpegnoHome) getHome(userContext, ImpegnoBulk.class)).findDataUltimaObbligazionePerCds(impegno);
        if (dataUltObbligazione != null && dataUltObbligazione.after(impegno.getDt_registrazione()))
            throw new ApplicationException("Non è possibile inserire un'Annotazione di Spesa su Partita di Giro con data anteriore a " + java.text.DateFormat.getDateTimeInstance().format(dataUltObbligazione));
    }
}
Also used : ApplicationException(it.cnr.jada.comp.ApplicationException) ImpegnoHome(it.cnr.contab.doccont00.core.bulk.ImpegnoHome) ImpegnoBulk(it.cnr.contab.doccont00.core.bulk.ImpegnoBulk) Timestamp(java.sql.Timestamp)

Example 100 with ApplicationException

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

the class ObbligazioneBilEnteComponent method modificaConBulk.

public OggettoBulk modificaConBulk(UserContext aUC, OggettoBulk bulk) throws ComponentException {
    try {
        ImpegnoBulk imp = (ImpegnoBulk) bulk;
        verificaStatoEsercizio(aUC, imp.getEsercizio(), imp.getCd_cds());
        // controlliamo che non esista già un impegno su bilancio ente per la voce selezionata
        // ObbligazioneHome vocehome =(ObbligazioneHome)getHome(uc, ObbligazioneBulk.class);
        Obbligazione_scad_voceHome vocehome = (Obbligazione_scad_voceHome) getHome(aUC, Obbligazione_scad_voceBulk.class);
        SQLBuilder sql = vocehome.createSQLBuilder();
        sql.addTableToHeader("OBBLIGAZIONE");
        sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.CD_CDS", "OBBLIGAZIONE.CD_CDS");
        sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.ESERCIZIO", "OBBLIGAZIONE.ESERCIZIO");
        sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.ESERCIZIO_ORIGINALE", "OBBLIGAZIONE.ESERCIZIO_ORIGINALE");
        sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.PG_OBBLIGAZIONE", "OBBLIGAZIONE.PG_OBBLIGAZIONE");
        sql.addClause("AND", "esercizio", sql.EQUALS, imp.getEsercizio());
        sql.addClause("AND", "cd_cds", sql.EQUALS, imp.getUnita_organizzativa().getCd_unita_padre());
        sql.addClause("AND", "cd_voce", sql.EQUALS, imp.getVoce_f().getCd_voce());
        sql.addSQLClause("AND", "cd_tipo_documento_cont", sql.EQUALS, Numerazione_doc_contBulk.TIPO_IMP);
        // deve essere escluso l'impegno che si sta modificando
        sql.openParenthesis("AND");
        sql.addClause("AND", "esercizio_originale", sql.NOT_EQUALS, imp.getEsercizio_originale());
        sql.addClause("OR", "pg_obbligazione", sql.NOT_EQUALS, imp.getPg_obbligazione());
        sql.closeParenthesis();
        List result = vocehome.fetchAll(sql);
        if (!result.isEmpty())
            throw new ApplicationException("Impossibile creare l'impegno con la voce del piano selezionata poichè è già stato creato un impegno su bilancio ente per tale voce.");
        // segnalo impossibilità di modificare importo se ci sono doc amministrativi associati
        if (!imp.isFromDocAmm() && imp.isAssociataADocAmm() && imp.getIm_iniziale_obbligazione() != null && imp.getIm_iniziale_obbligazione().compareTo(imp.getIm_obbligazione()) != 0)
            throw new ApplicationException("Impossibile variare importo dell'Impegno su bilancio Ente perche' e' associata a doc. amministrativi");
        // segnalo impossibilità di modificare importo se ci sono mandati associati
        if (imp.isFromDocAmm() && imp.isAssociataADocAmm() && imp.getIm_iniziale_obbligazione() != null && imp.getIm_iniziale_obbligazione().compareTo(imp.getIm_obbligazione()) != 0 && imp.getPg_mandato() != null)
            throw new ApplicationException("Impossibile variare importo dell'Impegno su bilancio Ente perche' e' associata a mandato");
        // segnalo impossibilità di modificare un residuo se l'esercizio precedente è ancora aperto
        if (imp.getCd_tipo_documento_cont().equals(Numerazione_doc_contBulk.TIPO_IMP_RES))
            verificaStatoEsercizioEsPrecedente(aUC, imp.getEsercizio(), imp.getCd_cds());
        // importo
        Obbligazione_scadenzarioBulk obblig_scadenzario = (Obbligazione_scadenzarioBulk) imp.getObbligazione_scadenzarioColl().get(0);
        obblig_scadenzario.setIm_scadenza(imp.getIm_obbligazione());
        obblig_scadenzario.setToBeUpdated();
        Obbligazione_scad_voceBulk obblig_scad_voce = (Obbligazione_scad_voceBulk) obblig_scadenzario.getObbligazione_scad_voceColl().get(0);
        obblig_scad_voce.setIm_voce(imp.getIm_obbligazione());
        obblig_scad_voce.setToBeUpdated();
        // descrizione
        obblig_scadenzario.setDs_scadenza(imp.getDs_obbligazione());
        // dt_scadenza
        obblig_scadenzario.setDt_scadenza(imp.getDt_scadenza());
        // viene già impostato nel doBringBack ma lo rifacciamo
        if (imp.getVoce_f() != null)
            imp.setElemento_voce(((ImpegnoHome) getHome(aUC, ImpegnoBulk.class)).findElementoVoceFor(imp.getVoce_f()));
        imp.setUser(aUC.getUser());
        updateBulk(aUC, imp);
        obblig_scadenzario.setUser(aUC.getUser());
        updateBulk(aUC, obblig_scadenzario);
        obblig_scad_voce.setUser(aUC.getUser());
        if (obblig_scad_voce.getCd_voce().equals(imp.getVoce_f().getCd_voce()))
            updateBulk(aUC, obblig_scad_voce);
        else // se e' stato modificato il capitolo e' necessario ricreare lo scad_voce
        // perchè non e' possibile aggiornare la chiave
        {
            Obbligazione_scad_voceBulk newObblig_scad_voce = new Obbligazione_scad_voceBulk();
            newObblig_scad_voce.setLinea_attivita(obblig_scad_voce.getLinea_attivita());
            newObblig_scad_voce.setObbligazione_scadenzario(obblig_scad_voce.getObbligazione_scadenzario());
            newObblig_scad_voce.setIm_voce(obblig_scad_voce.getIm_voce());
            newObblig_scad_voce.setTi_appartenenza(obblig_scad_voce.getTi_appartenenza());
            newObblig_scad_voce.setTi_gestione(obblig_scad_voce.getTi_gestione());
            // aggiorniamo la voce con quella impostata in mappa
            newObblig_scad_voce.setCd_voce(imp.getVoce_f().getCd_voce());
            newObblig_scad_voce.setUser(obblig_scad_voce.getUser());
            newObblig_scad_voce.setCd_fondo_ricerca(obblig_scad_voce.getCd_fondo_ricerca());
            insertBulk(aUC, newObblig_scad_voce);
            deleteBulk(aUC, obblig_scad_voce);
        }
        if (!aUC.isTransactional()) // aggiorna i saldi
        {
            aggiornaCapitoloSaldoObbligazione(aUC, imp, MODIFICA);
            aggiornaStatoCOAN_COGEDocAmm(aUC, imp);
        }
        verificaStatoEsercizio(aUC, ((CNRUserContext) aUC).getEsercizio(), imp.getCd_cds());
        return imp;
    } catch (Exception e) {
        throw handleException(bulk, e);
    }
}
Also used : SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) ApplicationException(it.cnr.jada.comp.ApplicationException) Obbligazione_scad_voceBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceBulk) ImpegnoHome(it.cnr.contab.doccont00.core.bulk.ImpegnoHome) ImpegnoBulk(it.cnr.contab.doccont00.core.bulk.ImpegnoBulk) Obbligazione_scad_voceHome(it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceHome) List(java.util.List) Obbligazione_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk) SQLException(java.sql.SQLException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ComponentException(it.cnr.jada.comp.ComponentException)

Aggregations

ApplicationException (it.cnr.jada.comp.ApplicationException)623 PersistencyException (it.cnr.jada.persistency.PersistencyException)301 ComponentException (it.cnr.jada.comp.ComponentException)286 RemoteException (java.rmi.RemoteException)185 IntrospectionException (it.cnr.jada.persistency.IntrospectionException)158 BigDecimal (java.math.BigDecimal)141 SQLException (java.sql.SQLException)132 SQLBuilder (it.cnr.jada.persistency.sql.SQLBuilder)126 EJBException (javax.ejb.EJBException)113 CNRUserContext (it.cnr.contab.utenze00.bp.CNRUserContext)87 UserContext (it.cnr.jada.UserContext)82 BulkList (it.cnr.jada.bulk.BulkList)81 java.util (java.util)77 Iterator (java.util.Iterator)75 DetailedRuntimeException (it.cnr.jada.DetailedRuntimeException)74 OggettoBulk (it.cnr.jada.bulk.OggettoBulk)73 ValidationException (it.cnr.jada.bulk.ValidationException)71 ApplicationRuntimeException (it.cnr.jada.comp.ApplicationRuntimeException)68 Timestamp (java.sql.Timestamp)64 List (java.util.List)63