Search in sources :

Example 1 with Fattura_passiva_rigaBulk

use of it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDFatturaPassivaBP method associaOrdineRigaFattura.

public boolean associaOrdineRigaFattura(ActionContext context, Fattura_passiva_rigaBulk fattura_passiva_rigaBulk) throws BusinessProcessException {
    return Optional.ofNullable(createComponentSession()).filter(FatturaPassivaComponentSession.class::isInstance).map(FatturaPassivaComponentSession.class::cast).map(fatturaPassivaComponentSession -> {
        try {
            List<EvasioneOrdineRigaBulk> evasioneOrdineRigas = fatturaPassivaComponentSession.findContabilizzaRigaByClause(context.getUserContext(), fattura_passiva_rigaBulk, CompoundFindClause.identity(new SimpleFindClause("ordineAcqConsegna.ordineAcqRiga.imImponibileDivisa", SQLBuilder.EQUALS, fattura_passiva_rigaBulk.getIm_imponibile())));
            return Optional.ofNullable(evasioneOrdineRigas).filter(evasioneOrdineRigaBulks -> !evasioneOrdineRigaBulks.isEmpty()).filter(evasioneOrdineRigaBulks -> evasioneOrdineRigaBulks.size() == 1).map(evasioneOrdineRigaBulks -> {
                final EvasioneOrdineRigaBulk evasioneOrdineRigaBulk = evasioneOrdineRigaBulks.get(0);
                try {
                    fattura_passiva_rigaBulk.setBene_servizio(Optional.ofNullable(fattura_passiva_rigaBulk.getBene_servizio()).orElseGet(() -> evasioneOrdineRigaBulk.getOrdineAcqConsegna().getOrdineAcqRiga().getBeneServizio()));
                    fattura_passiva_rigaBulk.setVoce_iva(Optional.ofNullable(fattura_passiva_rigaBulk.getVoce_iva()).orElseGet(() -> evasioneOrdineRigaBulk.getOrdineAcqConsegna().getOrdineAcqRiga().getVoce_iva()));
                    fattura_passiva_rigaBulk.setDs_riga_fattura(Optional.ofNullable(fattura_passiva_rigaBulk.getDs_riga_fattura()).orElseGet(() -> evasioneOrdineRigaBulk.getOrdineAcqConsegna().getOrdineAcqRiga().getBeneServizio().getDs_bene_servizio()));
                    fattura_passiva_rigaBulk.setPrezzo_unitario(Optional.ofNullable(fattura_passiva_rigaBulk.getPrezzo_unitario()).orElseGet(() -> evasioneOrdineRigaBulk.getOrdineAcqConsegna().getOrdineAcqRiga().getPrezzoUnitario()));
                    fattura_passiva_rigaBulk.setQuantita(Optional.ofNullable(fattura_passiva_rigaBulk.getQuantita()).orElseGet(() -> evasioneOrdineRigaBulk.getQuantitaEvasa()));
                    associaOrdineRigaFattura(context, evasioneOrdineRigaBulk, fattura_passiva_rigaBulk);
                } catch (BusinessProcessException e) {
                    throw new DetailedRuntimeException(e);
                }
                return true;
            }).orElse(false);
        } catch (ComponentException | RemoteException e) {
            throw new DetailedRuntimeException(e);
        }
    }).orElse(false);
}
Also used : FatturaOrdineBulk(it.cnr.contab.ordmag.ordini.bulk.FatturaOrdineBulk) Transformer(javax.xml.transform.Transformer) ServletException(javax.servlet.ServletException) EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk) StreamResult(javax.xml.transform.stream.StreamResult) ActionContext(it.cnr.jada.action.ActionContext) EconomicaDareDetailCRUDController(it.cnr.contab.coepcoan00.bp.EconomicaDareDetailCRUDController) IDefferedUpdateSaldiBP(it.cnr.contab.doccont00.bp.IDefferedUpdateSaldiBP) Ass_inv_bene_fatturaBulk(it.cnr.contab.inventario00.docs.bulk.Ass_inv_bene_fatturaBulk) FatturaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession) BigDecimal(java.math.BigDecimal) SimpleDetailCRUDController(it.cnr.jada.util.action.SimpleDetailCRUDController) it.cnr.contab.docamm00.fatturapa.bulk(it.cnr.contab.docamm00.fatturapa.bulk) BigInteger(java.math.BigInteger) Accertamento_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioBulk) CollapsableDetailCRUDController(it.cnr.jada.util.action.CollapsableDetailCRUDController) ValidationException(it.cnr.jada.bulk.ValidationException) StorageObject(it.cnr.si.spring.storage.StorageObject) Timestamp(java.sql.Timestamp) BuonoCaricoScaricoComponentSession(it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) CRUDScritturaPDoppiaBP(it.cnr.contab.coepcoan00.bp.CRUDScritturaPDoppiaBP) EconomicaAvereDetailCRUDController(it.cnr.contab.coepcoan00.bp.EconomicaAvereDetailCRUDController) IDefferUpdateSaldi(it.cnr.contab.doccont00.core.bulk.IDefferUpdateSaldi) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) RicercaDocContComponentSession(it.cnr.contab.chiusura00.ejb.RicercaDocContComponentSession) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) List(java.util.List) Stream(java.util.stream.Stream) OrdineAcqConsegnaBulk(it.cnr.contab.ordmag.ordini.bulk.OrdineAcqConsegnaBulk) Optional(java.util.Optional) StoragePropertyNames(it.cnr.si.spring.storage.config.StoragePropertyNames) Bene_servizioBulk(it.cnr.contab.docamm00.tabrif.bulk.Bene_servizioBulk) SpringUtil(it.cnr.contab.service.SpringUtil) HttpActionContext(it.cnr.jada.action.HttpActionContext) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) TransformerException(javax.xml.transform.TransformerException) StreamSource(javax.xml.transform.stream.StreamSource) Utility(it.cnr.contab.util.Utility) Source(javax.xml.transform.Source) Fattura_passiva_intraBulk(it.cnr.contab.docamm00.intrastat.bulk.Fattura_passiva_intraBulk) AllegatiCRUDBP(it.cnr.contab.util00.bp.AllegatiCRUDBP) SimpleFindClause(it.cnr.jada.persistency.sql.SimpleFindClause) EvasioneOrdineRigaBulk(it.cnr.contab.ordmag.ordini.bulk.EvasioneOrdineRigaBulk) StoreService(it.cnr.si.spring.storage.StoreService) OutputStream(java.io.OutputStream) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) Voce_ivaBulk(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk) Iterator(java.util.Iterator) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) HttpServletResponse(javax.servlet.http.HttpServletResponse) IOException(java.io.IOException) BulkList(it.cnr.jada.bulk.BulkList) TreeMap(java.util.TreeMap) ObbligazioneBulk(it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk) TransformerFactory(javax.xml.transform.TransformerFactory) Obbligazione_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk) ComponentException(it.cnr.jada.comp.ComponentException) CompoundFindClause(it.cnr.jada.persistency.sql.CompoundFindClause) InputStream(java.io.InputStream) EvasioneOrdineRigaBulk(it.cnr.contab.ordmag.ordini.bulk.EvasioneOrdineRigaBulk) SimpleFindClause(it.cnr.jada.persistency.sql.SimpleFindClause) List(java.util.List) BulkList(it.cnr.jada.bulk.BulkList) FatturaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException)

Example 2 with Fattura_passiva_rigaBulk

use of it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk 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 3 with Fattura_passiva_rigaBulk

use of it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDFatturaPassivaBP method sdoppiaDettaglioInAutomatico.

public void sdoppiaDettaglioInAutomatico(ActionContext context) throws ValidationException, BusinessProcessException {
    try {
        it.cnr.contab.doccont00.ejb.ObbligazioneAbstractComponentSession h = it.cnr.contab.doccont00.bp.CRUDVirtualObbligazioneBP.getVirtualComponentSession(context, true);
        FatturaPassivaComponentSession session = (FatturaPassivaComponentSession) createComponentSession();
        Fattura_passivaBulk documento = (Fattura_passivaBulk) getModel();
        Fattura_passiva_rigaIBulk dettaglioSelezionato = (Fattura_passiva_rigaIBulk) getDettaglio().getModel();
        Obbligazione_scadenzarioBulk scadenzaNuova = null;
        if (dettaglioSelezionato == null)
            return;
        if (documento.getStato_cofi() != null && documento.getStato_cofi().equals(documento.STATO_PAGATO))
            setMessage("Non è possibile sdoppiare righe in un documento pagato.");
        if (dettaglioSelezionato.getIm_riga_sdoppia() == null || dettaglioSelezionato.getIm_riga_sdoppia().equals(Utility.ZERO) || dettaglioSelezionato.getIm_riga_sdoppia().compareTo(dettaglioSelezionato.getSaldo()) != -1) {
            setMessage("Il nuovo importo della riga da sdoppiare deve essere positivo ed inferiore " + "al saldo originario.");
            return;
        }
        Obbligazione_scadenzarioBulk scadenzaVecchia = dettaglioSelezionato.getObbligazione_scadenziario();
        BigDecimal newImportoRigaVecchia = dettaglioSelezionato.getIm_riga_sdoppia().add(dettaglioSelezionato.getIm_diponibile_nc().subtract(dettaglioSelezionato.getSaldo()));
        BigDecimal newImportoRigaNuova = dettaglioSelezionato.getSaldo().subtract(dettaglioSelezionato.getIm_riga_sdoppia());
        BigDecimal newPrezzoRigaVecchia = newImportoRigaVecchia.divide(documento.getCambio(), 2, BigDecimal.ROUND_HALF_UP).divide(dettaglioSelezionato.getQuantita().multiply(dettaglioSelezionato.getVoce_iva().getPercentuale().divide(new BigDecimal(100)).add(new java.math.BigDecimal(1))), 2, BigDecimal.ROUND_HALF_UP);
        BigDecimal newPrezzoRigaNuova = dettaglioSelezionato.getPrezzo_unitario().subtract(newPrezzoRigaVecchia);
        BigDecimal oldImportoIvaVecchia = BigDecimal.ZERO;
        BigDecimal tot_imp = BigDecimal.ZERO;
        if (dettaglioSelezionato.getVoce_iva().getFl_autofattura() || documento.quadraturaInDeroga()) {
            oldImportoIvaVecchia = dettaglioSelezionato.getIm_iva();
            tot_imp = newPrezzoRigaVecchia.multiply(documento.getCambio()).multiply(dettaglioSelezionato.getQuantita()).setScale(2, BigDecimal.ROUND_HALF_UP);
        } else
            tot_imp = dettaglioSelezionato.getIm_riga_sdoppia();
        if (dettaglioSelezionato.getObbligazione_scadenziario() != null) {
            scadenzaNuova = (Obbligazione_scadenzarioBulk) h.sdoppiaScadenzaInAutomatico(context.getUserContext(), scadenzaVecchia, scadenzaVecchia.getIm_scadenza().subtract(dettaglioSelezionato.getSaldo().subtract(oldImportoIvaVecchia)).add(tot_imp));
            // ricarico obbligazione e recupero i riferimenti alle scadenze
            ObbligazioneBulk obbligazione = (ObbligazioneBulk) h.inizializzaBulkPerModifica(context.getUserContext(), scadenzaNuova.getObbligazione());
            if (!obbligazione.getObbligazione_scadenzarioColl().containsByPrimaryKey(scadenzaVecchia) || !obbligazione.getObbligazione_scadenzarioColl().containsByPrimaryKey(scadenzaNuova))
                throw new ValidationException("Errore nello sdoppiamento della scadenza dell'impegno.");
            scadenzaVecchia = (Obbligazione_scadenzarioBulk) obbligazione.getObbligazione_scadenzarioColl().get(obbligazione.getObbligazione_scadenzarioColl().indexOfByPrimaryKey(scadenzaVecchia));
            scadenzaNuova = (Obbligazione_scadenzarioBulk) obbligazione.getObbligazione_scadenzarioColl().get(obbligazione.getObbligazione_scadenzarioColl().indexOfByPrimaryKey(scadenzaNuova));
        }
        // creo la nuova riga di dettaglio e la associo al documento
        Fattura_passiva_rigaIBulk nuovoDettaglio = new Fattura_passiva_rigaIBulk();
        getDettaglio().addDetail(nuovoDettaglio);
        nuovoDettaglio = copyByRigaDocumento(context, nuovoDettaglio, dettaglioSelezionato);
        nuovoDettaglio.setQuantita(dettaglioSelezionato.getQuantita());
        nuovoDettaglio.setPrezzo_unitario(newPrezzoRigaNuova);
        nuovoDettaglio.calcolaCampiDiRiga();
        // setto im_diponibile prime per la verifica e dopo
        nuovoDettaglio.setIm_diponibile_nc(nuovoDettaglio.getSaldo());
        if (nuovoDettaglio.getIm_diponibile_nc().compareTo(newImportoRigaNuova) != 0) {
            nuovoDettaglio.setIm_iva(nuovoDettaglio.getIm_iva().add(newImportoRigaNuova.subtract(nuovoDettaglio.getIm_diponibile_nc())));
            nuovoDettaglio.setIm_totale_divisa(newImportoRigaNuova.subtract(nuovoDettaglio.getIm_iva()));
            nuovoDettaglio.setFl_iva_forzata(Boolean.TRUE);
            nuovoDettaglio.calcolaCampiDiRiga();
        }
        nuovoDettaglio.setIm_diponibile_nc(nuovoDettaglio.getSaldo());
        // Aggiorno la vecchia riga di dettaglio ed in particolare l'importo
        // della riga da sdoppiare
        // del doc amministrativo
        BigDecimal oldImpTotaleDivisa = dettaglioSelezionato.getIm_totale_divisa();
        dettaglioSelezionato.setPrezzo_unitario(newPrezzoRigaVecchia);
        dettaglioSelezionato.calcolaCampiDiRiga();
        // setto im_diponibile prime per la verifica e dopo
        dettaglioSelezionato.setIm_diponibile_nc(dettaglioSelezionato.getSaldo());
        if (dettaglioSelezionato.getIm_diponibile_nc().compareTo(newImportoRigaVecchia) != 0) {
            dettaglioSelezionato.setIm_iva(dettaglioSelezionato.getIm_iva().add(newImportoRigaVecchia.subtract(dettaglioSelezionato.getIm_diponibile_nc())));
            dettaglioSelezionato.setIm_totale_divisa(newImportoRigaVecchia.subtract(dettaglioSelezionato.getIm_iva()));
            dettaglioSelezionato.setFl_iva_forzata(Boolean.TRUE);
            dettaglioSelezionato.calcolaCampiDiRiga();
        }
        dettaglioSelezionato.setIm_diponibile_nc(dettaglioSelezionato.getSaldo());
        dettaglioSelezionato.setToBeUpdated();
        if (scadenzaVecchia != null) {
            for (Iterator i = documento.getFattura_passiva_dettColl().iterator(); i.hasNext(); ) {
                Fattura_passiva_rigaIBulk riga = (Fattura_passiva_rigaIBulk) i.next();
                if (riga.getObbligazione_scadenziario() != null && riga.getObbligazione_scadenziario().equalsByPrimaryKey(scadenzaVecchia)) {
                    riga.setObbligazione_scadenziario(scadenzaVecchia);
                    documento.addToDefferredSaldi(scadenzaVecchia.getObbligazione(), scadenzaVecchia.getObbligazione().getSaldiInfo());
                }
            }
        }
        if (scadenzaNuova != null) {
            BulkList selectedModels = new BulkList();
            selectedModels.add(nuovoDettaglio);
            documento = session.contabilizzaDettagliSelezionati(context.getUserContext(), documento, selectedModels, scadenzaNuova);
            documento.addToFattura_passiva_obbligazioniHash(scadenzaNuova, nuovoDettaglio);
            documento.addToDefferredSaldi(scadenzaNuova.getObbligazione(), scadenzaNuova.getObbligazione().getSaldiInfo());
            // Sdoppia associazione inventario in automatico
            if (nuovoDettaglio.isInventariato()) {
                // r.p. Prendo il progressivo dalla fattura_passivaBulk
                // perchè viene aggiornato
                BuonoCaricoScaricoComponentSession r = (it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession", it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession.class);
                Ass_inv_bene_fatturaBulk newAss = r.sdoppiaAssociazioneFor(context.getUserContext(), (Fattura_passiva_rigaBulk) dettaglioSelezionato, (Fattura_passiva_rigaBulk) nuovoDettaglio);
                documento.addToAssociazioniInventarioHash(newAss, nuovoDettaglio);
            }
        }
        documento = (Fattura_passivaBulk) session.rebuildDocumento(context.getUserContext(), documento);
        getObbligazioniController().getSelection().clear();
        getObbligazioniController().setModelIndex(context, -1);
        getObbligazioniController().setModelIndex(context, it.cnr.jada.bulk.BulkCollections.indexOfByPrimaryKey(getObbligazioniController().getDetails(), dettaglioSelezionato));
        documento.setDetailDoubled(true);
        setModel(context, documento);
    } catch (Exception e) {
        throw handleException(e);
    }
}
Also used : ValidationException(it.cnr.jada.bulk.ValidationException) BulkList(it.cnr.jada.bulk.BulkList) Ass_inv_bene_fatturaBulk(it.cnr.contab.inventario00.docs.bulk.Ass_inv_bene_fatturaBulk) BuonoCaricoScaricoComponentSession(it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) FatturaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession) BigDecimal(java.math.BigDecimal) ServletException(javax.servlet.ServletException) ValidationException(it.cnr.jada.bulk.ValidationException) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) TransformerException(javax.xml.transform.TransformerException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) IOException(java.io.IOException) ComponentException(it.cnr.jada.comp.ComponentException) BigDecimal(java.math.BigDecimal) ObbligazioneBulk(it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk) Iterator(java.util.Iterator) Obbligazione_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk)

Example 4 with Fattura_passiva_rigaBulk

use of it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk 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 5 with Fattura_passiva_rigaBulk

use of it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk in project sigla-main by consiglionazionaledellericerche.

the class FatturaPassivaComponent method completaFornitore.

// ^^@@
/**
 * Normale.
 * PreCondition:
 * Vengono richiesti i dati relativi al fornitore della fattura passiva
 * PostCondition:
 * vengono trasmessi i dati relativi al fornitore.
 */
// ^^@@
public Fattura_passivaBulk completaFornitore(it.cnr.jada.UserContext uc, Fattura_passivaBulk fattura_passiva, it.cnr.contab.anagraf00.core.bulk.TerzoBulk fornitoreTrovato) throws ComponentException {
    try {
        if (fattura_passiva != null) {
            if (fattura_passiva.isEstera()) {
                if (fattura_passiva.getFl_extra_ue() != null && fattura_passiva.getFl_extra_ue().booleanValue() && !it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk.EXTRA_CEE.equalsIgnoreCase(fornitoreTrovato.getAnagrafico().getTi_italiano_estero()))
                    throw new it.cnr.jada.comp.ApplicationException("La fattura è estera. La nazionalità del fornitore deve appartenere ad uno Stato extra UE.");
                if (fattura_passiva.getFl_intra_ue() != null && fattura_passiva.getFl_intra_ue().booleanValue() && !it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk.CEE.equalsIgnoreCase(fornitoreTrovato.getAnagrafico().getTi_italiano_estero()))
                    throw new it.cnr.jada.comp.ApplicationException("La fattura è estera. La nazionalità del fornitore deve appartenere ad uno Stato intra UE.");
                AnagraficoComponentSession sess = (AnagraficoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRANAGRAF00_EJB_AnagraficoComponentSession", AnagraficoComponentSession.class);
                if (fattura_passiva.getFl_intra_ue() != null && fattura_passiva.getFl_intra_ue().booleanValue() && !sess.verificaStrutturaPiva(uc, fornitoreTrovato.getAnagrafico()))
                    throw new it.cnr.jada.comp.ApplicationException("Verificare la partita Iva del fornitore non corrisponde al modello della sua nazionalità.");
            }
            fattura_passiva.setFornitore(fornitoreTrovato);
            fattura_passiva.setNome(fornitoreTrovato.getAnagrafico().getNome());
            fattura_passiva.setCognome(fornitoreTrovato.getAnagrafico().getCognome());
            fattura_passiva.setRagione_sociale(fornitoreTrovato.getAnagrafico().getRagione_sociale());
            fattura_passiva.setCodice_fiscale(fornitoreTrovato.getAnagrafico().getCodice_fiscale());
            if (fattura_passiva.getPartita_iva() != null) {
                it.cnr.contab.anagraf00.core.bulk.AnagraficoHome home = (it.cnr.contab.anagraf00.core.bulk.AnagraficoHome) getHome(uc, AnagraficoBulk.class);
                Collection coll = home.findGruppiIvaAssociati(fornitoreTrovato.getAnagrafico());
                Boolean trovato = false;
                if (coll != null && !coll.isEmpty()) {
                    for (java.util.Iterator i = coll.iterator(); i.hasNext(); ) {
                        AssGruppoIvaAnagBulk assGruppoIvaAnagBulk = (AssGruppoIvaAnagBulk) i.next();
                        AnagraficoBulk anagraficoBulk = (AnagraficoBulk) home.findByPrimaryKey(assGruppoIvaAnagBulk.getAnagraficoGruppoIva());
                        if (anagraficoBulk != null && anagraficoBulk.isGruppoIVA() && fattura_passiva.getDt_fattura_fornitore().compareTo(anagraficoBulk.getDtIniValGruppoIva()) > 0 && fattura_passiva.getDt_fattura_fornitore().compareTo(anagraficoBulk.getDt_canc()) < 0 && anagraficoBulk.getPartita_iva().compareTo(fattura_passiva.getPartita_iva()) == 0) {
                            trovato = true;
                        }
                    }
                }
                if (!trovato) {
                    fattura_passiva.setPartita_iva(fornitoreTrovato.getAnagrafico().getPartita_iva());
                }
            } else {
                fattura_passiva.setPartita_iva(fornitoreTrovato.getAnagrafico().getPartita_iva());
            }
            it.cnr.contab.anagraf00.core.bulk.TerzoHome home = (it.cnr.contab.anagraf00.core.bulk.TerzoHome) getHome(uc, fornitoreTrovato);
            try {
                fattura_passiva.setTermini(findTermini(uc, fattura_passiva));
                fattura_passiva.setModalita(findModalita(uc, fattura_passiva));
                fattura_passiva.setTermini_pagamento(null);
                fattura_passiva.setModalita_pagamento(null);
                fattura_passiva.setBanca(null);
                fattura_passiva.setBanche(null);
                fattura_passiva.setCessionario(null);
            } catch (it.cnr.jada.persistency.PersistencyException e) {
                throw handleException(e);
            } catch (it.cnr.jada.persistency.IntrospectionException e) {
                throw handleException(e);
            }
            // Aggiorno le righe
            if (fattura_passiva.getFattura_passiva_dettColl() != null) {
                Iterator dettagli = fattura_passiva.getFattura_passiva_dettColl().iterator();
                while (dettagli.hasNext()) {
                    Fattura_passiva_rigaBulk riga = (Fattura_passiva_rigaBulk) dettagli.next();
                    if (!riga.getFornitore().equalsByPrimaryKey(fattura_passiva.getFornitore())) {
                        riga.setFornitore(fattura_passiva.getFornitore());
                        riga.setTermini(fattura_passiva.getTermini());
                        riga.setModalita(fattura_passiva.getModalita());
                        riga.setTermini_pagamento(null);
                        riga.setModalita_pagamento(null);
                        riga.setBanca(null);
                        riga.setBanche(null);
                        riga.setCessionario(null);
                        riga.setToBeUpdated();
                    }
                }
            }
        }
    } catch (ValidationException e) {
        throw new ApplicationException(e.getMessage());
    } catch (Throwable t) {
        throw handleException(fattura_passiva, t);
    }
    return fattura_passiva;
}
Also used : IntrospectionException(it.cnr.jada.persistency.IntrospectionException) RemoteIterator(it.cnr.jada.util.RemoteIterator) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ApplicationException(it.cnr.jada.comp.ApplicationException) java.util(java.util) AnagraficoComponentSession(it.cnr.contab.anagraf00.ejb.AnagraficoComponentSession) 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)

Aggregations

Fattura_passiva_rigaBulk (it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk)35 ApplicationException (it.cnr.jada.comp.ApplicationException)28 ComponentException (it.cnr.jada.comp.ComponentException)27 CRUDFatturaPassivaBP (it.cnr.contab.docamm00.bp.CRUDFatturaPassivaBP)23 RemoteException (java.rmi.RemoteException)21 Iterator (java.util.Iterator)21 PersistencyException (it.cnr.jada.persistency.PersistencyException)20 RemoteIterator (it.cnr.jada.util.RemoteIterator)19 FatturaPassivaComponentSession (it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession)17 List (java.util.List)17 Fattura_passivaBulk (it.cnr.contab.docamm00.docs.bulk.Fattura_passivaBulk)16 Fattura_passiva_rigaIBulk (it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaIBulk)16 DetailedRuntimeException (it.cnr.jada.DetailedRuntimeException)16 it.cnr.contab.docamm00.docs.bulk (it.cnr.contab.docamm00.docs.bulk)15 IntrospectionException (it.cnr.jada.persistency.IntrospectionException)15 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)14 ValidationException (it.cnr.jada.bulk.ValidationException)14 BigDecimal (java.math.BigDecimal)14 EJBException (javax.ejb.EJBException)14 Rif_modalita_pagamentoBulk (it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk)12