Search in sources :

Example 1 with Tipo_sezionaleBulk

use of it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDFatturaPassivaElettronicaBP method completaFatturaPassiva.

public OggettoBulk completaFatturaPassiva(ActionContext context, Fattura_passivaBulk fatturaPassivaBulk, CRUDFatturaPassivaBP nbp, Fattura_passivaBulk fatturaPassivaDiRiferimento) throws BusinessProcessException {
    try {
        CRUDFatturaPassivaAction action = new CRUDFatturaPassivaAction();
        FatturaPassivaComponentSession comp = (FatturaPassivaComponentSession) nbp.createComponentSession();
        DocumentoEleTestataBulk documentoEleTestata = (DocumentoEleTestataBulk) getModel();
        fatturaPassivaBulk.setDocumentoEleTestata(documentoEleTestata);
        fatturaPassivaBulk = comp.caricaAllegatiBulk(context.getUserContext(), fatturaPassivaBulk);
        fatturaPassivaBulk.setTi_fattura(documentoEleTestata.getTipoDocumentoSIGLA());
        fatturaPassivaBulk.setNr_fattura_fornitore(documentoEleTestata.getNumeroDocumento());
        fatturaPassivaBulk.setDt_fattura_fornitore(documentoEleTestata.getDataDocumento());
        // TODO
        fatturaPassivaBulk.setEsercizio_fattura_fornitore(CNRUserContext.getEsercizio(context.getUserContext()));
        fatturaPassivaBulk.setData_protocollo(documentoEleTestata.getDocumentoEleTrasmissione().getDataRicezione());
        Calendar date = Calendar.getInstance();
        date.setTimeInMillis(documentoEleTestata.getDataDocumento().getTime());
        date.add(Calendar.MONTH, 1);
        fatturaPassivaBulk.setDs_fattura_passiva(documentoEleTestata.getCausale());
        fatturaPassivaBulk.setFl_intra_ue(Boolean.FALSE);
        fatturaPassivaBulk.setFl_extra_ue(Boolean.FALSE);
        fatturaPassivaBulk.setFl_san_marino_senza_iva(Boolean.FALSE);
        fatturaPassivaBulk.setFl_fattura_compenso(existsTributi(documentoEleTestata));
        // Il flag viene impostato a true se documento splitPayment con iva != 0
        fatturaPassivaBulk.setFl_split_payment(documentoEleTestata.isDocumentoSplitPayment() && documentoEleTestata.getDocEleIVAColl() != null && !documentoEleTestata.getDocEleIVAColl().isEmpty() && documentoEleTestata.getDocEleIVAColl().stream().map(x -> x.getImposta()).reduce((x, y) -> x.add(y)).get().compareTo(BigDecimal.ZERO) != 0);
        // if (fatturaPassivaBulk.getFl_split_payment()) {
        java.util.Vector sezionali = comp.estraeSezionali(context.getUserContext(), fatturaPassivaBulk);
        fatturaPassivaBulk.setSezionali(sezionali);
        if (sezionali != null && !sezionali.isEmpty())
            fatturaPassivaBulk.setTipo_sezionale((Tipo_sezionaleBulk) sezionali.firstElement());
        else
            fatturaPassivaBulk.setTipo_sezionale(null);
        // }
        // TODO eliminata su richiesta di Patrizia fatturaPassivaBulk.setDt_scadenza(new java.sql.Timestamp(date.getTime().getTime()));
        GregorianCalendar gcDataMinima = new GregorianCalendar(), gcDataMassima = new GregorianCalendar();
        gcDataMinima.setTime(calcolaDataMinimaCompetenza(documentoEleTestata));
        gcDataMassima.setTime(calcolaDataMassimaCompetenza(documentoEleTestata));
        if (!fatturaPassivaBulk.getFl_fattura_compenso() && gcDataMinima.get(Calendar.YEAR) < gcDataMassima.get(Calendar.YEAR))
            gcDataMinima.setTime(DateUtils.firstDateOfTheYear(gcDataMassima.get(Calendar.YEAR)));
        fatturaPassivaBulk.setDt_da_competenza_coge(new Timestamp(gcDataMinima.getTime().getTime()));
        fatturaPassivaBulk.setDt_a_competenza_coge(new Timestamp(gcDataMassima.getTime().getTime()));
        if (fatturaPassivaBulk.getTi_fattura().equalsIgnoreCase(Fattura_passivaBulk.TIPO_NOTA_DI_CREDITO)) {
            fatturaPassivaBulk.setIm_totale_fattura(documentoEleTestata.getImportoDocumento().abs());
            fatturaPassivaBulk.setIm_importo_totale_fattura_fornitore_euro(documentoEleTestata.getImportoDocumento().abs());
        } else {
            fatturaPassivaBulk.setIm_totale_fattura(documentoEleTestata.getImportoDocumento());
            fatturaPassivaBulk.setIm_importo_totale_fattura_fornitore_euro(documentoEleTestata.getImportoDocumento());
        }
        fatturaPassivaBulk = comp.valorizzaInfoDocEle(context.getUserContext(), fatturaPassivaBulk);
        nbp.setModel(context, fatturaPassivaBulk);
        action.doCalcolaTotaleFatturaFornitoreInEur(context);
        fatturaPassivaBulk.setPartita_iva(documentoEleTestata.getDocumentoEleTrasmissione().getPrestatoreCodice());
        action.doBringBackSearchFornitore(context, fatturaPassivaBulk, documentoEleTestata.getDocumentoEleTrasmissione().getPrestatore());
        fatturaPassivaBulk = (Fattura_passivaBulk) nbp.getModel();
        if (documentoEleTestata.getModalitaPagamento() != null) {
            fatturaPassivaBulk.setModalita_pagamento(documentoEleTestata.getModalitaPagamento().getRif_modalita_pagamento());
            action.doOnModalitaPagamentoChange(context);
        }
        fatturaPassivaBulk = (Fattura_passivaBulk) nbp.getModel();
        if (fatturaPassivaDiRiferimento == null) {
            FatturaPassivaRigaCRUDController dettaglioController = nbp.getDettaglio();
            for (DocumentoEleLineaBulk documentoEleLinea : documentoEleTestata.getDocEleLineaColl()) {
                Fattura_passiva_rigaBulk rigaFattura = documentoEleTestata.getInstanceRiga();
                int i = dettaglioController.addDetail(rigaFattura);
                dettaglioController.setDirty(true);
                dettaglioController.setModelIndex(context, i);
                rigaFattura.setBene_servizio(documentoEleLinea.getBeneServizio());
                if (documentoEleLinea.getLineaDescrizione().length() > 199)
                    rigaFattura.setDs_riga_fattura(documentoEleLinea.getLineaDescrizione().substring(0, 199));
                else
                    rigaFattura.setDs_riga_fattura(documentoEleLinea.getLineaDescrizione());
                rigaFattura.setVoce_iva(recuperaCodiceIVA(documentoEleTestata, documentoEleLinea));
                rigaFattura.setQuantita(documentoEleLinea.getLineaQuantita());
                action.doOnQuantitaChange(context);
                rigaFattura.setPrezzo_unitario(documentoEleLinea.getLineaPrezzounitario());
                action.doCalcolaTotaliDiRiga(context);
                if (documentoEleTestata.getModalitaPagamento() != null)
                    rigaFattura.setModalita_pagamento(documentoEleTestata.getModalitaPagamento().getRif_modalita_pagamento());
                // TODO eliminata su richiesta di Patrizia fatturaPassivaBulk.setDt_scadenza(new java.sql.Timestamp(date.getTime().getTime()));
                GregorianCalendar gcDataMinimaRiga = new GregorianCalendar(), gcDataMassimaRiga = new GregorianCalendar();
                gcDataMinimaRiga.setTime(documentoEleLinea.getInizioDatacompetenza() == null ? gcDataMinima.getTime() : documentoEleLinea.getInizioDatacompetenza());
                gcDataMassimaRiga.setTime(documentoEleLinea.getFineDatacompetenza() == null ? gcDataMassima.getTime() : documentoEleLinea.getFineDatacompetenza());
                if (fatturaPassivaBulk.getFl_fattura_compenso()) {
                    rigaFattura.setDt_da_competenza_coge(new Timestamp(gcDataMinimaRiga.getTime().getTime()));
                    rigaFattura.setDt_a_competenza_coge(new Timestamp(gcDataMassimaRiga.getTime().getTime()));
                } else {
                    if (gcDataMinimaRiga.get(Calendar.YEAR) < gcDataMinima.get(Calendar.YEAR))
                        gcDataMinimaRiga = gcDataMinima;
                    if (gcDataMassimaRiga.get(Calendar.YEAR) < gcDataMinima.get(Calendar.YEAR))
                        gcDataMassimaRiga = gcDataMinima;
                    rigaFattura.setDt_da_competenza_coge(new Timestamp(gcDataMinimaRiga.getTime().getTime()));
                    rigaFattura.setDt_a_competenza_coge(new Timestamp(gcDataMassimaRiga.getTime().getTime()));
                }
            }
        }
        nbp.initializeModelForEditAllegati(context, fatturaPassivaBulk);
        return fatturaPassivaBulk;
    } catch (RemoteException e) {
        throw handleException(e);
    } catch (ComponentException e) {
        throw handleException(e);
    }
}
Also used : Transformer(javax.xml.transform.Transformer) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) Format(java.text.Format) CRUDFatturaPassivaAction(it.cnr.contab.docamm00.actions.CRUDFatturaPassivaAction) ServletException(javax.servlet.ServletException) StreamResult(javax.xml.transform.stream.StreamResult) ActionContext(it.cnr.jada.action.ActionContext) Button(it.cnr.jada.util.jsp.Button) FatturaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession) BigDecimal(java.math.BigDecimal) ByteArrayInputStream(java.io.ByteArrayInputStream) SimpleDetailCRUDController(it.cnr.jada.util.action.SimpleDetailCRUDController) it.cnr.contab.docamm00.fatturapa.bulk(it.cnr.contab.docamm00.fatturapa.bulk) BigInteger(java.math.BigInteger) ZoneOffset(java.time.ZoneOffset) PrintService(it.cnr.contab.reports.service.PrintService) ValidationException(it.cnr.jada.bulk.ValidationException) StorageObject(it.cnr.si.spring.storage.StorageObject) Timestamp(java.sql.Timestamp) TemporalField(java.time.temporal.TemporalField) FatturaPassivaElettronicaService(it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) EJBException(javax.ejb.EJBException) IOUtils(org.apache.commons.io.IOUtils) Stream(java.util.stream.Stream) TipoDocumentoType(it.gov.agenziaentrate.ivaservizi.docs.xsd.fatture.v1.TipoDocumentoType) Fattura_passivaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passivaBulk) EmailException(org.apache.commons.mail.EmailException) StoragePropertyNames(it.cnr.si.spring.storage.config.StoragePropertyNames) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) SpringUtil(it.cnr.contab.service.SpringUtil) ContattoBulk(it.cnr.contab.anagraf00.core.bulk.ContattoBulk) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) UserContext(it.cnr.jada.UserContext) HttpActionContext(it.cnr.jada.action.HttpActionContext) ChronoField(java.time.temporal.ChronoField) EsercizioComponentSession(it.cnr.contab.config00.ejb.EsercizioComponentSession) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) java.util(java.util) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) Fattura_passiva_rigaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk) TransformerException(javax.xml.transform.TransformerException) Tipo_sezionaleBulk(it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk) StreamSource(javax.xml.transform.stream.StreamSource) RegimeFiscaleType(it.gov.agenziaentrate.ivaservizi.docs.xsd.fatture.v1.RegimeFiscaleType) LocalDateTime(java.time.LocalDateTime) JspWriter(javax.servlet.jsp.JspWriter) Utility(it.cnr.contab.util.Utility) SimpleDateFormat(java.text.SimpleDateFormat) Source(javax.xml.transform.Source) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) Tipo_documento_ammBulk(it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk) AllegatiCRUDBP(it.cnr.contab.util00.bp.AllegatiCRUDBP) CRUDComponentSession(it.cnr.jada.ejb.CRUDComponentSession) Numerazione_baseComponentSession(it.cnr.contab.config00.tabnum.ejb.Numerazione_baseComponentSession) RemoteIterator(it.cnr.jada.util.RemoteIterator) StoreService(it.cnr.si.spring.storage.StoreService) DateUtils(it.cnr.jada.util.DateUtils) OutputStream(java.io.OutputStream) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) ApplicationException(it.cnr.jada.comp.ApplicationException) FormBP(it.cnr.jada.util.action.FormBP) Voce_ivaBulk(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk) BusyResourceException(it.cnr.jada.bulk.BusyResourceException) TelefonoBulk(it.cnr.contab.anagraf00.core.bulk.TelefonoBulk) StorageDocAmmAspect(it.cnr.contab.docamm00.storage.StorageDocAmmAspect) Print_spoolerBulk(it.cnr.contab.reports.bulk.Print_spoolerBulk) HttpServletResponse(javax.servlet.http.HttpServletResponse) IOException(java.io.IOException) AllegatoGenericoBulk(it.cnr.contab.util00.bulk.storage.AllegatoGenericoBulk) Report(it.cnr.contab.reports.bulk.Report) MimeTypes(it.cnr.si.spring.storage.MimeTypes) FatturaElettronicaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaElettronicaPassivaComponentSession) DateTimeFormatter(java.time.format.DateTimeFormatter) TransformerFactory(javax.xml.transform.TransformerFactory) ComponentException(it.cnr.jada.comp.ComponentException) CompoundFindClause(it.cnr.jada.persistency.sql.CompoundFindClause) InputStream(java.io.InputStream) CRUDFatturaPassivaAction(it.cnr.contab.docamm00.actions.CRUDFatturaPassivaAction) FatturaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession) Timestamp(java.sql.Timestamp) Fattura_passiva_rigaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk) java.util(java.util) ComponentException(it.cnr.jada.comp.ComponentException) RemoteException(java.rmi.RemoteException) Tipo_sezionaleBulk(it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk)

Example 2 with Tipo_sezionaleBulk

use of it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk in project sigla-main by consiglionazionaledellericerche.

the class FatturaPassivaComponent method creaAutofattura.

private void creaAutofattura(UserContext userContext, Fattura_passivaBulk fattura_passiva) throws ComponentException {
    if (fattura_passiva != null) {
        boolean autoObb = false, fatturaSplit = fattura_passiva.isCommerciale() && fattura_passiva.getFl_split_payment() != null && fattura_passiva.getFl_split_payment();
        autoObb = verificaGenerazioneAutofattura(userContext, fattura_passiva);
        if (autoObb)
            fattura_passiva.setFl_autofattura(Boolean.TRUE);
        if (fattura_passiva.getFl_autofattura() == null)
            fattura_passiva.setFl_autofattura(Boolean.FALSE);
        if (fattura_passiva.getFl_autofattura().booleanValue() || fatturaSplit) {
            it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk uoEnte = findUOEnte(userContext, fattura_passiva.getEsercizio());
            AutofatturaBulk autofattura = new AutofatturaBulk();
            autofattura.setCd_cds(uoEnte.getCd_unita_padre());
            autofattura.setCd_unita_organizzativa(uoEnte.getCd_unita_organizzativa());
            autofattura.setEsercizio(fattura_passiva.getEsercizio());
            autofattura.completeFrom(fattura_passiva);
            AutoFatturaComponentSession h = getAutofatturaComponentSession(userContext);
            try {
                Vector sez = h.estraeSezionali(userContext, autofattura, autoObb || fatturaSplit);
                if (sez == null || sez.isEmpty())
                    throw new it.cnr.jada.comp.ApplicationException("Non è stato inserito alcun sezionale valido per l'autofattura collegata al documento amministrativo " + fattura_passiva.getPg_fattura_passiva().longValue() + "!");
                if (sez.size() != 1)
                    throw new it.cnr.jada.comp.ApplicationException("Sono stati trovati più sezionali validi per l'autofattura collegata alla fattura passiva " + fattura_passiva.getPg_fattura_passiva().longValue() + "!");
                autofattura.setTipo_sezionale((Tipo_sezionaleBulk) sez.firstElement());
                AutofatturaBulk autof = (AutofatturaBulk) h.creaConBulk(userContext, autofattura);
                fattura_passiva.setAutofattura(autof);
                updateBulk(userContext, fattura_passiva);
            } catch (java.rmi.RemoteException e) {
                throw handleException(autofattura, e);
            } catch (PersistencyException e) {
                throw handleException(autofattura, e);
            }
        }
    }
}
Also used : ApplicationException(it.cnr.jada.comp.ApplicationException) AutoFatturaComponentSession(it.cnr.contab.docamm00.ejb.AutoFatturaComponentSession) RemoteException(java.rmi.RemoteException) Unita_organizzativa_enteBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk) PersistencyException(it.cnr.jada.persistency.PersistencyException) it.cnr.contab.docamm00.intrastat.bulk(it.cnr.contab.docamm00.intrastat.bulk) it.cnr.contab.anagraf00.core.bulk(it.cnr.contab.anagraf00.core.bulk) it.cnr.contab.docamm00.fatturapa.bulk(it.cnr.contab.docamm00.fatturapa.bulk) it.cnr.contab.docamm00.tabrif.bulk(it.cnr.contab.docamm00.tabrif.bulk) it.cnr.contab.config00.bulk(it.cnr.contab.config00.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) it.cnr.contab.inventario01.bulk(it.cnr.contab.inventario01.bulk) it.cnr.contab.ordmag.ordini.bulk(it.cnr.contab.ordmag.ordini.bulk) it.cnr.jada.bulk(it.cnr.jada.bulk) it.cnr.contab.inventario00.docs.bulk(it.cnr.contab.inventario00.docs.bulk)

Example 3 with Tipo_sezionaleBulk

use of it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk in project sigla-main by consiglionazionaledellericerche.

the class FatturaPassivaComponent method validazioneComune.

private void validazioneComune(UserContext aUC, Fattura_passivaBulk fatturaPassiva) throws ComponentException {
    if (!verificaEsistenzaSezionalePer(aUC, fatturaPassiva)) {
        throw new ApplicationMessageFormatException("Attenzione: non è stato definito un sezionale per le {0} e il tipo sezionale '{1}'!", fatturaPassiva.getDescrizioneEntitaPlurale(), Optional.ofNullable(fatturaPassiva).flatMap(fattura_passivaBulk -> Optional.ofNullable(fattura_passivaBulk.getTipo_sezionale())).flatMap(tipo_sezionaleBulk -> Optional.ofNullable(tipo_sezionaleBulk.getDs_tipo_sezionale())).orElse("NON DEFINITO"));
    }
    try {
        fatturaPassiva.validateDate();
        // quella inserita in configurazione
        if (fatturaPassiva.getFl_liquidazione_differita() && fatturaPassiva.getDt_fattura_fornitore() != null) {
            java.sql.Timestamp data_limite;
            java.sql.Timestamp data_limite_sup;
            try {
                data_limite = ((it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession", it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession.class)).getDt01(aUC, new Integer(0), "*", "COSTANTI", "LIMITE_CREAZIONE_FATT_PASS_ES_DIF");
                data_limite_sup = ((it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession", it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession.class)).getDt02(aUC, new Integer(0), "*", "COSTANTI", "LIMITE_CREAZIONE_FATT_PASS_ES_DIF");
            } catch (RemoteException e) {
                throw handleException(e);
            }
            if (fatturaPassiva.getDt_fattura_fornitore().compareTo(data_limite) < 0 || fatturaPassiva.getDt_fattura_fornitore().compareTo(data_limite_sup) > 0) {
                fatturaPassiva.setFl_liquidazione_differita(false);
                throw new it.cnr.jada.comp.ApplicationException("Non è possibile indicare la liquidazione differita con la data emissione inserita.");
            }
        }
        // Verifica la validità della data di registrazione rispetto all'ultima
        // data di stampa registri IVA
        callVerifyDataRegistrazione(aUC, fatturaPassiva);
        // Verifica che il documento rispetti la sequenza data/numero
        // di registrazione
        validaSequenceDateNumber(aUC, fatturaPassiva);
        // Controllo date competenza COGE
        fatturaPassiva.validaDateCompetenza();
        // r.p. 17/09/2015 controllo non ritenuto utile
        // competenze omogenee per dettagli collegate alla stessa scadenza
        // controllaCompetenzaCOGEDettagli(aUC, fatturaPassiva);
        validateFornitore(aUC, fatturaPassiva);
    } catch (it.cnr.jada.bulk.ValidationException e) {
        throw new it.cnr.jada.comp.ApplicationException(e.getMessage());
    }
    Fattura_passivaBulk original = null;
    try {
        original = (Fattura_passivaBulk) getHome(aUC, fatturaPassiva, null, "none").findByPrimaryKey(fatturaPassiva);
    } catch (it.cnr.jada.persistency.PersistencyException e) {
        throw handleException(fatturaPassiva, e);
    }
    if (original != null) {
        if (fatturaPassiva.isStampataSuRegistroIVA() || fatturaPassiva.getProgr_univoco() != null) {
            if (!original.getDt_registrazione().equals(fatturaPassiva.getDt_registrazione()))
                throw new it.cnr.jada.comp.ApplicationException("Attenzione: non è possibile modificare la data registrazione della " + fatturaPassiva.getDescrizioneEntita() + " o della sua autofattura (se esiste) quando è presente sui registri.");
            if (fatturaPassiva.isStampataSuRegistroIVA()) {
                if (!original.getCd_tipo_sezionale().equalsIgnoreCase(fatturaPassiva.getCd_tipo_sezionale()) && hasFatturaPassivaARowNotStateI(fatturaPassiva))
                    throw new it.cnr.jada.comp.ApplicationException("Attenzione: non è possibile modificare il sezionale di " + fatturaPassiva.getDescrizioneEntitaPlurale() + " o della relativa autofattura (se esiste) parzialmente contabilizzate e stato IVA B o C.");
            }
            if (original.getFl_autofattura() != null && !original.getFl_autofattura().equals(fatturaPassiva.getFl_autofattura()))
                throw new it.cnr.jada.comp.ApplicationException("Attenzione: non è possibile modificare il tipo di sezionale o la tipologia dei dettagli (bene/servizio) per " + fatturaPassiva.getDescrizioneEntitaPlurale() + " o per la relativa autofattura (se esiste) in stato IVA B o C.");
            if (fatturaPassiva.isStampataSuRegistroIVA() || fatturaPassiva.isElettronica() || fatturaPassiva.isGenerataDaCompenso())
                if (original.getIm_totale_fattura().compareTo(fatturaPassiva.getIm_totale_fattura()) != 0)
                    throw new it.cnr.jada.comp.ApplicationException("Attenzione: non si può modificare il totale fattura quando la fattura è elettronica e/o presente sui sezionali iva");
            if (!original.getNr_fattura_fornitore().equalsIgnoreCase(fatturaPassiva.getNr_fattura_fornitore()) || !original.getDt_fattura_fornitore().equals(fatturaPassiva.getDt_fattura_fornitore()) || // original.getIm_totale_fattura().compareTo(fatturaPassiva.getIm_totale_fattura()) != 0 ||
            !original.getFl_intra_ue().equals(fatturaPassiva.getFl_intra_ue()) || !original.getFl_extra_ue().equals(fatturaPassiva.getFl_extra_ue()) || !original.getFl_san_marino_con_iva().equals(fatturaPassiva.getFl_san_marino_con_iva()) || // ||
            !original.getFl_san_marino_senza_iva().equals(fatturaPassiva.getFl_san_marino_senza_iva()))
                // !original.getCd_tipo_sezionale().equalsIgnoreCase(fatturaPassiva.getCd_tipo_sezionale()))
                throw new it.cnr.jada.comp.ApplicationException("Attenzione: non si possono modificare campi relativi alla " + fatturaPassiva.getDescrizioneEntita() + " del fornitore quando la fattura o la relativa autofattura (se esiste).");
            if (!original.getCd_divisa().equals(fatturaPassiva.getCd_divisa()) || original.getCambio().compareTo(fatturaPassiva.getCambio()) != 0)
                throw new it.cnr.jada.comp.ApplicationException("Attenzione: non si possono modificare i campi della valuta o del cambio della " + fatturaPassiva.getDescrizioneEntita());
            if (!original.getCd_terzo().equals(fatturaPassiva.getCd_terzo()))
                throw new it.cnr.jada.comp.ApplicationException("Attenzione: non si possono modificare campi relativi al fornitore della " + fatturaPassiva.getDescrizioneEntita());
        }
        if (!fatturaPassiva.isStampataSuRegistroIVA() && fatturaPassiva.getProgr_univoco() == null && fatturaPassiva.isPagata() && !original.getCd_terzo().equals(fatturaPassiva.getCd_terzo()))
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: non si possono modificare campi relativi al fornitore della " + fatturaPassiva.getDescrizioneEntita());
        // se già collegate
        if (fatturaPassiva instanceof Fattura_passiva_IBulk && (original.getFl_extra_ue() != null && original.getFl_extra_ue().booleanValue() && Fattura_passivaBulk.FATTURA_DI_BENI.equalsIgnoreCase(original.getTi_bene_servizio()))) {
            if ((fatturaPassiva.getFl_extra_ue() == null || !fatturaPassiva.getFl_extra_ue().booleanValue()) || !Fattura_passivaBulk.FATTURA_DI_BENI.equalsIgnoreCase(fatturaPassiva.getTi_bene_servizio())) {
                Fattura_passiva_IBulk fp = (Fattura_passiva_IBulk) fatturaPassiva;
                Fattura_passiva_IHome fpHome = (Fattura_passiva_IHome) getHome(aUC, fatturaPassiva);
                try {
                    if (fpHome.selectBolleDoganaliPer(fp).executeExistsQuery(getConnection(aUC)) || fpHome.selectSpedizionieriPer(fp).executeExistsQuery(getConnection(aUC)))
                        throw new ApplicationException("La fattura estera è collegata a fatture di tipo spedizioniere o bolle doganali. I cambiamenti apportati non sono validi. Operazione annullata!");
                } catch (SQLException e) {
                    throw handleException(fp, e);
                }
            }
        }
        // non posso cambiare tipo
        if (original.isEstera() && !fatturaPassiva.isEstera() && fatturaPassiva.getPg_lettera() != null)
            throw new ApplicationException("La fattura era estera: i cambiamenti apportati non sono validi perchè è già stato emesso un documento 1210. Operazione annullata!");
        java.util.List originalRows = null;
        try {
            Fattura_passiva_rigaBulk clause = null;
            if (fatturaPassiva instanceof Fattura_passiva_IBulk)
                clause = new Fattura_passiva_rigaIBulk();
            else if (fatturaPassiva instanceof Nota_di_creditoBulk)
                clause = new Nota_di_credito_rigaBulk();
            else
                clause = new Nota_di_debito_rigaBulk();
            clause.setFattura_passiva(original);
            originalRows = getHome(aUC, clause, null, "solo_voce_iva").find(clause);
            getHomeCache(aUC).fetchAll(aUC);
        } catch (it.cnr.jada.persistency.PersistencyException e) {
            throw handleException(fatturaPassiva, e);
        }
        // Modificato a seguito richiesta 423
        if (originalRows != null && (fatturaPassiva.isStampataSuRegistroIVA() || fatturaPassiva.getProgr_univoco() != null)) {
            // if (!(fatturaPassiva instanceof Fattura_passiva_IBulk) &&
            // originalRows.size() != fatturaPassiva.getFattura_passiva_dettColl().size())
            // throw new it.cnr.jada.comp.ApplicationException("Attenzione: non è possibile aggiungere, eliminare o modificare i dettagli quando lo stato IVA della " + fatturaPassiva.getDescrizioneEntita() + " è B o C.");
            // else {
            original.setFattura_passiva_dettColl(new BulkList(originalRows));
            for (Iterator i = original.getFattura_passiva_dettColl().iterator(); i.hasNext(); ) ((Fattura_passiva_rigaBulk) i.next()).calcolaCampiDiRiga();
            original.setChangeOperationOn(original.getValuta());
            validaConConsuntivi(aUC, original, fatturaPassiva);
        // }
        }
    }
}
Also used : it.cnr.contab.docamm00.intrastat.bulk(it.cnr.contab.docamm00.intrastat.bulk) EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk) it.cnr.contab.anagraf00.core.bulk(it.cnr.contab.anagraf00.core.bulk) LoggerFactory(org.slf4j.LoggerFactory) BigDecimal(java.math.BigDecimal) AnagraficoComponentSession(it.cnr.contab.anagraf00.ejb.AnagraficoComponentSession) Inventario_beniComponentSession(it.cnr.contab.inventario00.ejb.Inventario_beniComponentSession) it.cnr.contab.docamm00.fatturapa.bulk(it.cnr.contab.docamm00.fatturapa.bulk) it.cnr.contab.docamm00.tabrif.bulk(it.cnr.contab.docamm00.tabrif.bulk) AccertamentoAbstractComponentSession(it.cnr.contab.doccont00.ejb.AccertamentoAbstractComponentSession) Timestamp(java.sql.Timestamp) it.cnr.contab.config00.bulk(it.cnr.contab.config00.bulk) Unita_organizzativa_enteHome(it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteHome) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) Collectors(java.util.stream.Collectors) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) FileNotFoundException(java.io.FileNotFoundException) Serializable(java.io.Serializable) RemoteException(java.rmi.RemoteException) EJBException(javax.ejb.EJBException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) Parametri_cnrComponentSession(it.cnr.contab.config00.ejb.Parametri_cnrComponentSession) RicercaTrovato(it.cnr.contab.docamm00.client.RicercaTrovato) NazioneBulk(it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk) UserContext(it.cnr.jada.UserContext) it.cnr.jada.persistency.sql(it.cnr.jada.persistency.sql) RemoveAccent(it.cnr.contab.util.RemoveAccent) java.util(java.util) Utility(it.cnr.contab.util.Utility) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) ScritturaPartitaDoppiaFromDocumentoComponent(it.cnr.contab.coepcoan00.comp.ScritturaPartitaDoppiaFromDocumentoComponent) ContrattoHome(it.cnr.contab.config00.contratto.bulk.ContrattoHome) SQLException(java.sql.SQLException) Ass_contratto_uoBulk(it.cnr.contab.config00.contratto.bulk.Ass_contratto_uoBulk) ProgressiviAmmComponentSession(it.cnr.contab.docamm00.ejb.ProgressiviAmmComponentSession) it.cnr.contab.inventario01.bulk(it.cnr.contab.inventario01.bulk) EnteBulk(it.cnr.contab.config00.sto.bulk.EnteBulk) OptionRequestParameter(it.cnr.contab.doccont00.core.bulk.OptionRequestParameter) RemoteIterator(it.cnr.jada.util.RemoteIterator) Elemento_voceHome(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome) TipoIVA(it.cnr.contab.util.enumeration.TipoIVA) DateUtils(it.cnr.jada.util.DateUtils) DocumentoContabileComponentSession(it.cnr.contab.doccont00.comp.DocumentoContabileComponentSession) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) it.cnr.contab.ordmag.ordini.bulk(it.cnr.contab.ordmag.ordini.bulk) Logger(org.slf4j.Logger) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk) VoceIvaComponentSession(it.cnr.contab.docamm00.ejb.VoceIvaComponentSession) FatturaNonTrovataException(it.cnr.jada.comp.FatturaNonTrovataException) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) AutoFatturaComponentSession(it.cnr.contab.docamm00.ejb.AutoFatturaComponentSession) ObbligazioneAbstractComponentSession(it.cnr.contab.doccont00.ejb.ObbligazioneAbstractComponentSession) IOException(java.io.IOException) RiportoDocAmmComponentSession(it.cnr.contab.docamm00.ejb.RiportoDocAmmComponentSession) Unita_organizzativa_enteBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk) StorageFolderFatturaPassiva(it.cnr.contab.docamm00.storage.StorageFolderFatturaPassiva) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) it.cnr.jada.bulk(it.cnr.jada.bulk) it.cnr.contab.inventario00.docs.bulk(it.cnr.contab.inventario00.docs.bulk) ComponentException(it.cnr.jada.comp.ComponentException) SQLException(java.sql.SQLException) it.cnr.jada.persistency.sql(it.cnr.jada.persistency.sql) RemoteIterator(it.cnr.jada.util.RemoteIterator) ApplicationMessageFormatException(it.cnr.contab.util.ApplicationMessageFormatException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) Timestamp(java.sql.Timestamp) ApplicationException(it.cnr.jada.comp.ApplicationException) java.util(java.util) RemoteException(java.rmi.RemoteException) it.cnr.contab.docamm00.intrastat.bulk(it.cnr.contab.docamm00.intrastat.bulk) it.cnr.contab.anagraf00.core.bulk(it.cnr.contab.anagraf00.core.bulk) it.cnr.contab.docamm00.fatturapa.bulk(it.cnr.contab.docamm00.fatturapa.bulk) it.cnr.contab.docamm00.tabrif.bulk(it.cnr.contab.docamm00.tabrif.bulk) it.cnr.contab.config00.bulk(it.cnr.contab.config00.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) it.cnr.contab.inventario01.bulk(it.cnr.contab.inventario01.bulk) it.cnr.contab.ordmag.ordini.bulk(it.cnr.contab.ordmag.ordini.bulk) it.cnr.jada.bulk(it.cnr.jada.bulk) it.cnr.contab.inventario00.docs.bulk(it.cnr.contab.inventario00.docs.bulk)

Example 4 with Tipo_sezionaleBulk

use of it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk in project sigla-main by consiglionazionaledellericerche.

the class FatturaAttivaComponentWS method InserimentoFatture.

@RolesAllowed({ WSAttributes.WSUSERROLE, WSAttributes.IITROLE })
public java.util.ArrayList<FatturaAttiva> InserimentoFatture(java.util.ArrayList<FatturaAttiva> fatture) throws Exception {
    UserContext context = new WSUserContext("System", null, new Integer(java.util.Calendar.getInstance().get(java.util.Calendar.YEAR)), null, null, null);
    Fattura_attivaBulk testata;
    Fattura_attiva_rigaBulk riga;
    java.util.ArrayList<FatturaAttiva> listOfFatture = fatture;
    try {
        for (int s = 0; s < listOfFatture.size(); s++) {
            FatturaAttiva fat = listOfFatture.get(s);
            String nome = Controllo_campo_errore(fat);
            if (nome != null) {
                fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_101.toString(), nome);
            } else {
                if (fat.getTi_causale_emissione().compareTo("C") != 0 && fat.getTi_causale_emissione().compareTo("L") != 0 && fat.getTi_causale_emissione().compareTo("T") != 0) {
                    fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_101.toString(), "Causale emissione non valida");
                }
                if (fat.getTi_bene_servizio().compareTo("B") != 0 && fat.getTi_bene_servizio().compareTo("S") != 0 && fat.getTi_bene_servizio().compareTo("*") != 0) {
                    fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_101.toString(), "Tipologia bene/servizio non valida");
                }
                if (fat.getTi_fattura().compareTo(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO) != 0 && fat.getTi_fattura().compareTo(Fattura_attivaBulk.TIPO_FATTURA_ATTIVA) != 0)
                    fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_101.toString(), "Tipologia fattura non valida");
                try {
                    if (fat.getTi_fattura().compareTo(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO) == 0) {
                        testata = new Nota_di_credito_attivaBulk();
                        riga = new Nota_di_credito_attiva_rigaBulk();
                    } else {
                        testata = new Fattura_attiva_IBulk();
                        riga = new Fattura_attiva_rigaIBulk();
                    }
                    testata.setToBeCreated();
                    testata.setEsercizio(new Integer(java.util.Calendar.getInstance().get(java.util.Calendar.YEAR)));
                    testata.setTi_fattura(fat.getTi_fattura());
                    testata.setEsercizio(fat.getEsercizio());
                    testata.setUtcr(fat.getUtcr());
                    testata.setCd_cds_origine(fat.getCd_cds_origine());
                    testata.setTi_bene_servizio(fat.getTi_bene_servizio());
                    testata.setFl_pagamento_anticipato(fat.getFl_pagamento_anticipato());
                    UserContext userContext = new WSUserContext(testata.getUtcr(), null, new Integer(java.util.Calendar.getInstance().get(java.util.Calendar.YEAR)), testata.getCd_uo_origine(), testata.getCd_cds_origine(), null);
                    CdsBulk cds = new CdsBulk(fat.getCd_cds_origine());
                    cds = (CdsBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, cds);
                    if (cds == null)
                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_130.toString());
                    Unita_organizzativaBulk uo = new Unita_organizzativaBulk(fat.getCd_uo_origine());
                    uo = (Unita_organizzativaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, uo);
                    if (uo == null)
                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_131.toString());
                    if (uo.getCd_cds().compareTo(testata.getCd_cds_origine()) != 0)
                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_135.toString());
                    testata.setCd_uo_origine(fat.getCd_uo_origine());
                    testata.setPg_fattura_esterno(fat.getPg_fattura_esterno());
                    Fattura_attivaBulk fatturaAttiva;
                    if ((testata.getTi_fattura().compareTo(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO) != 0)) {
                        fatturaAttiva = new Fattura_attiva_IBulk();
                        fatturaAttiva.setEsercizio(testata.getEsercizio());
                        fatturaAttiva.setCd_cds_origine(testata.getCd_cds_origine());
                        fatturaAttiva.setCd_uo_origine(testata.getCd_uo_origine());
                        fatturaAttiva.setPg_fattura_esterno(testata.getPg_fattura_esterno());
                    } else {
                        fatturaAttiva = new Nota_di_credito_attivaBulk();
                        fatturaAttiva.setEsercizio(testata.getEsercizio());
                        fatturaAttiva.setCd_cds_origine(testata.getCd_cds_origine());
                        fatturaAttiva.setCd_uo_origine(testata.getCd_uo_origine());
                        fatturaAttiva.setPg_fattura_esterno(testata.getPg_fattura_esterno());
                        fatturaAttiva.setTi_fattura(testata.getTi_fattura());
                    }
                    testata.setFl_intra_ue(fat.getFl_intra_ue());
                    testata.setFl_extra_ue(fat.getFl_extra_ue());
                    testata.setFl_san_marino(fat.getFl_san_marino());
                    if (!((fat.getFl_intra_ue() && !fat.getFl_extra_ue() && !fat.getFl_san_marino()) || (!fat.getFl_intra_ue() && fat.getFl_extra_ue() && !fat.getFl_san_marino()) || (!fat.getFl_intra_ue() && !fat.getFl_extra_ue() && fat.getFl_san_marino()) || (!fat.getFl_intra_ue() && !fat.getFl_extra_ue() && !fat.getFl_san_marino())))
                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_129.toString());
                    if ((fat.getFl_extra_ue().booleanValue() || fat.getFl_intra_ue().booleanValue()) && fat.getTi_bene_servizio().compareTo("*") == 0) {
                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_142.toString());
                    }
                    userContext.setTransactional(true);
                    // richiesta dall'inizializza (Fattura_attiva_IBulk)
                    if ((testata.getTi_fattura().compareTo(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO) == 0))
                        testata = (Nota_di_credito_attivaBulk) fatturaAttivaSingolaComponentSession.inizializzaBulkPerInserimento(userContext, testata);
                    else
                        testata = (Fattura_attiva_IBulk) fatturaAttivaSingolaComponentSession.inizializzaBulkPerInserimento(userContext, testata);
                    fatturaAttivaSingolaComponentSession.setSavePoint(context, "Fattura_automatica");
                    // potrebbe non essere univoca per tipologia
                    if (fatturaAttivaSingolaComponentSession.verificaDuplicati(userContext, fatturaAttiva)) {
                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_102.toString());
                    }
                    testata.setTipo_sezionale(new Tipo_sezionaleBulk(fat.getCd_tipo_sezionale()));
                    boolean esiste = false;
                    for (Iterator i = testata.getSezionali().iterator(); !esiste && i.hasNext(); ) {
                        Tipo_sezionaleBulk tipo = (Tipo_sezionaleBulk) i.next();
                        if (tipo.getCd_tipo_sezionale().compareTo(testata.getTipo_sezionale().getCd_tipo_sezionale()) == 0)
                            esiste = true;
                    }
                    if (!esiste)
                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_127.toString());
                    testata.setDt_registrazione(DateUtils.truncate(new Timestamp(fat.getDt_registrazione().getTime())));
                    testata.setTi_causale_emissione(fat.getTi_causale_emissione());
                    testata.setFl_liquidazione_differita(fat.getFl_liquidazione_differita());
                    testata.setDs_fattura_attiva(fat.getDs_fattura_attiva());
                    testata.setRiferimento_ordine(fat.getRif_ordine());
                    testata.setCliente(new TerzoBulk(fat.getCd_terzo()));
                    testata.setCliente((TerzoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, testata.getCliente()));
                    if (testata.getCliente() == null)
                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_105.toString());
                    else {
                        if (testata.getCliente().getAnagrafico().getTi_italiano_estero().compareTo(testata.getSupplierNationType()) != 0) {
                            fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_140.toString());
                        }
                        testata.setCd_terzo(fat.getCd_terzo());
                        testata = fatturaAttivaSingolaComponentSession.completaTerzo(userContext, testata, testata.getCliente());
                        if (testata.getCliente().isAnagraficoScaduto() || testata.getCliente().getTi_terzo().compareTo(TerzoBulk.CREDITORE) == 0 || testata.getCliente().getAnagrafico().getTi_entita().compareTo(AnagraficoBulk.DIVERSI) == 0)
                            fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_125.toString());
                        testata.setFl_liquidazione_differita(testata.getCliente().getAnagrafico().getFl_fatturazione_differita());
                        if ((testata.getFl_liquidazione_differita().booleanValue() && testata.getFl_liquidazione_differita().compareTo(testata.getCliente().getAnagrafico().getFl_fatturazione_differita()) != 0))
                            fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_124.toString());
                    }
                    if (testata.getCd_terzo_uo_cds().compareTo(fat.getCd_terzo_uo_cds()) != 0)
                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_133.toString());
                    testata.setCd_modalita_pag_uo_cds(fat.getCd_modalita_pag_uo_cds());
                    testata.setModalita_pagamento_uo(((Rif_modalita_pagamentoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Rif_modalita_pagamentoBulk(fat.getCd_modalita_pag_uo_cds()))));
                    if (testata.getModalita_pagamento_uo() == null)
                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_132.toString());
                    testata.setPg_banca_uo_cds(fat.getPg_banca_uo_cds());
                    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()))
                        if (!testata.getBanca_uo().getAbi().equalsIgnoreCase(config.getVal01()) || !testata.getBanca_uo().getCab().equalsIgnoreCase(config.getVal02()) || !testata.getBanca_uo().getNumero_conto().contains(config.getVal03()))
                            testata.setBanca_uo(null);
                    if (testata.getBanca_uo() == null)
                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_134.toString());
                    java.util.List l = fatturaAttivaSingolaComponentSession.findListaBancheWS(userContext, testata.getCd_terzo_uo_cds().toString(), testata.getModalita_pagamento_uo().getCd_modalita_pag(), "", "", "");
                    esiste = false;
                    for (Iterator i = l.iterator(); !esiste && i.hasNext(); ) {
                        BancaBulk banca = (BancaBulk) i.next();
                        if (banca.getPg_banca().compareTo(testata.getPg_banca_uo_cds()) == 0)
                            esiste = true;
                    }
                    if (!esiste)
                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_134.toString());
                    if ((testata.getTi_fattura().compareTo(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO) == 0)) {
                        if (fat.getCd_modalita_pag() != null) {
                            ((Nota_di_credito_attivaBulk) testata).setModalita_pagamento((Rif_modalita_pagamentoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Rif_modalita_pagamentoBulk(fat.getCd_modalita_pag())));
                            if (((Nota_di_credito_attivaBulk) testata).getModalita_pagamento() == null)
                                fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_111.toString());
                            testata.setCd_modalita_pag(fat.getCd_modalita_pag());
                        } else
                            fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_111.toString());
                        if (fat.getPg_banca() != null) {
                            ((Nota_di_credito_attivaBulk) testata).setBanca((new BancaBulk(testata.getCd_terzo(), fat.getPg_banca())));
                            testata.setPg_banca(fat.getPg_banca());
                            ((Nota_di_credito_attivaBulk) testata).setBanca((BancaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, ((Nota_di_credito_attivaBulk) testata).getBanca()));
                            if (((Nota_di_credito_attivaBulk) testata).getBanca() == null) {
                                fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_118.toString());
                            }
                            l = fatturaAttivaSingolaComponentSession.findListaBancheWS(userContext, testata.getCd_terzo().toString(), ((Nota_di_credito_attivaBulk) testata).getModalita_pagamento().getCd_modalita_pag(), "", "", "");
                            esiste = false;
                            for (Iterator i = l.iterator(); !esiste && i.hasNext(); ) {
                                BancaBulk banca = (BancaBulk) i.next();
                                if (banca.getPg_banca().compareTo(testata.getPg_banca()) == 0)
                                    esiste = true;
                            }
                            if (!esiste)
                                fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_118.toString());
                        } else
                            fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_110.toString());
                    }
                    testata.setCd_divisa(fat.getCd_divisa());
                    testata.setCambio(fat.getCambio());
                    testata.setNote(fat.getNote());
                    testata.validate();
                    java.util.ArrayList<FatturaAttivaRiga> listOfRighe = fat.getRighefat();
                    for (int r = 0; r < listOfRighe.size(); r++) {
                        FatturaAttivaRiga fatr = listOfRighe.get(r);
                        if ((testata.getTi_fattura().compareTo(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO) == 0))
                            riga = new Nota_di_credito_attiva_rigaBulk();
                        else
                            riga = new Fattura_attiva_rigaIBulk();
                        testata.addToFattura_attiva_dettColl(riga);
                        riga.setToBeCreated();
                        // ?? da aggiungere controlli
                        nome = Controllo_campo_errore(fatr);
                        if (nome != null) {
                            fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_101.toString(), nome);
                        } else {
                            if (fatr.getCd_bene_servizio() != null) {
                                riga.setBene_servizio(new Bene_servizioBulk(fatr.getCd_bene_servizio()));
                                riga.setCd_bene_servizio(fatr.getCd_bene_servizio());
                            }
                            riga.setBene_servizio((Bene_servizioBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, riga.getBene_servizio()));
                            if (riga.getBene_servizio() == null) {
                                fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_139.toString());
                            } else if (fat.getTi_bene_servizio().compareTo("*") != 0 && riga.getBene_servizio().getTi_bene_servizio().compareTo(fat.getTi_bene_servizio()) != 0) {
                                fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_141.toString());
                            }
                            /*else{
			             		riga.setVoce_iva(riga.getBene_servizio().getVoce_iva());
					    	    riga.setVoce_iva((Voce_ivaBulk)fatturaAttivaSingolaComponentSession.completaOggetto(userContext,riga.getVoce_iva())));
					    	    if (riga.getVoce_iva()==null){
					    	    	    fat=ValorizzaErrore(fat,Costanti.ERRORE_FA_106.toString());
			    	          	}else
					    	    {
					    	         riga.setDs_riga_fattura(riga.getBene_servizio().getDs_bene_servizio());
					    	    }
			             	}*/
                            if (testata.getTi_causale_emissione().equals(Fattura_attivaBulk.TARIFFARIO)) {
                                if (fatr.getCd_tariffario() != null) {
                                    riga.setCd_tariffario(fatr.getCd_tariffario());
                                    // r.p.???
                                    riga.setTariffario(fatturaAttivaSingolaComponentSession.findTariffario(userContext, riga));
                                    if (riga.getTariffario() == null) {
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_128.toString());
                                    }
                                    riga.setVoce_iva(riga.getTariffario().getVoce_iva());
                                    riga.setVoce_iva((Voce_ivaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, riga.getVoce_iva()));
                                    if (riga.getVoce_iva() == null) {
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_106.toString());
                                    } else {
                                        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 (fatr.getFl_iva_forzata().booleanValue())
                                            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
                                    fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_103.toString());
                            } else {
                                // if(testata.getTi_causale_emissione().equals(Fattura_attivaBulk.TARIFFARIO))
                                if (fatr.getPrezzo_unitario() != null)
                                    riga.setPrezzo_unitario(fatr.getPrezzo_unitario());
                                if (fatr.getQuantita() != null)
                                    riga.setQuantita(fatr.getQuantita());
                                if (fatr.getCd_voce_iva() != null) {
                                    riga.setVoce_iva(new Voce_ivaBulk(fatr.getCd_voce_iva()));
                                    riga.setCd_voce_iva(fatr.getCd_voce_iva());
                                }
                                riga.setVoce_iva((Voce_ivaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, riga.getVoce_iva()));
                                if (riga.getVoce_iva() == null || (riga.getVoce_iva().getDt_cancellazione() != null && riga.getPrezzo_unitario().compareTo(BigDecimal.ZERO) != 0)) {
                                    fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_106.toString());
                                } else {
                                    riga.setIm_imponibile(riga.getPrezzo_unitario().multiply(riga.getQuantita()));
                                    if (fatr.getFl_iva_forzata().booleanValue())
                                        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());
                                    if (fatr.getDs_riga_fattura() != null)
                                        riga.setDs_riga_fattura(fatr.getDs_riga_fattura());
                                }
                            }
                            // fine else if(testata.getTi_causale_emissione().equals(Fattura_attivaBulk.TARIFFARIO))
                            if ((testata.getTi_fattura().compareTo(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO) == 0)) {
                                if (fatr.getPg_fattura_assncna_fin() != null && fatr.getPg_riga_assncna_fin() != null && fatr.getEsercizio_assncna_fin() != null) {
                                    ((Nota_di_credito_attiva_rigaBulk) riga).setRiga_fattura_associata((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())));
                                    Fattura_attiva_rigaIBulk rigaFP = ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata();
                                    if (rigaFP != null) {
                                        java.math.BigDecimal nuovoImportoDisponibile = rigaFP.getIm_diponibile_nc().subtract(riga.getIm_totale_divisa());
                                        if (nuovoImportoDisponibile.compareTo(new BigDecimal("0")) < 0)
                                            fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_117.toString());
                                        else {
                                            rigaFP.setIm_diponibile_nc(nuovoImportoDisponibile.setScale(2, java.math.BigDecimal.ROUND_HALF_UP));
                                            ((Nota_di_credito_attiva_rigaBulk) riga).setRiga_fattura_associata(rigaFP);
                                        }
                                    }
                                } else
                                    // non dovrebbe servire questo controllo!
                                    fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_109.toString());
                                if (((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata() == null)
                                    fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_109.toString());
                                else {
                                    // controllo cliente coerente fattura - NC
                                    ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().setFattura_attivaI((Fattura_attiva_IBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Fattura_attiva_IBulk(testata.getCd_cds(), testata.getCd_unita_organizzativa(), ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getEsercizio(), ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getPg_fattura_attiva())));
                                    ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getFattura_attivaI().setCliente((TerzoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getFattura_attivaI().getCliente()));
                                    if (testata.getCliente().getCd_terzo().compareTo(((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getFattura_attivaI().getCd_terzo()) != 0)
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_116.toString());
                                    // Controllo codice iva coerente fattura - NC
                                    if (((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata() != null && ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getCd_voce_iva() != null && ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getCd_voce_iva().compareTo(riga.getCd_voce_iva()) != 0)
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_120.toString());
                                    // controllo causale emissione coerente fattura - Nc
                                    if (((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata() != null && ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getFattura_attivaI().getTi_causale_emissione() != null && ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getFattura_attivaI().getTi_causale_emissione().compareTo(riga.getFattura_attiva().getTi_causale_emissione()) != 0)
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_121.toString());
                                    // controllo sezionale coerente fattura - Nc
                                    if (((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata() != null && ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getFattura_attivaI().getTipo_sezionale() != null && ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getFattura_attivaI().getTipo_sezionale().getCd_tipo_sezionale().compareTo(riga.getFattura_attiva().getTipo_sezionale().getCd_tipo_sezionale()) != 0)
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_122.toString());
                                    // controllo tariffario coerente fattura - Nc
                                    if (((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata() != null && ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getCd_tariffario() != null && ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getCd_tariffario().compareTo(riga.getCd_tariffario()) != 0)
                                        // controllo flag coerente fattura - Nc
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_123.toString());
                                    if (((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata() != null && (((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getFattura_attivaI().getFl_extra_ue().compareTo(riga.getFattura_attiva().getFl_extra_ue()) != 0 || ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getFattura_attivaI().getFl_intra_ue().compareTo(riga.getFattura_attiva().getFl_intra_ue()) != 0 || ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getFattura_attivaI().getFl_san_marino().compareTo(riga.getFattura_attiva().getFl_san_marino()) != 0 || ((Nota_di_credito_attiva_rigaBulk) riga).getRiga_fattura_associata().getFattura_attivaI().getFl_liquidazione_differita().compareTo(riga.getFattura_attiva().getFl_liquidazione_differita()) != 0))
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_126.toString());
                                }
                                // fine else if(((Nota_di_credito_attiva_rigaBulk)riga).getRiga_fattura_associata()==null)
                                if ((testata.getTi_fattura().compareTo(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO) == 0)) {
                                    testata.setCd_cds(testata.getCd_cds_origine());
                                    testata.setCd_unita_organizzativa(testata.getCd_uo_origine());
                                }
                            }
                            // fine  if ((testata.getTi_fattura().compareTo(Fattura_attivaBulk.TIPO_NOTA_DI_CREDITO)==0))
                            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());
                                it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk voce = new it.cnr.contab.config00.pdcfin.bulk.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 = ((it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, voce));
                                if (voce == null)
                                    fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_107.toString());
                                else {
                                    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())
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_107.toString());
                                }
                                java.sql.Timestamp dataReg = null;
                                dataReg = it.cnr.jada.util.ejb.EJBCommonServices.getServerDate();
                                acc.setDt_registrazione((DateUtils.truncate(dataReg)));
                                acc.setDs_accertamento(fatr.getDs_accertamento());
                                // ??? 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()));
                                    if (acc.getContratto() == null) {
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_104.toString());
                                    } else {
                                        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))
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_108.toString());
                                }
                                java.util.ArrayList<FatturaAttivaScad> listOfScad = fatr.getRighescadvoc();
                                for (int v = 0; v < listOfScad.size(); v++) {
                                    FatturaAttivaScad fatrs = listOfScad.get(v);
                                    nome = Controllo_campo_errore(fatrs);
                                    if (nome != null) {
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_101.toString(), nome);
                                    } else {
                                        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) {
                                                fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_101.toString(), "Righe Scadenza inserite non valide");
                                            } else
                                                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()))));
                                        if (cdr_db == null) {
                                            fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_136.toString());
                                        }
                                        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)
                                                fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_138.toString());
                                            acc_scadenza.getAccertamento_scad_voceColl().add((acc_scad_voce));
                                        } else
                                            fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_137.toString());
                                    }
                                }
                                // fine for listOfScad
                                acc = (AccertamentoBulk) accertamentoComponentSession.creaConBulk(userContext, acc);
                                fatr.setPg_accertamento_scadenzario(acc.getAccertamento_scadenzarioColl().get(0).getPg_accertamento_scadenzario());
                                for (Iterator i = acc.getAccertamento_scadenzarioColl().iterator(); i.hasNext(); ) {
                                    BulkList righesel = new BulkList();
                                    righesel.add(riga);
                                    Accertamento_scadenzarioBulk scad = (Accertamento_scadenzarioBulk) i.next();
                                    testata = fatturaAttivaSingolaComponentSession.contabilizzaDettagliSelezionati(userContext, testata, righesel, scad);
                                    // testata.addToFattura_attiva_accertamentiHash(scad, riga);
                                    testata.addToDefferredSaldi(scad.getAccertamento(), scad.getAccertamento().getSaldiInfo());
                                }
                                // intrastat
                                java.util.ArrayList<FatturaAttivaIntra> listOfIntra = fat.getRigheIntra();
                                boolean obbligatorio = false;
                                for (Iterator i = testata.getFattura_attiva_dettColl().iterator(); i.hasNext(); ) {
                                    Fattura_attiva_rigaBulk dettaglio = (Fattura_attiva_rigaBulk) i.next();
                                    if (dettaglio.getBene_servizio() != null && dettaglio.getBene_servizio().getFl_obb_intrastat_ven().booleanValue())
                                        obbligatorio = true;
                                }
                                if (fat.getFl_intra_ue() != null && fat.getFl_intra_ue().booleanValue()) {
                                    if (listOfIntra != null && !listOfIntra.isEmpty() && testata.getCliente() != null && testata.getCliente().getAnagrafico() != null && testata.getCliente().getAnagrafico().getPartita_iva() != null && obbligatorio) {
                                        for (int v = 0; v < listOfIntra.size(); v++) {
                                            FatturaAttivaIntra intra = listOfIntra.get(v);
                                            nome = Controllo_campo_errore(intra);
                                            if (nome != null) {
                                                fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_101.toString(), nome);
                                            } else {
                                                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()))));
                                                    if (fa_intra.getModalita_erogazione() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_143.toString());
                                                    fa_intra.setModalita_incasso(((Modalita_incassoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Modalita_incassoBulk(testata.getEsercizio(), intra.getCod_incasso()))));
                                                    if (fa_intra.getModalita_incasso() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_144.toString());
                                                    fa_intra.setCodici_cpa(((Codici_cpaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Codici_cpaBulk(intra.getId_cpa()))));
                                                    if (fa_intra.getCodici_cpa() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_145.toString());
                                                    if (fa_intra.getCodici_cpa().getEsercizio().intValue() != testata.getEsercizio().intValue())
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_145.toString());
                                                } else {
                                                    // per il momento non richiesto da Pisa da testare totalmente anche i WS di servizio
                                                    fa_intra.setNomenclatura_combinata(((Nomenclatura_combinataBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Nomenclatura_combinataBulk(intra.getId_nomenclatura_combinata()))));
                                                    if (fa_intra.getNomenclatura_combinata() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_147.toString());
                                                    if (fa_intra.getNomenclatura_combinata().getEsercizio().intValue() != testata.getEsercizio().intValue())
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_147.toString());
                                                    fa_intra.setNatura_transazione(((Natura_transazioneBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Natura_transazioneBulk(intra.getId_natura_transazione()))));
                                                    if (fa_intra.getNatura_transazione() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_148.toString());
                                                    fa_intra.setCondizione_consegna(((Condizione_consegnaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Condizione_consegnaBulk(intra.getCd_consegna(), testata.getEsercizio()))));
                                                    if (fa_intra.getCondizione_consegna() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_149.toString());
                                                    fa_intra.setModalita_trasporto(((Modalita_trasportoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Modalita_trasportoBulk(intra.getCd_trasporto(), testata.getEsercizio()))));
                                                    if (fa_intra.getModalita_trasporto() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_150.toString());
                                                    fa_intra.setProvincia_origine(((ProvinciaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new ProvinciaBulk(intra.getCd_provincia()))));
                                                    if (fa_intra.getProvincia_origine() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_151.toString());
                                                    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(((NazioneBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new NazioneBulk(intra.getPg_nazione()))));
                                                if (fa_intra.getNazione_destinazione() == null)
                                                    fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_146.toString());
                                                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));
                                if (voce == null)
                                    fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_107.toString());
                                else {
                                    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(testata.getDt_registrazione());
                                // /?????
                                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((ContrattoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, obb.getContratto()));
                                    if (obb.getContratto() == null)
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_104.toString());
                                    else
                                        // / ????
                                        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))
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_108.toString());
                                }
                                java.util.ArrayList<FatturaAttivaScad> listOfScad = fatr.getRighescadvoc();
                                for (int v = 0; v < listOfScad.size(); v++) {
                                    FatturaAttivaScad fatrs = listOfScad.get(v);
                                    nome = Controllo_campo_errore(fatrs);
                                    if (nome != null) {
                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_101.toString(), nome);
                                    } else {
                                        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());
                                        CdrBulk cdr_db = new CdrBulk();
                                        cdr_db = (((CdrBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new CdrBulk(fatrs.getCdr()))));
                                        if (cdr_db == null)
                                            fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_136.toString());
                                        obb_scad_voce.setLinea_attivita(((WorkpackageBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new WorkpackageBulk(fatrs.getCdr(), fatrs.getGae()))));
                                        if (obb_scad_voce.getLinea_attivita() != null) {
                                            if (obb_scad_voce.getLinea_attivita().getTi_gestione().compareTo(obb.getTi_gestione()) != 0)
                                                fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_138.toString());
                                            Linea_attivitaBulk nuovaLatt = new it.cnr.contab.doccont00.core.bulk.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));
                                        } else
                                            fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_137.toString());
                                    }
                                }
                                // intrastat
                                java.util.ArrayList<FatturaAttivaIntra> listOfIntra = fat.getRigheIntra();
                                boolean obbligatorio = false;
                                for (Iterator i = testata.getFattura_attiva_dettColl().iterator(); i.hasNext(); ) {
                                    Fattura_attiva_rigaBulk dettaglio = (Fattura_attiva_rigaBulk) i.next();
                                    if (dettaglio.getBene_servizio() != null && dettaglio.getBene_servizio().getFl_obb_intrastat_ven().booleanValue())
                                        obbligatorio = true;
                                }
                                if (fat.getFl_intra_ue() != null && fat.getFl_intra_ue().booleanValue()) {
                                    if (listOfIntra != null && !listOfIntra.isEmpty() && testata.getCliente() != null && testata.getCliente().getAnagrafico() != null && testata.getCliente().getAnagrafico().getPartita_iva() != null && obbligatorio) {
                                        for (int v = 0; v < listOfIntra.size(); v++) {
                                            FatturaAttivaIntra intra = listOfIntra.get(v);
                                            nome = Controllo_campo_errore(intra);
                                            if (nome != null) {
                                                fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_101.toString(), nome);
                                            } else {
                                                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()))));
                                                    if (fa_intra.getModalita_erogazione() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_143.toString());
                                                    fa_intra.setModalita_incasso(((Modalita_incassoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Modalita_incassoBulk(testata.getEsercizio(), intra.getCod_incasso()))));
                                                    if (fa_intra.getModalita_incasso() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_144.toString());
                                                    fa_intra.setCodici_cpa(((Codici_cpaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Codici_cpaBulk(intra.getId_cpa()))));
                                                    if (fa_intra.getCodici_cpa() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_145.toString());
                                                    if (fa_intra.getCodici_cpa().getEsercizio() != testata.getEsercizio())
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_145.toString());
                                                } else {
                                                    // per il momento non richiesto da Pisa da testare totalmente anche i WS di servizio
                                                    fa_intra.setNomenclatura_combinata(((Nomenclatura_combinataBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Nomenclatura_combinataBulk(intra.getId_nomenclatura_combinata()))));
                                                    if (fa_intra.getNomenclatura_combinata() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_147.toString());
                                                    fa_intra.setNatura_transazione(((Natura_transazioneBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Natura_transazioneBulk(intra.getId_natura_transazione()))));
                                                    if (fa_intra.getNatura_transazione() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_148.toString());
                                                    fa_intra.setCondizione_consegna(((Condizione_consegnaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Condizione_consegnaBulk(intra.getCd_consegna(), testata.getEsercizio()))));
                                                    if (fa_intra.getCondizione_consegna() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_149.toString());
                                                    fa_intra.setModalita_trasporto(((Modalita_trasportoBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new Modalita_trasportoBulk(intra.getCd_trasporto(), testata.getEsercizio()))));
                                                    if (fa_intra.getModalita_trasporto() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_150.toString());
                                                    fa_intra.setProvincia_origine(((ProvinciaBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new ProvinciaBulk(intra.getCd_provincia()))));
                                                    if (fa_intra.getProvincia_origine() == null)
                                                        fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_151.toString());
                                                    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(((NazioneBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, new NazioneBulk(intra.getPg_nazione()))));
                                                if (fa_intra.getNazione_destinazione() == null)
                                                    fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_146.toString());
                                                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);
                                java.util.Hashtable relationsHash = new java.util.Hashtable();
                                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 else campi null riga
                    }
                    // fine righe
                    if (fat.getCod_errore() == null) {
                        testata = (Fattura_attivaBulk) fatturaAttivaSingolaComponentSession.creaConBulk(userContext, testata);
                        fat.setPg_fattura_attiva(testata.getPg_fattura_attiva());
                        fat.setIm_totale_imponibile(testata.getIm_totale_imponibile());
                        fat.setIm_totale_iva(testata.getIm_totale_iva());
                        for (int ra = 0; ra < fat.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(context, "Fattura_automatica");
                    }
                } catch (ApplicationException e) {
                    fatturaAttivaSingolaComponentSession.rollbackToSavePoint(context, "Fattura_automatica");
                    fat.setCod_errore(Costanti.ERRORE_FA_100.toString());
                    fat.setDesc_errore(Costanti.erroriFA.get(Costanti.ERRORE_FA_100) + e.getMessage());
                } catch (it.cnr.jada.bulk.ValidationException e) {
                    fatturaAttivaSingolaComponentSession.rollbackToSavePoint(context, "Fattura_automatica");
                    fat.setCod_errore(Costanti.ERRORE_FA_100.toString());
                    fat.setDesc_errore(Costanti.erroriFA.get(Costanti.ERRORE_FA_100) + e.getMessage());
                } catch (Exception e) {
                    fatturaAttivaSingolaComponentSession.rollbackToSavePoint(context, "Fattura_automatica");
                    fat = ValorizzaErrore(fat, Costanti.ERRORE_FA_999.toString());
                }
            }
            // else campi not null fattura
            listOfFatture.set(s, fat);
        }
    // fine for fattura
    } catch (Exception err) {
        throw new Exception(err);
    }
    return listOfFatture;
}
Also used : CdrBulk(it.cnr.contab.config00.sto.bulk.CdrBulk) BigDecimal(java.math.BigDecimal) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) 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) Timestamp(java.sql.Timestamp) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) WSUserContext(it.cnr.contab.utenze00.bp.WSUserContext) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) ProvinciaBulk(it.cnr.contab.anagraf00.tabter.bulk.ProvinciaBulk) it.cnr.contab.docamm00.intrastat.bulk(it.cnr.contab.docamm00.intrastat.bulk) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) Voce_ivaBulk(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk) Timestamp(java.sql.Timestamp) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) Iterator(java.util.Iterator) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) UserContext(it.cnr.jada.UserContext) WSUserContext(it.cnr.contab.utenze00.bp.WSUserContext) BulkList(it.cnr.jada.bulk.BulkList) BigDecimal(java.math.BigDecimal) ApplicationException(it.cnr.jada.comp.ApplicationException) FatturaNonTrovataException(it.cnr.jada.comp.FatturaNonTrovataException) SOAPFaultException(javax.xml.ws.soap.SOAPFaultException) ApplicationException(it.cnr.jada.comp.ApplicationException) BancaBulk(it.cnr.contab.anagraf00.core.bulk.BancaBulk) Tipo_sezionaleBulk(it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk) RolesAllowed(javax.annotation.security.RolesAllowed)

Example 5 with Tipo_sezionaleBulk

use of it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk in project sigla-main by consiglionazionaledellericerche.

the class SezionaleComponentWS method generaXML.

public String generaXML(String numMax, UserContext userContext, List Sezionali) throws ParserConfigurationException, TransformerException, PersistencyException, ComponentException, RemoteException, EJBException {
    if (numMax == null)
        numMax = new Integer(20).toString();
    DocumentBuilderFactory factory = DocumentBuilderFactory.newInstance();
    DocumentBuilder builder = factory.newDocumentBuilder();
    DOMImplementation impl = builder.getDOMImplementation();
    Document xmldoc = impl.createDocument(null, "root", null);
    Element root = xmldoc.getDocumentElement();
    root.setAttributeNS("http://www.w3.org/2001/XMLSchema-instance", "xsi:noNamespaceSchemaLocation", "https://contab.cnr.it/SIGLA/schema/cercasezionale.xsd");
    root.appendChild(generaNumeroSezionale(xmldoc, Sezionali));
    int num = 0;
    if (Sezionali != null && !Sezionali.isEmpty()) {
        for (Iterator i = Sezionali.iterator(); i.hasNext() && num < new Integer(numMax).intValue(); ) {
            SezionaleBulk sezionale = (SezionaleBulk) i.next();
            sezionale.setTipo_sezionale((Tipo_sezionaleBulk) fatturaAttivaSingolaComponentSession.completaOggetto(userContext, sezionale.getTipo_sezionale()));
            root.appendChild(generaDettaglioSezionale(xmldoc, sezionale.getTipo_sezionale().getCd_tipo_sezionale(), sezionale.getTipo_sezionale().getDs_tipo_sezionale(), sezionale.getTipo_sezionale().getTi_istituz_commercKeys().get(sezionale.getTipo_sezionale().getTi_istituz_commerc()).toString()));
            num++;
        }
    }
    DOMSource domSource = new DOMSource(xmldoc);
    StringWriter domWriter = new StringWriter();
    StreamResult streamResult = new StreamResult(domWriter);
    TransformerFactory tf = TransformerFactory.newInstance();
    Transformer serializer = tf.newTransformer();
    serializer.setOutputProperty(OutputKeys.ENCODING, "UTF-8");
    // serializer.setOutputProperty(OutputKeys.DOCTYPE_SYSTEM,"http://150.146.206.250/DTD/cercaterzi.dtd");
    // serializer.setOutputProperty(OutputKeys.DOCTYPE_PUBLIC,"cercatariffari");
    serializer.setOutputProperty(OutputKeys.INDENT, "yes");
    serializer.setOutputProperty(OutputKeys.STANDALONE, "no");
    serializer.transform(domSource, streamResult);
    return domWriter.toString();
}
Also used : DOMSource(javax.xml.transform.dom.DOMSource) DocumentBuilderFactory(javax.xml.parsers.DocumentBuilderFactory) TransformerFactory(javax.xml.transform.TransformerFactory) Transformer(javax.xml.transform.Transformer) StreamResult(javax.xml.transform.stream.StreamResult) Element(org.w3c.dom.Element) DOMImplementation(org.w3c.dom.DOMImplementation) Document(org.w3c.dom.Document) StringWriter(java.io.StringWriter) DocumentBuilder(javax.xml.parsers.DocumentBuilder) Iterator(java.util.Iterator) SezionaleBulk(it.cnr.contab.docamm00.tabrif.bulk.SezionaleBulk)

Aggregations

Tipo_sezionaleBulk (it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk)7 ComponentException (it.cnr.jada.comp.ComponentException)6 it.cnr.contab.docamm00.docs.bulk (it.cnr.contab.docamm00.docs.bulk)5 it.cnr.contab.docamm00.intrastat.bulk (it.cnr.contab.docamm00.intrastat.bulk)5 it.cnr.contab.doccont00.core.bulk (it.cnr.contab.doccont00.core.bulk)5 UserContext (it.cnr.jada.UserContext)5 ApplicationException (it.cnr.jada.comp.ApplicationException)5 RemoteException (java.rmi.RemoteException)5 Iterator (java.util.Iterator)5 Rif_modalita_pagamentoBulk (it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk)4 NazioneBulk (it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk)4 ContrattoBulk (it.cnr.contab.config00.contratto.bulk.ContrattoBulk)4 Elemento_voceBulk (it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk)4 PersistencyException (it.cnr.jada.persistency.PersistencyException)4 BigDecimal (java.math.BigDecimal)4 Timestamp (java.sql.Timestamp)4 java.util (java.util)4 it.cnr.contab.anagraf00.core.bulk (it.cnr.contab.anagraf00.core.bulk)3 TerzoBulk (it.cnr.contab.anagraf00.core.bulk.TerzoBulk)3 ProvinciaBulk (it.cnr.contab.anagraf00.tabter.bulk.ProvinciaBulk)3