Search in sources :

Example 1 with RestException

use of it.cnr.contab.web.rest.exception.RestException in project sigla-main by consiglionazionaledellericerche.

the class TerzoResource method tipoRapporto.

@Override
public Response tipoRapporto(String codicefiscale) throws Exception {
    CNRUserContext userContext = (CNRUserContext) securityContext.getUserPrincipal();
    Optional.ofNullable(codicefiscale).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Errore, indicare il codice fiscale."));
    final List<AnagraficoBulk> anagraficoBulks = crudComponentSession.find(userContext, AnagraficoBulk.class, "findByCodiceFiscaleOrPartitaIVA", codicefiscale, null);
    return Response.status(Status.OK).entity(crudComponentSession.find(userContext, AnagraficoBulk.class, "findRapporti", anagraficoBulks.stream().findAny().orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Errore, nessun anagrafico trovato per il codice fiscale indicato.")))).build();
}
Also used : AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) RestException(it.cnr.contab.web.rest.exception.RestException) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext)

Example 2 with RestException

use of it.cnr.contab.web.rest.exception.RestException in project sigla-main by consiglionazionaledellericerche.

the class ContrattoResource method insertContratto.

public Response insertContratto(@Context HttpServletRequest request, ContrattoDtoBulk contrattoBulk) throws Exception {
    CNRUserContext userContext = (CNRUserContext) securityContext.getUserPrincipal();
    Optional.ofNullable(contrattoBulk.getEsercizio()).filter(x -> userContext.getEsercizio().equals(x)).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Esercizio del contesto diverso da quello del Contratto"));
    Optional.ofNullable(contrattoBulk.getEsercizio()).orElse(getYearFromToday());
    ContrattoBulk contrattoBulkSigla = creaContrattoSigla(contrattoBulk, userContext);
    contrattoBulkSigla.setStato(ContrattoBulk.STATO_PROVVISORIO);
    if (contrattoBulkSigla.getCd_unita_organizzativa() != null) {
        if (contrattoBulkSigla.getCd_unita_organizzativa().length() == 6) {
            contrattoBulkSigla.setCd_unita_organizzativa(contrattoBulkSigla.getCd_unita_organizzativa().substring(0, 3) + "." + contrattoBulkSigla.getCd_unita_organizzativa().substring(3));
        } else {
            throw new RestException(Status.BAD_REQUEST, String.format("L'Unita Organizzativa indicata %s non è conforme con il formato atteso", contrattoBulkSigla.getCd_unita_organizzativa()));
        }
    } else {
        throw new RestException(Status.BAD_REQUEST, "Unita Organizzativa non indicata");
    }
    contrattoBulkSigla.setNatura_contabile(ContrattoBulk.NATURA_CONTABILE_PASSIVO);
    contrattoBulkSigla.setAtto(new Tipo_atto_amministrativoBulk());
    contrattoBulkSigla.setCd_tipo_atto("DET");
    final ContrattoBulk contratto = (ContrattoBulk) contrattoComponentSession.inizializzaBulkPerInserimento(userContext, contrattoBulkSigla);
    contratto.setToBeCreated();
    ContrattoBulk contrattoCreated = (ContrattoBulk) contrattoComponentSession.creaContrattoDaFlussoAcquisti(userContext, contratto);
    contrattoBulk.setPg_contratto(contrattoCreated.getPg_contratto());
    return Response.status(Status.CREATED).entity(contrattoBulk).build();
}
Also used : TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) UserContext(it.cnr.jada.UserContext) java.util(java.util) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) CupBulk(it.cnr.contab.doccont00.tabrif.bulk.CupBulk) ContrattoLocal(it.cnr.contab.web.rest.local.config00.ContrattoLocal) ContrattoDatiSintesiBulk(it.cnr.contab.config00.contratto.bulk.ContrattoDatiSintesiBulk) SecurityContext(javax.ws.rs.core.SecurityContext) LoggerFactory(org.slf4j.LoggerFactory) Unita_organizzativaComponentSession(it.cnr.contab.config00.ejb.Unita_organizzativaComponentSession) HttpServletRequest(javax.servlet.http.HttpServletRequest) QueryParam(javax.ws.rs.QueryParam) CRUDComponentSession(it.cnr.jada.ejb.CRUDComponentSession) Status(javax.ws.rs.core.Response.Status) EJB(javax.ejb.EJB) ValidationException(it.cnr.jada.bulk.ValidationException) Stateless(javax.ejb.Stateless) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) PersistencyException(it.cnr.jada.persistency.PersistencyException) Context(javax.ws.rs.core.Context) Logger(org.slf4j.Logger) ContrattoDtoBulk(it.cnr.contab.web.rest.model.ContrattoDtoBulk) ContrattoComponentSession(it.cnr.contab.config00.ejb.ContrattoComponentSession) UoAbilitataExt(it.cnr.contab.web.rest.model.UoAbilitataExt) it.cnr.contab.config00.contratto.bulk(it.cnr.contab.config00.contratto.bulk) Timestamp(java.sql.Timestamp) Contratto(it.cnr.contab.client.docamm.Contratto) RemoteException(java.rmi.RemoteException) EJBException(javax.ejb.EJBException) ProgettoBulk(it.cnr.contab.progettiric00.core.bulk.ProgettoBulk) Response(javax.ws.rs.core.Response) RestException(it.cnr.contab.web.rest.exception.RestException) DittaInvitataExt(it.cnr.contab.web.rest.model.DittaInvitataExt) NazioneBulk(it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk) MandatoComunicaDatiBulk(it.cnr.contab.doccont00.core.bulk.MandatoComunicaDatiBulk) CupHome(it.cnr.contab.doccont00.tabrif.bulk.CupHome) ComponentException(it.cnr.jada.comp.ComponentException) V_persona_fisicaBulk(it.cnr.contab.anagraf00.core.bulk.V_persona_fisicaBulk) RestException(it.cnr.contab.web.rest.exception.RestException) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext)

Example 3 with RestException

use of it.cnr.contab.web.rest.exception.RestException in project sigla-main by consiglionazionaledellericerche.

the class FatturaAttivaResource method inserisciFatture.

@SuppressWarnings("unchecked")
@Override
public Response inserisciFatture(@Context HttpServletRequest request, List<FatturaAttiva> fatture) throws Exception {
    LOGGER.debug("REST request per inserire fatture attive.");
    List<Fattura_attivaBulk> fattureCreate = new ArrayList<Fattura_attivaBulk>();
    CNRUserContext userContext = (CNRUserContext) securityContext.getUserPrincipal();
    fatture.stream().forEach(fattura -> {
        Fattura_attivaBulk testata;
        Optional.ofNullable(fattura.getEsercizio()).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Errore, Esercizio obbligatorio!"));
        Optional.ofNullable(fattura.getCd_cds_origine()).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Errore, Cds origine obbligatorio!"));
        Optional.ofNullable(fattura.getCd_uo_origine()).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Errore, UO origine obbligatoria!"));
        Optional.ofNullable(fattura.getEsercizio()).filter(x -> userContext.getEsercizio().equals(x)).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Esercizio del contesto diverso da quello della Fattura!"));
        Optional.ofNullable(fattura.getCd_cds_origine()).filter(x -> userContext.getCd_cds().equals(x)).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "CdS del contesto diverso da quello della Fattura!"));
        Optional.ofNullable(fattura.getCd_uo_origine()).filter(x -> userContext.getCd_unita_organizzativa().equals(x)).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Unità Organizzativa del contesto diversa da quella della Fattura!"));
        Optional.ofNullable(fattura.getTi_causale_emissione()).filter(x -> Stream.of("C", "L", "T").anyMatch(y -> y.equals(x))).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Causale emissione non valida!"));
        Optional.ofNullable(fattura.getTi_bene_servizio()).filter(x -> Stream.of("B", "S", "*").anyMatch(y -> y.equals(x))).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Tipologia bene/servizio non valida!"));
        Optional.ofNullable(fattura.getTi_fattura()).filter(x -> Stream.of(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO, Fattura_attivaBulk.TIPO_FATTURA_ATTIVA).anyMatch(y -> y.equals(x))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_99));
        if (fattura.getTi_fattura().equals(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO)) {
            testata = new Nota_di_credito_attivaBulk();
        } else {
            testata = new Fattura_attiva_IBulk();
        }
        testata.setToBeCreated();
        testata.setEsercizio(fattura.getEsercizio());
        testata.setTi_fattura(fattura.getTi_fattura());
        testata.setCd_cds_origine(fattura.getCd_cds_origine());
        testata.setTi_bene_servizio(fattura.getTi_bene_servizio());
        testata.setFl_pagamento_anticipato(Optional.ofNullable(fattura.getFl_pagamento_anticipato()).orElse("N"));
        testata.setCd_uo_origine(fattura.getCd_uo_origine());
        testata.setPg_fattura_esterno(fattura.getPg_fattura_esterno());
        testata.setFl_intra_ue(Optional.ofNullable(fattura.getFl_intra_ue()).orElse(Boolean.FALSE));
        testata.setFl_extra_ue(Optional.ofNullable(fattura.getFl_extra_ue()).orElse(Boolean.FALSE));
        testata.setFl_san_marino(Optional.ofNullable(fattura.getFl_san_marino()).orElse(Boolean.FALSE));
        Optional.of(Stream.of(Optional.ofNullable(fattura.getFl_intra_ue()).orElse(Boolean.FALSE), Optional.ofNullable(fattura.getFl_extra_ue()).orElse(Boolean.FALSE), Optional.ofNullable(fattura.getFl_san_marino()).orElse(Boolean.FALSE)).filter(x -> x.equals(Boolean.TRUE)).count()).filter(x -> x <= 1).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_129));
        Optional.of((Optional.ofNullable(fattura.getFl_intra_ue()).orElse(Boolean.FALSE) || Optional.ofNullable(fattura.getFl_extra_ue()).orElse(Boolean.FALSE)) && fattura.getTi_bene_servizio().equals("*")).filter(x -> x.equals(Boolean.FALSE)).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_142));
        try {
            userContext.setTransactional(true);
            // richiesta dall'inizializza (Fattura_attiva_IBulk)
            testata = (Fattura_attivaBulk) fatturaAttivaSingolaComponentSession.inizializzaBulkPerInserimento(userContext, testata);
            fatturaAttivaSingolaComponentSession.setSavePoint(userContext, FATTURA_AUTOMATICA);
            // potrebbe non essere univoca per tipologia
            Optional.of(fatturaAttivaSingolaComponentSession.verificaDuplicati(userContext, testata)).filter(x -> x.equals(Boolean.FALSE)).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_102));
            testata.setTipo_sezionale(new Tipo_sezionaleBulk(fattura.getCd_tipo_sezionale()));
            Optional.of(testata.getSezionali().stream().filter(x -> x.getCd_tipo_sezionale().equals(fattura.getCd_tipo_sezionale())).count()).filter(x -> x == 1).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_127));
            testata.setDt_registrazione(Optional.ofNullable(fattura.getDt_registrazione()).map(date -> new Timestamp(date.getTime())).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_152)));
            testata.setTi_causale_emissione(fattura.getTi_causale_emissione());
            testata.setFl_liquidazione_differita(fattura.getFl_liquidazione_differita());
            testata.setDs_fattura_attiva(fattura.getDs_fattura_attiva());
            testata.setRiferimento_ordine(fattura.getRif_ordine());
            testata.setCliente(new TerzoBulk(fattura.getCd_terzo()));
            testata.setCliente((TerzoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, testata.getCliente()));
            Optional.ofNullable(testata.getCliente()).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_105));
            Optional.of(testata.getCliente().getAnagrafico().getTi_italiano_estero().equals(testata.getSupplierNationType())).filter(x -> x.equals(Boolean.FALSE)).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_140));
            testata.setCd_terzo(fattura.getCd_terzo());
            testata = fatturaAttivaSingolaComponentSession.completaTerzo(userContext, testata, testata.getCliente());
            Optional.of(Stream.of(testata.getCliente().isAnagraficoScaduto(), testata.getCliente().getTi_terzo().equals(TerzoBulk.CREDITORE), testata.getCliente().getAnagrafico().getTi_entita().equals(AnagraficoBulk.DIVERSI)).filter(x -> x.equals(Boolean.TRUE)).count()).filter(x -> x == 0).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_125));
            Optional.ofNullable(fattura.getFl_liquidazione_differita()).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_124));
            testata.setFl_liquidazione_differita(fattura.getFl_liquidazione_differita());
            Optional.of(testata).filter(x -> !(x.getFl_liquidazione_differita().equals(Boolean.TRUE) && !x.getFl_liquidazione_differita().equals(x.getCliente().getAnagrafico().getFl_fatturazione_differita()))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_124));
            Optional.of(testata).filter(x -> x.getCd_terzo_uo_cds().equals(fattura.getCd_terzo_uo_cds())).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_133));
            testata.setCd_modalita_pag_uo_cds(fattura.getCd_modalita_pag_uo_cds());
            testata.setModalita_pagamento_uo(((Rif_modalita_pagamentoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Rif_modalita_pagamentoBulk(fattura.getCd_modalita_pag_uo_cds()))));
            Optional.ofNullable(testata.getModalita_pagamento_uo()).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_132));
            testata.setPg_banca_uo_cds(Optional.ofNullable(fattura.getPg_banca_uo_cds()).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_134)));
            testata.setBanca_uo(((BancaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new BancaBulk(testata.getCd_terzo_uo_cds(), testata.getPg_banca_uo_cds()))));
            Configurazione_cnrBulk config = configurazione_cnrComponentSession.getConfigurazione(userContext, 0, "*", CONTO_CORRENTE_SPECIALE, ENTE);
            if (Rif_modalita_pagamentoBulk.BANCARIO.equals(testata.getModalita_pagamento_uo().getTi_pagamento())) {
                Optional.of(Stream.of(testata.getBanca_uo().getAbi().equalsIgnoreCase(config.getVal01()), testata.getBanca_uo().getCab().equalsIgnoreCase(config.getVal02()), testata.getBanca_uo().getNumero_conto().contains(config.getVal03())).filter(x -> x.equals(Boolean.FALSE)).count()).filter(x -> x == 0).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_134));
            }
            List<BancaBulk> listaBanche = fatturaAttivaSingolaComponentSession.findListaBancheWS(userContext, String.valueOf(testata.getCd_terzo_uo_cds()), testata.getModalita_pagamento_uo().getCd_modalita_pag(), "", "", "");
            listaBanche.stream().filter(banca -> banca.getPg_banca().equals(fattura.getPg_banca_uo_cds())).findFirst().orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_134));
            if ((testata.getTi_fattura().equals(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO))) {
                Optional.ofNullable(fattura.getCd_modalita_pag()).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_111));
                ((Nota_di_credito_attivaBulk) testata).setModalita_pagamento(Optional.ofNullable((Rif_modalita_pagamentoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Rif_modalita_pagamentoBulk(fattura.getCd_modalita_pag()))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_111)));
                Optional.ofNullable(fattura.getPg_banca()).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_110));
                ((Nota_di_credito_attivaBulk) testata).setBanca(Optional.ofNullable((BancaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new BancaBulk(testata.getCd_terzo(), fattura.getPg_banca()))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_118)));
                listaBanche = fatturaAttivaSingolaComponentSession.findListaBancheWS(userContext, String.valueOf(testata.getCd_terzo()), ((Nota_di_credito_attivaBulk) testata).getModalita_pagamento().getCd_modalita_pag(), "", "", "");
                listaBanche.stream().filter(banca -> banca.getPg_banca().equals(fattura.getPg_banca())).findFirst().orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_118));
            }
            testata.setCd_divisa(Optional.ofNullable(fattura.getCd_divisa()).orElse("EURO"));
            testata.setCambio(Optional.ofNullable(fattura.getCambio()).orElse(BigDecimal.ONE));
            testata.setNote(fattura.getNote());
            testata.validate();
            java.util.ArrayList<FatturaAttivaRiga> listOfRighe = Optional.ofNullable(fattura.getRighefat()).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_98));
            for (FatturaAttivaRiga fatr : listOfRighe) {
                Fattura_attiva_rigaBulk riga = new Fattura_attiva_rigaIBulk();
                if ((testata.getTi_fattura().equals(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO))) {
                    riga = new Nota_di_credito_attiva_rigaBulk();
                }
                testata.addToFattura_attiva_dettColl(riga);
                riga.setToBeCreated();
                Optional.ofNullable(fatr.getCd_bene_servizio()).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_139));
                riga.setBene_servizio(Optional.ofNullable((Bene_servizioBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Bene_servizioBulk(fatr.getCd_bene_servizio()))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_139)));
                Optional.of(Stream.of(fattura.getTi_bene_servizio().equals("*"), riga.getBene_servizio().getTi_bene_servizio().equals(fattura.getTi_bene_servizio())).filter(x -> x.equals(Boolean.TRUE)).count()).filter(x -> x == 0).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_141));
                if (testata.getTi_causale_emissione().equals(Fattura_attivaBulk.TARIFFARIO)) {
                    Optional.ofNullable(fatr.getCd_tariffario()).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_103));
                    riga.setCd_tariffario(fatr.getCd_tariffario());
                    riga.setTariffario(Optional.ofNullable(fatturaAttivaSingolaComponentSession.findTariffario(userContext, riga)).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_128)));
                    riga.setVoce_iva(riga.getTariffario().getVoce_iva());
                    riga.setVoce_iva(Optional.ofNullable((Voce_ivaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, riga.getVoce_iva())).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_106)));
                    riga.setPrezzo_unitario(riga.getTariffario().getIm_tariffario());
                    riga.setQuantita(new BigDecimal(riga.getTariffario().getUnita_misura()));
                    riga.setIm_imponibile(riga.getPrezzo_unitario().multiply(riga.getQuantita()));
                    if (Optional.ofNullable(fatr.getFl_iva_forzata()).orElse(Boolean.FALSE)) {
                        riga.setIm_iva(fatr.getIm_iva());
                    } else {
                        riga.setIm_iva(riga.getIm_imponibile().multiply(riga.getVoce_iva().getPercentuale()).divide(new BigDecimal(100)).setScale(2, java.math.BigDecimal.ROUND_HALF_UP));
                    }
                    riga.setIm_totale_divisa(riga.getIm_imponibile().add(riga.getIm_iva()));
                    riga.setIm_diponibile_nc(riga.getIm_totale_divisa());
                    riga.setDs_riga_fattura(riga.getTariffario().getDs_tariffario());
                } else {
                    riga.setPrezzo_unitario(Optional.ofNullable(fatr.getPrezzo_unitario()).orElse(BigDecimal.ZERO));
                    riga.setQuantita(Optional.ofNullable(fatr.getQuantita()).orElse(BigDecimal.ZERO));
                    riga.setVoce_iva(Optional.ofNullable((Voce_ivaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Voce_ivaBulk(fatr.getCd_voce_iva()))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_106)));
                    riga.setIm_imponibile(riga.getPrezzo_unitario().multiply(riga.getQuantita()));
                    if (Optional.ofNullable(fatr.getFl_iva_forzata()).orElse(Boolean.FALSE)) {
                        riga.setIm_iva(fatr.getIm_iva());
                    } else {
                        riga.setIm_iva(riga.getIm_imponibile().multiply(riga.getVoce_iva().getPercentuale()).divide(new BigDecimal(100)).setScale(2, java.math.BigDecimal.ROUND_HALF_UP));
                    }
                    riga.setIm_totale_divisa(riga.getIm_imponibile().add(riga.getIm_iva()));
                    riga.setIm_diponibile_nc(riga.getIm_totale_divisa());
                    riga.setDs_riga_fattura(Optional.ofNullable(fatr.getDs_riga_fattura()).orElse(null));
                    if ((testata.getTi_fattura().equals(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO))) {
                        Optional.of(Stream.of(fatr.getPg_fattura_assncna_fin() != null, fatr.getPg_riga_assncna_fin() != null, fatr.getEsercizio_assncna_fin() != null).filter(x -> x.equals(Boolean.FALSE)).count()).filter(x -> x == 0).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_109));
                        ((Nota_di_credito_attiva_rigaBulk) riga).setRiga_fattura_associata(Optional.ofNullable((Fattura_attiva_rigaIBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Fattura_attiva_rigaIBulk(testata.getCd_cds(), testata.getCd_unita_organizzativa(), fatr.getEsercizio_assncna_fin(), fatr.getPg_fattura_assncna_fin(), fatr.getPg_riga_assncna_fin()))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_109)));
                        Fattura_attiva_rigaIBulk rigaFP = ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata();
                        BigDecimal nuovoImportoDisponibile = rigaFP.getIm_diponibile_nc().subtract(riga.getIm_totale_divisa());
                        if (nuovoImportoDisponibile.compareTo(BigDecimal.ZERO) < 0) {
                            throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_117);
                        } else {
                            rigaFP.setIm_diponibile_nc(nuovoImportoDisponibile.setScale(2, BigDecimal.ROUND_HALF_UP));
                            ((Nota_di_credito_attiva_rigaBulk) riga).setRiga_fattura_associata(rigaFP);
                        }
                        rigaFP.setFattura_attivaI((Fattura_attiva_IBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Fattura_attiva_IBulk(testata.getCd_cds(), testata.getCd_unita_organizzativa(), rigaFP.getEsercizio(), rigaFP.getPg_fattura_attiva())));
                        rigaFP.getFattura_attivaI().setCliente((TerzoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, rigaFP.getFattura_attivaI().getCliente()));
                        // Controllo codice iva coerente fattura - NC
                        if (rigaFP != null && rigaFP.getCd_voce_iva() != null && rigaFP.getCd_voce_iva().compareTo(riga.getCd_voce_iva()) != 0)
                            throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_120);
                        // controllo causale emissione coerente fattura - Nc
                        if (rigaFP != null && rigaFP.getFattura_attivaI().getTi_causale_emissione() != null && rigaFP.getFattura_attivaI().getTi_causale_emissione().compareTo(riga.getFattura_attiva().getTi_causale_emissione()) != 0)
                            throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_121);
                        // controllo sezionale coerente fattura - Nc
                        if (rigaFP != null && rigaFP.getFattura_attivaI().getTipo_sezionale() != null && rigaFP.getFattura_attivaI().getTipo_sezionale().getCd_tipo_sezionale().compareTo(riga.getFattura_attiva().getTipo_sezionale().getCd_tipo_sezionale()) != 0)
                            throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_122);
                        // controllo tariffario coerente fattura - Nc
                        if (rigaFP != null && rigaFP.getCd_tariffario() != null && rigaFP.getCd_tariffario().compareTo(riga.getCd_tariffario()) != 0)
                            // controllo flag coerente fattura - Nc
                            throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_123);
                        if (rigaFP != null && (rigaFP.getFattura_attivaI().getFl_extra_ue().compareTo(riga.getFattura_attiva().getFl_extra_ue()) != 0 || rigaFP.getFattura_attivaI().getFl_intra_ue().compareTo(riga.getFattura_attiva().getFl_intra_ue()) != 0 || rigaFP.getFattura_attivaI().getFl_san_marino().compareTo(riga.getFattura_attiva().getFl_san_marino()) != 0 || rigaFP.getFattura_attivaI().getFl_liquidazione_differita().compareTo(riga.getFattura_attiva().getFl_liquidazione_differita()) != 0))
                            throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_126);
                        testata.setCd_cds(testata.getCd_cds_origine());
                        testata.setCd_unita_organizzativa(testata.getCd_uo_origine());
                    }
                    riga.setFl_iva_forzata(fatr.getFl_iva_forzata());
                    riga.setUtcr(testata.getUtcr());
                    fatr.setProgressivo_riga(riga.getProgressivo_riga());
                    if (!(testata.getTi_fattura().compareTo(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO) == 0)) {
                        AccertamentoBulk acc = new AccertamentoBulk();
                        acc.setToBeCreated();
                        acc.setEsercizio(riga.getEsercizio());
                        acc.setEsercizio_originale(riga.getEsercizio());
                        acc.setCd_cds(riga.getCd_cds());
                        acc.setCd_unita_organizzativa(riga.getCd_unita_organizzativa());
                        acc.setCd_cds_origine(testata.getCd_cds_origine());
                        acc.setCd_uo_origine(testata.getCd_uo_origine());
                        acc.setCd_tipo_documento_cont(Numerazione_doc_contBulk.TIPO_ACR);
                        acc.setFl_pgiro(new Boolean(false));
                        acc.setRiportato("N");
                        acc.setFromDocAmm(new Boolean(true));
                        acc.setFl_calcolo_automatico(new Boolean(false));
                        acc.setUtcr(testata.getUtcr());
                        acc.setUser(testata.getUtcr());
                        Elemento_voceBulk voce = new Elemento_voceBulk();
                        voce.setEsercizio(acc.getEsercizio());
                        voce.setTi_appartenenza(Elemento_voceHome.APPARTENENZA_CNR);
                        voce.setTi_gestione(Elemento_voceHome.GESTIONE_ENTRATE);
                        voce.setCd_elemento_voce(fatr.getCd_voce());
                        voce = Optional.ofNullable(((Elemento_voceBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, voce))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_107));
                        acc.setCapitolo(new V_voce_f_partita_giroBulk(voce.getCd_voce(), voce.getEsercizio(), voce.getTi_appartenenza(), voce.getTi_gestione()));
                        acc.setTi_appartenenza(voce.getTi_appartenenza());
                        acc.setTi_gestione(voce.getTi_gestione());
                        acc.setCd_elemento_voce(voce.getCd_elemento_voce());
                        acc.setCd_voce(fatr.getCd_voce());
                        Elemento_voceBulk v = new Elemento_voceBulk(voce.getCd_elemento_voce(), voce.getEsercizio(), voce.getTi_appartenenza(), voce.getTi_gestione());
                        v = ((Elemento_voceBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, v));
                        if (v.getFl_solo_residuo())
                            throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_107);
                        // acc.setDt_registrazione(testata.getDt_registrazione());
                        // /?????
                        acc.setDt_registrazione((DateUtils.truncate(new Timestamp(Optional.ofNullable(fatr.getDt_scadenza()).map(date -> date.getTime()).orElse(ZonedDateTime.of(LocalDateTime.now(), ZoneId.systemDefault()).toInstant().toEpochMilli())))));
                        acc.setDs_accertamento(Optional.ofNullable(fatr.getDs_accertamento()).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_153)));
                        // ??? importo riga?????
                        if (fatturaAttivaSingolaComponentSession.isAttivoSplitPayment(userContext, testata.getDt_registrazione()) && testata.getFl_liquidazione_differita())
                            acc.setIm_accertamento(riga.getIm_imponibile());
                        else
                            acc.setIm_accertamento(riga.getIm_totale_divisa());
                        acc.setCd_terzo(testata.getCd_terzo());
                        acc.setEsercizio_competenza(testata.getEsercizio());
                        Accertamento_scadenzarioBulk acc_scadenza = new Accertamento_scadenzarioBulk();
                        acc_scadenza.setUtcr(acc.getUtcr());
                        acc_scadenza.setToBeCreated();
                        acc_scadenza.setAccertamento(acc);
                        acc_scadenza.setDt_scadenza_incasso(acc.getDt_registrazione());
                        acc_scadenza.setDs_scadenza(acc.getDs_accertamento());
                        acc.addToAccertamento_scadenzarioColl(acc_scadenza);
                        acc_scadenza.setIm_scadenza(acc.getIm_accertamento());
                        acc_scadenza.setIm_associato_doc_amm(acc.getIm_accertamento());
                        acc_scadenza.setIm_associato_doc_contabile(new BigDecimal(0));
                        if (fatr.getEsercizio_contratto() != null && fatr.getStato_contratto() != null && fatr.getPg_contratto() != null) {
                            acc.setContratto(new ContrattoBulk(fatr.getEsercizio_contratto(), fatr.getStato_contratto(), fatr.getPg_contratto()));
                            acc.setContratto((ContrattoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, acc.getContratto()));
                            Optional.ofNullable(acc.getContratto()).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_104));
                            acc.setCheckDisponibilitaContrattoEseguito(true);
                        } else {
                            if ((fatr.getEsercizio_contratto() != null || fatr.getStato_contratto() != null || fatr.getPg_contratto() != null) && (fatr.getEsercizio_contratto() == null && fatr.getStato_contratto() == null && fatr.getPg_contratto() == null))
                                throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_108);
                        }
                        List<FatturaAttivaScad> listOfScad = Optional.ofNullable(fatr.getRighescadvoc()).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_98));
                        for (FatturaAttivaScad fatrs : listOfScad) {
                            Accertamento_scad_voceBulk acc_scad_voce = new Accertamento_scad_voceBulk();
                            acc_scad_voce.setUtcr(testata.getUtcr());
                            acc_scad_voce.setToBeCreated();
                            acc_scad_voce.setAccertamento_scadenzario(acc_scadenza);
                            if (fatturaAttivaSingolaComponentSession.isAttivoSplitPayment(userContext, testata.getDt_registrazione()) && testata.getFl_liquidazione_differita()) {
                                if (listOfScad.size() != 1) {
                                    throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_98);
                                }
                                acc_scad_voce.setIm_voce(acc.getIm_accertamento());
                            } else {
                                acc_scad_voce.setIm_voce(fatrs.getIm_voce());
                            }
                            CdrBulk cdr_db = new CdrBulk();
                            cdr_db = (((CdrBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new CdrBulk(fatrs.getCdr()))));
                            Optional.ofNullable(cdr_db).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_136));
                            acc_scad_voce.setLinea_attivita(((WorkpackageBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new WorkpackageBulk(fatrs.getCdr(), fatrs.getGae()))));
                            if (acc_scad_voce.getLinea_attivita() != null) {
                                if (acc_scad_voce.getLinea_attivita().getTi_gestione().compareTo(acc.getTi_gestione()) != 0)
                                    throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_138);
                                acc_scadenza.getAccertamento_scad_voceColl().add((acc_scad_voce));
                            } else {
                                throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_137);
                            }
                        }
                        // fine for listOfScad
                        acc = (AccertamentoBulk) accertamentoComponentSession.creaConBulk(userContext, acc);
                        fatr.setPg_accertamento_scadenzario(acc.getAccertamento_scadenzarioColl().get(0).getPg_accertamento_scadenzario());
                        for (Accertamento_scadenzarioBulk scad : acc.getAccertamento_scadenzarioColl()) {
                            BulkList<Fattura_attiva_rigaBulk> righesel = new BulkList<Fattura_attiva_rigaBulk>();
                            righesel.add(riga);
                            testata = fatturaAttivaSingolaComponentSession.contabilizzaDettagliSelezionati(userContext, testata, righesel, scad);
                            // testata.addToFattura_attiva_accertamentiHash(scad, riga);
                            testata.addToDefferredSaldi(scad.getAccertamento(), scad.getAccertamento().getSaldiInfo());
                        }
                        // intrastat
                        List<FatturaAttivaIntra> listOfIntra = fattura.getRigheIntra();
                        boolean obbligatorio = false;
                        for (Fattura_attiva_rigaBulk dettaglio : testata.getFattura_attiva_dettColl()) {
                            if (dettaglio.getBene_servizio() != null && dettaglio.getBene_servizio().getFl_obb_intrastat_ven().booleanValue())
                                obbligatorio = true;
                        }
                        if (fattura.getFl_intra_ue() != null && fattura.getFl_intra_ue().booleanValue()) {
                            if (listOfIntra != null && !listOfIntra.isEmpty() && testata.getCliente() != null && testata.getCliente().getAnagrafico() != null && testata.getCliente().getAnagrafico().getPartita_iva() != null && obbligatorio) {
                                for (FatturaAttivaIntra intra : listOfIntra) {
                                    Fattura_attiva_intraBulk fa_intra = new Fattura_attiva_intraBulk();
                                    fa_intra.setUtcr(testata.getUtcr());
                                    fa_intra.setToBeCreated();
                                    fa_intra.setFattura_attiva(testata);
                                    if (testata.getTi_bene_servizio().compareTo(Bene_servizioBulk.SERVIZIO) == 0) {
                                        fa_intra.setModalita_erogazione(((Modalita_erogazioneBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Modalita_erogazioneBulk(testata.getEsercizio(), intra.getCod_erogazione()))));
                                        Optional.ofNullable(fa_intra.getModalita_erogazione()).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_143));
                                        fa_intra.setModalita_incasso(Optional.ofNullable(((Modalita_incassoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Modalita_incassoBulk(testata.getEsercizio(), intra.getCod_incasso())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_144)));
                                        fa_intra.setCodici_cpa(Optional.ofNullable(((Codici_cpaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Codici_cpaBulk(intra.getId_cpa())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_145)));
                                        if (!fa_intra.getCodici_cpa().getEsercizio().equals(testata.getEsercizio())) {
                                            throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_145);
                                        }
                                    } else {
                                        // per il momento non richiesto da Pisa da testare totalmente anche i WS di servizio
                                        fa_intra.setNomenclatura_combinata(Optional.ofNullable(((Nomenclatura_combinataBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Nomenclatura_combinataBulk(intra.getId_nomenclatura_combinata())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_147)));
                                        if (!fa_intra.getNomenclatura_combinata().getEsercizio().equals(testata.getEsercizio())) {
                                            throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_147);
                                        }
                                        fa_intra.setNatura_transazione(Optional.ofNullable(((Natura_transazioneBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Natura_transazioneBulk(intra.getId_natura_transazione())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_148)));
                                        fa_intra.setCondizione_consegna(Optional.ofNullable(((Condizione_consegnaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Condizione_consegnaBulk(intra.getCd_consegna(), testata.getEsercizio())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_149)));
                                        fa_intra.setModalita_trasporto(Optional.ofNullable(((Modalita_trasportoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Modalita_trasportoBulk(intra.getCd_trasporto(), testata.getEsercizio())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_150)));
                                        fa_intra.setProvincia_origine(Optional.ofNullable(((ProvinciaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new ProvinciaBulk(intra.getCd_provincia())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_151)));
                                        if (intra.getMassa() != null)
                                            fa_intra.setMassa_netta(intra.getMassa());
                                        if (intra.getValore_statistico() != null)
                                            fa_intra.setValore_statistico(intra.getValore_statistico());
                                        if (intra.getUnita_supplementari() != null)
                                            fa_intra.setUnita_supplementari(intra.getUnita_supplementari());
                                    }
                                    fa_intra.setNazione_destinazione(Optional.ofNullable(((NazioneBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new NazioneBulk(intra.getPg_nazione())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_146)));
                                    fa_intra.setAmmontare_euro(intra.getAmmontare_euro());
                                    fa_intra.setFl_inviato(false);
                                    testata.getFattura_attiva_intrastatColl().add(fa_intra);
                                }
                            // fine for listOfIntra
                            }
                        // fine if intra
                        }
                    // fine intrastat
                    } else {
                        // fine non Nota Credito
                        // Nota Credito
                        ObbligazioneBulk obb = new ObbligazioneBulk();
                        obb.setToBeCreated();
                        obb.setEsercizio(riga.getEsercizio());
                        obb.setEsercizio_originale(riga.getEsercizio());
                        obb.setCds((it.cnr.contab.config00.sto.bulk.CdsBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new CdsBulk(riga.getCd_cds())));
                        obb.setCd_unita_organizzativa(riga.getCd_unita_organizzativa());
                        obb.setCd_cds_origine(testata.getCd_cds_origine());
                        obb.setCd_uo_origine(testata.getCd_uo_origine());
                        obb.setCd_tipo_documento_cont(Numerazione_doc_contBulk.TIPO_OBB);
                        obb.setFl_pgiro(new Boolean(false));
                        obb.setRiportato("N");
                        obb.setFromDocAmm(new Boolean(true));
                        obb.setFl_calcolo_automatico(new Boolean(false));
                        obb.setFl_spese_costi_altrui(new Boolean(false));
                        obb.setFl_gara_in_corso(new Boolean(false));
                        obb.setUtcr(testata.getUtcr());
                        obb.setUser(testata.getUtcr());
                        it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk voce = new it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk();
                        voce.setEsercizio(obb.getEsercizio());
                        voce.setTi_appartenenza(Elemento_voceHome.APPARTENENZA_CDS);
                        voce.setTi_gestione(Elemento_voceHome.GESTIONE_SPESE);
                        voce.setCd_elemento_voce(fatr.getCd_voce());
                        // voce.setCd_unita_organizzativa(testata.getCd_uo_origine());
                        voce = ((it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, voce));
                        Optional.ofNullable(voce).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_107));
                        obb.setElemento_voce(((Elemento_voceBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Elemento_voceBulk(voce.getCd_elemento_voce(), voce.getEsercizio(), voce.getTi_appartenenza(), voce.getTi_gestione()))));
                        obb = obbligazioneComponentSession.listaCapitoliPerCdsVoce(userContext, obb);
                        obb.setCapitoliDiSpesaCdsSelezionatiColl(obb.getCapitoliDiSpesaCdsColl());
                        obb.setDt_registrazione((DateUtils.truncate(new Timestamp(fatr.getDt_scadenza().getTime()))));
                        if (fatr.getDs_obbligazione() != null)
                            obb.setDs_obbligazione(fatr.getDs_obbligazione());
                        if (fatr.getMotivazione() != null)
                            obb.setMotivazione(fatr.getMotivazione());
                        // ??? importo riga?????
                        obb.setIm_obbligazione(riga.getIm_totale_divisa());
                        obb.setIm_costi_anticipati(new java.math.BigDecimal(0));
                        // ??
                        obb.setStato_obbligazione(ObbligazioneBulk.STATO_OBB_DEFINITIVO);
                        obb.setUser(obb.getUtcr());
                        obb.setCd_terzo(testata.getCd_terzo());
                        obb.setEsercizio_competenza(testata.getEsercizio());
                        Obbligazione_scadenzarioBulk obb_scadenza = new Obbligazione_scadenzarioBulk();
                        obb_scadenza.setUtcr(obb.getUtcr());
                        obb_scadenza.setToBeCreated();
                        obb_scadenza.setObbligazione(obb);
                        obb_scadenza.setDt_scadenza(obb.getDt_registrazione());
                        obb_scadenza.setDs_scadenza(obb.getDs_obbligazione());
                        obb.addToObbligazione_scadenzarioColl(obb_scadenza);
                        obb_scadenza.setIm_scadenza(obb.getIm_obbligazione());
                        obb_scadenza.setIm_associato_doc_amm(riga.getIm_totale_divisa());
                        obb_scadenza.setIm_associato_doc_contabile(new BigDecimal(0));
                        if (fatr.getEsercizio_contratto() != null && fatr.getStato_contratto() != null && fatr.getPg_contratto() != null) {
                            obb.setContratto(new ContrattoBulk(fatr.getEsercizio_contratto(), fatr.getStato_contratto(), fatr.getPg_contratto()));
                            obb.setContratto(Optional.ofNullable((ContrattoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, obb.getContratto())).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_104)));
                            obb.setCheckDisponibilitaContrattoEseguito(true);
                        } else {
                            if ((fatr.getEsercizio_contratto() != null || fatr.getStato_contratto() != null || fatr.getPg_contratto() != null) && (fatr.getEsercizio_contratto() == null && fatr.getStato_contratto() == null && fatr.getPg_contratto() == null))
                                throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_108);
                        }
                        List<FatturaAttivaScad> listOfScad = fatr.getRighescadvoc();
                        for (FatturaAttivaScad fatrs : listOfScad) {
                            Obbligazione_scad_voceBulk obb_scad_voce = new Obbligazione_scad_voceBulk();
                            obb_scad_voce.setUtcr(testata.getUtcr());
                            obb_scad_voce.setToBeCreated();
                            obb_scad_voce.setObbligazione_scadenzario(obb_scadenza);
                            obb_scad_voce.setIm_voce(fatrs.getIm_voce());
                            obb_scad_voce.setCd_voce(voce.getCd_voce());
                            obb_scad_voce.setTi_gestione(voce.getTi_gestione());
                            obb_scad_voce.setTi_appartenenza(voce.getTi_appartenenza());
                            Optional.ofNullable(fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new CdrBulk(fatrs.getCdr()))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_136));
                            obb_scad_voce.setLinea_attivita(Optional.ofNullable(((WorkpackageBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new WorkpackageBulk(fatrs.getCdr(), fatrs.getGae())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_137)));
                            if (obb_scad_voce.getLinea_attivita().getTi_gestione().compareTo(obb.getTi_gestione()) != 0)
                                throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_138);
                            Linea_attivitaBulk nuovaLatt = new Linea_attivitaBulk();
                            nuovaLatt.setLinea_att(obb_scad_voce.getLinea_attivita());
                            if (obb_scad_voce.getObbligazione_scadenzario().getIm_scadenza().compareTo(new BigDecimal(0)) != 0)
                                nuovaLatt.setPrcImputazioneFin(obb_scad_voce.getIm_voce().multiply(new BigDecimal(100)).divide(obb_scad_voce.getObbligazione_scadenzario().getIm_scadenza(), 2, BigDecimal.ROUND_HALF_UP));
                            nuovaLatt.setObbligazione(obb);
                            obb.getNuoveLineeAttivitaColl().add(nuovaLatt);
                            obb_scadenza.getObbligazione_scad_voceColl().add((obb_scad_voce));
                        }
                        // intrastat
                        java.util.ArrayList<FatturaAttivaIntra> listOfIntra = fattura.getRigheIntra();
                        boolean obbligatorio = testata.getFattura_attiva_dettColl().stream().filter(x -> Optional.ofNullable(x.getBene_servizio()).get().getFl_obb_intrastat_ven() == true).findAny().isPresent();
                        if (Optional.ofNullable(fattura.getFl_intra_ue()).get()) {
                            if (listOfIntra != null && !listOfIntra.isEmpty() && testata.getCliente() != null && testata.getCliente().getAnagrafico() != null && testata.getCliente().getAnagrafico().getPartita_iva() != null && obbligatorio) {
                                for (FatturaAttivaIntra intra : fattura.getRigheIntra()) {
                                    Fattura_attiva_intraBulk fa_intra = new Fattura_attiva_intraBulk();
                                    fa_intra.setUtcr(testata.getUtcr());
                                    fa_intra.setToBeCreated();
                                    fa_intra.setFattura_attiva(testata);
                                    if (testata.getTi_bene_servizio().compareTo(Bene_servizioBulk.SERVIZIO) == 0) {
                                        fa_intra.setModalita_erogazione(Optional.ofNullable(((Modalita_erogazioneBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Modalita_erogazioneBulk(testata.getEsercizio(), intra.getCod_erogazione())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_143)));
                                        fa_intra.setModalita_incasso(Optional.ofNullable(((Modalita_incassoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Modalita_incassoBulk(testata.getEsercizio(), intra.getCod_incasso())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_144)));
                                        fa_intra.setCodici_cpa(Optional.ofNullable(((Codici_cpaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Codici_cpaBulk(intra.getId_cpa())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_145)));
                                        if (fa_intra.getCodici_cpa().getEsercizio() != testata.getEsercizio())
                                            throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_145);
                                    } else {
                                        // per il momento non richiesto da Pisa da testare totalmente anche i WS di servizio
                                        fa_intra.setNomenclatura_combinata(Optional.ofNullable(((Nomenclatura_combinataBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Nomenclatura_combinataBulk(intra.getId_nomenclatura_combinata())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_147)));
                                        fa_intra.setNatura_transazione(Optional.ofNullable(((Natura_transazioneBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Natura_transazioneBulk(intra.getId_natura_transazione())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_148)));
                                        fa_intra.setCondizione_consegna(Optional.ofNullable(((Condizione_consegnaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Condizione_consegnaBulk(intra.getCd_consegna(), testata.getEsercizio())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_149)));
                                        fa_intra.setModalita_trasporto(Optional.ofNullable(((Modalita_trasportoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Modalita_trasportoBulk(intra.getCd_trasporto(), testata.getEsercizio())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_150)));
                                        fa_intra.setProvincia_origine(Optional.ofNullable(((ProvinciaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new ProvinciaBulk(intra.getCd_provincia())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_151)));
                                        if (intra.getMassa() != null)
                                            fa_intra.setMassa_netta(intra.getMassa());
                                        if (intra.getValore_statistico() != null)
                                            fa_intra.setValore_statistico(intra.getValore_statistico());
                                        if (intra.getUnita_supplementari() != null)
                                            fa_intra.setUnita_supplementari(intra.getUnita_supplementari());
                                    }
                                    fa_intra.setNazione_destinazione(Optional.ofNullable(((NazioneBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new NazioneBulk(intra.getPg_nazione())))).orElseThrow(() -> FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_146)));
                                    fa_intra.setAmmontare_euro(intra.getAmmontare_euro());
                                    fa_intra.setFl_inviato(false);
                                    testata.getFattura_attiva_intrastatColl().add(fa_intra);
                                }
                            // fine for listOfIntra
                            }
                        // fine if(fat.getFl_intra_ue()!=null && fat.getFl_intra_ue().booleanValue()){
                        }
                        // fine intrastat
                        // fine for listOfScad
                        obb = (ObbligazioneBulk) obbligazioneComponentSession.creaConBulk(userContext, obb);
                        fatr.setPg_obbligazione_scadenzario(obb.getObbligazione_scadenzarioColl().get(0).getPg_obbligazione_scadenzario());
                        obb_scadenza.setObbligazione(obb);
                        Nota_di_credito_attivaBulk nc = (Nota_di_credito_attivaBulk) testata;
                        Nota_di_credito_attiva_rigaBulk riga_nc = (Nota_di_credito_attiva_rigaBulk) riga;
                        riga_nc.setObbligazione_scadenzario(obb_scadenza);
                        Hashtable<Nota_di_credito_attiva_rigaBulk, Obbligazione_scadenzarioBulk> relationsHash = new Hashtable<Nota_di_credito_attiva_rigaBulk, Obbligazione_scadenzarioBulk>();
                        relationsHash.put(riga_nc, riga_nc.getObbligazione_scadenzario());
                        nc = fatturaAttivaSingolaComponentSession.stornaDettagli(userContext, nc, nc.getFattura_attiva_dettColl(), relationsHash);
                        nc.addToDefferredSaldi(obb_scadenza.getObbligazione(), obb_scadenza.getObbligazione().getSaldiInfo());
                        testata = nc;
                    }
                // Fine Nota Credito
                }
                // fine righe
                if (fattura.getCod_errore() == null) {
                    testata = (Fattura_attivaBulk) fatturaAttivaSingolaComponentSession.creaConBulk(userContext, testata);
                    fattura.setPg_fattura_attiva(testata.getPg_fattura_attiva());
                    fattura.setIm_totale_imponibile(testata.getIm_totale_imponibile());
                    fattura.setIm_totale_iva(testata.getIm_totale_iva());
                    for (int ra = 0; ra < fattura.getRighefat().size(); ra++) {
                        FatturaAttivaRiga fatr_agg = listOfRighe.get(ra);
                        if (!(testata.getTi_fattura().compareTo(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO) == 0)) {
                            Fattura_attiva_rigaIBulk riga_fat = (Fattura_attiva_rigaIBulk) testata.getFattura_attiva_dettColl().get(testata.getFattura_attiva_dettColl().indexOfByPrimaryKey(new Fattura_attiva_rigaIBulk(testata.getCd_cds(), testata.getCd_unita_organizzativa(), testata.getEsercizio(), testata.getPg_fattura_attiva(), fatr_agg.getProgressivo_riga())));
                            fatr_agg.setPg_accertamento(riga_fat.getAccertamento_scadenzario().getPg_accertamento());
                        } else {
                            Nota_di_credito_attiva_rigaBulk riga_fat = (Nota_di_credito_attiva_rigaBulk) testata.getFattura_attiva_dettColl().get(testata.getFattura_attiva_dettColl().indexOfByPrimaryKey(new Nota_di_credito_attiva_rigaBulk(testata.getCd_cds(), testata.getCd_unita_organizzativa(), testata.getEsercizio(), testata.getPg_fattura_attiva(), new Long(fatr_agg.getProgressivo_riga()))));
                            fatr_agg.setPg_obbligazione(riga_fat.getObbligazione_scadenzario().getPg_obbligazione());
                        }
                    }
                } else {
                    fatturaAttivaSingolaComponentSession.rollbackToSavePoint(userContext, "Fattura_automatica");
                }
                fattureCreate.add(testata);
            }
        } catch (RemoteException | ComponentException | PersistencyException | ValidationException | IntrospectionException ex) {
            LOGGER.error("ERROR while importing ", ex);
            throw FatturaAttivaException.newInstance(Status.BAD_REQUEST, FatturaAttivaCodiciEnum.ERRORE_FA_999);
        }
    });
    return Response.status(Status.CREATED).entity(fattureCreate.stream().map(fattura_attivaBulk -> {
        return convert(userContext, fattura_attivaBulk);
    }).collect(Collectors.toList())).build();
}
Also used : FatturaNonProtocollataException(it.cnr.jada.comp.FatturaNonProtocollataException) FatturaAttivaScad(it.cnr.contab.client.docamm.FatturaAttivaScad) it.cnr.contab.docamm00.intrastat.bulk(it.cnr.contab.docamm00.intrastat.bulk) ObbligazioneComponentSession(it.cnr.contab.doccont00.ejb.ObbligazioneComponentSession) ZonedDateTime(java.time.ZonedDateTime) LoggerFactory(org.slf4j.LoggerFactory) SecurityContext(javax.ws.rs.core.SecurityContext) BigDecimal(java.math.BigDecimal) FatturaAttivaException(it.cnr.contab.web.rest.exception.FatturaAttivaException) QueryParam(javax.ws.rs.QueryParam) ValidationException(it.cnr.jada.bulk.ValidationException) Stateless(javax.ejb.Stateless) FatturaAttivaRiga(it.cnr.contab.client.docamm.FatturaAttivaRiga) V_voce_f_partita_giroBulk(it.cnr.contab.config00.pdcfin.bulk.V_voce_f_partita_giroBulk) Context(javax.ws.rs.core.Context) Timestamp(java.sql.Timestamp) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) ProvinciaBulk(it.cnr.contab.anagraf00.tabter.bulk.ProvinciaBulk) Collectors(java.util.stream.Collectors) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) ZoneId(java.time.ZoneId) RemoteException(java.rmi.RemoteException) Stream(java.util.stream.Stream) RestException(it.cnr.contab.web.rest.exception.RestException) Response(javax.ws.rs.core.Response) NazioneBulk(it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) FatturaAttivaSingolaComponentSession(it.cnr.contab.docamm00.ejb.FatturaAttivaSingolaComponentSession) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) Bene_servizioBulk(it.cnr.contab.docamm00.tabrif.bulk.Bene_servizioBulk) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) UserContext(it.cnr.jada.UserContext) FatturaAttiva(it.cnr.contab.client.docamm.FatturaAttiva) java.util(java.util) Tipo_sezionaleBulk(it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk) LocalDateTime(java.time.LocalDateTime) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) FatturaAttivaCodiciEnum(it.cnr.contab.web.rest.config.FatturaAttivaCodiciEnum) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) HttpServletRequest(javax.servlet.http.HttpServletRequest) FatturaAttivaLocal(it.cnr.contab.web.rest.local.docamm.FatturaAttivaLocal) BancaBulk(it.cnr.contab.anagraf00.core.bulk.BancaBulk) Elemento_voceHome(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome) DateUtils(it.cnr.jada.util.DateUtils) Status(javax.ws.rs.core.Response.Status) EJB(javax.ejb.EJB) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) PersistencyException(it.cnr.jada.persistency.PersistencyException) FatturaAttivaIntra(it.cnr.contab.client.docamm.FatturaAttivaIntra) Logger(org.slf4j.Logger) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk) Voce_ivaBulk(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk) FatturaNonTrovataException(it.cnr.jada.comp.FatturaNonTrovataException) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) CdrBulk(it.cnr.contab.config00.sto.bulk.CdrBulk) BulkList(it.cnr.jada.bulk.BulkList) CdsBulk(it.cnr.contab.config00.sto.bulk.CdsBulk) ComponentException(it.cnr.jada.comp.ComponentException) AccertamentoComponentSession(it.cnr.contab.doccont00.ejb.AccertamentoComponentSession) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) FatturaAttivaRiga(it.cnr.contab.client.docamm.FatturaAttivaRiga) CdrBulk(it.cnr.contab.config00.sto.bulk.CdrBulk) BigDecimal(java.math.BigDecimal) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) PersistencyException(it.cnr.jada.persistency.PersistencyException) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) CdsBulk(it.cnr.contab.config00.sto.bulk.CdsBulk) NazioneBulk(it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk) V_voce_f_partita_giroBulk(it.cnr.contab.config00.pdcfin.bulk.V_voce_f_partita_giroBulk) Bene_servizioBulk(it.cnr.contab.docamm00.tabrif.bulk.Bene_servizioBulk) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) FatturaAttivaScad(it.cnr.contab.client.docamm.FatturaAttivaScad) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) ProvinciaBulk(it.cnr.contab.anagraf00.tabter.bulk.ProvinciaBulk) java.util(java.util) ComponentException(it.cnr.jada.comp.ComponentException) it.cnr.contab.docamm00.intrastat.bulk(it.cnr.contab.docamm00.intrastat.bulk) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) FatturaAttivaIntra(it.cnr.contab.client.docamm.FatturaAttivaIntra) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) ValidationException(it.cnr.jada.bulk.ValidationException) Voce_ivaBulk(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk) Timestamp(java.sql.Timestamp) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) RestException(it.cnr.contab.web.rest.exception.RestException) BulkList(it.cnr.jada.bulk.BulkList) BigDecimal(java.math.BigDecimal) BancaBulk(it.cnr.contab.anagraf00.core.bulk.BancaBulk) RemoteException(java.rmi.RemoteException) Tipo_sezionaleBulk(it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk)

Example 4 with RestException

use of it.cnr.contab.web.rest.exception.RestException in project sigla-main by consiglionazionaledellericerche.

the class MissioneResource method delete.

public Response delete(@Context HttpServletRequest request, @PathParam("id") long idRimborsoMissione) throws Exception {
    CNRUserContext userContext = (CNRUserContext) securityContext.getUserPrincipal();
    Optional.ofNullable(idRimborsoMissione).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Id Rimborso missione Obbligatorio"));
    LOGGER.info("Inizio Cancellazione Missione " + idRimborsoMissione);
    missioneComponentSession.cancellazioneMissioneDaGemis(userContext, idRimborsoMissione);
    return Response.ok("OK").build();
}
Also used : RestException(it.cnr.contab.web.rest.exception.RestException) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext)

Example 5 with RestException

use of it.cnr.contab.web.rest.exception.RestException in project sigla-main by consiglionazionaledellericerche.

the class MissioneResource method insert.

public Response insert(@Context HttpServletRequest request, MissioneBulk missioneBulk) throws Exception {
    CNRUserContext userContext = (CNRUserContext) securityContext.getUserPrincipal();
    Optional.ofNullable(missioneBulk.getEsercizio()).filter(x -> userContext.getEsercizio().equals(x)).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Esercizio del contesto diverso da quello della Missione"));
    if (!isUoEnte(userContext)) {
        Optional.ofNullable(missioneBulk.getCd_cds()).filter(x -> userContext.getCd_cds().equals(x)).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "CdS del contesto diverso da quello della Missione"));
        Optional.ofNullable(missioneBulk.getCd_unita_organizzativa()).filter(x -> userContext.getCd_unita_organizzativa().equals(x)).orElseThrow(() -> new RestException(Status.BAD_REQUEST, "Unità Organizzativa del contesto diversa da quella della Missione"));
    }
    Calendar cal = Calendar.getInstance();
    missioneBulk.setObbligazione_scadenzario(Optional.ofNullable(missioneComponentSession.recuperoObbligazioneDaGemis(userContext, missioneBulk)).orElse(null));
    missioneBulk.setAnticipo(Optional.ofNullable(missioneComponentSession.recuperoAnticipoDaGemis(userContext, missioneBulk)).orElse(null));
    cal.setTime(missioneBulk.getDt_inizio_missione());
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);
    missioneBulk.setDt_inizio_missione(new Timestamp(cal.getTimeInMillis()));
    cal.setTime(missioneBulk.getDt_fine_missione());
    cal.set(Calendar.SECOND, 0);
    cal.set(Calendar.MILLISECOND, 0);
    missioneBulk.setDt_fine_missione(new Timestamp(cal.getTimeInMillis()));
    final MissioneBulk missione = (MissioneBulk) missioneComponentSession.inizializzaBulkPerInserimento(userContext, missioneBulk);
    missione.setToBeCreated();
    missione.getTappeMissioneColl().stream().forEach(x -> {
        x.setToBeCreated();
        x.setMissione(missione);
        cal.setTime(x.getDt_inizio_tappa());
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        x.setDt_inizio_tappa(new Timestamp(cal.getTimeInMillis()));
        cal.setTime(x.getDt_fine_tappa());
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        x.setDt_fine_tappa(new Timestamp(cal.getTimeInMillis()));
    });
    missione.getSpeseMissioneColl().stream().forEach(x -> {
        cal.setTime(x.getDt_inizio_tappa());
        cal.set(Calendar.SECOND, 0);
        cal.set(Calendar.MILLISECOND, 0);
        x.setDt_inizio_tappa(new Timestamp(cal.getTimeInMillis()));
    });
    Stream.concat(Stream.concat(missione.getSpeseMissioneColl().stream(), missione.getDiariaMissioneColl().stream()), missione.getRimborsoMissioneColl().stream()).forEach((x -> {
        x.setToBeCreated();
        x.setMissione(missione);
    }));
    MissioneBulk missioneCreated = (MissioneBulk) missioneComponentSession.creaConBulk(userContext, missione);
    missioneCreated.setToBeUpdated();
    missioneCreated.setMissioneIniziale(missioneCreated);
    missioneCreated = (MissioneBulk) missioneComponentSession.creaConBulk(userContext, missioneCreated);
    missioneCreated.setObbligazione_scadenzario(null);
    missioneCreated.setObbligazione_scadenzarioClone(null);
    return Response.status(Status.CREATED).entity(missioneCreated).build();
}
Also used : UserContext(it.cnr.jada.UserContext) PathParam(javax.ws.rs.PathParam) SecurityContext(javax.ws.rs.core.SecurityContext) LoggerFactory(org.slf4j.LoggerFactory) Unita_organizzativaComponentSession(it.cnr.contab.config00.ejb.Unita_organizzativaComponentSession) BigDecimal(java.math.BigDecimal) HttpServletRequest(javax.servlet.http.HttpServletRequest) Calendar(java.util.Calendar) CRUDComponentSession(it.cnr.jada.ejb.CRUDComponentSession) Missione_tipo_pastoBulk(it.cnr.contab.missioni00.tabrif.bulk.Missione_tipo_pastoBulk) Missione_tipo_spesaBulk(it.cnr.contab.missioni00.tabrif.bulk.Missione_tipo_spesaBulk) Status(javax.ws.rs.core.Response.Status) ValidationException(it.cnr.jada.bulk.ValidationException) EJB(javax.ejb.EJB) ResponseBuilder(javax.ws.rs.core.Response.ResponseBuilder) MissioneBulk(it.cnr.contab.missioni00.docs.bulk.MissioneBulk) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Stateless(javax.ejb.Stateless) PersistencyException(it.cnr.jada.persistency.PersistencyException) Context(javax.ws.rs.core.Context) Logger(org.slf4j.Logger) Timestamp(java.sql.Timestamp) RemoteException(java.rmi.RemoteException) MassimaleSpesaBulk(it.cnr.contab.web.rest.model.MassimaleSpesaBulk) EJBException(javax.ejb.EJBException) Unita_organizzativa_enteBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk) List(java.util.List) Stream(java.util.stream.Stream) RestException(it.cnr.contab.web.rest.exception.RestException) Response(javax.ws.rs.core.Response) NazioneBulk(it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk) Missione_dettaglioBulk(it.cnr.contab.missioni00.docs.bulk.Missione_dettaglioBulk) Optional(java.util.Optional) MissioneLocal(it.cnr.contab.web.rest.local.docamm.MissioneLocal) MissioneComponentSession(it.cnr.contab.missioni00.ejb.MissioneComponentSession) ComponentException(it.cnr.jada.comp.ComponentException) Collections(java.util.Collections) MissioneBulk(it.cnr.contab.missioni00.docs.bulk.MissioneBulk) Calendar(java.util.Calendar) RestException(it.cnr.contab.web.rest.exception.RestException) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Timestamp(java.sql.Timestamp)

Aggregations

RestException (it.cnr.contab.web.rest.exception.RestException)13 CNRUserContext (it.cnr.contab.utenze00.bp.CNRUserContext)12 ComponentException (it.cnr.jada.comp.ComponentException)6 RemoteException (java.rmi.RemoteException)6 TerzoBulk (it.cnr.contab.anagraf00.core.bulk.TerzoBulk)5 NazioneBulk (it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk)5 UserContext (it.cnr.jada.UserContext)5 ValidationException (it.cnr.jada.bulk.ValidationException)5 Timestamp (java.sql.Timestamp)5 PersistencyException (it.cnr.jada.persistency.PersistencyException)3 EJB (javax.ejb.EJB)3 Stateless (javax.ejb.Stateless)3 HttpServletRequest (javax.servlet.http.HttpServletRequest)3 Context (javax.ws.rs.core.Context)3 Response (javax.ws.rs.core.Response)3 Status (javax.ws.rs.core.Response.Status)3 SecurityContext (javax.ws.rs.core.SecurityContext)3 Logger (org.slf4j.Logger)3 LoggerFactory (org.slf4j.LoggerFactory)3 AnagraficoBulk (it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk)2