Search in sources :

Example 1 with CRUDFatturaPassivaAction

use of it.cnr.contab.docamm00.actions.CRUDFatturaPassivaAction 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 CRUDFatturaPassivaAction

use of it.cnr.contab.docamm00.actions.CRUDFatturaPassivaAction in project sigla-main by consiglionazionaledellericerche.

the class CRUDFatturaPassivaElettronicaAction method doConfirmCompilaFattura.

public Forward doConfirmCompilaFattura(ActionContext context, it.cnr.jada.util.action.OptionBP option) throws FillException, BusinessProcessException {
    if (option.getOption() == it.cnr.jada.util.action.OptionBP.YES_BUTTON) {
        CRUDFatturaPassivaElettronicaBP fatturaPassivaElettronicaBP = (CRUDFatturaPassivaElettronicaBP) context.getBusinessProcess();
        DocumentoEleTestataBulk bulk = (DocumentoEleTestataBulk) fatturaPassivaElettronicaBP.getModel();
        CRUDFatturaPassivaAction action = new CRUDFatturaPassivaAction();
        CRUDFatturaPassivaBP nbp = null;
        try {
            nbp = (CRUDFatturaPassivaBP) context.createBusinessProcess("CRUDFatturaPassivaBP", new Object[] { "M" });
            String mode = it.cnr.contab.utenze00.action.GestioneUtenteAction.getComponentSession().validaBPPerUtente(context.getUserContext(), ((CNRUserInfo) context.getUserInfo()).getUtente(), ((CNRUserInfo) context.getUserInfo()).getUtente().isUtenteComune() ? ((CNRUserInfo) context.getUserInfo()).getUnita_organizzativa().getCd_unita_organizzativa() : "*", "CRUDFatturaPassivaBP");
            if (mode == null || mode.equals("V"))
                throw new it.cnr.jada.action.MessageToUser("Accesso non consentito alla mappa di creazione delle fatture. Impossibile continuare.");
            if (bulk.getTipoDocumentoSIGLA().equalsIgnoreCase(Fattura_passivaBulk.TIPO_NOTA_DI_CREDITO)) {
                if (bulk.getModalitaPagamento() == null)
                    throw new it.cnr.jada.action.MessageToUser("Prima di procedere indicare la modalità di pagamento!");
            }
            context.addHookForward("default", this, "doBringBackCompilaFattura");
            nbp = (CRUDFatturaPassivaBP) context.addBusinessProcess(nbp);
            if (bulk.getTipoDocumentoSIGLA().equalsIgnoreCase(Fattura_passivaBulk.TIPO_NOTA_DI_CREDITO) || bulk.getTipoDocumentoSIGLA().equalsIgnoreCase(Fattura_passivaBulk.TIPO_NOTA_DI_DEBITO)) {
                Fattura_passivaBulk fatturaPassivaBulk = ((FatturaElettronicaPassivaComponentSession) fatturaPassivaElettronicaBP.createComponentSession()).cercaFatturaPassivaForNota(context.getUserContext(), bulk);
                nbp.edit(context, fatturaPassivaBulk);
                nbp.setFromFatturaElettronica(Boolean.TRUE);
                CRUDFatturaPassivaBP notaBp = null;
                if (bulk.getTipoDocumentoSIGLA().equalsIgnoreCase(Fattura_passivaBulk.TIPO_NOTA_DI_CREDITO))
                    notaBp = (CRUDFatturaPassivaBP) action.doGeneraNotaDiCredito(context);
                else if (bulk.getTipoDocumentoSIGLA().equalsIgnoreCase(Fattura_passivaBulk.TIPO_NOTA_DI_DEBITO))
                    notaBp = (CRUDFatturaPassivaBP) action.doGeneraNotaDiDebito(context);
                notaBp.setModel(context, fatturaPassivaElettronicaBP.completaFatturaPassiva(context, (Fattura_passivaBulk) notaBp.getModel(), notaBp, fatturaPassivaBulk));
            } else {
                Fattura_passivaBulk fatturaPassivaBulk = (Fattura_passivaBulk) nbp.getModel();
                nbp.setModel(context, fatturaPassivaElettronicaBP.completaFatturaPassiva(context, fatturaPassivaBulk, nbp, null));
            }
            return nbp;
        } catch (Throwable e) {
            if (nbp != null) {
                context.closeBusinessProcess(nbp);
                if (nbp.getMessage() != null)
                    throw new it.cnr.jada.action.MessageToUser(nbp.getMessage());
            }
            return handleException(context, e);
        }
    }
    return context.findDefaultForward();
}
Also used : DocumentoEleTestataBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleTestataBulk) Fattura_passivaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passivaBulk) FatturaElettronicaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaElettronicaPassivaComponentSession) it.cnr.jada.util.action(it.cnr.jada.util.action) it.cnr.jada.action(it.cnr.jada.action) CRUDFatturaPassivaBP(it.cnr.contab.docamm00.bp.CRUDFatturaPassivaBP) CRUDFatturaPassivaElettronicaBP(it.cnr.contab.docamm00.bp.CRUDFatturaPassivaElettronicaBP)

Aggregations

Fattura_passivaBulk (it.cnr.contab.docamm00.docs.bulk.Fattura_passivaBulk)2 FatturaElettronicaPassivaComponentSession (it.cnr.contab.docamm00.ejb.FatturaElettronicaPassivaComponentSession)2 AnagraficoBulk (it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk)1 ContattoBulk (it.cnr.contab.anagraf00.core.bulk.ContattoBulk)1 TelefonoBulk (it.cnr.contab.anagraf00.core.bulk.TelefonoBulk)1 TerzoBulk (it.cnr.contab.anagraf00.core.bulk.TerzoBulk)1 Configurazione_cnrBulk (it.cnr.contab.config00.bulk.Configurazione_cnrBulk)1 EsercizioComponentSession (it.cnr.contab.config00.ejb.EsercizioComponentSession)1 Unita_organizzativaBulk (it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk)1 Numerazione_baseComponentSession (it.cnr.contab.config00.tabnum.ejb.Numerazione_baseComponentSession)1 CRUDFatturaPassivaAction (it.cnr.contab.docamm00.actions.CRUDFatturaPassivaAction)1 CRUDFatturaPassivaBP (it.cnr.contab.docamm00.bp.CRUDFatturaPassivaBP)1 CRUDFatturaPassivaElettronicaBP (it.cnr.contab.docamm00.bp.CRUDFatturaPassivaElettronicaBP)1 Fattura_passiva_rigaBulk (it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk)1 Tipo_documento_ammBulk (it.cnr.contab.docamm00.docs.bulk.Tipo_documento_ammBulk)1 FatturaPassivaComponentSession (it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession)1 it.cnr.contab.docamm00.fatturapa.bulk (it.cnr.contab.docamm00.fatturapa.bulk)1 DocumentoEleTestataBulk (it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleTestataBulk)1 FatturaPassivaElettronicaService (it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService)1 StorageDocAmmAspect (it.cnr.contab.docamm00.storage.StorageDocAmmAspect)1