Search in sources :

Example 1 with EsercizioBulk

use of it.cnr.contab.config00.esercizio.bulk.EsercizioBulk in project sigla-main by consiglionazionaledellericerche.

the class ScritturaPartitaDoppiaComponent method inizializzaDataContabilizzazione.

/**
 * Nome: Esercizio aperto
 * Pre:  E' stata richiesta l'inizializzazione della data di contabilizzazione di una scrittura
 *       e l'esercizio contabile e' APERTO
 * Post: La data di contabilizzzaione viene inizializzata con la data odierna
 *
 * Nome: Esercizio chiuso priovvisoriamente
 * Pre:  E' stata richiesta l'inizializzazione della data di contabilizzazione di una scrittura
 *       e l'esercizio contabile e' CHIUSO PROVVISORIO
 * Post: La data di contabilizzzaione viene inizializzata con il 31/12/esercizio di scrivania
 *
 * Nome: Esercizio in altro stato
 * Pre:  E' stata richiesta l'inizializzazione della data di contabilizzazione di una scrittura
 *       e l'esercizio contabile ha stato diverso da APERTO o  CHIUSO PROVVISORIO
 * Post: Una segnalazione di errore comunica all'utente l'impossibilità di creare una scrittura in partita doppia
 *
 * @param userContext <code>UserContext</code>
 * @param scrittura <code>Scrittura_partita_doppiaBulk</code>  la cui data deve essere inizializzata
 * @return <code>Scrittura_partita_doppiaBulk</code>  con data inizializzata
 */
private Scrittura_partita_doppiaBulk inizializzaDataContabilizzazione(UserContext userContext, Scrittura_partita_doppiaBulk scrittura) throws PersistencyException, ComponentException, javax.ejb.EJBException {
    EsercizioBulk esercizio = (EsercizioBulk) getHome(userContext, EsercizioBulk.class).findByPrimaryKey(new EsercizioBulk(((CNRUserContext) userContext).getCd_cds(), ((CNRUserContext) userContext).getEsercizio()));
    if (esercizio == null)
        throw new ApplicationException("Attenzione esercizio non definito per il cds di scrivania!");
    /* Gennaro Borriello - (23/09/2004 10.33.19)
		 *	Err. 838 - Deve essere possibile poter registrare delle scritture coep/coan
		 *	anche se l'esercizio finanziario è chiuso.
		 */
    if (!esercizio.getSt_apertura_chiusura().equals(esercizio.STATO_APERTO) && !esercizio.getSt_apertura_chiusura().equals(esercizio.STATO_CHIUSO_DEF))
        throw new ApplicationException("Attenzione esercizio non in stato aperto per il cds di scrivania!");
    scrittura.setDt_contabilizzazione(it.cnr.contab.doccont00.comp.DateServices.getDt_valida(userContext));
    return scrittura;
}
Also used : EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk)

Example 2 with EsercizioBulk

use of it.cnr.contab.config00.esercizio.bulk.EsercizioBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDFatturaPassivaBP method init.

/**
 * Imposta come attivi i tab di default.
 *
 * @param context <code>ActionContext</code>
 */
protected void init(it.cnr.jada.action.Config config, it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
    try {
        attivoOrdini = Utility.createConfigurazioneCnrComponentSession().isAttivoOrdini(context.getUserContext());
        attivaEconomicaParallela = Utility.createConfigurazioneCnrComponentSession().isAttivaEconomicaParallela(context.getUserContext());
        super.init(config, context);
        int solaris = Fattura_passivaBulk.getDateCalendar(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate()).get(java.util.Calendar.YEAR);
        int esercizioScrivania = it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext()).intValue();
        setAnnoSolareInScrivania(solaris == esercizioScrivania);
        setRibaltato(initRibaltato(context));
        if (!isAnnoSolareInScrivania()) {
            String cds = it.cnr.contab.utenze00.bp.CNRUserContext.getCd_cds(context.getUserContext());
            try {
                FatturaPassivaComponentSession session = (FatturaPassivaComponentSession) createComponentSession();
                boolean esercizioScrivaniaAperto = session.verificaStatoEsercizio(context.getUserContext(), new EsercizioBulk(cds, new Integer(esercizioScrivania)));
                boolean esercizioSuccessivoAperto = session.verificaStatoEsercizio(context.getUserContext(), new EsercizioBulk(cds, new Integer(esercizioScrivania + 1)));
                setRiportaAvantiIndietro(esercizioScrivaniaAperto && esercizioSuccessivoAperto && isRibaltato());
            } catch (Throwable t) {
                throw handleException(t);
            }
        } else
            setRiportaAvantiIndietro(false);
    } catch (javax.ejb.EJBException e) {
        setAnnoSolareInScrivania(false);
    } catch (ComponentException e) {
        throw handleException(e);
    } catch (RemoteException e) {
        throw handleException(e);
    }
    resetTabs();
}
Also used : BigInteger(java.math.BigInteger) EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk) ComponentException(it.cnr.jada.comp.ComponentException) RemoteException(java.rmi.RemoteException) FatturaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession)

Example 3 with EsercizioBulk

use of it.cnr.contab.config00.esercizio.bulk.EsercizioBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDDocumentoGenericoPassivoBP method init.

/**
 * Imposta come attivi i tab di default.
 *
 * @param context <code>ActionContext</code>
 */
protected void init(it.cnr.jada.action.Config config, it.cnr.jada.action.ActionContext context) throws it.cnr.jada.action.BusinessProcessException {
    super.init(config, context);
    try {
        int solaris = Documento_genericoBulk.getDateCalendar(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate()).get(java.util.Calendar.YEAR);
        int esercizioScrivania = it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(context.getUserContext()).intValue();
        attivaEconomicaParallela = Utility.createConfigurazioneCnrComponentSession().isAttivaEconomicaParallela(context.getUserContext());
        setAnnoSolareInScrivania(solaris == esercizioScrivania);
        setRibaltato(initRibaltato(context));
        if (!isAnnoSolareInScrivania()) {
            String cds = it.cnr.contab.utenze00.bp.CNRUserContext.getCd_cds(context.getUserContext());
            try {
                DocumentoGenericoComponentSession session = (DocumentoGenericoComponentSession) createComponentSession();
                boolean esercizioScrivaniaAperto = session.verificaStatoEsercizio(context.getUserContext(), new EsercizioBulk(cds, new Integer(esercizioScrivania)));
                boolean esercizioSuccessivoAperto = session.verificaStatoEsercizio(context.getUserContext(), new EsercizioBulk(cds, new Integer(esercizioScrivania + 1)));
                setRiportaAvantiIndietro(esercizioScrivaniaAperto && esercizioSuccessivoAperto && isRibaltato());
            } catch (Throwable t) {
                handleException(t);
            }
        } else
            setRiportaAvantiIndietro(false);
    } catch (EJBException | RemoteException | ComponentException e) {
        setAnnoSolareInScrivania(false);
    }
    resetTabs();
}
Also used : EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk) ComponentException(it.cnr.jada.comp.ComponentException) EJBException(javax.ejb.EJBException) RemoteException(java.rmi.RemoteException) DocumentoGenericoComponentSession(it.cnr.contab.docamm00.ejb.DocumentoGenericoComponentSession)

Example 4 with EsercizioBulk

use of it.cnr.contab.config00.esercizio.bulk.EsercizioBulk in project sigla-main by consiglionazionaledellericerche.

the class SaldoComponent method aggiornaSaldiAnniSuccessivi.

public void aggiornaSaldiAnniSuccessivi(UserContext userContext, String cd_cdr, String cd_linea_attivita, IVoceBilancioBulk voce, Integer esercizio_res, BigDecimal importo, Voce_f_saldi_cdr_lineaBulk saldoOld) throws ComponentException {
    Voce_f_saldi_cdr_lineaBulk saldoNew;
    try {
        Ass_evold_evnewHome ass_evold_evnewHome = (Ass_evold_evnewHome) getHome(userContext, Ass_evold_evnewBulk.class);
        CdrHome cdrHome = (CdrHome) getHome(userContext, CdrBulk.class);
        CdrBulk cdr = (CdrBulk) cdrHome.findByPrimaryKey(new CdrBulk(cd_cdr));
        getHomeCache(userContext).fetchAll(userContext, cdrHome);
        if (((Parametri_cdsHome) getHome(userContext, Parametri_cdsBulk.class)).isRibaltato(userContext, cdr.getCd_cds())) {
            // RECUPERO L'ELEMENTO DELL'ANNO IN CORSO
            for (Iterator esercizi = ((EsercizioHome) getHome(userContext, EsercizioBulk.class)).findEserciziSuccessivi(new EsercizioBulk(CNRUserContext.getCd_cds(userContext), CNRUserContext.getEsercizio(userContext))).iterator(); esercizi.hasNext(); ) {
                EsercizioBulk esercizio = (EsercizioBulk) esercizi.next();
                String codiceVoce = voce.getCd_voce(), codiceVoceForSaldoNew = null;
                // recupero la voce di ribaltamento
                Elemento_voceBulk elemento_voce = null;
                if (voce instanceof Voce_fBulk) {
                    if (!((Parametri_cnrHome) getHome(userContext, Parametri_cnrBulk.class)).isNuovoPdg(esercizio.getEsercizio())) {
                        voce = (Voce_fBulk) getHome(userContext, Voce_fBulk.class).findByPrimaryKey(new Voce_fBulk(voce.getCd_voce(), esercizio.getEsercizio(), saldoOld.getTi_appartenenza(), saldoOld.getTi_gestione()));
                        getHomeCache(userContext).fetchAll(userContext);
                        if (voce == null)
                            throw new ApplicationException("La voce: " + codiceVoce + " non è presente nell'esercizio: " + esercizio.getEsercizio());
                        saldoNew = findAndLock(userContext, esercizio.getEsercizio(), esercizio_res, cd_cdr, cd_linea_attivita, voce);
                        codiceVoceForSaldoNew = voce.getCd_voce();
                        elemento_voce = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(voce.getCd_elemento_voce(), esercizio.getEsercizio(), voce.getTi_appartenenza(), voce.getTi_gestione()));
                    } else {
                        // recupero la voce di ribaltamento
                        // Voce_fBulk voceOld = (Voce_fBulk)getHome(userContext,Voce_fBulk.class).findByPrimaryKey(
                        // new Voce_fBulk(voce.getCd_voce(),CNRUserContext.getEsercizio(userContext),saldoOld.getTi_appartenenza(),saldoOld.getTi_gestione())
                        // );
                        // 
                        // getHomeCache(userContext).fetchAll(userContext);
                        // 
                        // if (voceOld == null)
                        // throw new ApplicationException("La voce: "+ voce.getCd_voce() +" non è presente nell'esercizio: "+CNRUserContext.getEsercizio(userContext));
                        Elemento_voceBulk elementoVoceOld = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(saldoOld.getCd_voce(), CNRUserContext.getEsercizio(userContext), saldoOld.getTi_appartenenza(), saldoOld.getTi_gestione()));
                        if (elementoVoceOld == null)
                            throw new ApplicationException("Elemento voce non trovato per la Voce: " + saldoOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
                        // cerco la voce del nuovo anno
                        List listVociNew = ass_evold_evnewHome.findAssElementoVoceNewList(elementoVoceOld);
                        if (!listVociNew.isEmpty()) {
                            if (listVociNew.size() > 1)
                                throw new ApplicationException("Trovate nella tabella di associazione Vecchie/Nuove Voci più elementi voce nel nuovo anno per la Voce: " + elementoVoceOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
                            elemento_voce = (Elemento_voceBulk) listVociNew.get(0);
                        } else {
                            elemento_voce = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(elementoVoceOld.getCd_elemento_voce(), esercizio.getEsercizio(), elementoVoceOld.getTi_appartenenza(), elementoVoceOld.getTi_gestione()));
                        }
                        if (elemento_voce == null || elemento_voce.getEsercizio().compareTo(esercizio.getEsercizio()) != 0)
                            throw new ApplicationException("Elemento voce non trovato o associato ad una voce di anno differente rispetto a quello di ribaltamento per la Voce: " + saldoOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
                        saldoNew = findAndLock(userContext, esercizio.getEsercizio(), esercizio_res, cd_cdr, cd_linea_attivita, elemento_voce);
                        codiceVoceForSaldoNew = elemento_voce.getCd_voce();
                    }
                } else {
                    // recupero la voce di ribaltamento
                    Elemento_voceBulk elementoVoceOld = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(voce.getCd_elemento_voce(), CNRUserContext.getEsercizio(userContext), voce.getTi_appartenenza(), voce.getTi_gestione()));
                    if (elementoVoceOld == null)
                        throw new ApplicationException("Elemento voce non trovato per la Voce: " + voce.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
                    getHomeCache(userContext).fetchAll(userContext);
                    // cerco la voce del nuovo anno
                    List listVociNew = ass_evold_evnewHome.findAssElementoVoceNewList(elementoVoceOld);
                    if (!listVociNew.isEmpty()) {
                        if (listVociNew.size() > 1)
                            throw new ApplicationException("Trovate nella tabella di associazione Vecchie/Nuove Voci più elementi voce nel nuovo anno per la Voce: " + elementoVoceOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
                        elemento_voce = (Elemento_voceBulk) listVociNew.get(0);
                    } else {
                        elemento_voce = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(elementoVoceOld.getCd_elemento_voce(), esercizio.getEsercizio(), elementoVoceOld.getTi_appartenenza(), elementoVoceOld.getTi_gestione()));
                    }
                    if (elemento_voce == null || elemento_voce.getEsercizio().compareTo(esercizio.getEsercizio()) != 0)
                        throw new ApplicationException("Elemento voce non trovato o associato ad una voce di anno differente rispetto a quello di ribaltamento per la Voce: " + elementoVoceOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
                    saldoNew = findAndLock(userContext, esercizio.getEsercizio(), esercizio_res, cd_cdr, cd_linea_attivita, elemento_voce);
                    codiceVoceForSaldoNew = elemento_voce.getCd_voce();
                }
                getHomeCache(userContext).fetchAll(userContext);
                WorkpackageBulk workpackage = (WorkpackageBulk) getHome(userContext, WorkpackageBulk.class).findByPrimaryKey(new WorkpackageBulk(cd_cdr, cd_linea_attivita));
                // Obbligatorio cofog sulle GAE
                Parametri_cnrBulk par = (Parametri_cnrBulk) getHome(userContext, Parametri_cnrBulk.class).findByPrimaryKey(new Parametri_cnrBulk(esercizio.getEsercizio()));
                if (par != null && par.getLivello_pdg_cofog() != 0)
                    if ((workpackage.getTi_gestione().compareTo(CostantiTi_gestione.TI_GESTIONE_SPESE) == 0) && workpackage.getCd_cofog() == null)
                        throw new ApplicationException("Non è possibile utilizzare GAE di spesa in cui non è indicata la classificazione Cofog.");
                getHomeCache(userContext).fetchAll(userContext);
                if (saldoNew == null) {
                    if (elemento_voce == null)
                        throw new ApplicationException("Elemento voce non trovato per la Voce: " + voce.getCd_voce() + " nell'esercizio: " + esercizio.getEsercizio());
                    saldoNew = new Voce_f_saldi_cdr_lineaBulk(esercizio.getEsercizio(), esercizio_res, cd_cdr, cd_linea_attivita, voce.getTi_appartenenza(), voce.getTi_gestione(), codiceVoceForSaldoNew);
                    saldoNew.setCd_elemento_voce(elemento_voce.getCd_elemento_voce());
                    saldoNew.inizializzaSommeAZero();
                    saldoNew.setToBeCreated();
                    insertBulk(userContext, saldoNew);
                }
                if (saldoNew != null) {
                    saldoNew.setIm_stanz_res_improprio(saldoNew.getIm_stanz_res_improprio().subtract(importo));
                    // calcolo i vincoli
                    Pdg_vincoloHome home = (Pdg_vincoloHome) getHome(userContext, Pdg_vincoloBulk.class);
                    List<Pdg_vincoloBulk> listVincoli = home.cercaDettagliVincolati(saldoNew);
                    BigDecimal impVincolo = listVincoli.stream().map(e -> e.getIm_vincolo()).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
                    BigDecimal diff = saldoNew.getDispAdImpResiduoImproprio().subtract(impVincolo);
                    if (diff.compareTo(Utility.ZERO) < 0) {
                        if (voce.getTi_gestione().equalsIgnoreCase(Voce_f_saldi_cdr_lineaBulk.TIPO_GESTIONE_SPESA)) {
                            if (!((elemento_voce.getFl_partita_giro() != null && elemento_voce.getFl_partita_giro().booleanValue()) || (elemento_voce.getFl_limite_ass_obblig() != null && !elemento_voce.getFl_limite_ass_obblig().booleanValue() && workpackage.getFl_limite_ass_obblig() != null && !workpackage.getFl_limite_ass_obblig().booleanValue()))) {
                                StringBuilder messaggio = new StringBuilder("Impossibile effettuare l'operazione !\n" + "Nell'esercizio " + esercizio.getEsercizio() + " e per il CdR " + cd_cdr + ", " + " Voce " + voce.getCd_voce() + " e GAE " + cd_linea_attivita + " lo stanziamento Residuo Improprio " + " diventerebbe negativo (" + new it.cnr.contab.util.EuroFormat().format(diff.abs()) + ")");
                                if (impVincolo.compareTo(BigDecimal.ZERO) > 0)
                                    messaggio.append(" in conseguenza della presenza di vincoli di spesa per un importo di " + new it.cnr.contab.util.EuroFormat().format(impVincolo.abs()));
                                throw new ApplicationException(messaggio.toString());
                            }
                        }
                    }
                    saldoNew.setToBeUpdated();
                    updateBulk(userContext, saldoNew);
                }
            }
        }
    } catch (PersistencyException e) {
        throw new ComponentException(e);
    } catch (IntrospectionException e) {
        throw new ComponentException(e);
    }
}
Also used : V_classificazione_vociBulk(it.cnr.contab.config00.pdcfin.cla.bulk.V_classificazione_vociBulk) Pdg_variazione_riga_gestBulk(it.cnr.contab.pdg01.bulk.Pdg_variazione_riga_gestBulk) EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk) Voce_piano_economico_prgBulk(it.cnr.contab.progettiric00.tabrif.bulk.Voce_piano_economico_prgBulk) BigDecimal(java.math.BigDecimal) Liquidazione_iva_variazioniBulk(it.cnr.contab.gestiva00.core.bulk.Liquidazione_iva_variazioniBulk) Var_stanz_res_rigaBulk(it.cnr.contab.varstanz00.bulk.Var_stanz_res_rigaBulk) CostantiTi_gestione(it.cnr.contab.config00.latt.bulk.CostantiTi_gestione) it.cnr.contab.progettiric00.core.bulk(it.cnr.contab.progettiric00.core.bulk) ObjectNotFoundException(it.cnr.jada.persistency.ObjectNotFoundException) Ass_var_stanz_res_cdrBulk(it.cnr.contab.varstanz00.bulk.Ass_var_stanz_res_cdrBulk) Pdg_variazioneBulk(it.cnr.contab.pdg00.bulk.Pdg_variazioneBulk) PersistentHome(it.cnr.jada.persistency.sql.PersistentHome) CdrHome(it.cnr.contab.config00.sto.bulk.CdrHome) Classificazione_vociBulk(it.cnr.contab.config00.pdcfin.cla.bulk.Classificazione_vociBulk) Timestamp(java.sql.Timestamp) it.cnr.contab.config00.bulk(it.cnr.contab.config00.bulk) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Tipo_unita_organizzativaHome(it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome) Pdg_modulo_speseBulk(it.cnr.contab.prevent01.bulk.Pdg_modulo_speseBulk) Collectors(java.util.stream.Collectors) Ass_pdg_variazione_cdrHome(it.cnr.contab.pdg00.cdip.bulk.Ass_pdg_variazione_cdrHome) Serializable(java.io.Serializable) RemoteException(java.rmi.RemoteException) Ass_var_stanz_res_cdrHome(it.cnr.contab.varstanz00.bulk.Ass_var_stanz_res_cdrHome) EJBException(javax.ejb.EJBException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) Stream(java.util.stream.Stream) Var_stanz_resBulk(it.cnr.contab.varstanz00.bulk.Var_stanz_resBulk) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) Voce_piano_economico_prgHome(it.cnr.contab.progettiric00.tabrif.bulk.Voce_piano_economico_prgHome) UserContext(it.cnr.jada.UserContext) java.util(java.util) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) Utility(it.cnr.contab.util.Utility) it.cnr.contab.prevent00.bulk(it.cnr.contab.prevent00.bulk) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) Pdg_variazioneHome(it.cnr.contab.pdg00.bulk.Pdg_variazioneHome) Pdg_modulo_costiBulk(it.cnr.contab.prevent01.bulk.Pdg_modulo_costiBulk) SQLException(java.sql.SQLException) it.cnr.contab.config00.pdcfin.bulk(it.cnr.contab.config00.pdcfin.bulk) V_classificazione_vociHome(it.cnr.contab.config00.pdcfin.cla.bulk.V_classificazione_vociHome) Var_stanz_res_rigaHome(it.cnr.contab.varstanz00.bulk.Var_stanz_res_rigaHome) Tipo_variazioneBulk(it.cnr.contab.pdg01.bulk.Tipo_variazioneBulk) FindClause(it.cnr.jada.persistency.sql.FindClause) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) WorkpackageHome(it.cnr.contab.config00.latt.bulk.WorkpackageHome) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) Var_stanz_resHome(it.cnr.contab.varstanz00.bulk.Var_stanz_resHome) CdrBulk(it.cnr.contab.config00.sto.bulk.CdrBulk) BulkList(it.cnr.jada.bulk.BulkList) Pdg_variazione_riga_gestHome(it.cnr.contab.pdg01.bulk.Pdg_variazione_riga_gestHome) Numerazione_doc_contBulk(it.cnr.contab.doccont00.core.bulk.Numerazione_doc_contBulk) ObbligazioneBulk(it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk) EsercizioHome(it.cnr.contab.config00.esercizio.bulk.EsercizioHome) ComponentException(it.cnr.jada.comp.ComponentException) Ass_pdg_variazione_cdrBulk(it.cnr.contab.pdg00.cdip.bulk.Ass_pdg_variazione_cdrBulk) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) CdrBulk(it.cnr.contab.config00.sto.bulk.CdrBulk) EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk) PersistencyException(it.cnr.jada.persistency.PersistencyException) BulkList(it.cnr.jada.bulk.BulkList) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) CdrHome(it.cnr.contab.config00.sto.bulk.CdrHome) BigDecimal(java.math.BigDecimal) ApplicationException(it.cnr.jada.comp.ApplicationException) ComponentException(it.cnr.jada.comp.ComponentException)

Example 5 with EsercizioBulk

use of it.cnr.contab.config00.esercizio.bulk.EsercizioBulk in project sigla-main by consiglionazionaledellericerche.

the class DocumentoGenericoComponent method modificaConBulk.

// ^^@@
/**
 * Richiesta di salvare le modifiche sul documento generico
 * validazione superata
 * PreCondition:
 * effettua il controllo di validazione del metodo validaDocumento
 * PostCondition:
 * Vengono aggiornate le obbligazioni/accertamenti, controllati gli elementi disassociati,
 * la lettera di pagamento e infine salvato il documento
 * validazione non superata
 * PreCondition:
 * effettua il controllo di validazione del metodo validaDocumento
 * PostCondition:
 * Viene restituito un messaggio di errore
 * Documento contabilizzato in COAN
 * PreCondition:
 * validazione superata
 * PostCondition:
 * documento viene impostato come da ricontabilizzare
 * Documento contabilizzato in COGE
 * PreCondition:
 * validazione superata
 * PostCondition:
 * documento viene impostato come da ricontabilizzare
 */
// ^^@@
public it.cnr.jada.bulk.OggettoBulk modificaConBulk(it.cnr.jada.UserContext aUC, it.cnr.jada.bulk.OggettoBulk bulk, it.cnr.contab.doccont00.core.bulk.OptionRequestParameter status) throws it.cnr.jada.comp.ComponentException {
    Documento_genericoBulk documento = (Documento_genericoBulk) bulk;
    documento.setAndVerifyStatus();
    // effettua il controllo di validazione
    try {
        if (existARowToBeInventoried(aUC, documento)) {
            verificaEsistenzaEdAperturaInventario(aUC, documento);
            if (documento.hasCompetenzaCOGEInAnnoPrecedente())
                throw new it.cnr.jada.comp.ApplicationException("Attenzione: per le date competenza indicate non è possibile inventariare i beni.");
            if (hasDocumentoPassivoARowNotInventoried(aUC, documento))
                throw new it.cnr.jada.comp.ApplicationException("Attenzione: è necessario inventariare tutti i dettagli.");
        }
        validaDocumento(aUC, documento);
    } catch (it.cnr.jada.comp.ApplicationException e) {
        throw new it.cnr.jada.comp.ApplicationException(e.getMessage());
    }
    // Salvo temporaneamente l'hash map dei saldi
    PrimaryKeyHashMap aTempDiffSaldi = new PrimaryKeyHashMap();
    if (documento.getDefferredSaldi() != null)
        aTempDiffSaldi = (PrimaryKeyHashMap) documento.getDefferredSaldi().clone();
    manageDeletedElements(aUC, documento, status);
    if (!documento.isGenericoAttivo()) {
        aggiornaObbligazioni(aUC, documento, status);
    }
    if (documento.isGenericoAttivo()) {
        aggiornaAccertamenti(aUC, documento, status);
    }
    Lettera_pagam_esteroBulk lettera = documento.getLettera_pagamento_estero();
    if (lettera != null) {
        try {
            Lettera_pagam_esteroBulk original1210 = (Lettera_pagam_esteroBulk) getHome(aUC, lettera).findByPrimaryKey(lettera);
            aggiornaLetteraPagamentoEstero(aUC, lettera);
            if (!documento.isFlagEnte() && (original1210 == null || lettera.getIm_pagamento().compareTo(original1210.getIm_pagamento()) != 0) && lettera.getCd_sospeso() != null)
                validaDisponibilitaDiCassaCDS(aUC, documento);
        } catch (it.cnr.jada.persistency.PersistencyException e) {
            throw handleException(lettera, e);
        }
    }
    // i dettagli non pagati)
    if (documento.isPagataParzialmente() && documento.getDettagliPagati().size() == documento.getDocumento_generico_dettColl().size()) {
        documento.setStato_cofi(Documento_genericoBulk.STATO_PAGATO);
        documento.setTi_associato_manrev(Documento_genericoBulk.ASSOCIATO_A_MANDATO);
    }
    /*
         * Se il documento non era modificabile nei suoi elementi principali, ma si è solo proceduto a
         * sdoppiare una riga di dettaglio allora la ricontabilizzazione in COAN e COGE non è necessaria
         */
    boolean aggiornaStatoCoge = false;
    if (documento.isGenericoAttivo()) {
        try {
            Documento_genericoBulk documentoDB = (Documento_genericoBulk) getTempHome(aUC, Documento_genericoBulk.class).findByPrimaryKey(documento);
            if (!Utility.equalsNull(documento.getTi_istituz_commerc(), documentoDB.getTi_istituz_commerc()))
                aggiornaStatoCoge = true;
            if (!aggiornaStatoCoge && documento.getDocumento_generico_dettColl().size() > 0) {
                Documento_generico_rigaHome documentoHome = (Documento_generico_rigaHome) getTempHome(aUC, Documento_generico_rigaBulk.class);
                for (Iterator iter = documento.getDocumento_generico_dettColl().iterator(); iter.hasNext() && !aggiornaStatoCoge; ) {
                    Documento_generico_rigaBulk documento_riga = (Documento_generico_rigaBulk) iter.next();
                    Documento_generico_rigaBulk documentoDB_riga = (Documento_generico_rigaBulk) documentoHome.findByPrimaryKey(documento_riga);
                    if (documentoDB_riga != null) {
                        if (!Utility.equalsNull(documento_riga.getDt_da_competenza_coge(), documentoDB_riga.getDt_da_competenza_coge()) || !Utility.equalsNull(documento_riga.getDt_a_competenza_coge(), documentoDB_riga.getDt_a_competenza_coge()) || !Utility.equalsNull(documento_riga.getIm_riga_divisa(), documentoDB_riga.getIm_riga_divisa()) || !Utility.equalsNull(documento_riga.getIm_riga(), documentoDB_riga.getIm_riga()) || !Utility.equalsNull(documento_riga.getCd_terzo(), documentoDB_riga.getCd_terzo()) || !Utility.equalsBulkNull(documento_riga.getAccertamento_scadenziario(), documentoDB_riga.getAccertamento_scadenziario()))
                            aggiornaStatoCoge = true;
                    }
                }
            }
        } catch (PersistencyException e) {
            throw new ComponentException(e);
        }
    } else {
        try {
            Documento_genericoBulk documentoDB = (Documento_genericoBulk) getTempHome(aUC, Documento_genericoBulk.class).findByPrimaryKey(documento);
            if (!Utility.equalsNull(documento.getTi_istituz_commerc(), documentoDB.getTi_istituz_commerc()) || !Utility.equalsNull(documento.getStato_pagamento_fondo_eco(), documentoDB.getStato_pagamento_fondo_eco()) || !Utility.equalsNull(documento.getEsercizio_lettera(), documentoDB.getEsercizio_lettera()) || !Utility.equalsNull(documento.getPg_lettera(), documentoDB.getPg_lettera()))
                aggiornaStatoCoge = true;
            if (!aggiornaStatoCoge && documento.getDocumento_generico_dettColl().size() > 0) {
                Documento_generico_rigaHome documentoHome = (Documento_generico_rigaHome) getTempHome(aUC, Documento_generico_rigaBulk.class);
                for (Iterator iter = documento.getDocumento_generico_dettColl().iterator(); iter.hasNext() && !aggiornaStatoCoge; ) {
                    Documento_generico_rigaBulk documento_riga = (Documento_generico_rigaBulk) iter.next();
                    Documento_generico_rigaBulk documentoDB_riga = (Documento_generico_rigaBulk) documentoHome.findByPrimaryKey(documento_riga);
                    if (documentoDB_riga != null) {
                        if (!Utility.equalsNull(documento_riga.getDt_da_competenza_coge(), documentoDB_riga.getDt_da_competenza_coge()) || !Utility.equalsNull(documento_riga.getDt_a_competenza_coge(), documentoDB_riga.getDt_a_competenza_coge()) || !Utility.equalsNull(documento_riga.getIm_riga_divisa(), documentoDB_riga.getIm_riga_divisa().setScale(2)) || !Utility.equalsNull(documento_riga.getIm_riga(), documentoDB_riga.getIm_riga()) || !Utility.equalsNull(documento_riga.getCd_terzo(), documentoDB_riga.getCd_terzo()) || !Utility.equalsBulkNull(documento_riga.getObbligazione_scadenziario(), documentoDB_riga.getObbligazione_scadenziario()))
                            aggiornaStatoCoge = true;
                    }
                }
            }
        } catch (PersistencyException e) {
            throw new ComponentException(e);
        }
    }
    if (aggiornaStatoCoge) {
        if (!(!documento.isDocumentoModificabile() && documento.isDetailDoubled())) {
            if (Documento_genericoBulk.CONTABILIZZATO_IN_COAN.equalsIgnoreCase(documento.getStato_coan())) {
                documento.setStato_coan(Documento_genericoBulk.DA_RICONTABILIZZARE_IN_COAN);
                documento.setToBeUpdated();
            }
            if (Documento_genericoBulk.REGISTRATO_IN_COGE.equalsIgnoreCase(documento.getStato_coge())) {
                documento.setStato_coge(Documento_genericoBulk.DA_RIREGISTRARE_IN_COGE);
                documento.setToBeUpdated();
            }
        }
    }
    documento = (Documento_genericoBulk) super.modificaConBulk(aUC, documento);
    // Restore dell'hash map dei saldi
    if (documento.getDefferredSaldi() != null)
        documento.getDefferredSaldi().putAll(aTempDiffSaldi);
    /*
         * Se il documento non era modificabile nei suoi elementi principali, ma si è solo proceduto a
         * sdoppiare una riga di dettaglio allora il controllo sulla chiusura dell'esercizio del documento
         * e sulla ricontabilizzazione in COGE COAN non è necessario
         */
    if (!documento.isDocumentoModificabile() && documento.isDetailDoubled())
        return documento;
    aggiornaCogeCoanDocAmm(aUC, documento);
    try {
        if (!verificaStatoEsercizio(aUC, new EsercizioBulk(documento.getCd_cds(), ((it.cnr.contab.utenze00.bp.CNRUserContext) aUC).getEsercizio())))
            throw new it.cnr.jada.comp.ApplicationException("Impossibile salvare un documento per un esercizio non aperto!");
    } catch (it.cnr.jada.comp.ApplicationException e) {
        throw handleException(bulk, e);
    }
    if (documento.getTi_entrate_spese() == Documento_genericoBulk.SPESE) {
        prepareCarichiInventario(aUC, documento);
        aggiornaCarichiInventario(aUC, documento);
        // Le operazioni che rendono persistenti le modifiche fatte sull'Inventario,
        // potrebbero rimandare un messaggio all'utente.
        String messaggio = aggiornaAssociazioniInventario(aUC, documento);
    } else {
        prepareScarichiInventario(aUC, documento);
        aggiornaScarichiInventario(aUC, documento);
        // Le operazioni che rendono persistenti le modifiche fatte sull'Inventario,
        // potrebbero rimandare un messaggio all'utente.
        String messaggio = aggiornaAssociazioniInventario(aUC, documento);
    }
    controllaQuadraturaInventario(aUC, documento);
    return documento;
}
Also used : ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk) RemoteIterator(it.cnr.jada.util.RemoteIterator) ComponentException(it.cnr.jada.comp.ComponentException) PersistencyException(it.cnr.jada.persistency.PersistencyException)

Aggregations

EsercizioBulk (it.cnr.contab.config00.esercizio.bulk.EsercizioBulk)39 ApplicationException (it.cnr.jada.comp.ApplicationException)18 ComponentException (it.cnr.jada.comp.ComponentException)16 RemoteException (java.rmi.RemoteException)16 PersistencyException (it.cnr.jada.persistency.PersistencyException)12 EsercizioHome (it.cnr.contab.config00.esercizio.bulk.EsercizioHome)9 EJBException (javax.ejb.EJBException)8 BigDecimal (java.math.BigDecimal)7 Timestamp (java.sql.Timestamp)7 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)6 EsercizioComponentSession (it.cnr.contab.config00.ejb.EsercizioComponentSession)5 DetailedRuntimeException (it.cnr.jada.DetailedRuntimeException)5 RemoteIterator (it.cnr.jada.util.RemoteIterator)5 CdsBulk (it.cnr.contab.config00.sto.bulk.CdsBulk)4 it.cnr.jada.persistency.sql (it.cnr.jada.persistency.sql)4 DocumentoGenericoComponentSession (it.cnr.contab.docamm00.ejb.DocumentoGenericoComponentSession)3 it.cnr.jada.comp (it.cnr.jada.comp)3 IntrospectionException (it.cnr.jada.persistency.IntrospectionException)3 SQLBuilder (it.cnr.jada.persistency.sql.SQLBuilder)3 it.cnr.contab.anagraf00.core.bulk (it.cnr.contab.anagraf00.core.bulk)2