Search in sources :

Example 1 with it.cnr.contab.inventario01.bulk

use of it.cnr.contab.inventario01.bulk 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 it.cnr.contab.inventario01.bulk

use of it.cnr.contab.inventario01.bulk in project sigla-main by consiglionazionaledellericerche.

the class SaldoComponent method checkDispPianoEconomicoProgetto.

/**
 * Metodo che verifica la congruenza delle disponibilità sul piano economico del progetto
 *
 * @param userContext
 * @param moduloCosti
 * @param isFromChangeStato indica che la modifica è stata richiesta in fase di cambio stato progetto
 * @throws ComponentException
 */
public void checkDispPianoEconomicoProgetto(UserContext userContext, Pdg_modulo_costiBulk moduloCosti, boolean isFromChangeStato) throws ComponentException {
    try {
        it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession configSession = (it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession", it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession.class);
        BigDecimal annoFrom = configSession.getIm01(userContext, new Integer(0), null, Configurazione_cnrBulk.PK_GESTIONE_PROGETTI, Configurazione_cnrBulk.SK_PROGETTO_PIANO_ECONOMICO);
        if (Optional.ofNullable(annoFrom).map(BigDecimal::intValue).filter(el -> el.compareTo(moduloCosti.getEsercizio()) <= 0).isPresent()) {
            Progetto_piano_economicoHome ppeHome = (Progetto_piano_economicoHome) getHome(userContext, Progetto_piano_economicoBulk.class);
            List<Progetto_piano_economicoBulk> pianoEconomicoList = (List<Progetto_piano_economicoBulk>) ppeHome.findProgettoPianoEconomicoList(moduloCosti.getPg_progetto());
            List<Pdg_modulo_speseBulk> speseList = (List<Pdg_modulo_speseBulk>) moduloCosti.getDettagliSpese();
            pianoEconomicoList.stream().filter(e -> e.getFl_ctrl_disp() && (e.getEsercizio_piano().equals(0) || e.getEsercizio_piano().equals(moduloCosti.getEsercizio()))).forEach(e -> {
                try {
                    Progetto_piano_economicoBulk bulk = null;
                    Progetto_piano_economicoBulk bulkToFind = new Progetto_piano_economicoBulk();
                    bulkToFind.setVoce_piano_economico(e.getVoce_piano_economico());
                    bulkToFind.setPg_progetto(e.getPg_progetto());
                    bulkToFind.setEsercizio_piano(e.getEsercizio_piano());
                    try {
                        bulk = (Progetto_piano_economicoBulk) getHome(userContext, Progetto_piano_economicoBulk.class).findAndLock(bulkToFind);
                    } catch (ObjectNotFoundException ex) {
                    }
                    if (bulk != null && bulk.getFl_ctrl_disp()) {
                        V_saldi_piano_econom_progettoBulk saldo = ((V_saldi_piano_econom_progettoHome) getHome(userContext, V_saldi_piano_econom_progettoBulk.class)).cercaSaldoPianoEconomico(bulk, "S");
                        BigDecimal dispResiduaFin = saldo.getDispResiduaFinanziamento();
                        if (!isFromChangeStato)
                            dispResiduaFin = dispResiduaFin.subtract(speseList.stream().filter(x -> Optional.ofNullable(x.getVoce_piano_economico()).isPresent()).filter(x -> x.getVoce_piano_economico().equalsByPrimaryKey(e.getVoce_piano_economico())).map(el -> Utility.nvl(el.getIm_spese_gest_decentrata_est())).collect(Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)));
                        if (dispResiduaFin.compareTo(BigDecimal.ZERO) < 0)
                            throw new ApplicationException("Impossibile effettuare l'operazione !\n" + "L'importo indicato in previsione per le fonti decentrate esterne supera di " + new it.cnr.contab.util.EuroFormat().format(dispResiduaFin.abs()) + "  l'importo finanziato indicato sul piano economico " + e.getCd_voce_piano() + " del progetto " + (e.getEsercizio_piano().equals(0) ? "" : "per l'esercizio " + e.getEsercizio_piano()) + ".");
                        if (isFromChangeStato && Optional.ofNullable(moduloCosti).flatMap(el -> Optional.ofNullable(el.getPdg_modulo())).flatMap(el -> Optional.ofNullable(el.getProgetto())).flatMap(el -> Optional.ofNullable(el.getOtherField())).flatMap(el -> Optional.ofNullable(el.getTipoFinanziamento())).map(TipoFinanziamentoBulk::getFlAllPrevFin).orElse(Boolean.TRUE) && dispResiduaFin.compareTo(BigDecimal.ZERO) != 0) {
                            Voce_piano_economico_prgBulk vocePianoEconomico = (Voce_piano_economico_prgBulk) ((Voce_piano_economico_prgHome) getHome(userContext, Voce_piano_economico_prgBulk.class)).findByPrimaryKey(e.getVoce_piano_economico());
                            if (Optional.ofNullable(vocePianoEconomico).map(Voce_piano_economico_prgBulk::getFlAllPrevFin).orElse(Boolean.TRUE))
                                throw new ApplicationException("Impossibile effettuare l'operazione !\n" + "L'importo totale indicato in previsione per le fonti decentrate esterne non corrisponde " + "  all'importo finanziato indicato sul piano economico " + e.getCd_voce_piano() + " del progetto " + (e.getEsercizio_piano().equals(0) ? "" : "per l'esercizio " + e.getEsercizio_piano()) + "(diff: " + new it.cnr.contab.util.EuroFormat().format(dispResiduaFin) + ").");
                        }
                        BigDecimal dispResiduaCofin = saldo.getDispResiduaCofinanziamento();
                        if (!isFromChangeStato)
                            dispResiduaCofin = dispResiduaCofin.subtract(speseList.stream().filter(x -> Optional.ofNullable(x.getVoce_piano_economico()).isPresent()).filter(x -> x.getVoce_piano_economico().equalsByPrimaryKey(e.getVoce_piano_economico())).map(el -> Utility.nvl(el.getIm_spese_gest_decentrata_int())).collect(Collectors.reducing(BigDecimal.ZERO, BigDecimal::add)));
                        if (dispResiduaCofin.compareTo(BigDecimal.ZERO) < 0)
                            throw new ApplicationException("Impossibile effettuare l'operazione !\n" + "L'importo indicato in previsione per le fonti decentrate interne supera di " + new it.cnr.contab.util.EuroFormat().format(dispResiduaCofin.abs()) + "  l'importo cofinanziato indicato sul piano economico " + e.getCd_voce_piano() + " del progetto " + (e.getEsercizio_piano().equals(0) ? "" : "per l'esercizio " + e.getEsercizio_piano()) + ".");
                    }
                } catch (Exception ex) {
                    throw new RuntimeException(ex);
                }
            });
        }
    } catch (Exception e) {
        if (e instanceof RuntimeException)
            throw handleException(e.getCause());
        throw handleException(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) Voce_piano_economico_prgBulk(it.cnr.contab.progettiric00.tabrif.bulk.Voce_piano_economico_prgBulk) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) BulkList(it.cnr.jada.bulk.BulkList) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) BigDecimal(java.math.BigDecimal) ObjectNotFoundException(it.cnr.jada.persistency.ObjectNotFoundException) RemoteException(java.rmi.RemoteException) EJBException(javax.ejb.EJBException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) SQLException(java.sql.SQLException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ComponentException(it.cnr.jada.comp.ComponentException) Pdg_modulo_speseBulk(it.cnr.contab.prevent01.bulk.Pdg_modulo_speseBulk) ApplicationException(it.cnr.jada.comp.ApplicationException) java.util(java.util) ObjectNotFoundException(it.cnr.jada.persistency.ObjectNotFoundException)

Example 3 with it.cnr.contab.inventario01.bulk

use of it.cnr.contab.inventario01.bulk in project sigla-main by consiglionazionaledellericerche.

the class DocumentoGenericoComponent method inizializzaBulkPerModifica.

// ^^@@
/**
 * normale
 * PreCondition:
 * Viene richiesta una possibile operazione di modifica.
 * PostCondition:
 * L'OggettoBulk viene aggiornato con tutti gli oggetti collegati e preparato per una operazione di modifica.
 */
// ^^@@
public OggettoBulk inizializzaBulkPerModifica(UserContext userContext, OggettoBulk bulk) throws ComponentException {
    if (bulk == null)
        throw new ComponentException("Attenzione: non esiste alcun documento corrispondente ai criteri di ricerca!");
    Documento_genericoBulk generico = (Documento_genericoBulk) bulk;
    if (generico.getEsercizio() == null)
        throw new it.cnr.jada.comp.ApplicationException("L'esercizio del documento non è valorizzato! Impossibile proseguire.");
    if (generico.getEsercizio().intValue() > it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext).intValue())
        throw new it.cnr.jada.comp.ApplicationException("Il documento deve appartenere o all'esercizio di scrivania o ad esercizi precedenti per essere aperto in modifica!");
    generico = (Documento_genericoBulk) super.inizializzaBulkPerModifica(userContext, generico);
    try {
        lockBulk(userContext, generico);
    // setDt_termine_creazione_docamm(userContext, generico);
    } catch (Throwable t) {
        throw handleException(t);
    }
    try {
        // imposta il tipo di documento
        if (generico.getCd_tipo_documento_amm() == null && generico.getTipo_documento().getCd_tipo_documento_amm() != null)
            generico.setCd_tipo_documento_amm(generico.getTipo_documento().getCd_tipo_documento_amm());
        // generico.setCd_tipo_documento_amm(generico.getTipo_documento().getCd_tipo_documento_amm());
        // it.cnr.jada.bulk.BulkHome homeTD= getHome(userContext, Tipo_documento_ammBulk.class);
        // it.cnr.jada.persistency.sql.SQLBuilder sqlTD= homeTD.createSQLBuilder();
        // sqlTD.addClause("AND", "cd_tipo_documento_amm", sqlTD.EQUALS, generico.getCd_tipo_documento_amm());
        // it.cnr.jada.persistency.Broker brokerTD= homeTD.createBroker(sqlTD);
        // generico.setTipo_documento((Tipo_documento_ammBulk) brokerTD.fetch(Tipo_documento_ammBulk.class));
        // brokerTD.close();
        // }
        // generico =(Documento_genericoBulk) super.inizializzaBulkPerModifica(userContext, generico);
        it.cnr.jada.bulk.BulkHome home = getHome(userContext, Documento_generico_rigaBulk.class);
        it.cnr.jada.persistency.sql.SQLBuilder sql = home.createSQLBuilder();
        sql.addClause("AND", "pg_documento_generico", SQLBuilder.EQUALS, generico.getPg_documento_generico());
        sql.addClause("AND", "cd_cds", SQLBuilder.EQUALS, generico.getCd_cds());
        sql.addClause("AND", "esercizio", SQLBuilder.EQUALS, generico.getEsercizio());
        sql.addClause("AND", "cd_unita_organizzativa", SQLBuilder.EQUALS, generico.getCd_unita_organizzativa());
        sql.addClause("AND", "cd_tipo_documento_amm", SQLBuilder.EQUALS, generico.getCd_tipo_documento_amm());
        getHomeCache(userContext).fetchAll(userContext);
        generico.setDocumento_generico_dettColl(new it.cnr.jada.bulk.BulkList(home.fetchAll(sql)));
        // to be chkd
        generico.setTi_entrate_spese(generico.getTipo_documento().getTi_entrata_spesa().charAt(0));
        // 03/03/04 - BORRIELLO
        // Corretto Errore interno: questa operazione deve essere fatta DOPO aver impostato il
        // <code>Ti_entrate_spese</code>, altrimenti la dt_termine_creazione_docamm NON viene impostata e,
        // in fase di salvataggio, genera un errore di NullPointerException.
        setDt_termine_creazione_docamm(userContext, generico);
        try {
            generico.setDataInizioObbligoRegistroUnico(Utility.createConfigurazioneCnrComponentSession().getDt01(userContext, new Integer(0), null, "REGISTRO_UNICO_FATPAS", "DATA_INIZIO"));
        } catch (Exception e) {
            throw handleException(generico, e);
        }
        if (!generico.getCd_uo_origine().equals(generico.getCd_unita_organizzativa()))
            generico.setFlagEnte(true);
        if (!generico.isGenericoAttivo())
            generico.setPassivo_ente(generico.isFlagEnte());
        else
            generico.setPassivo_ente(true);
        if (!generico.getCd_uo_origine().equals(generico.getCd_unita_organizzativa()))
            impostaDatiEnteNelDocumento(userContext, generico, null);
        else {
            Unita_organizzativa_enteBulk uoEnte = getUOEnte(userContext);
            if (generico.getCd_unita_organizzativa().equalsIgnoreCase(uoEnte.getCd_unita_organizzativa()))
                impostaDatiEnteNelDocumento(userContext, generico, uoEnte);
        }
        if (generico.getValuta().getCd_divisa().equals(getEuro(userContext).getCd_divisa()))
            generico.setDefaultValuta(true);
        if (!generico.isGenericoAttivo())
            rebuildObbligazioni(userContext, generico);
        if (generico.isGenericoAttivo()) {
            rebuildAccertamenti(userContext, generico);
            generico.setTerzo_uo_cds(generico.getDocumento_generico_dettColl().get(0).getTerzo_uo_cds());
        }
        for (java.util.Iterator i = generico.getDocumento_generico_dettColl().iterator(); i.hasNext(); ) initializeKeysAndOptionsInto(userContext, (OggettoBulk) i.next());
        int dettagliRiportati = 0;
        generico.setHa_beniColl(ha_beniColl(userContext, generico));
        for (java.util.Iterator i = generico.getDocumento_generico_dettColl().iterator(); i.hasNext(); ) {
            OggettoBulk rigabulk = (OggettoBulk) i.next();
            Documento_generico_rigaBulk riga = (Documento_generico_rigaBulk) rigabulk;
            if (generico.getTi_entrate_spese() == Documento_genericoBulk.SPESE && riga.getObbligazione_scadenziario() != null && riga.getObbligazione_scadenziario().getObbligazione() != null && riga.getObbligazione_scadenziario().getObbligazione().getElemento_voce() != null && riga.getObbligazione_scadenziario().getObbligazione().getElemento_voce().getFl_inv_beni_patr().booleanValue()) {
                riga.setInventariato(true);
                riga.setInventariato(ha_beniColl(userContext, riga).booleanValue());
            } else {
                if (riga.getAccertamento_scadenziario() != null && riga.getAccertamento_scadenziario().getAccertamento() != null && riga.getAccertamento_scadenziario().getAccertamento().getCd_elemento_voce() != null) {
                    Elemento_voceHome Home = (Elemento_voceHome) getHome(userContext, Elemento_voceBulk.class);
                    Elemento_voceBulk elem_voce = (Elemento_voceBulk) Home.findByPrimaryKey(new Elemento_voceBulk(riga.getAccertamento_scadenziario().getAccertamento().getCd_elemento_voce(), riga.getAccertamento_scadenziario().getAccertamento().getEsercizio(), riga.getAccertamento_scadenziario().getAccertamento().getTi_appartenenza(), riga.getAccertamento_scadenziario().getAccertamento().getTi_gestione()));
                    if (elem_voce.getFl_inv_beni_patr().booleanValue())
                        riga.setInventariato(true);
                    riga.setInventariato(ha_beniColl(userContext, riga).booleanValue());
                }
            }
            if (generico.isPassivo_ente())
                riga.setIm_riga_iniziale(riga.getIm_imponibile());
            if (generico.getTi_entrate_spese() == Documento_genericoBulk.ENTRATE) {
                riga.setModalita_pagamento_uo_cds(findModalitaSelezionate(userContext, riga));
                riga.setTermini_pagamento_uo_cds(findTerminiSelezionati(userContext, riga));
                riga.setModalita_uo_cds(findModalita(userContext, riga));
                riga.setBanca_uo_cds(findBancaSelezionata(userContext, riga));
                initializeKeysAndOptionsInto(userContext, riga);
            } else {
                riga.setModalita_pagamento(findModalitaSelezionate(userContext, riga));
                riga.setTermini_pagamento(findTerminiSelezionati(userContext, riga));
                riga.setModalita(findModalita(userContext, riga));
                riga.setBanca(findBancaSelezionata(userContext, riga));
                initializeKeysAndOptionsInto(userContext, riga);
            }
            if (riga.checkIfRiportata()) {
                riga.setRiportata(riga.RIPORTATO);
                generico.setRiportata(generico.PARZIALMENTE_RIPORTATO);
                dettagliRiportati++;
            }
        }
        generico.setRiportata(getStatoRiporto(userContext, generico));
        /**
         * Gennaro Borriello - (02/11/2004 15.04.39)
         *	Aggiunta gestione dell Stato Riportato all'esercizio di scrivania.
         */
        generico.setRiportataInScrivania(getStatoRiportoInScrivania(userContext, generico));
        /**
         * Gennaro Borriello - (08/11/2004 13.35.27)
         *	Aggiunta proprietà <code>esercizioInScrivania</code>, che verrà utilizzata
         *	per la gestione di isRiportataInScrivania(), in alcuni casi.
         */
        generico.setEsercizioInScrivania(it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext));
    } catch (it.cnr.jada.persistency.PersistencyException e) {
        throw handleException(generico, e);
    } catch (it.cnr.jada.persistency.IntrospectionException e) {
        throw handleException(generico, e);
    }
    caricaScrittura(userContext, generico);
    return generico;
}
Also used : Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) it.cnr.jada.persistency.sql(it.cnr.jada.persistency.sql) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) RemoteException(java.rmi.RemoteException) EJBException(javax.ejb.EJBException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) ComponentException(it.cnr.jada.comp.ComponentException) Elemento_voceHome(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome) java.util(java.util) ComponentException(it.cnr.jada.comp.ComponentException) it.cnr.contab.anagraf00.core.bulk(it.cnr.contab.anagraf00.core.bulk) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) it.cnr.contab.inventario01.bulk(it.cnr.contab.inventario01.bulk) it.cnr.contab.config00.sto.bulk(it.cnr.contab.config00.sto.bulk) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) it.cnr.jada.bulk(it.cnr.jada.bulk) it.cnr.contab.inventario00.docs.bulk(it.cnr.contab.inventario00.docs.bulk)

Example 4 with it.cnr.contab.inventario01.bulk

use of it.cnr.contab.inventario01.bulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDCaricoBuonoAction method doCreaGruppiDoc.

public Forward doCreaGruppiDoc(ActionContext context) throws EJBException, SQLException, PersistencyException, ComponentException, RemoteException {
    Buono_carico_scarico_dettBulk nuovoRigoInventario;
    Inventario_beniBulk bene = new Inventario_beniBulk();
    Inventario_beniBulk nuovoBene;
    int gruppi = 0;
    String cd_pubblicazioni = null;
    boolean isPubblicazione = false;
    CRUDCaricoInventarioBP bp = (CRUDCaricoInventarioBP) getBusinessProcess(context);
    Buono_carico_scaricoBulk buono_cs = (Buono_carico_scaricoBulk) ((CRUDCaricoInventarioBP) getBusinessProcess(context)).getModel();
    Documento_generico_rigaBulk riga = (Documento_generico_rigaBulk) bp.getDettagliDocumento().getModel();
    PrimaryKeyHashtable h = buono_cs.getDettagliRigheDocHash();
    BulkList listaInventari = new BulkList();
    java.math.BigDecimal valore_unitario = new java.math.BigDecimal(0);
    try {
        // Non è stata indicata la riga di riferimento
        if (riga == null) {
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: selezionare una riga");
        }
        // Non è stato indicato il numero di gruppi
        if (getGroups() == null) {
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: numero di blocchi non valido. Il numero dei blocchi non può essere nullo");
        } else {
            try {
                gruppi = Integer.parseInt(getGroups());
                bp.setIsNumGruppiErrato(false);
            } catch (NumberFormatException e) {
                bp.setIsNumGruppiErrato(true);
                return handleException(context, new it.cnr.jada.bulk.FillException("Errore di formattazione sul campo N. Gruppi", e));
            }
        }
        // Il numero di gruppi è minore di 0.
        if (gruppi < 0) {
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: numero di blocchi non valido. Il numero dei blocchi non può essere negativo");
        }
        // Il numero di gruppi è uguale a 0.
        if (gruppi == 0) {
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: numero di blocchi non valido. Il numero dei blocchi non può essere zero");
        }
        // Valida i gruppi
        validaCreaGruppiDoc(buono_cs, riga);
    } catch (Throwable t) {
        return handleException(context, t);
    }
    for (int i = 0; i < gruppi; i++) {
        nuovoRigoInventario = new Buono_carico_scarico_dettBulk();
        nuovoBene = new Inventario_beniBulk();
        nuovoRigoInventario.setToBeCreated();
        nuovoBene.setToBeCreated();
        if (gruppi == 1) {
            nuovoRigoInventario.setQuantita(new Long(1));
            bp.setIsQuantitaEnabled(false);
        } else {
            bp.setIsQuantitaEnabled(true);
        }
        // 
        nuovoRigoInventario.setValore_unitario(riga.getIm_riga().divide(new BigDecimal(gruppi), 2, BigDecimal.ROUND_HALF_UP));
        nuovoBene.setDs_bene(riga.getDs_riga());
        nuovoBene.setValore_iniziale(nuovoRigoInventario.getValore_unitario().divide(new BigDecimal(gruppi), 2, BigDecimal.ROUND_HALF_UP));
        nuovoBene.setTi_commerciale_istituzionale(riga.getDocumento_generico().getTi_istituz_commerc());
        nuovoBene.setUbicazione(new Ubicazione_beneBulk());
        nuovoBene.setAssegnatario(new it.cnr.contab.anagraf00.core.bulk.TerzoBulk());
        nuovoBene.setCd_cds(buono_cs.getCds_scrivania());
        nuovoBene.setCd_unita_organizzativa(buono_cs.getUo_scrivania());
        nuovoBene.setCategoria_Bene(new Categoria_gruppo_inventBulk());
        if ((riga.getDocumento_generico().getTi_entrate_spese() == Documento_genericoBulk.SPESE) && riga.getObbligazione_scadenziario() != null && riga.getObbligazione_scadenziario().getObbligazione() != null && riga.getObbligazione_scadenziario().getObbligazione().getElemento_voce() != null) {
            nuovoBene.getCategoria_Bene().setNodoPadre(new Categoria_gruppo_inventBulk());
            if (((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession", it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession.class)).findCategoria_gruppo_voceforvoce(context.getUserContext(), riga.getObbligazione_scadenziario().getObbligazione().getElemento_voce()) != null)
                nuovoRigoInventario.setCat_voce(((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession", it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession.class)).findCategoria_gruppo_voceforvoce(context.getUserContext(), riga.getObbligazione_scadenziario().getObbligazione().getElemento_voce()));
            else
                throw new it.cnr.jada.comp.ApplicationException("Non esiste nessuna Categoria inventariale associata al capitolo.");
        }
        nuovoBene.setInventario(buono_cs.getInventario());
        nuovoBene.setPg_inventario(buono_cs.getPg_inventario());
        nuovoBene.setFl_totalmente_scaricato(Boolean.FALSE);
        nuovoBene.setImponibile_ammortamento(nuovoRigoInventario.getValore_unitario());
        if (cd_pubblicazioni != null)
            nuovoBene.setPubblicazione(isPubblicazione);
        nuovoRigoInventario.setBuono_cs(buono_cs);
        nuovoRigoInventario.setBene(bene);
        nuovoRigoInventario.CalcolaTotaleBene();
        nuovoRigoInventario.setBene(nuovoBene);
        nuovoRigoInventario.setProgressivo(bp.incrementaProgressivo_beni().intValue());
        listaInventari.add(nuovoRigoInventario);
    }
    h.remove(riga);
    h.put(riga, listaInventari);
    buono_cs.getDettagliRigheDocHash().put(riga, listaInventari);
    return context.findDefaultForward();
}
Also used : Inventario_beniBulk(it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk) BigDecimal(java.math.BigDecimal) CRUDCaricoInventarioBP(it.cnr.contab.inventario01.bp.CRUDCaricoInventarioBP) ApplicationException(it.cnr.jada.comp.ApplicationException) BulkList(it.cnr.jada.bulk.BulkList) BigDecimal(java.math.BigDecimal) ApplicationException(it.cnr.jada.comp.ApplicationException) PrimaryKeyHashtable(it.cnr.jada.bulk.PrimaryKeyHashtable) it.cnr.contab.inventario00.tabrif.bulk(it.cnr.contab.inventario00.tabrif.bulk) it.cnr.contab.inventario01.bulk(it.cnr.contab.inventario01.bulk) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) Categoria_gruppo_inventBulk(it.cnr.contab.docamm00.tabrif.bulk.Categoria_gruppo_inventBulk)

Example 5 with it.cnr.contab.inventario01.bulk

use of it.cnr.contab.inventario01.bulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDCaricoInventarioBP method initializeModelForInsert.

public OggettoBulk initializeModelForInsert(ActionContext context, OggettoBulk bulk) throws BusinessProcessException {
    Buono_carico_scaricoBulk testata = (Buono_carico_scaricoBulk) bulk;
    testata.setTi_documento(Buono_carico_scaricoBulk.CARICO);
    bulk = super.initializeModelForInsert(context, testata);
    return bulk;
}
Also used : Buono_carico_scaricoBulk(it.cnr.contab.inventario01.bulk.Buono_carico_scaricoBulk)

Aggregations

Buono_carico_scaricoBulk (it.cnr.contab.inventario01.bulk.Buono_carico_scaricoBulk)26 ComponentException (it.cnr.jada.comp.ComponentException)22 PersistencyException (it.cnr.jada.persistency.PersistencyException)20 ApplicationException (it.cnr.jada.comp.ApplicationException)15 IntrospectionException (it.cnr.jada.persistency.IntrospectionException)14 BuonoCaricoScaricoComponentSession (it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession)12 SimpleBulkList (it.cnr.jada.bulk.SimpleBulkList)10 BigDecimal (java.math.BigDecimal)10 it.cnr.contab.docamm00.docs.bulk (it.cnr.contab.docamm00.docs.bulk)8 BulkList (it.cnr.jada.bulk.BulkList)8 RemoteIterator (it.cnr.jada.util.RemoteIterator)8 it.cnr.contab.doccont00.core.bulk (it.cnr.contab.doccont00.core.bulk)7 it.cnr.contab.inventario01.bulk (it.cnr.contab.inventario01.bulk)7 Buono_carico_scarico_dettBulk (it.cnr.contab.inventario01.bulk.Buono_carico_scarico_dettBulk)7 RemoteException (java.rmi.RemoteException)7 Timestamp (java.sql.Timestamp)7 DetailedRuntimeException (it.cnr.jada.DetailedRuntimeException)6 SQLBuilder (it.cnr.jada.persistency.sql.SQLBuilder)6 EsercizioBulk (it.cnr.contab.config00.esercizio.bulk.EsercizioBulk)5 CRUDCaricoInventarioBP (it.cnr.contab.inventario01.bp.CRUDCaricoInventarioBP)5