Search in sources :

Example 21 with ApplicationException

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

the class ObbligazioneComponent method sdoppiaScadenzaInAutomatico.

public IScadenzaDocumentoContabileBulk sdoppiaScadenzaInAutomatico(UserContext userContext, IScadenzaDocumentoContabileBulk scad, DatiFinanziariScadenzeDTO dati) throws ComponentException {
    String nuovaGae = dati.getCdLineaAttivita();
    String nuovaDescrizione = dati.getNuovaDescrizione();
    Timestamp nuovaScadenza = dati.getNuovaScadenza();
    String cdr = dati.getCdCentroResponsabilita();
    String voce = dati.getCdVoce();
    BigDecimal nuovoImportoScadenzaVecchia = dati.getNuovoImportoScadenzaVecchia();
    Obbligazione_scadenzarioBulk scadenzaVecchia = (Obbligazione_scadenzarioBulk) scad;
    if (nuovoImportoScadenzaVecchia.compareTo(scad.getIm_scadenza()) == 0)
        throw handleException(new ApplicationException("Sdoppiamento in automatico non necessario!"));
    if (nuovoImportoScadenzaVecchia.compareTo(new BigDecimal(0)) < 0)
        throw handleException(new ApplicationException("L'importo della scadenza deve essere maggiore di 0"));
    if (nuovoImportoScadenzaVecchia.compareTo(scad.getIm_scadenza()) == 1)
        throw new ApplicationException("L'importo nuovo da assegnare alla scadenza dell'impegno deve essere inferiore al valore originario!");
    try {
        java.math.BigDecimal importoAssociatoScadenzaVecchia = scadenzaVecchia.getIm_associato_doc_amm();
        java.math.BigDecimal vecchioImportoScadenzaVecchia = scadenzaVecchia.getIm_scadenza();
        java.math.BigDecimal importoScadenzaNuova = vecchioImportoScadenzaVecchia.subtract(nuovoImportoScadenzaVecchia);
        BigDecimal newImportoOsv = Utility.ZERO, totImporto = Utility.ZERO;
        ObbligazioneHome obbligazioneHome = (ObbligazioneHome) getHome(userContext, ObbligazioneBulk.class);
        ObbligazioneBulk obbligazione = (ObbligazioneBulk) obbligazioneHome.findByPrimaryKey(scadenzaVecchia.getObbligazione());
        obbligazione = (ObbligazioneBulk) inizializzaBulkPerModifica(userContext, obbligazione);
        // cerco nell'obbligazione riletto la scadenza indicata
        for (Iterator s = obbligazione.getObbligazione_scadenzarioColl().iterator(); s.hasNext(); ) {
            Obbligazione_scadenzarioBulk os = (Obbligazione_scadenzarioBulk) s.next();
            if (os.equalsByPrimaryKey(scadenzaVecchia)) {
                scadenzaVecchia = os;
                if (dati.getMantieniImportoAssociatoScadenza()) {
                    scadenzaVecchia.setIm_associato_doc_amm(importoAssociatoScadenzaVecchia);
                }
                break;
            }
        }
        if (scadenzaVecchia == null)
            throw new ApplicationException("Scadenza da sdoppiare non trovata nell'impegno indicato!");
        Obbligazione_scadenzarioBulk scadenzaNuova = new Obbligazione_scadenzarioBulk();
        scadenzaNuova.setDt_scadenza(nuovaScadenza != null ? nuovaScadenza : scadenzaVecchia.getDt_scadenza());
        scadenzaNuova.setDs_scadenza(nuovaDescrizione != null ? nuovaDescrizione : scadenzaVecchia.getDs_scadenza());
        scadenzaNuova.setPg_obbligazione(dati.getNuovoPgObbligazioneScadenzario());
        obbligazione.addToObbligazione_scadenzarioColl(scadenzaNuova);
        // Rigenero i relativi dettagli
        generaDettagliScadenzaObbligazione(userContext, obbligazione, scadenzaNuova, false);
        for (Iterator s = scadenzaVecchia.getObbligazione_scad_voceColl().iterator(); s.hasNext(); ) {
            Obbligazione_scad_voceBulk osvOld = (Obbligazione_scad_voceBulk) s.next();
            if (nuovaGae != null && cdr != null) {
                if (osvOld.getCd_linea_attivita() != null && osvOld.getCd_linea_attivita().equals(nuovaGae) && osvOld.getCd_centro_responsabilita() != null && osvOld.getCd_centro_responsabilita().equals(cdr)) {
                    aggiornaImportoScadVoceScadenzaNuova(importoScadenzaNuova, scadenzaNuova, osvOld);
                    osvOld.setIm_voce(nuovoImportoScadenzaVecchia);
                    osvOld.setToBeUpdated();
                }
            } else {
                newImportoOsv = nuovoImportoScadenzaVecchia.multiply(osvOld.getIm_voce()).divide(vecchioImportoScadenzaVecchia, 2, BigDecimal.ROUND_HALF_UP);
                aggiornaImportoScadVoceScadenzaNuova(newImportoOsv, scadenzaNuova, osvOld);
                osvOld.setIm_voce(newImportoOsv);
                osvOld.setToBeUpdated();
            }
        }
        // Quadro la sommatoria sulla vecchia scadenza
        for (Iterator s = scadenzaVecchia.getObbligazione_scad_voceColl().iterator(); s.hasNext(); ) totImporto = totImporto.add(((Obbligazione_scad_voceBulk) s.next()).getIm_voce());
        if (totImporto.compareTo(nuovoImportoScadenzaVecchia) != 0) {
            // recupero il primo dettaglio e lo aggiorno per quadrare
            for (Iterator s = scadenzaVecchia.getObbligazione_scad_voceColl().iterator(); s.hasNext(); ) {
                Obbligazione_scad_voceBulk osv = (Obbligazione_scad_voceBulk) s.next();
                BigDecimal arrotondamento = nuovoImportoScadenzaVecchia.subtract(totImporto);
                if (osv.getIm_voce().add(arrotondamento).compareTo(Utility.ZERO) != -1) {
                    osv.setIm_voce(osv.getIm_voce().add(arrotondamento));
                    scadenzaNuova.getObbligazione_scad_voceColl().stream().filter(el -> el.getCd_centro_responsabilita().equals(osv.getCd_centro_responsabilita())).filter(el -> el.getCd_linea_attivita().equals(osv.getCd_linea_attivita())).findFirst().ifPresent(osvNew -> osvNew.setIm_voce(osvNew.getIm_voce().subtract(arrotondamento)));
                    break;
                }
            }
        }
        totImporto = Utility.ZERO;
        // Quadro la sommatoria sulla nuova scadenza
        for (Iterator s = scadenzaNuova.getObbligazione_scad_voceColl().iterator(); s.hasNext(); ) totImporto = totImporto.add(((Obbligazione_scad_voceBulk) s.next()).getIm_voce());
        if (totImporto.compareTo(importoScadenzaNuova) != 0) {
            // recupero il primo dettaglio e lo aggiorno per quadrare
            for (Iterator s = scadenzaNuova.getObbligazione_scad_voceColl().iterator(); s.hasNext(); ) {
                Obbligazione_scad_voceBulk osv = (Obbligazione_scad_voceBulk) s.next();
                if (osv.getIm_voce().add(importoScadenzaNuova.subtract(totImporto)).compareTo(Utility.ZERO) != -1) {
                    osv.setIm_voce(osv.getIm_voce().add(importoScadenzaNuova.subtract(totImporto)));
                    break;
                }
            }
        }
        scadenzaVecchia.setIm_scadenza(nuovoImportoScadenzaVecchia);
        scadenzaVecchia.setToBeUpdated();
        scadenzaNuova.setIm_scadenza(importoScadenzaNuova);
        scadenzaNuova.setToBeCreated();
        obbligazione.setToBeUpdated();
        /**
         * Viene posto il campo che verifica se il controllo della disponibilità
         * è stato effettuato a TRUE, in quanto, l'obbligazione è in modifica
         * e lo sdoppiamento delle righe non cambia il valore complessivo
         * dell'obbligazione
         */
        obbligazione.setCheckDisponibilitaContrattoEseguito(true);
        obbligazione.setCheckDisponibilitaIncaricoRepertorioEseguito(true);
        modificaConBulk(userContext, obbligazione);
        return scadenzaNuova;
    } catch (PersistencyException 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) Timestamp(java.sql.Timestamp) BigDecimal(java.math.BigDecimal) BigDecimal(java.math.BigDecimal) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException)

Example 22 with ApplicationException

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

the class ObbligazionePGiroComponent method inizializzaBulkPerModifica.

/**
 *  inizializzazione per modifica
 *    PreCondition:
 *      La richiesta di inizializzazione di un ImpegnoPGiroBulk per modifica
 *      e' stata generata
 *    PostCondition:
 *      Vengono recuperati la scadenza e il dettaglio di scadenza associati all'impegno.
 *      Viene recuperata l'associazione fra l'impegno e l'accertamento
 *		 Viene recuperato l'accertamento associato all'impegno e la relativa scadenza e dettaglio scadenza
 *
 * @param aUC lo <code>UserContext</code> che ha generato la richiesta
 * @param bulk <code>OggettoBulk</code> l'impegno su partita di giro da inizializzare per la modifica
 *
 * @return imp_pgiro l'impegno su partita di giro inizializzato per la modifica
 */
public OggettoBulk inizializzaBulkPerModifica(UserContext aUC, OggettoBulk bulk) throws ComponentException {
    try {
        if (bulk instanceof V_obbligazione_im_mandatoBulk) {
            V_obbligazione_im_mandatoBulk v_obbligazione = (V_obbligazione_im_mandatoBulk) bulk;
            bulk = (OggettoBulk) getHome(aUC, ImpegnoPGiroBulk.class).findByPrimaryKey(new ImpegnoPGiroBulk(v_obbligazione.getCd_cds(), v_obbligazione.getEsercizio(), v_obbligazione.getEsercizio_originale(), v_obbligazione.getPg_obbligazione()));
            if (bulk == null)
                throw new ApplicationException("L'impegno e' stato cancellato");
        }
        bulk = super.inizializzaBulkPerModifica(aUC, bulk);
        ImpegnoPGiroBulk imp_pgiro = (ImpegnoPGiroBulk) bulk;
        AccertamentoPGiroBulk accert_pgiro = null;
        imp_pgiro.setCd_terzo_iniziale(imp_pgiro.getCd_terzo());
        imp_pgiro.setIm_iniziale_obbligazione(imp_pgiro.getIm_obbligazione());
        // query per recuperare la scadenza dell'obbligazione
        // impegnoPgiro.getObbligazione_scadenzarioColl().add( scadenza );
        Obbligazione_scadenzarioHome obblig_scadHome = (Obbligazione_scadenzarioHome) getHome(aUC, Obbligazione_scadenzarioBulk.class);
        SQLBuilder sql = obblig_scadHome.createSQLBuilder();
        sql.addClause("AND", "cd_cds", sql.EQUALS, imp_pgiro.getCd_cds());
        sql.addClause("AND", "esercizio", sql.EQUALS, imp_pgiro.getEsercizio());
        sql.addClause("AND", "esercizio_originale", sql.EQUALS, imp_pgiro.getEsercizio_originale());
        sql.addClause("AND", "pg_obbligazione", sql.EQUALS, imp_pgiro.getPg_obbligazione());
        List result = obblig_scadHome.fetchAll(sql);
        Obbligazione_scadenzarioBulk obblig_scad = (Obbligazione_scadenzarioBulk) result.get(0);
        imp_pgiro.setDt_scadenza(obblig_scad.getDt_scadenza());
        imp_pgiro.getObbligazione_scadenzarioColl().add(obblig_scad);
        obblig_scad.setObbligazione(imp_pgiro);
        // carico l'eventuale doc.amministrativo legato alla scadenza
        V_doc_passivo_obbligazioneBulk docPassivo = obblig_scadHome.findDoc_passivo(obblig_scad);
        if (docPassivo != null) {
            obblig_scad.setEsercizio_doc_passivo(docPassivo.getEsercizio());
            obblig_scad.setPg_doc_passivo(docPassivo.getPg_documento_amm());
            imp_pgiro.setEsercizio_doc_passivo(docPassivo.getEsercizio());
            imp_pgiro.setPg_doc_passivo(docPassivo.getPg_documento_amm());
            imp_pgiro.setCd_tipo_documento_amm(docPassivo.getCd_tipo_documento_amm());
        }
        // carico l'eventuale mandato associato
        Mandato_rigaBulk mandato = obblig_scadHome.findMandato(obblig_scad);
        if (mandato != null) {
            imp_pgiro.setEsercizio_mandato(mandato.getEsercizio());
            imp_pgiro.setPg_mandato(mandato.getPg_mandato());
        }
        // query per recuperare scad_voce dell'obbligazione
        // scadenza.getObbligazione_scad_voceColl().add( scad_voce );
        Obbligazione_scad_voceHome obblig_scad_voceHome = (Obbligazione_scad_voceHome) getHome(aUC, Obbligazione_scad_voceBulk.class);
        sql = obblig_scad_voceHome.createSQLBuilder();
        sql.addClause("AND", "cd_cds", sql.EQUALS, imp_pgiro.getCd_cds());
        sql.addClause("AND", "esercizio", sql.EQUALS, imp_pgiro.getEsercizio());
        sql.addClause("AND", "esercizio_originale", sql.EQUALS, imp_pgiro.getEsercizio_originale());
        sql.addClause("AND", "pg_obbligazione", sql.EQUALS, imp_pgiro.getPg_obbligazione());
        result = obblig_scad_voceHome.fetchAll(sql);
        Obbligazione_scad_voceBulk obblig_scad_voce = (Obbligazione_scad_voceBulk) result.get(0);
        obblig_scad.getObbligazione_scad_voceColl().add(obblig_scad_voce);
        obblig_scad_voce.setObbligazione_scadenzario(obblig_scad);
        // query associazione
        // impegnoPgiro.setAssociazione( associazione );
        // associazione.setObbligazione ( impegnoPgiro);
        Ass_obb_acr_pgiroHome associazioneHome = (Ass_obb_acr_pgiroHome) getHome(aUC, Ass_obb_acr_pgiroBulk.class);
        sql = associazioneHome.createSQLBuilder();
        sql.addClause("AND", "cd_cds", sql.EQUALS, imp_pgiro.getCd_cds());
        sql.addClause("AND", "esercizio", sql.EQUALS, imp_pgiro.getEsercizio());
        sql.addClause("AND", "esercizio_ori_obbligazione", sql.EQUALS, imp_pgiro.getEsercizio_originale());
        sql.addClause("AND", "pg_obbligazione", sql.EQUALS, imp_pgiro.getPg_obbligazione());
        result = associazioneHome.fetchAll(sql);
        if (result.size() > 0) {
            Ass_obb_acr_pgiroBulk associazione = (Ass_obb_acr_pgiroBulk) result.get(0);
            imp_pgiro.setAssociazione(associazione);
            associazione.setImpegno(imp_pgiro);
            // query per recuperare l'accertamentoPgiro
            // associazione.setAccertamento( accertamentoPgiro);
            // accertamentoPgiro.setAssociazione( associazione )
            AccertamentoPGiroHome accert_pgiroHome = (AccertamentoPGiroHome) getHome(aUC, AccertamentoPGiroBulk.class);
            sql = accert_pgiroHome.createSQLBuilder();
            sql.addClause("AND", "cd_cds", sql.EQUALS, associazione.getCd_cds());
            sql.addClause("AND", "esercizio", sql.EQUALS, associazione.getEsercizio());
            sql.addClause("AND", "esercizio_originale", sql.EQUALS, associazione.getEsercizio_ori_accertamento());
            sql.addClause("AND", "pg_accertamento", sql.EQUALS, associazione.getPg_accertamento());
            result = accert_pgiroHome.fetchAll(sql);
            accert_pgiro = (AccertamentoPGiroBulk) result.get(0);
            accert_pgiro.setAssociazione(associazione);
            associazione.setAccertamento(accert_pgiro);
            if (accert_pgiro.getCapitolo() != null) {
                Elemento_voceBulk ev = (Elemento_voceBulk) getHome(aUC, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(accert_pgiro.getCapitolo().getCd_voce(), accert_pgiro.getCapitolo().getEsercizio(), accert_pgiro.getCapitolo().getTi_appartenenza(), accert_pgiro.getCapitolo().getTi_gestione()));
                imp_pgiro.setElemento_voceContr(ev);
            }
            // query per recuperare la scadenza dell'accertamento
            // accertamentoPgiro.getAccertamento_scadenzarioColl().add( scadenza );
            Accertamento_scadenzarioHome accert_scadHome = (Accertamento_scadenzarioHome) getHome(aUC, Accertamento_scadenzarioBulk.class);
            sql = accert_scadHome.createSQLBuilder();
            sql.addClause("AND", "cd_cds", sql.EQUALS, accert_pgiro.getCd_cds());
            sql.addClause("AND", "esercizio", sql.EQUALS, accert_pgiro.getEsercizio());
            sql.addClause("AND", "esercizio_originale", sql.EQUALS, accert_pgiro.getEsercizio_originale());
            sql.addClause("AND", "pg_accertamento", sql.EQUALS, accert_pgiro.getPg_accertamento());
            result = accert_scadHome.fetchAll(sql);
            Accertamento_scadenzarioBulk accert_scad = (Accertamento_scadenzarioBulk) result.get(0);
            accert_pgiro.setDt_scadenza(accert_scad.getDt_scadenza_incasso());
            accert_pgiro.getAccertamento_scadenzarioColl().add(accert_scad);
            accert_scad.setAccertamento(accert_pgiro);
            // carico l'eventuale doc.amministrativo legato alla scadenza
            V_doc_attivo_accertamentoBulk docAttivo = accert_scadHome.findDoc_attivo(accert_scad);
            if (docAttivo != null) {
                accert_scad.setEsercizio_doc_attivo(docAttivo.getEsercizio());
                accert_scad.setPg_doc_attivo(docAttivo.getPg_documento_amm());
            }
            // query per recuperare scad_voce dell'accertamento
            // scadenza.getAccertamento_scad_voceColl().add( scad_voce );
            Accertamento_scad_voceHome accert_scad_voceHome = (Accertamento_scad_voceHome) getHome(aUC, Accertamento_scad_voceBulk.class);
            sql = accert_scad_voceHome.createSQLBuilder();
            sql.addClause("AND", "cd_cds", sql.EQUALS, accert_pgiro.getCd_cds());
            sql.addClause("AND", "esercizio", sql.EQUALS, accert_pgiro.getEsercizio());
            sql.addClause("AND", "esercizio_originale", sql.EQUALS, accert_pgiro.getEsercizio_originale());
            sql.addClause("AND", "pg_accertamento", sql.EQUALS, accert_pgiro.getPg_accertamento());
            result = accert_scad_voceHome.fetchAll(sql);
            Accertamento_scad_voceBulk accert_scad_voce = (Accertamento_scad_voceBulk) result.get(0);
            accert_scad.getAccertamento_scad_voceColl().add(accert_scad_voce);
            accert_scad_voce.setAccertamento_scadenzario(accert_scad);
        }
        // query per recuperare cd_uo_ente dell'impegno
        Unita_organizzativa_enteHome uo_enteHome = (Unita_organizzativa_enteHome) getHome(aUC, Unita_organizzativa_enteBulk.class);
        sql = uo_enteHome.createSQLBuilder();
        result = uo_enteHome.fetchAll(sql);
        Unita_organizzativa_enteBulk uo_ente = (Unita_organizzativa_enteBulk) result.get(0);
        imp_pgiro.setCd_uo_ente(uo_ente.getCd_unita_organizzativa());
        if (accert_pgiro != null) {
            accert_pgiro.setCd_uo_ente(uo_ente.getCd_unita_organizzativa());
            if ((accert_pgiro.getDt_cancellazione() == null && imp_pgiro.getDt_cancellazione() != null) || (accert_pgiro.getDt_cancellazione() != null && imp_pgiro.getDt_cancellazione() == null)) {
                accert_pgiro.setFl_isTronco(true);
                imp_pgiro.setFl_isTronco(true);
            }
        }
        return imp_pgiro;
    } catch (Exception e) {
        throw handleException(bulk, e);
    }
}
Also used : Ass_obb_acr_pgiroHome(it.cnr.contab.doccont00.core.bulk.Ass_obb_acr_pgiroHome) AccertamentoPGiroHome(it.cnr.contab.doccont00.core.bulk.AccertamentoPGiroHome) Unita_organizzativa_enteBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Obbligazione_scadenzarioHome(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioHome) V_doc_attivo_accertamentoBulk(it.cnr.contab.doccont00.core.bulk.V_doc_attivo_accertamentoBulk) Obbligazione_scad_voceBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceBulk) Accertamento_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioBulk) Obbligazione_scad_voceHome(it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceHome) V_obbligazione_im_mandatoBulk(it.cnr.contab.doccont00.core.bulk.V_obbligazione_im_mandatoBulk) Mandato_rigaBulk(it.cnr.contab.doccont00.core.bulk.Mandato_rigaBulk) Ass_obb_acr_pgiroBulk(it.cnr.contab.doccont00.core.bulk.Ass_obb_acr_pgiroBulk) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) SQLException(java.sql.SQLException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ComponentException(it.cnr.jada.comp.ComponentException) ImpegnoPGiroBulk(it.cnr.contab.doccont00.core.bulk.ImpegnoPGiroBulk) Accertamento_scad_voceBulk(it.cnr.contab.doccont00.core.bulk.Accertamento_scad_voceBulk) V_doc_passivo_obbligazioneBulk(it.cnr.contab.doccont00.core.bulk.V_doc_passivo_obbligazioneBulk) Accertamento_scadenzarioHome(it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioHome) ApplicationException(it.cnr.jada.comp.ApplicationException) Unita_organizzativa_enteHome(it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteHome) List(java.util.List) Obbligazione_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk) AccertamentoPGiroBulk(it.cnr.contab.doccont00.core.bulk.AccertamentoPGiroBulk) Accertamento_scad_voceHome(it.cnr.contab.doccont00.core.bulk.Accertamento_scad_voceHome)

Example 23 with ApplicationException

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

the class ObbligazionePGiroComponent method creaObbligazione_scad_voce.

/**
 *  creazione
 *    PreCondition:
 *      una scadenza di un impegno pgiro e' stata creata ed e' necessario creare il suo dettaglio
 *    PostCondition:
 *      Il dettaglio di scadenza (Obbligazione_scad_voceBulk) viene creato
 *      con linea attività uguale alla linea di attività definita nella Configurazione CNR come Linea attività Spesa ENTE
 *      e importo uguale all'importo della scadenza dell'obbligazione
 *  errore - Configurazione CNR
 *    PreCondition:
 *      una richiesta di creazione di un dettaglio di scadenza di un impegno pgiro e' stata generata
 *      ma non e' stata definita in Configurazione CNR la Linea attività Spesa ENTE
 *    PostCondition:
 *      Un messaggio di errore segnala all'utente la mancata definizione in Configurazione CNR della linea di attivita' Spesa ENTE
 *
 * @param uc lo <code>UserContext</code> che ha generato la richiesta
 * @param obblig_scad <code>Obbligazione_scadenzarioBulk</code> la scadenza dell'impegno pgiro creata
 *
 * @return obblig_scad_voce Il dettaglio di scadenza dell'impegno pgiro creato
 */
private Obbligazione_scad_voceBulk creaObbligazione_scad_voce(UserContext uc, Obbligazione_scadenzarioBulk obblig_scad) throws ComponentException {
    try {
        Obbligazione_scad_voceBulk obblig_scad_voce = new Obbligazione_scad_voceBulk();
        obblig_scad_voce.setUser(obblig_scad.getObbligazione().getUser());
        obblig_scad_voce.setToBeCreated();
        // campi chiave
        obblig_scad_voce.setObbligazione_scadenzario(obblig_scad);
        // altri campi chiave
        obblig_scad_voce.setTi_appartenenza(obblig_scad.getObbligazione().getTi_appartenenza());
        obblig_scad_voce.setTi_gestione(obblig_scad.getObbligazione().getTi_gestione());
        obblig_scad_voce.setCd_voce(obblig_scad.getObbligazione().getElemento_voce().getCd_elemento_voce());
        it.cnr.contab.config00.bulk.Configurazione_cnrBulk config = createConfigurazioneCnrComponentSession().getConfigurazione(uc, null, null, it.cnr.contab.config00.bulk.Configurazione_cnrBulk.PK_LINEA_ATTIVITA_SPECIALE, it.cnr.contab.config00.bulk.Configurazione_cnrBulk.SK_LINEA_ATTIVITA_SPESA_ENTE);
        if (config != null) {
            it.cnr.contab.config00.latt.bulk.WorkpackageBulk latt = new it.cnr.contab.config00.latt.bulk.WorkpackageBulk(config.getVal01(), config.getVal02());
            obblig_scad_voce.setLinea_attivita(latt);
        } else
            throw new ApplicationException("Configurazione CNR: manca la definizione del GAE SPESA ENTE");
        // altri campi
        obblig_scad_voce.setIm_voce(obblig_scad.getObbligazione().getIm_obbligazione());
        // obblig_scad_voce.setCd_fondo_ricerca( obblig_scad.getObbligazione().getCd_fondo_ricerca() );
        obblig_scad.getObbligazione_scad_voceColl().add(obblig_scad_voce);
        return obblig_scad_voce;
    } catch (Exception e) {
        throw handleException(e);
    }
}
Also used : ApplicationException(it.cnr.jada.comp.ApplicationException) Obbligazione_scad_voceBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceBulk) SQLException(java.sql.SQLException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ComponentException(it.cnr.jada.comp.ComponentException)

Example 24 with ApplicationException

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

the class ObbligazionePGiroComponent method annullaObbligazione.

/**
 *  cancellazione (logica)
 *    PreCondition:
 *      L'utente richiede la cancellazione di un impegno su partita di giro
 *    PostCondition:
 *     Alla component che gestisce l'accertamento su pgiro viene inoltrata la richiesta di cancellazione (logica)
 *		dell'accertamento associato all'accertamento pgiro (metodo eliminaAccertamento), l'obbligazione (con la sua
 *		scadenza e il suo dettaglio scadenza) viene cancellata (metodo eliminaObbligazione)
 *  errore - doc.amm.associati
 *    PreCondition:
 *      La richiesta di cancellazione di un'obbligazione su partita di giro e' stata generata ma esistono
 *      documenti amministrativi contabilizzati sulla scadenza dell'obbligazione
 *    PostCondition:
 *      Un messaggio di errore segnala all'utente l'impossibilità di effettuare la cancellazione
 *
 * @param userContext lo <code>UserContext</code> che ha generato la richiesta
 * @param imp_pgiro <code>ImpegnoPGiroBulk</code> l'impegno su partita di giro da cancellare (logicamente)
 * @return imp_pgiro <code>ImpegnoPGiroBulk</code> l'impegno su partita di giro annullato
 */
public ImpegnoPGiroBulk annullaObbligazione(UserContext userContext, ImpegnoPGiroBulk imp_pgiro) throws ComponentException {
    try {
        verificaStatoEsercizio(userContext, imp_pgiro.getEsercizio(), imp_pgiro.getCd_cds());
        // segnalo impossibilità di annullare un residuo se l'esercizio precedente è ancora aperto
        if (imp_pgiro.getCd_tipo_documento_cont().equals(Numerazione_doc_contBulk.TIPO_IMP_RES))
            verificaStatoEsercizioEsPrecedente(userContext, imp_pgiro.getEsercizio(), imp_pgiro.getCd_cds());
        if (imp_pgiro.isAssociataADocAmm())
            throw new ApplicationException("Impossibile cancellare l'Annotazione di Spesa su Partita di Giro perche' ha documenti amministrativi associati");
        // annullo il record relativo all'accertamento partita di giro
        if (!imp_pgiro.isFl_isTronco())
            createAccertamentoPGiroComponent().eliminaAccertamento(userContext, imp_pgiro.getAssociazione().getAccertamento());
        // annullo il record relativo all'obbligazione partita di giro
        eliminaObbligazione(userContext, imp_pgiro);
        return imp_pgiro;
    } catch (Exception e) {
        throw handleException(imp_pgiro, e);
    }
}
Also used : ApplicationException(it.cnr.jada.comp.ApplicationException) SQLException(java.sql.SQLException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ComponentException(it.cnr.jada.comp.ComponentException)

Example 25 with ApplicationException

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

the class ObbligazionePGiroComponent 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>ImpegnoPGiroBulk</code> l'obbligazione su partita di giro da validare
 */
protected void verificaObbligazione(UserContext userContext, ImpegnoPGiroBulk 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 = ((ImpegnoPGiroHome) getHome(userContext, ImpegnoPGiroBulk.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) Timestamp(java.sql.Timestamp) ImpegnoPGiroHome(it.cnr.contab.doccont00.core.bulk.ImpegnoPGiroHome) ImpegnoPGiroBulk(it.cnr.contab.doccont00.core.bulk.ImpegnoPGiroBulk)

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