Search in sources :

Example 1 with Ass_progetto_piaeco_voceBulk

use of it.cnr.contab.progettiric00.core.bulk.Ass_progetto_piaeco_voceBulk in project sigla-main by consiglionazionaledellericerche.

the class SaldoComponent method getMessaggioSfondamentoPianoEconomico.

// Controllo che restituisce errore.
// Se la variazione passa a definitivo controllo che gli importi inseriti in variazione non superino la disponibilità residua.
// Se la variazione passa ad approvato controllo solo che il piano economico non sia sfondato sul voci del piano economico movimentate dalla variazione
private String getMessaggioSfondamentoPianoEconomico(UserContext userContext, OggettoBulk variazione, boolean locked) throws ComponentException {
    StringJoiner messaggio = new StringJoiner("\n\n");
    boolean isVariazioneCompetenza = Optional.ofNullable(variazione).map(Pdg_variazioneBulk.class::isInstance).orElse(Boolean.FALSE);
    boolean isVariazioneResidua = Optional.ofNullable(variazione).map(Var_stanz_resBulk.class::isInstance).orElse(Boolean.FALSE);
    if (!isVariazioneCompetenza && !isVariazioneResidua)
        throw new ApplicationException("Errore nella call del metodo getMessaggioSfondamentoPianoEconomico. Contattare il CED.");
    try {
        Configurazione_cnrComponentSession configSession = (Configurazione_cnrComponentSession) Utility.createConfigurazioneCnrComponentSession();
        String cdNaturaReimpiego = configSession.getVal01(userContext, new Integer(0), null, Configurazione_cnrBulk.PK_GESTIONE_PROGETTI, Configurazione_cnrBulk.SK_NATURA_REIMPIEGO);
        BigDecimal annoFrom = configSession.getIm01(userContext, new Integer(0), null, Configurazione_cnrBulk.PK_GESTIONE_PROGETTI, Configurazione_cnrBulk.SK_PROGETTO_PIANO_ECONOMICO);
        Integer esercizioVariazione = Optional.ofNullable(isVariazioneCompetenza ? Optional.of(variazione).map(Pdg_variazioneBulk.class::cast).map(Pdg_variazioneBulk::getEsercizio).orElse(null) : Optional.of(variazione).map(Var_stanz_resBulk.class::cast).map(Var_stanz_resBulk::getEsercizio_residuo).orElse(null)).orElseThrow(() -> new ApplicationException("Esercizio Variazione non individuata."));
        if (Optional.ofNullable(annoFrom).map(BigDecimal::intValue).filter(el -> el.compareTo(esercizioVariazione) <= 0).isPresent()) {
            List<CtrlDispPianoEco> listCtrlDispPianoEcoEtr = new ArrayList<CtrlDispPianoEco>();
            Pdg_variazioneHome detHome = (Pdg_variazioneHome) getHome(userContext, Pdg_variazioneBulk.class);
            Var_stanz_resHome varResHome = (Var_stanz_resHome) getHome(userContext, Var_stanz_resBulk.class);
            Progetto_piano_economicoHome ppeHome = (Progetto_piano_economicoHome) getHome(userContext, Progetto_piano_economicoBulk.class);
            Optional<Progetto_rimodulazioneBulk> optProgettoRimodulazioneVariazione = isVariazioneCompetenza ? Optional.of(variazione).map(Pdg_variazioneBulk.class::cast).map(Pdg_variazioneBulk::getProgettoRimodulazione) : Optional.of(variazione).map(Var_stanz_resBulk.class::cast).map(Var_stanz_resBulk::getProgettoRimodulazione);
            ProgettoBulk progettoRimodulato = null;
            if (optProgettoRimodulazioneVariazione.isPresent()) {
                Progetto_rimodulazioneHome prgHome = (Progetto_rimodulazioneHome) getHome(userContext, Progetto_rimodulazioneBulk.class);
                Progetto_rimodulazioneBulk rimodulazione = prgHome.rebuildRimodulazione(userContext, optProgettoRimodulazioneVariazione.get());
                progettoRimodulato = (ProgettoBulk) prgHome.getProgettoRimodulato(rimodulazione).clone();
            }
            if (isVariazioneCompetenza) {
                for (java.util.Iterator dett = detHome.findDettagliEntrataVariazioneGestionale((Pdg_variazioneBulk) variazione).iterator(); dett.hasNext(); ) {
                    Pdg_variazione_riga_gestBulk rigaVar = (Pdg_variazione_riga_gestBulk) dett.next();
                    WorkpackageBulk latt = ((WorkpackageHome) getHome(userContext, WorkpackageBulk.class)).searchGAECompleta(userContext, CNRUserContext.getEsercizio(userContext), rigaVar.getLinea_attivita().getCd_centro_responsabilita(), rigaVar.getLinea_attivita().getCd_linea_attivita());
                    ProgettoBulk progetto = latt.getProgetto();
                    if (Optional.ofNullable(progettoRimodulato).filter(prgRim -> !prgRim.getPg_progetto().equals(progetto.getPg_progetto())).isPresent())
                        messaggio.add("Progetto " + progetto.getCd_progetto() + ": " + "movimentazione non possibile in quanto la variazione è di tipo rimodulazione di altro progetto (" + progettoRimodulato.getCd_progetto() + ").");
                    BigDecimal imVariazioneFin = Utility.nvl(rigaVar.getIm_entrata());
                    // recupero il record se presente altrimenti ne creo uno nuovo
                    CtrlDispPianoEco dispPianoEco = listCtrlDispPianoEcoEtr.stream().filter(el -> el.getProgetto().getPg_progetto().equals(progetto.getPg_progetto())).findFirst().orElse(new CtrlDispPianoEco(progetto, null));
                    dispPianoEco.setImpFinanziato(dispPianoEco.getImpFinanziato().add(imVariazioneFin));
                    if (!listCtrlDispPianoEcoEtr.contains(dispPianoEco))
                        listCtrlDispPianoEcoEtr.add(dispPianoEco);
                }
                for (CtrlDispPianoEco ctrlDispPianoEco : listCtrlDispPianoEcoEtr) {
                    ProgettoBulk progetto = ctrlDispPianoEco.getProgetto();
                    BigDecimal totFinanziato;
                    List<Progetto_piano_economicoBulk> pianoEconomicoList = null;
                    if (Optional.ofNullable(progettoRimodulato).isPresent())
                        pianoEconomicoList = progettoRimodulato.getAllDetailsProgettoPianoEconomico();
                    else
                        pianoEconomicoList = (List<Progetto_piano_economicoBulk>) ppeHome.findProgettoPianoEconomicoList(progetto.getPg_progetto());
                    // Il controllo puntuale sul piano economico deve partire se:
                    // 1) sul progetto esiste un piano economico per l'anno della variazione.
                    // 2) l'anno della variazione è gestita (<=annoFrom)
                    // 3) l'anno della variazione rientra nel periodo di validità del progetto, ovvero esiste almeno un dettaglio per l'anno della variazione stessa
                    // In caso contrario viene controllato solo l'importo complessivo del progetto
                    boolean ctrlFinanziamentoAnnuale = progetto.isPianoEconomicoRequired() && (Optional.ofNullable(progetto).flatMap(prg -> Optional.ofNullable(prg.getOtherField())).filter(of -> of.getAnnoInizio() <= esercizioVariazione).filter(of -> of.getAnnoFine() >= esercizioVariazione).isPresent() || Optional.ofNullable(pianoEconomicoList).orElse(new ArrayList<>()).stream().filter(el -> el.getEsercizio_piano().equals(esercizioVariazione)).findAny().isPresent());
                    if (ctrlFinanziamentoAnnuale) {
                        totFinanziato = pianoEconomicoList.stream().filter(el -> el.getEsercizio_piano().equals(esercizioVariazione)).map(Progetto_piano_economicoBulk::getIm_spesa_finanziato).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
                    } else {
                        totFinanziato = Optional.ofNullable(progetto.getOtherField()).map(Progetto_other_fieldBulk::getImFinanziato).orElse(BigDecimal.ZERO);
                    }
                    // Controllo che la quota finanziata sia almeno pari alle entrate del progetto
                    BigDecimal assestatoEtrPrg = this.getStanziamentoAssestatoProgetto(userContext, progetto, Elemento_voceHome.GESTIONE_ENTRATE, (ctrlFinanziamentoAnnuale ? esercizioVariazione : null), null, null);
                    if (totFinanziato.compareTo(assestatoEtrPrg.add(ctrlDispPianoEco.getImpFinanziato())) < 0)
                        messaggio.add("Progetto " + progetto.getCd_progetto() + ": " + (ctrlFinanziamentoAnnuale ? "per l'esercizio " + esercizioVariazione + " " : "") + "l'assestato entrate " + (ctrlFinanziamentoAnnuale ? "" : "totale ") + "(" + new it.cnr.contab.util.EuroFormat().format(assestatoEtrPrg.add(ctrlDispPianoEco.getImpFinanziato())) + ") non può essere superiore alla quota finanziata (" + new it.cnr.contab.util.EuroFormat().format(totFinanziato) + ").");
                    if (progetto.getOtherField().getTipoFinanziamento().getFlAssociaContratto() && !progetto.getOtherField().getFlControlliDisabled()) {
                        // Recupero la lista dei contratti attivi collegati al progetto
                        ProgettoHome progettoHome = (ProgettoHome) getHome(userContext, ProgettoBulk.class);
                        java.util.Collection<ContrattoBulk> contrattiAssociati = progettoHome.findContratti(progetto.getPg_progetto());
                        BigDecimal impContrattiAttivi = contrattiAssociati.stream().filter(el -> el.isAttivo() || el.isAttivo_e_Passivo()).filter(el -> !el.getDt_stipula().after(((Pdg_variazioneBulk) variazione).getDt_chiusura())).map(ContrattoBulk::getIm_contratto_attivo).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
                        if (impContrattiAttivi.compareTo(assestatoEtrPrg.add(ctrlDispPianoEco.getImpFinanziato())) < 0)
                            messaggio.add("Progetto " + progetto.getCd_progetto() + ": " + (ctrlFinanziamentoAnnuale ? "per l'esercizio " + esercizioVariazione + " " : "") + "l'assestato entrate " + (ctrlFinanziamentoAnnuale ? "" : "totale ") + "(" + new it.cnr.contab.util.EuroFormat().format(assestatoEtrPrg.add(ctrlDispPianoEco.getImpFinanziato())) + ") non può essere superiore alla somma dei contratti associati al progetto (" + new it.cnr.contab.util.EuroFormat().format(impContrattiAttivi) + ") stipulati in data precedente rispetto alla data di chiusura della variazione (" + new java.text.SimpleDateFormat("dd/MM/yyyy").format(((Pdg_variazioneBulk) variazione).getDt_chiusura()) + ").");
                    }
                }
            }
            List<CtrlDispPianoEco> listCtrlDispPianoEco = new ArrayList<CtrlDispPianoEco>();
            if (isVariazioneCompetenza) {
                for (java.util.Iterator dett = detHome.findDettagliSpesaVariazioneGestionale((Pdg_variazioneBulk) variazione).iterator(); dett.hasNext(); ) {
                    Pdg_variazione_riga_gestBulk rigaVar = (Pdg_variazione_riga_gestBulk) dett.next();
                    WorkpackageBulk latt = ((WorkpackageHome) getHome(userContext, WorkpackageBulk.class)).searchGAECompleta(userContext, CNRUserContext.getEsercizio(userContext), rigaVar.getLinea_attivita().getCd_centro_responsabilita(), rigaVar.getLinea_attivita().getCd_linea_attivita());
                    ProgettoBulk progetto = latt.getProgetto();
                    if (Optional.ofNullable(progettoRimodulato).filter(prgRim -> !prgRim.getPg_progetto().equals(progetto.getPg_progetto())).isPresent())
                        messaggio.add("Progetto " + progetto.getCd_progetto() + ": " + "movimentazione non possibile in quanto la variazione è di tipo rimodulazione di altro progetto (" + progettoRimodulato.getCd_progetto() + ").");
                    // la variazione non è di tipo Maggiori Entrate/Spese nell'ambito del CDS
                    if (Optional.ofNullable(progetto.getOtherField().getAnnoFine()).filter(annoFine -> annoFine.compareTo(esercizioVariazione) >= 0).isPresent() || !Tipo_variazioneBulk.VARIAZIONE_POSITIVA_STESSO_ISTITUTO.equals(((Pdg_variazioneBulk) variazione).getTipologia())) {
                        boolean isNaturaReimpiego = Optional.ofNullable(cdNaturaReimpiego).map(el -> el.equals(latt.getCd_natura())).orElse(Boolean.FALSE);
                        BigDecimal imSpeseInterne = Utility.nvl(rigaVar.getIm_spese_gest_decentrata_int()).compareTo(BigDecimal.ZERO) != 0 ? rigaVar.getIm_spese_gest_decentrata_int() : Utility.nvl(rigaVar.getIm_spese_gest_accentrata_int());
                        BigDecimal imSpeseEsterne = Utility.nvl(rigaVar.getIm_spese_gest_decentrata_est()).compareTo(BigDecimal.ZERO) != 0 ? rigaVar.getIm_spese_gest_decentrata_est() : Utility.nvl(rigaVar.getIm_spese_gest_accentrata_est());
                        BigDecimal imVariazioneFin = BigDecimal.ZERO;
                        BigDecimal imVariazioneCofin = imSpeseInterne;
                        if (isNaturaReimpiego)
                            imVariazioneCofin = imVariazioneCofin.add(imSpeseEsterne);
                        else
                            imVariazioneFin = imSpeseEsterne;
                        List<Progetto_piano_economicoBulk> pianoEconomicoList = null;
                        if (Optional.ofNullable(progettoRimodulato).isPresent())
                            pianoEconomicoList = progettoRimodulato.getAllDetailsProgettoPianoEconomico().stream().filter(ppe -> {
                                return ppe.getVociBilancioAssociate().stream().filter(ppeVoc -> ppeVoc.getEsercizio_voce().equals(rigaVar.getElemento_voce().getEsercizio())).filter(ppeVoc -> ppeVoc.getTi_appartenenza().equals(rigaVar.getElemento_voce().getTi_appartenenza())).filter(ppeVoc -> ppeVoc.getTi_gestione().equals(rigaVar.getElemento_voce().getTi_gestione())).filter(ppeVoc -> ppeVoc.getCd_elemento_voce().equals(rigaVar.getElemento_voce().getCd_elemento_voce())).findFirst().isPresent();
                            }).collect(Collectors.toList());
                        else
                            pianoEconomicoList = (List<Progetto_piano_economicoBulk>) ppeHome.findProgettoPianoEconomicoList(esercizioVariazione, progetto.getPg_progetto(), rigaVar.getElemento_voce());
                        // Il controllo puntuale sul piano economico deve partire se:
                        // 1) sul progetto esiste un piano economico per l'anno della variazione.
                        // 2) l'anno della variazione è gestita (<=annoFrom)
                        // 3) l'anno della variazione rientra nel periodo di validità del progetto, ovvero esiste almeno un dettaglio per l'anno della variazione stessa
                        // In caso contrario viene controllato solo l'importo complessivo del progetto
                        boolean ctrlFinanziamentoAnnuale = progetto.isPianoEconomicoRequired() && (Optional.ofNullable(progetto).flatMap(prg -> Optional.ofNullable(prg.getOtherField())).filter(of -> of.getAnnoInizio() <= esercizioVariazione).filter(of -> of.getAnnoFine() >= esercizioVariazione).isPresent() || Optional.ofNullable(pianoEconomicoList).orElse(new ArrayList<>()).stream().filter(el -> el.getEsercizio_piano().equals(esercizioVariazione)).findAny().isPresent());
                        if (ctrlFinanziamentoAnnuale) {
                            if (pianoEconomicoList == null || pianoEconomicoList.isEmpty()) {
                                // messaggio che non esce per rimodulazione progetto in quanto controllo effettuato in fase di approvaziomne ultima variazione
                                if (!Optional.ofNullable(progettoRimodulato).isPresent())
                                    messaggio.add("Non risulta essere stato imputato alcun valore nel piano economico del progetto " + progetto.getCd_progetto() + " per la Voce " + rigaVar.getCd_elemento_voce() + ".");
                            } else if (pianoEconomicoList.size() > 1)
                                messaggio.add("La Voce " + rigaVar.getCd_elemento_voce() + " risulta associata a più voci di piano economico del progetto " + progetto.getCd_progetto() + ".");
                            else {
                                Progetto_piano_economicoBulk progettoPianoEconomico = pianoEconomicoList.get(0);
                                if (progettoPianoEconomico.getFl_ctrl_disp() && (progettoPianoEconomico.getEsercizio_piano().equals(0) || progettoPianoEconomico.getEsercizio_piano().equals(rigaVar.getEsercizio()))) {
                                    // recupero il record se presente altrimenti ne creo uno nuovo
                                    CtrlDispPianoEco dispPianoEco = listCtrlDispPianoEco.stream().filter(el -> el.getProgetto().getPg_progetto().equals(progetto.getPg_progetto())).filter(el -> el.getProgettoPianoEconomico().getPg_progetto().equals(progetto.getPg_progetto())).filter(el -> el.getProgettoPianoEconomico().getCd_unita_organizzativa().equals(progettoPianoEconomico.getCd_unita_organizzativa())).filter(el -> el.getProgettoPianoEconomico().getCd_voce_piano().equals(progettoPianoEconomico.getCd_voce_piano())).findFirst().orElse(new CtrlDispPianoEco(progetto, progettoPianoEconomico));
                                    dispPianoEco.setImpFinanziato(dispPianoEco.getImpFinanziato().add(imVariazioneFin));
                                    dispPianoEco.setImpCofinanziato(dispPianoEco.getImpCofinanziato().add(imVariazioneCofin));
                                    if (!listCtrlDispPianoEco.contains(dispPianoEco))
                                        listCtrlDispPianoEco.add(dispPianoEco);
                                }
                            }
                        } else {
                            // recupero il record se presente altrimenti ne creo uno nuovo
                            CtrlDispPianoEco dispPianoEco = listCtrlDispPianoEco.stream().filter(el -> el.getProgetto().getPg_progetto().equals(progetto.getPg_progetto())).filter(el -> !Optional.ofNullable(el.getProgettoPianoEconomico()).isPresent()).findFirst().orElse(new CtrlDispPianoEco(progetto, null));
                            dispPianoEco.setImpFinanziato(dispPianoEco.getImpFinanziato().add(imVariazioneFin));
                            dispPianoEco.setImpCofinanziato(dispPianoEco.getImpCofinanziato().add(imVariazioneCofin));
                            if (!listCtrlDispPianoEco.contains(dispPianoEco))
                                listCtrlDispPianoEco.add(dispPianoEco);
                        }
                    }
                }
            } else {
                for (java.util.Iterator dett = varResHome.findAllVariazioniRiga((Var_stanz_resBulk) variazione).iterator(); dett.hasNext(); ) {
                    Var_stanz_res_rigaBulk rigaVar = (Var_stanz_res_rigaBulk) dett.next();
                    WorkpackageBulk latt = ((WorkpackageHome) getHome(userContext, WorkpackageBulk.class)).searchGAECompleta(userContext, CNRUserContext.getEsercizio(userContext), rigaVar.getLinea_di_attivita().getCd_centro_responsabilita(), rigaVar.getLinea_di_attivita().getCd_linea_attivita());
                    ProgettoBulk progetto = latt.getProgetto();
                    if (Optional.ofNullable(progettoRimodulato).filter(prgRim -> !prgRim.getPg_progetto().equals(progetto.getPg_progetto())).isPresent())
                        messaggio.add("Progetto " + progetto.getCd_progetto() + ": " + "movimentazione non possibile in quanto la variazione è di tipo rimodulazione di altro progetto (" + progettoRimodulato.getCd_progetto() + ").");
                    boolean isNaturaReimpiego = Optional.ofNullable(cdNaturaReimpiego).map(el -> el.equals(latt.getCd_natura())).orElse(Boolean.FALSE);
                    BigDecimal imVariazioneFin = BigDecimal.ZERO;
                    BigDecimal imVariazioneCofin = BigDecimal.ZERO;
                    if (Optional.ofNullable(latt.getNatura()).map(NaturaBulk::isFonteInterna).orElse(Boolean.FALSE) || isNaturaReimpiego)
                        imVariazioneCofin = Utility.nvl(rigaVar.getIm_variazione());
                    else if (Optional.ofNullable(latt.getNatura()).map(NaturaBulk::isFonteEsterna).orElse(Boolean.FALSE))
                        imVariazioneFin = Utility.nvl(rigaVar.getIm_variazione());
                    List<Progetto_piano_economicoBulk> pianoEconomicoList = null;
                    if (Optional.ofNullable(progettoRimodulato).isPresent())
                        pianoEconomicoList = progettoRimodulato.getAllDetailsProgettoPianoEconomico().stream().filter(ppe -> {
                            return ppe.getVociBilancioAssociate().stream().filter(ppeVoc -> ppeVoc.getEsercizio_voce().equals(rigaVar.getEsercizio_res())).filter(ppeVoc -> ppeVoc.getTi_appartenenza().equals(rigaVar.getElemento_voce().getTi_appartenenza())).filter(ppeVoc -> ppeVoc.getTi_gestione().equals(rigaVar.getElemento_voce().getTi_gestione())).filter(ppeVoc -> ppeVoc.getCd_elemento_voce().equals(rigaVar.getElemento_voce().getCd_elemento_voce())).findFirst().isPresent();
                        }).collect(Collectors.toList());
                    else
                        pianoEconomicoList = (List<Progetto_piano_economicoBulk>) ppeHome.findProgettoPianoEconomicoList(esercizioVariazione, progetto.getPg_progetto(), rigaVar.getElemento_voce());
                    // Il controllo puntuale sul piano economico deve partire se:
                    // 1) sul progetto esiste un piano economico per l'anno della variazione.
                    // 2) l'anno della variazione è gestita (<=annoFrom)
                    // 3) l'anno della variazione rientra nel periodo di validità del progetto, ovvero esiste almeno un dettaglio per l'anno della variazione stessa
                    // In caso contrario viene controllato solo l'importo complessivo del progetto
                    boolean ctrlFinanziamentoAnnuale = progetto.isPianoEconomicoRequired() && (Optional.ofNullable(progetto).flatMap(prg -> Optional.ofNullable(prg.getOtherField())).filter(of -> of.getAnnoInizio() <= esercizioVariazione).filter(of -> of.getAnnoFine() >= esercizioVariazione).isPresent() || Optional.ofNullable(pianoEconomicoList).orElse(new ArrayList<>()).stream().filter(el -> el.getEsercizio_piano().equals(esercizioVariazione)).findAny().isPresent());
                    if (ctrlFinanziamentoAnnuale) {
                        if (pianoEconomicoList == null || pianoEconomicoList.isEmpty()) {
                            // messaggio che non esce per rimodulazione progetto in quanto controllo effettuato in fase di approvaziomne ultima variazione
                            if (!Optional.ofNullable(progettoRimodulato).isPresent())
                                messaggio.add("Non risulta essere stato imputato alcun valore nel piano economico del progetto " + progetto.getCd_progetto() + " per la Voce " + rigaVar.getCd_elemento_voce() + ".");
                        } else if (pianoEconomicoList.size() > 1)
                            messaggio.add("La Voce " + rigaVar.getCd_elemento_voce() + " risulta associata a più voci di piano economico del progetto " + progetto.getCd_progetto() + ".");
                        else {
                            Progetto_piano_economicoBulk progettoPianoEconomico = pianoEconomicoList.get(0);
                            if (progettoPianoEconomico.getFl_ctrl_disp() && (progettoPianoEconomico.getEsercizio_piano().equals(0) || progettoPianoEconomico.getEsercizio_piano().equals(esercizioVariazione))) {
                                // recupero il record se presente altrimenti ne creo uno nuovo
                                CtrlDispPianoEco dispPianoEco = listCtrlDispPianoEco.stream().filter(el -> el.getProgetto().getPg_progetto().equals(progetto.getPg_progetto())).filter(el -> el.getProgettoPianoEconomico().getPg_progetto().equals(progetto.getPg_progetto())).filter(el -> el.getProgettoPianoEconomico().getCd_unita_organizzativa().equals(progettoPianoEconomico.getCd_unita_organizzativa())).filter(el -> el.getProgettoPianoEconomico().getCd_voce_piano().equals(progettoPianoEconomico.getCd_voce_piano())).findFirst().orElse(new CtrlDispPianoEco(progetto, progettoPianoEconomico));
                                dispPianoEco.setImpFinanziato(dispPianoEco.getImpFinanziato().add(imVariazioneFin));
                                dispPianoEco.setImpCofinanziato(dispPianoEco.getImpCofinanziato().add(imVariazioneCofin));
                                if (!listCtrlDispPianoEco.contains(dispPianoEco))
                                    listCtrlDispPianoEco.add(dispPianoEco);
                            }
                        }
                    } else {
                        // recupero il record se presente altrimenti ne creo uno nuovo
                        CtrlDispPianoEco dispPianoEco = listCtrlDispPianoEco.stream().filter(el -> el.getProgetto().getPg_progetto().equals(progetto.getPg_progetto())).filter(el -> !Optional.ofNullable(el.getProgettoPianoEconomico()).isPresent()).findFirst().orElse(new CtrlDispPianoEco(progetto, null));
                        dispPianoEco.setImpFinanziato(dispPianoEco.getImpFinanziato().add(imVariazioneFin));
                        dispPianoEco.setImpCofinanziato(dispPianoEco.getImpCofinanziato().add(imVariazioneCofin));
                        if (!listCtrlDispPianoEco.contains(dispPianoEco))
                            listCtrlDispPianoEco.add(dispPianoEco);
                    }
                }
            }
            for (CtrlDispPianoEco ctrlDispPianoEco : listCtrlDispPianoEco) {
                Progetto_piano_economicoBulk ppe = ctrlDispPianoEco.getProgettoPianoEconomico();
                if (Optional.ofNullable(ppe).isPresent()) {
                    try {
                        if (locked) {
                            Progetto_piano_economicoBulk bulkToFind = new Progetto_piano_economicoBulk();
                            bulkToFind.setVoce_piano_economico(ppe.getVoce_piano_economico());
                            bulkToFind.setPg_progetto(ppe.getPg_progetto());
                            bulkToFind.setEsercizio_piano(ppe.getEsercizio_piano());
                            try {
                                bulkToFind = (Progetto_piano_economicoBulk) ppeHome.findAndLock(bulkToFind);
                            } catch (ObjectNotFoundException ex) {
                            }
                        }
                        if (Optional.ofNullable(progettoRimodulato).isPresent()) {
                            // Controllo quota FINANZIATA
                            BigDecimal imRimodulatoFin = progettoRimodulato.getAllDetailsProgettoPianoEconomico().stream().filter(ppeRim -> ppeRim.getEsercizio_piano().equals(ppe.getEsercizio_piano())).filter(ppeRim -> ppeRim.getCd_voce_piano().equals(ppe.getCd_voce_piano())).filter(ppeRim -> ppeRim.getCd_unita_organizzativa().equals(ppe.getCd_unita_organizzativa())).map(Progetto_piano_economicoBulk::getIm_spesa_finanziato).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
                            BigDecimal imStanziatoFin = progettoRimodulato.getAllDetailsProgettoPianoEconomico().stream().filter(ppeRim -> ppeRim.getEsercizio_piano().equals(ppe.getEsercizio_piano())).filter(ppeRim -> ppeRim.getCd_voce_piano().equals(ppe.getCd_voce_piano())).filter(ppeRim -> ppeRim.getCd_unita_organizzativa().equals(ppe.getCd_unita_organizzativa())).filter(ppeRim -> Optional.ofNullable(ppeRim.getVociBilancioAssociate()).isPresent()).flatMap(ppeRim -> ppeRim.getVociBilancioAssociate().stream()).filter(ppeRim -> Optional.ofNullable(ppeRim.getSaldoSpesa()).isPresent()).map(Ass_progetto_piaeco_voceBulk::getSaldoSpesa).map(el -> el.getAssestatoFinanziamento()).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
                            // lo stanziato a quadrare con il rimodulato
                            if (imStanziatoFin.compareTo(imRimodulatoFin) > 0) {
                                if (ctrlDispPianoEco.getImpFinanziato().compareTo(BigDecimal.ZERO) > 0)
                                    messaggio.add("La variazione della quota finanziata stanziata del piano economico " + ppe.getCd_voce_piano() + " (" + new it.cnr.contab.util.EuroFormat().format(ctrlDispPianoEco.getImpFinanziato()) + ") risulta essere positiva laddove la variazione richiesta dalla rimodulazione del progetto " + ctrlDispPianoEco.getProgetto().getCd_progetto() + " deve essere solo negativa.");
                                // Es. se imRimodulato=1000 e imStanziato=2000 la variazione negativa non deve essere superiore a -1000
                                if (imRimodulatoFin.subtract(imStanziatoFin).subtract(ctrlDispPianoEco.getImpFinanziato()).compareTo(BigDecimal.ZERO) > 0)
                                    messaggio.add("La variazione della quota finanziata stanziata del piano economico " + ppe.getCd_voce_piano() + " (" + new it.cnr.contab.util.EuroFormat().format(ctrlDispPianoEco.getImpFinanziato()) + ") risulta essere superiore alla variazione richiesta dalla rimodulazione del progetto " + ctrlDispPianoEco.getProgetto().getCd_progetto() + " (" + new it.cnr.contab.util.EuroFormat().format(imRimodulatoFin.subtract(imStanziatoFin)) + ").");
                            } else {
                                // La variazione non deve superare la disponibilità residua data dalla differenza tra imRimodulato e imStanziato
                                if (imRimodulatoFin.subtract(imStanziatoFin).subtract(ctrlDispPianoEco.getImpFinanziato()).compareTo(BigDecimal.ZERO) < 0)
                                    messaggio.add("La disponibilità rimodulata della quota finanziata del piano economico " + ppe.getCd_voce_piano() + " associato al progetto " + ctrlDispPianoEco.getProgetto().getCd_progetto() + (ppe.getEsercizio_piano().equals(0) ? "" : " per l'esercizio " + ppe.getEsercizio_piano()) + " (" + new it.cnr.contab.util.EuroFormat().format(imRimodulatoFin.subtract(imStanziatoFin)) + ")" + " non è sufficiente a coprire la variazione (" + new it.cnr.contab.util.EuroFormat().format(ctrlDispPianoEco.getImpFinanziato()) + ").");
                            }
                            // Controllo quota COFINANZIATA
                            BigDecimal imRimodulatoCofin = progettoRimodulato.getAllDetailsProgettoPianoEconomico().stream().filter(ppeRim -> ppeRim.getEsercizio_piano().equals(ppe.getEsercizio_piano())).filter(ppeRim -> ppeRim.getCd_voce_piano().equals(ppe.getCd_voce_piano())).filter(ppeRim -> ppeRim.getCd_unita_organizzativa().equals(ppe.getCd_unita_organizzativa())).map(Progetto_piano_economicoBulk::getIm_spesa_cofinanziato).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
                            BigDecimal imStanziatoCofin = progettoRimodulato.getAllDetailsProgettoPianoEconomico().stream().filter(ppeRim -> ppeRim.getEsercizio_piano().equals(ppe.getEsercizio_piano())).filter(ppeRim -> ppeRim.getCd_voce_piano().equals(ppe.getCd_voce_piano())).filter(ppeRim -> ppeRim.getCd_unita_organizzativa().equals(ppe.getCd_unita_organizzativa())).filter(ppeRim -> Optional.ofNullable(ppeRim.getVociBilancioAssociate()).isPresent()).flatMap(ppeRim -> ppeRim.getVociBilancioAssociate().stream()).filter(ppeRim -> Optional.ofNullable(ppeRim.getSaldoSpesa()).isPresent()).map(Ass_progetto_piaeco_voceBulk::getSaldoSpesa).map(el -> el.getAssestatoCofinanziamento()).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
                            // Se l'importo stanziato è superiore a quello rimodulato, l'importo della variazione deve essere negativa al fine di riportare lo stanziato a quadrare con il rimodulato
                            if (imStanziatoCofin.compareTo(imRimodulatoCofin) > 0) {
                                if (ctrlDispPianoEco.getImpCofinanziato().compareTo(BigDecimal.ZERO) > 0)
                                    messaggio.add("La variazione della quota cofinanziata stanziata del piano economico " + ppe.getCd_voce_piano() + " (" + new it.cnr.contab.util.EuroFormat().format(ctrlDispPianoEco.getImpCofinanziato()) + ") risulta essere positiva laddove la variazione richiesta dalla rimodulazione del progetto " + ctrlDispPianoEco.getProgetto().getCd_progetto() + " deve essere solo negativa.");
                                // Es. se imRimodulato=1000 e imStanziato=2000 la variazione negativa non deve essere superiore a -1000
                                if (imRimodulatoCofin.subtract(imStanziatoCofin).subtract(ctrlDispPianoEco.getImpCofinanziato()).compareTo(BigDecimal.ZERO) > 0)
                                    messaggio.add("La variazione della quota cofinanziata stanziata del piano economico " + ppe.getCd_voce_piano() + " (" + new it.cnr.contab.util.EuroFormat().format(ctrlDispPianoEco.getImpCofinanziato()) + ") risulta essere superiore alla variazione richiesta dalla rimodulazione del progetto " + ctrlDispPianoEco.getProgetto().getCd_progetto() + " (" + new it.cnr.contab.util.EuroFormat().format(imRimodulatoCofin.subtract(imStanziatoCofin)) + ").");
                            } else {
                                // La variazione non deve superare la disponibilità residua data dalla differenza tra imRimodulato e imStanzato
                                if (imRimodulatoCofin.subtract(imStanziatoCofin).subtract(ctrlDispPianoEco.getImpCofinanziato()).compareTo(BigDecimal.ZERO) < 0)
                                    messaggio.add("La disponibilità rimodulata della quota cofinanziata del piano economico " + ppe.getCd_voce_piano() + " associato al progetto " + ctrlDispPianoEco.getProgetto().getCd_progetto() + (ppe.getEsercizio_piano().equals(0) ? "" : " per l'esercizio " + ppe.getEsercizio_piano()) + " (" + new it.cnr.contab.util.EuroFormat().format(imRimodulatoCofin.subtract(imStanziatoCofin)) + ")" + " non è sufficiente a coprire la variazione (" + new it.cnr.contab.util.EuroFormat().format(ctrlDispPianoEco.getImpCofinanziato()) + ").");
                            }
                        } else {
                            V_saldi_piano_econom_progettoBulk saldo = ((V_saldi_piano_econom_progettoHome) getHome(userContext, V_saldi_piano_econom_progettoBulk.class)).cercaSaldoPianoEconomico(ppe, "S");
                            BigDecimal dispResiduaFin = Optional.ofNullable(saldo).map(V_saldi_piano_econom_progettoBulk::getDispResiduaFinanziamento).orElse(BigDecimal.ZERO).subtract(ctrlDispPianoEco.getImpFinanziato());
                            if (dispResiduaFin.compareTo(BigDecimal.ZERO) < 0)
                                messaggio.add("La disponibilità quota finanziata del piano economico " + ppe.getCd_voce_piano() + " associato al progetto " + ctrlDispPianoEco.getProgetto().getCd_progetto() + (ppe.getEsercizio_piano().equals(0) ? "" : " per l'esercizio " + ppe.getEsercizio_piano()) + " (" + new it.cnr.contab.util.EuroFormat().format(Optional.ofNullable(saldo).map(V_saldi_piano_econom_progettoBulk::getDispResiduaFinanziamento).orElse(BigDecimal.ZERO)) + ")" + " non è sufficiente a coprire la variazione (" + new it.cnr.contab.util.EuroFormat().format(ctrlDispPianoEco.getImpFinanziato()) + ").");
                            BigDecimal dispResiduaCofin = Optional.ofNullable(saldo).map(V_saldi_piano_econom_progettoBulk::getDispResiduaCofinanziamento).orElse(BigDecimal.ZERO).subtract(ctrlDispPianoEco.getImpCofinanziato());
                            if (dispResiduaCofin.compareTo(BigDecimal.ZERO) < 0)
                                messaggio.add("La disponibilità quota cofinanziata del piano economico " + ppe.getCd_voce_piano() + " associato al progetto " + ctrlDispPianoEco.getProgetto().getCd_progetto() + (ppe.getEsercizio_piano().equals(0) ? "" : " per l'esercizio " + ppe.getEsercizio_piano()) + " (" + new it.cnr.contab.util.EuroFormat().format(saldo.getDispResiduaCofinanziamento()) + ")" + " non è sufficiente a coprire la variazione (" + new it.cnr.contab.util.EuroFormat().format(ctrlDispPianoEco.getImpCofinanziato()) + ").");
                        }
                    } catch (Exception ex) {
                        throw new RuntimeException(ex);
                    }
                } else {
                    ProgettoBulk prg = ctrlDispPianoEco.getProgetto();
                    {
                        BigDecimal totFinanziato = BigDecimal.ZERO;
                        if (Optional.ofNullable(progettoRimodulato).isPresent())
                            totFinanziato = progettoRimodulato.getImFinanziato();
                        else
                            totFinanziato = prg.getImFinanziato();
                        BigDecimal assestatoSpePrgFes = this.getStanziamentoAssestatoProgetto(userContext, prg, Elemento_voceHome.GESTIONE_SPESE, null, null, Progetto_other_fieldHome.TI_IMPORTO_FINANZIATO);
                        if (totFinanziato.compareTo(assestatoSpePrgFes.add(ctrlDispPianoEco.getImpFinanziato())) < 0)
                            messaggio.add("Progetto " + prg.getCd_progetto() + ": l'assestato totale spese 'fonti esterne' (" + new it.cnr.contab.util.EuroFormat().format(assestatoSpePrgFes.add(ctrlDispPianoEco.getImpFinanziato())) + ") non può essere superiore alla quota finanziata (" + new it.cnr.contab.util.EuroFormat().format(totFinanziato) + ").");
                    }
                    {
                        BigDecimal totCofinanziato = BigDecimal.ZERO;
                        if (Optional.ofNullable(progettoRimodulato).isPresent())
                            totCofinanziato = progettoRimodulato.getImCofinanziato();
                        else
                            totCofinanziato = prg.getImCofinanziato();
                        BigDecimal assestatoSpePrgReimpiego = this.getStanziamentoAssestatoProgetto(userContext, prg, Elemento_voceHome.GESTIONE_SPESE, null, null, Progetto_other_fieldHome.TI_IMPORTO_COFINANZIATO);
                        if (totCofinanziato.compareTo(assestatoSpePrgReimpiego.add(ctrlDispPianoEco.getImpCofinanziato())) < 0)
                            messaggio.add("Progetto " + prg.getCd_progetto() + ": l'assestato totale spese 'fonti interne' e 'natura reimpiego' (" + new it.cnr.contab.util.EuroFormat().format(assestatoSpePrgReimpiego.add(ctrlDispPianoEco.getImpCofinanziato())) + ") non può essere superiore alla quota cofinanziata (" + new it.cnr.contab.util.EuroFormat().format(totCofinanziato) + ").");
                    }
                }
            }
        }
    } catch (PersistencyException e) {
        throw new ComponentException(e);
    } catch (RemoteException e) {
        throw new ComponentException(e);
    } catch (EJBException e) {
        throw new ComponentException(e);
    }
    return messaggio.toString();
}
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) WorkpackageHome(it.cnr.contab.config00.latt.bulk.WorkpackageHome) Pdg_variazioneBulk(it.cnr.contab.pdg00.bulk.Pdg_variazioneBulk) Pdg_variazione_riga_gestBulk(it.cnr.contab.pdg01.bulk.Pdg_variazione_riga_gestBulk) PersistencyException(it.cnr.jada.persistency.PersistencyException) BulkList(it.cnr.jada.bulk.BulkList) UserContext(it.cnr.jada.UserContext) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) Var_stanz_resBulk(it.cnr.contab.varstanz00.bulk.Var_stanz_resBulk) java.util(java.util) ComponentException(it.cnr.jada.comp.ComponentException) EJBException(javax.ejb.EJBException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) Var_stanz_res_rigaBulk(it.cnr.contab.varstanz00.bulk.Var_stanz_res_rigaBulk) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) 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) ApplicationException(it.cnr.jada.comp.ApplicationException) ObjectNotFoundException(it.cnr.jada.persistency.ObjectNotFoundException) Var_stanz_resHome(it.cnr.contab.varstanz00.bulk.Var_stanz_resHome) RemoteException(java.rmi.RemoteException) Pdg_variazioneHome(it.cnr.contab.pdg00.bulk.Pdg_variazioneHome)

Example 2 with Ass_progetto_piaeco_voceBulk

use of it.cnr.contab.progettiric00.core.bulk.Ass_progetto_piaeco_voceBulk in project sigla-main by consiglionazionaledellericerche.

the class RimodulaProgettoRicercaComponent method selectElemento_voceByClause.

public SQLBuilder selectElemento_voceByClause(UserContext userContext, Ass_progetto_piaeco_voceBulk assPiaecoVoce, Elemento_voceBulk voce, CompoundFindClause clauses) throws ComponentException {
    try {
        Elemento_voceHome home = (Elemento_voceHome) getHome(userContext, Elemento_voceBulk.class);
        SQLBuilder sql = home.createSQLBuilder();
        if (!Optional.of(assPiaecoVoce.getEsercizio_piano()).isPresent())
            // Condizione inserita per far fallire la query
            sql.addSQLClause(FindClause.AND, "1!=1");
        else {
            Parametri_cnrHome parCnrhome = (Parametri_cnrHome) getHome(userContext, Parametri_cnrBulk.class);
            Parametri_cnrBulk parCnrBulk = (Parametri_cnrBulk) parCnrhome.findByPrimaryKey(new Parametri_cnrBulk(assPiaecoVoce.getEsercizio_piano()));
            final Integer livelloPdgDecisSpe = Optional.ofNullable(parCnrBulk).flatMap(parametri_cnrBulk -> Optional.ofNullable(parametri_cnrBulk.getLivello_pdg_decis_spe())).orElse(6);
            sql.addClause(FindClause.AND, "esercizio", SQLBuilder.EQUALS, assPiaecoVoce.getEsercizio_piano());
            sql.openParenthesis(FindClause.AND);
            sql.openParenthesis(FindClause.OR);
            sql.addClause(FindClause.AND, "cd_unita_piano", SQLBuilder.ISNULL, null);
            sql.addClause(FindClause.AND, "cd_voce_piano", SQLBuilder.ISNULL, null);
            sql.closeParenthesis();
            sql.openParenthesis(FindClause.OR);
            sql.addClause(FindClause.AND, "cd_unita_piano", SQLBuilder.EQUALS, assPiaecoVoce.getCd_unita_organizzativa());
            sql.addClause(FindClause.AND, "cd_voce_piano", SQLBuilder.EQUALS, assPiaecoVoce.getCd_voce_piano());
            sql.closeParenthesis();
            sql.closeParenthesis();
            sql.addClause(clauses);
            sql.addTableToHeader("PARAMETRI_LIVELLI");
            sql.addSQLJoin("ELEMENTO_VOCE.ESERCIZIO", "PARAMETRI_LIVELLI.ESERCIZIO");
            sql.addTableToHeader("V_CLASSIFICAZIONE_VOCI_ALL", "CLASS_VOCE");
            sql.addSQLJoin("ELEMENTO_VOCE.ID_CLASSIFICAZIONE", "CLASS_VOCE.ID_CLASSIFICAZIONE");
            sql.addSQLJoin("CLASS_VOCE.NR_LIVELLO", "PARAMETRI_LIVELLI.LIVELLI_SPESA");
            sql.addTableToHeader("V_CLASSIFICAZIONE_VOCI", "CLASS_PARENT");
            sql.addSQLJoin("CLASS_VOCE.ID_LIV" + livelloPdgDecisSpe, "CLASS_PARENT.ID_CLASSIFICAZIONE");
            sql.addSQLClause(FindClause.AND, "CLASS_PARENT.NR_LIVELLO", SQLBuilder.EQUALS, livelloPdgDecisSpe);
            sql.openParenthesis(FindClause.AND);
            sql.addSQLClause(FindClause.AND, "CLASS_PARENT.FL_ACCENTRATO", SQLBuilder.EQUALS, "Y");
            sql.addSQLClause(FindClause.OR, "CLASS_PARENT.FL_DECENTRATO", SQLBuilder.EQUALS, "Y");
            sql.closeParenthesis();
            sql.addSQLClause(FindClause.AND, "CLASS_PARENT.ESERCIZIO", SQLBuilder.EQUALS, assPiaecoVoce.getEsercizio_piano());
            sql.addSQLClause(FindClause.AND, "CLASS_PARENT.TI_GESTIONE", SQLBuilder.EQUALS, Elemento_voceHome.GESTIONE_SPESE);
            sql.addSQLClause(FindClause.AND, "CLASS_PARENT.FL_SOLO_GESTIONE", SQLBuilder.EQUALS, "N");
        }
        sql.addOrderBy("cd_elemento_voce");
        return sql;
    } catch (Throwable e) {
        throw handleException(e);
    }
}
Also used : Elemento_voceHome(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome) Voce_piano_economico_prgBulk(it.cnr.contab.progettiric00.tabrif.bulk.Voce_piano_economico_prgBulk) GsonBuilder(com.google.gson.GsonBuilder) BigDecimal(java.math.BigDecimal) PrintService(it.cnr.contab.reports.service.PrintService) Pdg_variazioneBulk(it.cnr.contab.pdg00.bulk.Pdg_variazioneBulk) AllegatoProgettoRimodulazioneType(it.cnr.contab.progettiric00.enumeration.AllegatoProgettoRimodulazioneType) Ass_progetto_piaeco_voceBulk(it.cnr.contab.progettiric00.core.bulk.Ass_progetto_piaeco_voceBulk) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Tipo_unita_organizzativaHome(it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome) V_doc_passivo_obbligazione_wizardBulk(it.cnr.contab.doccont00.core.bulk.V_doc_passivo_obbligazione_wizardBulk) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) Collectors(java.util.stream.Collectors) Parametri_cnrBulk(it.cnr.contab.config00.bulk.Parametri_cnrBulk) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) Progetto_rimodulazioneHome(it.cnr.contab.progettiric00.core.bulk.Progetto_rimodulazioneHome) Stream(java.util.stream.Stream) Var_stanz_resBulk(it.cnr.contab.varstanz00.bulk.Var_stanz_resBulk) Query(it.cnr.jada.persistency.sql.Query) SpringUtil(it.cnr.contab.service.SpringUtil) Voce_piano_economico_prgHome(it.cnr.contab.progettiric00.tabrif.bulk.Voce_piano_economico_prgHome) UserContext(it.cnr.jada.UserContext) java.util(java.util) Progetto_rimodulazione_variazioneBulk(it.cnr.contab.progettiric00.core.bulk.Progetto_rimodulazione_variazioneBulk) AllegatoProgettoRimodulazioneBulk(it.cnr.contab.progettiric00.core.bulk.AllegatoProgettoRimodulazioneBulk) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) ProgettoHome(it.cnr.contab.progettiric00.core.bulk.ProgettoHome) SimpleDateFormat(java.text.SimpleDateFormat) Utility(it.cnr.contab.util.Utility) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) Pdg_variazioneHome(it.cnr.contab.pdg00.bulk.Pdg_variazioneHome) SimpleFindClause(it.cnr.jada.persistency.sql.SimpleFindClause) StoreService(it.cnr.si.spring.storage.StoreService) Elemento_voceHome(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome) FindClause(it.cnr.jada.persistency.sql.FindClause) Progetto_rimodulazione_ppeBulk(it.cnr.contab.progettiric00.core.bulk.Progetto_rimodulazione_ppeBulk) Progetto_piano_economicoBulk(it.cnr.contab.progettiric00.core.bulk.Progetto_piano_economicoBulk) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Parametri_enteBulk(it.cnr.contab.config00.bulk.Parametri_enteBulk) Progetto_rimodulazione_voceBulk(it.cnr.contab.progettiric00.core.bulk.Progetto_rimodulazione_voceBulk) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) Var_stanz_resHome(it.cnr.contab.varstanz00.bulk.Var_stanz_resHome) Print_spoolerBulk(it.cnr.contab.reports.bulk.Print_spoolerBulk) IOException(java.io.IOException) Report(it.cnr.contab.reports.bulk.Report) Unita_organizzativa_enteBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk) ProgettoBulk(it.cnr.contab.progettiric00.core.bulk.ProgettoBulk) it.cnr.jada.bulk(it.cnr.jada.bulk) Progetto_rimodulazioneBulk(it.cnr.contab.progettiric00.core.bulk.Progetto_rimodulazioneBulk) Parametri_cnrHome(it.cnr.contab.config00.bulk.Parametri_cnrHome) ComponentException(it.cnr.jada.comp.ComponentException) StatoProgettoRimodulazione(it.cnr.contab.progettiric00.enumeration.StatoProgettoRimodulazione) CompoundFindClause(it.cnr.jada.persistency.sql.CompoundFindClause) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Parametri_cnrHome(it.cnr.contab.config00.bulk.Parametri_cnrHome) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) Parametri_cnrBulk(it.cnr.contab.config00.bulk.Parametri_cnrBulk)

Example 3 with Ass_progetto_piaeco_voceBulk

use of it.cnr.contab.progettiric00.core.bulk.Ass_progetto_piaeco_voceBulk in project sigla-main by consiglionazionaledellericerche.

the class ProgettoHome method loadSaldiPianoEconomico.

public ProgettoBulk loadSaldiPianoEconomico(UserContext userContext, ProgettoBulk progetto) throws PersistencyException {
    try {
        List<V_saldi_voce_progettoBulk> vociMovimentate = ((V_saldi_voce_progettoHome) getHomeCache().getHome(V_saldi_voce_progettoBulk.class)).cercaSaldoVoce(progetto.getPg_progetto());
        progetto.setVociBilancioMovimentate(new BulkList<V_saldi_voce_progettoBulk>(vociMovimentate.stream().filter(el -> el.getAssestato().compareTo(BigDecimal.ZERO) > 0 || el.getUtilizzatoAssestatoFinanziamento().compareTo(BigDecimal.ZERO) > 0).collect(Collectors.toList())));
        progetto.getDettagliPianoEconomicoAnnoCorrente().stream().forEach(ppe -> {
            try {
                ppe.setVociBilancioAssociate(new BulkList<Ass_progetto_piaeco_voceBulk>(((Ass_progetto_piaeco_voceHome) getHomeCache().getHome(Ass_progetto_piaeco_voceBulk.class)).findAssProgettoPiaecoVoceList(ppe.getPg_progetto(), ppe.getCd_unita_organizzativa(), ppe.getCd_voce_piano(), ppe.getEsercizio_piano())));
            } catch (PersistencyException ex) {
                throw new DetailedRuntimeException(ex.getMessage());
            }
            ppe.getVociBilancioAssociate().stream().forEach(voceAss -> {
                V_saldi_voce_progettoBulk saldo = progetto.getVociBilancioMovimentate().stream().filter(el -> el.getEsercizio_voce().equals(voceAss.getEsercizio_voce())).filter(el -> el.getTi_appartenenza().equals(voceAss.getTi_appartenenza())).filter(el -> el.getTi_gestione().equals(voceAss.getTi_gestione())).filter(el -> el.getCd_elemento_voce().equals(voceAss.getCd_elemento_voce())).findFirst().orElseGet(() -> {
                    V_saldi_voce_progettoBulk saldoNew = new V_saldi_voce_progettoBulk();
                    saldoNew.setEsercizio_voce(voceAss.getEsercizio_voce());
                    saldoNew.setTi_appartenenza(voceAss.getTi_appartenenza());
                    saldoNew.setTi_gestione(voceAss.getTi_gestione());
                    saldoNew.setCd_elemento_voce(voceAss.getCd_elemento_voce());
                    saldoNew.setStanziamentoFin(BigDecimal.ZERO);
                    saldoNew.setVariapiuFin(BigDecimal.ZERO);
                    saldoNew.setVariamenoFin(BigDecimal.ZERO);
                    saldoNew.setTrasfpiuFin(BigDecimal.ZERO);
                    saldoNew.setTrasfmenoFin(BigDecimal.ZERO);
                    saldoNew.setStanziamentoCofin(BigDecimal.ZERO);
                    saldoNew.setVariapiuCofin(BigDecimal.ZERO);
                    saldoNew.setVariamenoCofin(BigDecimal.ZERO);
                    saldoNew.setTrasfpiuCofin(BigDecimal.ZERO);
                    saldoNew.setTrasfmenoCofin(BigDecimal.ZERO);
                    saldoNew.setImpaccFin(BigDecimal.ZERO);
                    saldoNew.setImpaccCofin(BigDecimal.ZERO);
                    saldoNew.setManrisFin(BigDecimal.ZERO);
                    saldoNew.setManrisCofin(BigDecimal.ZERO);
                    return saldoNew;
                });
                if (Elemento_voceHome.GESTIONE_SPESE.equals(voceAss.getTi_gestione()))
                    voceAss.setSaldoSpesa(saldo);
                else
                    voceAss.setSaldoEntrata(saldo);
            });
        });
        progetto.getDettagliPianoEconomicoAltriAnni().stream().forEach(ppe -> {
            try {
                ppe.setVociBilancioAssociate(new BulkList<Ass_progetto_piaeco_voceBulk>(((Ass_progetto_piaeco_voceHome) getHomeCache().getHome(Ass_progetto_piaeco_voceBulk.class)).findAssProgettoPiaecoVoceList(ppe.getPg_progetto(), ppe.getCd_unita_organizzativa(), ppe.getCd_voce_piano(), ppe.getEsercizio_piano())));
            } catch (PersistencyException ex) {
                throw new DetailedRuntimeException(ex.getMessage());
            }
            ppe.getVociBilancioAssociate().stream().forEach(voceAss -> {
                V_saldi_voce_progettoBulk saldo = progetto.getVociBilancioMovimentate().stream().filter(el -> el.getEsercizio_voce().equals(voceAss.getEsercizio_voce())).filter(el -> el.getTi_appartenenza().equals(voceAss.getTi_appartenenza())).filter(el -> el.getTi_gestione().equals(voceAss.getTi_gestione())).filter(el -> el.getCd_elemento_voce().equals(voceAss.getCd_elemento_voce())).findFirst().orElseGet(() -> {
                    V_saldi_voce_progettoBulk saldoNew = new V_saldi_voce_progettoBulk();
                    saldoNew.setEsercizio_voce(voceAss.getEsercizio_voce());
                    saldoNew.setTi_appartenenza(voceAss.getTi_appartenenza());
                    saldoNew.setTi_gestione(voceAss.getTi_gestione());
                    saldoNew.setCd_elemento_voce(voceAss.getCd_elemento_voce());
                    saldoNew.setStanziamentoFin(BigDecimal.ZERO);
                    saldoNew.setVariapiuFin(BigDecimal.ZERO);
                    saldoNew.setVariamenoFin(BigDecimal.ZERO);
                    saldoNew.setTrasfpiuFin(BigDecimal.ZERO);
                    saldoNew.setTrasfmenoFin(BigDecimal.ZERO);
                    saldoNew.setStanziamentoCofin(BigDecimal.ZERO);
                    saldoNew.setVariapiuCofin(BigDecimal.ZERO);
                    saldoNew.setVariamenoCofin(BigDecimal.ZERO);
                    saldoNew.setTrasfpiuCofin(BigDecimal.ZERO);
                    saldoNew.setTrasfmenoCofin(BigDecimal.ZERO);
                    saldoNew.setImpaccFin(BigDecimal.ZERO);
                    saldoNew.setImpaccCofin(BigDecimal.ZERO);
                    saldoNew.setManrisFin(BigDecimal.ZERO);
                    saldoNew.setManrisCofin(BigDecimal.ZERO);
                    return saldoNew;
                });
                if (Elemento_voceHome.GESTIONE_SPESE.equals(voceAss.getTi_gestione()))
                    voceAss.setSaldoSpesa(saldo);
                else
                    voceAss.setSaldoEntrata(saldo);
            });
        });
        return progetto;
    } catch (Exception e) {
        throw new PersistencyException(e);
    }
}
Also used : Pdg_variazione_riga_gestBulk(it.cnr.contab.pdg01.bulk.Pdg_variazione_riga_gestBulk) Geco_commessa_rstlBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_commessa_rstlBulk) BigDecimal(java.math.BigDecimal) Geco_progettoIBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_progettoIBulk) Geco_modulo_rstlBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_modulo_rstlBulk) Geco_moduloBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_moduloBulk) Var_stanz_res_rigaBulk(it.cnr.contab.varstanz00.bulk.Var_stanz_res_rigaBulk) Geco_modulo_sacBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_modulo_sacBulk) Geco_attivitaBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_attivitaBulk) ObjectNotFoundException(it.cnr.jada.persistency.ObjectNotFoundException) it.cnr.contab.config00.sto.bulk(it.cnr.contab.config00.sto.bulk) Pdg_variazioneBulk(it.cnr.contab.pdg00.bulk.Pdg_variazioneBulk) Obbligazione_mod_voceBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_mod_voceBulk) Geco_commessaIBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_commessaIBulk) PersistentHome(it.cnr.jada.persistency.sql.PersistentHome) it.cnr.contab.config00.bulk(it.cnr.contab.config00.bulk) BulkHome(it.cnr.jada.bulk.BulkHome) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Geco_commessaBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_commessaBulk) Collectors(java.util.stream.Collectors) EJBException(javax.ejb.EJBException) List(java.util.List) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) Var_stanz_resBulk(it.cnr.contab.varstanz00.bulk.Var_stanz_resBulk) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) Geco_moduloIBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_moduloIBulk) Optional(java.util.Optional) StatoProgetto(it.cnr.contab.progettiric00.enumeration.StatoProgetto) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) UserContext(it.cnr.jada.UserContext) FetchException(it.cnr.jada.persistency.FetchException) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) PersistentCache(it.cnr.jada.persistency.PersistentCache) Utility(it.cnr.contab.util.Utility) Geco_progetto_pbBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_progetto_pbBulk) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) ContrattoHome(it.cnr.contab.config00.contratto.bulk.ContrattoHome) Obbligazione_modificaBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_modificaBulk) Obbligazione_scad_voceBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceBulk) Geco_area_progBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_area_progBulk) Geco_progetto_sacBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_progetto_sacBulk) Elemento_voceHome(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome) FindClause(it.cnr.jada.persistency.sql.FindClause) Geco_progetto_rstlBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_progetto_rstlBulk) Geco_progetto_operativoBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_progetto_operativoBulk) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) Iterator(java.util.Iterator) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) Pdg_moduloBulk(it.cnr.contab.prevent01.bulk.Pdg_moduloBulk) Geco_commessa_pbBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_commessa_pbBulk) BulkList(it.cnr.jada.bulk.BulkList) Geco_commessa_sacBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_commessa_sacBulk) ObbligazioneBulk(it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk) Geco_progettoBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_progettoBulk) Geco_modulo_pbBulk(it.cnr.contab.progettiric00.geco.bulk.Geco_modulo_pbBulk) ComponentException(it.cnr.jada.comp.ComponentException) Persistent(it.cnr.jada.persistency.Persistent) PersistencyException(it.cnr.jada.persistency.PersistencyException) ObjectNotFoundException(it.cnr.jada.persistency.ObjectNotFoundException) EJBException(javax.ejb.EJBException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) FetchException(it.cnr.jada.persistency.FetchException) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ComponentException(it.cnr.jada.comp.ComponentException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException)

Example 4 with Ass_progetto_piaeco_voceBulk

use of it.cnr.contab.progettiric00.core.bulk.Ass_progetto_piaeco_voceBulk in project sigla-main by consiglionazionaledellericerche.

the class Progetto_rimodulazioneBulk method getPianoEconomicoSummaryAnno.

public BulkList<Progetto_piano_economicoBulk> getPianoEconomicoSummaryAnno() {
    Map<Integer, List<Progetto_piano_economicoBulk>> resultByEsercizio = this.getAllDetailsProgettoPianoEconomico().stream().filter(el -> Optional.ofNullable(el.getEsercizio_piano()).isPresent()).collect(Collectors.groupingBy(x -> {
        return x.getEsercizio_piano();
    }));
    return new BulkList<Progetto_piano_economicoBulk>(resultByEsercizio.keySet().stream().sorted((esercizioPiano1, esercizioPiano2) -> esercizioPiano1.compareTo(esercizioPiano2)).map(esercizioPiano -> {
        Progetto_piano_economicoBulk bulk = new Progetto_piano_economicoBulk();
        bulk.setEsercizio_piano(esercizioPiano);
        bulk.setIm_spesa_finanziato(resultByEsercizio.get(esercizioPiano).stream().map(el -> Optional.ofNullable(el.getIm_spesa_finanziato()).orElse(BigDecimal.ZERO)).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO));
        bulk.setIm_spesa_cofinanziato(resultByEsercizio.get(esercizioPiano).stream().map(el -> Optional.ofNullable(el.getIm_spesa_cofinanziato()).orElse(BigDecimal.ZERO)).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO));
        bulk.setImSpesaFinanziatoRimodulato(resultByEsercizio.get(esercizioPiano).stream().map(el -> Optional.ofNullable(el.getImSpesaFinanziatoRimodulato()).orElse(BigDecimal.ZERO)).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO));
        bulk.setImSpesaCofinanziatoRimodulato(resultByEsercizio.get(esercizioPiano).stream().map(el -> Optional.ofNullable(el.getImSpesaCofinanziatoRimodulato()).orElse(BigDecimal.ZERO)).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO));
        List<V_saldi_piano_econom_progettoBulk> listSaldiSpesa = resultByEsercizio.get(esercizioPiano).stream().filter(el -> Optional.ofNullable(el.getSaldoSpesa()).isPresent()).map(Progetto_piano_economicoBulk::getSaldoSpesa).collect(Collectors.toList());
        Ass_progetto_piaeco_voceBulk dettSpesa = new Ass_progetto_piaeco_voceBulk();
        dettSpesa.setSaldoSpesa(V_saldi_voce_progettoBulk.getSaldoAccorpato(listSaldiSpesa));
        BigDecimal totImVarSpesaFinanziatoRimodulato = resultByEsercizio.get(esercizioPiano).stream().flatMap(el -> Optional.ofNullable(el.getVociBilancioAssociate()).map(List::stream).orElse(Stream.empty())).filter(el -> Elemento_voceHome.GESTIONE_SPESE.equals(el.getTi_gestione())).map(el -> Optional.ofNullable(el.getImVarFinanziatoRimodulato()).orElse(BigDecimal.ZERO)).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
        BigDecimal totImVarSpesaCofinanziatoRimodulato = resultByEsercizio.get(esercizioPiano).stream().flatMap(el -> Optional.ofNullable(el.getVociBilancioAssociate()).map(List::stream).orElse(Stream.empty())).filter(el -> Elemento_voceHome.GESTIONE_SPESE.equals(el.getTi_gestione())).map(el -> Optional.ofNullable(el.getImVarCofinanziatoRimodulato()).orElse(BigDecimal.ZERO)).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
        dettSpesa.setImVarFinanziatoRimodulato(totImVarSpesaFinanziatoRimodulato);
        dettSpesa.setImVarCofinanziatoRimodulato(totImVarSpesaCofinanziatoRimodulato);
        bulk.addToVociBilancioAssociate(dettSpesa);
        List<V_saldi_piano_econom_progettoBulk> listSaldiEntrata = resultByEsercizio.get(esercizioPiano).stream().filter(el -> Optional.ofNullable(el.getSaldoEntrata()).isPresent()).map(Progetto_piano_economicoBulk::getSaldoEntrata).collect(Collectors.toList());
        Ass_progetto_piaeco_voceBulk dettEntrata = new Ass_progetto_piaeco_voceBulk();
        dettEntrata.setSaldoEntrata(V_saldi_voce_progettoBulk.getSaldoAccorpato(listSaldiEntrata));
        BigDecimal totImVarEntrataFinanziatoRimodulato = resultByEsercizio.get(esercizioPiano).stream().flatMap(el -> Optional.ofNullable(el.getVociBilancioAssociate()).map(List::stream).orElse(Stream.empty())).filter(el -> Elemento_voceHome.GESTIONE_ENTRATE.equals(el.getTi_gestione())).map(el -> Optional.ofNullable(el.getImVarFinanziatoRimodulato()).orElse(BigDecimal.ZERO)).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
        BigDecimal totImVarEntrataCofinanziatoRimodulato = resultByEsercizio.get(esercizioPiano).stream().flatMap(el -> Optional.ofNullable(el.getVociBilancioAssociate()).map(List::stream).orElse(Stream.empty())).filter(el -> Elemento_voceHome.GESTIONE_ENTRATE.equals(el.getTi_gestione())).map(el -> Optional.ofNullable(el.getImVarCofinanziatoRimodulato()).orElse(BigDecimal.ZERO)).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
        dettEntrata.setImVarFinanziatoRimodulato(totImVarEntrataFinanziatoRimodulato);
        dettEntrata.setImVarCofinanziatoRimodulato(totImVarEntrataCofinanziatoRimodulato);
        bulk.addToVociBilancioAssociate(dettEntrata);
        return bulk;
    }).collect(Collectors.toList()));
}
Also used : Arrays(java.util.Arrays) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) Voce_piano_economico_prgBulk(it.cnr.contab.progettiric00.tabrif.bulk.Voce_piano_economico_prgBulk) ArrayList(java.util.ArrayList) BigDecimal(java.math.BigDecimal) Calendar(java.util.Calendar) Map(java.util.Map) Elemento_voceHome(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome) DateUtils(it.cnr.jada.util.DateUtils) Hashtable(java.util.Hashtable) ValidationException(it.cnr.jada.bulk.ValidationException) AllegatoParentBulk(it.cnr.contab.util00.bulk.storage.AllegatoParentBulk) GregorianCalendar(java.util.GregorianCalendar) Timestamp(java.sql.Timestamp) BulkList(it.cnr.jada.bulk.BulkList) Collectors(java.util.stream.Collectors) AllegatoGenericoBulk(it.cnr.contab.util00.bulk.storage.AllegatoGenericoBulk) StorageDriver(it.cnr.si.spring.storage.StorageDriver) List(java.util.List) Stream(java.util.stream.Stream) Optional(java.util.Optional) StatoProgetto(it.cnr.contab.progettiric00.enumeration.StatoProgetto) Comparator(java.util.Comparator) Voce(it.cnr.contab.client.docamm.Voce) StatoProgettoRimodulazione(it.cnr.contab.progettiric00.enumeration.StatoProgettoRimodulazione) ArrayList(java.util.ArrayList) BulkList(it.cnr.jada.bulk.BulkList) List(java.util.List) BulkList(it.cnr.jada.bulk.BulkList) BigDecimal(java.math.BigDecimal)

Example 5 with Ass_progetto_piaeco_voceBulk

use of it.cnr.contab.progettiric00.core.bulk.Ass_progetto_piaeco_voceBulk in project sigla-main by consiglionazionaledellericerche.

the class VariazioniStanziamentoResiduoComponent method selectElemento_voceByClause.

public SQLBuilder selectElemento_voceByClause(UserContext userContext, Var_stanz_res_rigaBulk var_stanz_res_riga, Elemento_voceBulk elemento_voce, CompoundFindClause clause) throws ComponentException, PersistencyException {
    try {
        Parametri_cnrHome parCnrhome = (Parametri_cnrHome) getHome(userContext, Parametri_cnrBulk.class);
        Parametri_cnrBulk parCnrBulk = (Parametri_cnrBulk) parCnrhome.findByPrimaryKey(new Parametri_cnrBulk(it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext)));
        Optional<ProgettoBulk> optProgetto = Optional.empty();
        if (Optional.ofNullable(var_stanz_res_riga.getProgetto()).flatMap(el -> Optional.ofNullable(el.getPg_progetto())).isPresent()) {
            ProgettoHome home = (ProgettoHome) getHome(userContext, ProgettoBulk.class);
            home.setFetchPolicy("it.cnr.contab.progettiric00.comp.ProgettoRicercaComponent.find");
            optProgetto = Optional.ofNullable((ProgettoBulk) home.findByPrimaryKey(userContext, var_stanz_res_riga.getProgetto()));
            getHomeCache(userContext).fetchAll(userContext);
        }
        if (clause == null)
            clause = ((OggettoBulk) elemento_voce).buildFindClauses(null);
        boolean isProgettoWithPianoEconomico = optProgetto.map(ProgettoBulk::isPianoEconomicoRequired).orElse(Boolean.FALSE);
        String columnMapName = isProgettoWithPianoEconomico ? "V_ELEMENTO_VOCE_PDG_SPE_PIAECO" : "V_ELEMENTO_VOCE_PDG_SPE";
        SQLBuilder sql = getHome(userContext, elemento_voce, columnMapName).createSQLBuilder();
        if (clause != null)
            sql.addClause(clause);
        sql.addSQLClause(FindClause.AND, columnMapName + ".ESERCIZIO", SQLBuilder.EQUALS, it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext));
        sql.addTableToHeader("PARAMETRI_LIVELLI");
        sql.addSQLJoin(columnMapName + ".ESERCIZIO", "PARAMETRI_LIVELLI.ESERCIZIO");
        sql.addTableToHeader("V_CLASSIFICAZIONE_VOCI_ALL");
        sql.addSQLJoin(columnMapName + ".ID_CLASSIFICAZIONE", "V_CLASSIFICAZIONE_VOCI_ALL.ID_CLASSIFICAZIONE");
        sql.addSQLJoin("V_CLASSIFICAZIONE_VOCI_ALL.NR_LIVELLO", "PARAMETRI_LIVELLI.LIVELLI_SPESA");
        sql.openParenthesis(FindClause.AND);
        sql.addSQLClause(FindClause.OR, columnMapName + ".FL_PARTITA_GIRO", SQLBuilder.ISNULL, null);
        sql.addSQLClause(FindClause.OR, columnMapName + ".FL_PARTITA_GIRO", SQLBuilder.EQUALS, "N");
        sql.closeParenthesis();
        sql.addSQLClause(FindClause.AND, columnMapName + ".FL_SOLO_COMPETENZA", SQLBuilder.EQUALS, "N");
        if (var_stanz_res_riga.getLinea_di_attivita() != null)
            sql.addSQLClause(FindClause.AND, columnMapName + ".CD_FUNZIONE", SQLBuilder.EQUALS, var_stanz_res_riga.getLinea_di_attivita().getCd_funzione());
        if (!parCnrBulk.getFl_nuovo_pdg())
            if (var_stanz_res_riga.getCentroTestata() != null && var_stanz_res_riga.getCentroTestata().getUnita_padre().getCd_tipo_unita() != null)
                sql.addSQLClause(FindClause.AND, columnMapName + ".CD_TIPO_UNITA", SQLBuilder.EQUALS, var_stanz_res_riga.getCentroTestata().getUnita_padre().getCd_tipo_unita());
        if (var_stanz_res_riga.getCentroTestata() != null && var_stanz_res_riga.getCentroTestata().getCd_centro_responsabilita() != null) {
            Optional.ofNullable(((Configurazione_cnrHome) getHome(userContext, Configurazione_cnrBulk.class)).getCdrPersonale(CNRUserContext.getEsercizio(userContext))).filter(cdrPersonale -> !cdrPersonale.equals(var_stanz_res_riga.getCentroTestata().getCd_centro_responsabilita())).ifPresent(cdrPersonale -> {
                sql.addSQLClause(FindClause.AND, columnMapName + ".FL_VOCE_PERSONALE", SQLBuilder.EQUALS, "N");
            });
        }
        if (isProgettoWithPianoEconomico) {
            /*Limito la ricerca alle sole voci associate al progetto per l'anno del residuo*/
            sql.addSQLClause(FindClause.AND, columnMapName + ".PG_PROGETTO_ASSOCIATO", SQLBuilder.EQUALS, optProgetto.get().getPg_progetto());
            sql.addSQLClause(FindClause.AND, columnMapName + ".ESERCIZIO_PIANO_ASSOCIATO", SQLBuilder.EQUALS, var_stanz_res_riga.getVar_stanz_res().getEsercizio_residuo());
        }
        // controllo aggiunto solo per variazioni su anni successivi a quello di attivazione piano economico e per progetti con Piano Economico
        if (Utility.createParametriEnteComponentSession().isProgettoPianoEconomicoEnabled(userContext, var_stanz_res_riga.getVar_stanz_res().getEsercizio_residuo())) {
            optProgetto.orElseThrow(() -> new ApplicationException("Errore: Progetto non valorizzato sulla riga della variazione!"));
            if (isProgettoWithPianoEconomico) {
                /*
						se il progetto è attivo (anno fine del progetto maggiore o uguale all'anno di esercizio) occorre sempre controllare le voci associate al piano economico del progetto
					 */
                Optional<Integer> optAnnoFineProgetto = Optional.ofNullable(var_stanz_res_riga.getVar_stanz_res().getProgettoRimodulazione()).filter(rim -> rim.getPg_progetto().equals(var_stanz_res_riga.getProgetto().getPg_progetto())).map(rim -> Optional.ofNullable(rim.getDtProroga()).orElse(rim.getDtFine())).map(dtFine -> {
                    GregorianCalendar calendar = new GregorianCalendar();
                    calendar.setTime(dtFine);
                    return Optional.of(calendar.get(Calendar.YEAR));
                }).orElse(Optional.ofNullable(optProgetto.get().getOtherField().getAnnoFine()));
                if (optAnnoFineProgetto.filter(annoFine -> annoFine.compareTo(CNRUserContext.getEsercizio(userContext)) >= 0).isPresent()) {
                    Ass_progetto_piaeco_voceHome assHome = (Ass_progetto_piaeco_voceHome) getHome(userContext, Ass_progetto_piaeco_voceBulk.class);
                    SQLBuilder assSql = assHome.createSQLBuilder();
                    assSql.addSQLClause(FindClause.AND, "ASS_PROGETTO_PIAECO_VOCE.PG_PROGETTO", SQLBuilder.EQUALS, var_stanz_res_riga.getProgetto().getPg_progetto());
                    assSql.addSQLClause(FindClause.AND, "ASS_PROGETTO_PIAECO_VOCE.ESERCIZIO_PIANO", SQLBuilder.EQUALS, var_stanz_res_riga.getVar_stanz_res().getEsercizio_residuo());
                    List<Ass_progetto_piaeco_voceBulk> list = assHome.fetchAll(assSql);
                    List<Progetto_rimodulazione_voceBulk> listRim = new BulkList<Progetto_rimodulazione_voceBulk>();
                    if (Optional.ofNullable(var_stanz_res_riga.getVar_stanz_res().getProgettoRimodulazione()).filter(rim -> rim.getPg_progetto().equals(var_stanz_res_riga.getProgetto().getPg_progetto())).isPresent()) {
                        Progetto_rimodulazioneHome rimHome = (Progetto_rimodulazioneHome) getHome(userContext, Progetto_rimodulazioneBulk.class);
                        listRim = new BulkList<>(rimHome.findDettagliVoceRimodulazione(var_stanz_res_riga.getVar_stanz_res().getProgettoRimodulazione()));
                    }
                    if (list.isEmpty() && listRim.isEmpty())
                        sql.addSQLClause(FindClause.AND, columnMapName + ".ESERCIZIO", SQLBuilder.EQUALS, -100);
                    else {
                        // Recupero la lista delle voci movimentate perchè se tra quelle da eliminare occorre comunque selezionarle per consentire
                        // all'utente di effettuare una variazione negativa
                        List<V_saldi_voce_progettoBulk> vociMovimentate = ((V_saldi_voce_progettoHome) getHome(userContext, V_saldi_voce_progettoBulk.class)).cercaSaldoVoce(optProgetto.get().getPg_progetto()).stream().filter(el -> el.getAssestato().compareTo(BigDecimal.ZERO) > 0 || el.getUtilizzatoAssestatoFinanziamento().compareTo(BigDecimal.ZERO) > 0).collect(Collectors.toList());
                        sql.openParenthesis(FindClause.AND);
                        for (Ass_progetto_piaeco_voceBulk assVoce : list) {
                            // Se la voce è stata eliminata nella rimodulazione la stessa non viene proposta
                            if (listRim.stream().filter(voceRim -> voceRim.getElementoVoce().equalsByPrimaryKey(assVoce.getElemento_voce())).filter(Progetto_rimodulazione_voceBulk::isTiOperazioneEliminato).filter(voceRim -> !vociMovimentate.stream().filter(voceMov -> voceMov.getEsercizio_voce().equals(voceRim.getElementoVoce().getEsercizio())).filter(voceMov -> voceMov.getTi_appartenenza().equals(voceRim.getElementoVoce().getTi_appartenenza())).filter(voceMov -> voceMov.getTi_gestione().equals(voceRim.getElementoVoce().getTi_gestione())).filter(voceMov -> voceMov.getCd_elemento_voce().equals(voceRim.getElementoVoce().getCd_elemento_voce())).findFirst().isPresent()).findFirst().isPresent())
                                continue;
                            Elemento_voceBulk voceNew = Utility.createCRUDConfigAssEvoldEvnewComponentSession().getCurrentElementoVoce(userContext, assVoce.getElemento_voce(), it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext));
                            if (Optional.ofNullable(voceNew).flatMap(el -> Optional.ofNullable(el.getCd_elemento_voce())).isPresent()) {
                                sql.openParenthesis(FindClause.OR);
                                sql.addSQLClause(FindClause.AND, columnMapName + ".ESERCIZIO", SQLBuilder.EQUALS, voceNew.getEsercizio());
                                sql.addSQLClause(FindClause.AND, columnMapName + ".TI_APPARTENENZA", SQLBuilder.EQUALS, voceNew.getTi_appartenenza());
                                sql.addSQLClause(FindClause.AND, columnMapName + ".TI_GESTIONE", SQLBuilder.EQUALS, voceNew.getTi_gestione());
                                sql.addSQLClause(FindClause.AND, columnMapName + ".CD_ELEMENTO_VOCE", SQLBuilder.EQUALS, voceNew.getCd_elemento_voce());
                                sql.closeParenthesis();
                            }
                        }
                        // Aggiungo le voci di bilancio inserite nella rimodulazione
                        for (Progetto_rimodulazione_voceBulk assVoce : listRim.stream().filter(el -> !el.isTiOperazioneEliminato()).collect(Collectors.toList())) {
                            Elemento_voceBulk voceNew = Utility.createCRUDConfigAssEvoldEvnewComponentSession().getCurrentElementoVoce(userContext, assVoce.getElementoVoce(), it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext));
                            if (Optional.ofNullable(voceNew).flatMap(el -> Optional.ofNullable(el.getCd_elemento_voce())).isPresent()) {
                                sql.openParenthesis(FindClause.OR);
                                sql.addSQLClause(FindClause.AND, columnMapName + ".ESERCIZIO", SQLBuilder.EQUALS, voceNew.getEsercizio());
                                sql.addSQLClause(FindClause.AND, columnMapName + ".TI_APPARTENENZA", SQLBuilder.EQUALS, voceNew.getTi_appartenenza());
                                sql.addSQLClause(FindClause.AND, columnMapName + ".TI_GESTIONE", SQLBuilder.EQUALS, voceNew.getTi_gestione());
                                sql.addSQLClause(FindClause.AND, columnMapName + ".CD_ELEMENTO_VOCE", SQLBuilder.EQUALS, voceNew.getCd_elemento_voce());
                                sql.closeParenthesis();
                            }
                        }
                        sql.closeParenthesis();
                    }
                } else {
                    /*
							Progetto scaduto.
							1) devo poter movimentare solo le voci di bilancio movimentate e non associate che hanno un assestato da spostare
						*/
                    // Recupero la lista delle voci movimentate perchè se tra quelle da eliminare occorre comunque selezionarle per consentire
                    // all'utente di effettuare una variazione negativa
                    List<V_saldi_voce_progettoBulk> vociConDisponibilita = ((V_saldi_voce_progettoHome) getHome(userContext, V_saldi_voce_progettoBulk.class)).cercaSaldoVoce(optProgetto.get().getPg_progetto()).stream().filter(el -> el.getDispAssestatoFinanziamento().compareTo(BigDecimal.ZERO) > 0 || el.getDispAssestatoCofinanziamento().compareTo(BigDecimal.ZERO) > 0).collect(Collectors.toList());
                    if (vociConDisponibilita.isEmpty())
                        sql.addSQLClause(FindClause.AND, columnMapName + ".ESERCIZIO", SQLBuilder.EQUALS, -100);
                    else {
                        sql.openParenthesis(FindClause.AND);
                        vociConDisponibilita.stream().forEach(voceNew -> {
                            sql.openParenthesis(FindClause.OR);
                            sql.addSQLClause(FindClause.AND, columnMapName + ".ESERCIZIO", SQLBuilder.EQUALS, var_stanz_res_riga.getEsercizio());
                            sql.addSQLClause(FindClause.AND, columnMapName + ".TI_APPARTENENZA", SQLBuilder.EQUALS, voceNew.getTi_appartenenza());
                            sql.addSQLClause(FindClause.AND, columnMapName + ".TI_GESTIONE", SQLBuilder.EQUALS, voceNew.getTi_gestione());
                            sql.addSQLClause(FindClause.AND, columnMapName + ".CD_ELEMENTO_VOCE", SQLBuilder.EQUALS, voceNew.getCd_elemento_voce());
                            sql.closeParenthesis();
                        });
                        sql.closeParenthesis();
                    }
                }
            }
        }
        return sql;
    } catch (RemoteException e) {
        throw new ComponentException(e);
    }
}
Also used : Parametri_cdsBulk(it.cnr.contab.config00.bulk.Parametri_cdsBulk) Config(it.cnr.jada.util.Config) Var_bilancioHome(it.cnr.contab.preventvar00.bulk.Var_bilancioHome) TerzoHome(it.cnr.contab.anagraf00.core.bulk.TerzoHome) BigDecimal(java.math.BigDecimal) RimodulazioneNonApprovataException(it.cnr.contab.progettiric00.comp.RimodulazioneNonApprovataException) it.cnr.contab.progettiric00.core.bulk(it.cnr.contab.progettiric00.core.bulk) Voce_f_saldi_cdr_lineaBulk(it.cnr.contab.prevent00.bulk.Voce_f_saldi_cdr_lineaBulk) Configurazione_cnrHome(it.cnr.contab.config00.bulk.Configurazione_cnrHome) MessaggioHome(it.cnr.contab.messaggio00.bulk.MessaggioHome) UtenteBulk(it.cnr.contab.utenze00.bulk.UtenteBulk) CdsHome(it.cnr.contab.config00.sto.bulk.CdsHome) MessaggioBulk(it.cnr.contab.messaggio00.bulk.MessaggioBulk) LoggableStatement(it.cnr.jada.persistency.sql.LoggableStatement) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Serializable(java.io.Serializable) EJBException(javax.ejb.EJBException) Var_stanz_resBulk(it.cnr.contab.varstanz00.bulk.Var_stanz_resBulk) Query(it.cnr.jada.persistency.sql.Query) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) CRUDPdgVariazioneGestionaleComponent(it.cnr.contab.pdg01.comp.CRUDPdgVariazioneGestionaleComponent) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) SaldoComponentSession(it.cnr.contab.doccont00.ejb.SaldoComponentSession) UserContext(it.cnr.jada.UserContext) Var_bilancioBulk(it.cnr.contab.preventvar00.bulk.Var_bilancioBulk) java.util(java.util) ApplicationRuntimeException(it.cnr.jada.comp.ApplicationRuntimeException) SimpleDateFormat(java.text.SimpleDateFormat) Utility(it.cnr.contab.util.Utility) ICancellatoLogicamente(it.cnr.contab.util.ICancellatoLogicamente) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) InternetAddress(javax.mail.internet.InternetAddress) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) SQLException(java.sql.SQLException) Tipo_variazioneBulk(it.cnr.contab.pdg01.bulk.Tipo_variazioneBulk) NaturaBulk(it.cnr.contab.config00.pdcfin.bulk.NaturaBulk) V_struttura_organizzativaBulk(it.cnr.contab.config00.sto.bulk.V_struttura_organizzativaBulk) DateUtils(it.cnr.jada.util.DateUtils) Pdg_vincoloHome(it.cnr.contab.prevent00.bulk.Pdg_vincoloHome) WorkpackageHome(it.cnr.contab.config00.latt.bulk.WorkpackageHome) PersistencyException(it.cnr.jada.persistency.PersistencyException) 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_vincoloBulk(it.cnr.contab.prevent00.bulk.Pdg_vincoloBulk) ObbligazioneBulk(it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk) NaturaHome(it.cnr.contab.config00.pdcfin.bulk.NaturaHome) Parametri_cnrHome(it.cnr.contab.config00.bulk.Parametri_cnrHome) StatoProgettoRimodulazione(it.cnr.contab.progettiric00.enumeration.StatoProgettoRimodulazione) CompoundFindClause(it.cnr.jada.persistency.sql.CompoundFindClause) Voce_f_saldi_cdr_linea_resBulk(it.cnr.contab.prevent00.bulk.Voce_f_saldi_cdr_linea_resBulk) LoggerFactory(org.slf4j.LoggerFactory) SendMail(it.cnr.jada.util.SendMail) Var_stanz_res_rigaBulk(it.cnr.contab.varstanz00.bulk.Var_stanz_res_rigaBulk) CostantiTi_gestione(it.cnr.contab.config00.latt.bulk.CostantiTi_gestione) CRUDComponent(it.cnr.jada.comp.CRUDComponent) ParseException(java.text.ParseException) Accertamento_modificaBulk(it.cnr.contab.doccont00.core.bulk.Accertamento_modificaBulk) Ass_var_stanz_res_cdrBulk(it.cnr.contab.varstanz00.bulk.Ass_var_stanz_res_cdrBulk) ValidationException(it.cnr.jada.bulk.ValidationException) Pdg_variazioneBulk(it.cnr.contab.pdg00.bulk.Pdg_variazioneBulk) ObbligazioneHome(it.cnr.contab.doccont00.core.bulk.ObbligazioneHome) AddressException(javax.mail.internet.AddressException) 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) BulkHome(it.cnr.jada.bulk.BulkHome) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) Collectors(java.util.stream.Collectors) 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) RemoteException(java.rmi.RemoteException) Ass_var_stanz_res_cdrHome(it.cnr.contab.varstanz00.bulk.Ass_var_stanz_res_cdrHome) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) Parametri_cnrComponentSession(it.cnr.contab.config00.ejb.Parametri_cnrComponentSession) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) Utente_indirizzi_mailBulk(it.cnr.contab.utenze00.bulk.Utente_indirizzi_mailBulk) Voce_f_saldi_cdr_linea_resHome(it.cnr.contab.prevent00.bulk.Voce_f_saldi_cdr_linea_resHome) Accertamento_mod_voceBulk(it.cnr.contab.doccont00.core.bulk.Accertamento_mod_voceBulk) Broker(it.cnr.jada.persistency.Broker) V_assestato_residuoBulk(it.cnr.contab.prevent00.bulk.V_assestato_residuoBulk) UtenteHome(it.cnr.contab.utenze00.bulk.UtenteHome) FindClause(it.cnr.jada.persistency.sql.FindClause) SQLExceptionHandler(it.cnr.jada.persistency.sql.SQLExceptionHandler) Esercizio_baseHome(it.cnr.contab.config00.esercizio.bulk.Esercizio_baseHome) CdrKey(it.cnr.contab.config00.sto.bulk.CdrKey) Voce_fBulk(it.cnr.contab.config00.pdcfin.bulk.Voce_fBulk) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) ApplicationException(it.cnr.jada.comp.ApplicationException) Logger(org.slf4j.Logger) Unita_organizzativa_enteBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk) CdsBulk(it.cnr.contab.config00.sto.bulk.CdsBulk) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) Utente_indirizzi_mailHome(it.cnr.contab.utenze00.bulk.Utente_indirizzi_mailHome) ComponentException(it.cnr.jada.comp.ComponentException) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) BulkList(it.cnr.jada.bulk.BulkList) Parametri_cnrHome(it.cnr.contab.config00.bulk.Parametri_cnrHome) ApplicationException(it.cnr.jada.comp.ApplicationException) ComponentException(it.cnr.jada.comp.ComponentException) RemoteException(java.rmi.RemoteException) Parametri_cnrBulk(it.cnr.contab.config00.bulk.Parametri_cnrBulk)

Aggregations

BulkList (it.cnr.jada.bulk.BulkList)14 OggettoBulk (it.cnr.jada.bulk.OggettoBulk)14 BigDecimal (java.math.BigDecimal)14 ComponentException (it.cnr.jada.comp.ComponentException)13 Elemento_voceHome (it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome)12 Voce_piano_economico_prgBulk (it.cnr.contab.progettiric00.tabrif.bulk.Voce_piano_economico_prgBulk)12 CNRUserContext (it.cnr.contab.utenze00.bp.CNRUserContext)12 Utility (it.cnr.contab.util.Utility)12 ApplicationException (it.cnr.jada.comp.ApplicationException)12 RemoteException (java.rmi.RemoteException)12 Optional (java.util.Optional)12 Elemento_voceBulk (it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk)11 ApplicationRuntimeException (it.cnr.jada.comp.ApplicationRuntimeException)11 List (java.util.List)11 Unita_organizzativaBulk (it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk)10 DetailedRuntimeException (it.cnr.jada.DetailedRuntimeException)10 CompoundFindClause (it.cnr.jada.persistency.sql.CompoundFindClause)10 Collectors (java.util.stream.Collectors)10 Pdg_variazioneBulk (it.cnr.contab.pdg00.bulk.Pdg_variazioneBulk)9 Var_stanz_resBulk (it.cnr.contab.varstanz00.bulk.Var_stanz_resBulk)9