Search in sources :

Example 1 with it.cnr.contab.anagraf00.core.bulk

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

the class CRUDCompensoAction method doCreaObbligazione.

public Forward doCreaObbligazione(ActionContext context) {
    try {
        fillModel(context);
        CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
        CompensoBulk compenso = (CompensoBulk) bp.getModel();
        context.addHookForward("bringback", this, "doBringBackOpenObbligazioniWindow");
        context.addHookForward("close", this, "doBringBackOpenObbligazioniWindow");
        it.cnr.contab.doccont00.bp.CRUDObbligazioneBP obbligazioneBP = (it.cnr.contab.doccont00.bp.CRUDObbligazioneBP) context.getUserInfo().createBusinessProcess(context, "CRUDObbligazioneBP", new Object[] { "MRSWTh" });
        obbligazioneBP.reset(context);
        ObbligazioneBulk obbligazione = (ObbligazioneBulk) obbligazioneBP.getModel();
        obbligazione.setStato_obbligazione(ObbligazioneOrdBulk.STATO_OBB_DEFINITIVO);
        obbligazione.setCreditore(compenso.getTerzo() != null ? compenso.getTerzo() : new it.cnr.contab.anagraf00.core.bulk.TerzoBulk());
        obbligazione.setDs_obbligazione("Impegno per compenso");
        obbligazione.setDt_registrazione(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate());
        obbligazione.setFl_calcolo_automatico(Boolean.TRUE);
        obbligazione.setIm_obbligazione(compenso.getImportoObbligazione());
        obbligazione.setRiportato("N");
        Obbligazione_scadenzarioBulk scadenza = new Obbligazione_scadenzarioBulk(obbligazione);
        obbligazione.addToObbligazione_scadenzarioColl(scadenza);
        scadenza.setDs_scadenza("Scadenza per compenso");
        scadenza.setDt_scadenza(new java.sql.Timestamp(System.currentTimeMillis()));
        scadenza.setIm_scadenza(compenso.getImportoObbligazione());
        scadenza.setUser(obbligazione.getUser());
        scadenza.setToBeCreated();
        return context.addBusinessProcess(obbligazioneBP);
    } catch (Throwable ex) {
        return handleException(context, ex);
    }
}
Also used : TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) CRUDCompensoBP(it.cnr.contab.compensi00.bp.CRUDCompensoBP)

Example 2 with it.cnr.contab.anagraf00.core.bulk

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

the class Movimento_cogeBulk method initializeForSearch.

/**
 * Inizializza il ricevente per la visualizzazione in un <code>FormController</code>
 * in stato <code>SEARCH</code>.
 * Questo metodo viene invocato automaticamente da un
 * <code>it.cnr.jada.util.action.CRUDBP</code> quando viene inizializzato
 * per la ricerca di un OggettoBulk.
 */
public OggettoBulk initializeForSearch(it.cnr.jada.util.action.CRUDBP bp, it.cnr.jada.action.ActionContext context) {
    setEsercizio(((it.cnr.contab.utenze00.bp.CNRUserContext) context.getUserContext()).getEsercizio());
    setCd_cds(((it.cnr.contab.utenze00.bp.CNRUserContext) context.getUserContext()).getCd_cds());
    getScrittura().setUo(it.cnr.contab.utenze00.bulk.CNRUserInfo.getUnita_organizzativa(context));
    getScrittura().setTerzo(new it.cnr.contab.anagraf00.core.bulk.TerzoBulk());
    return this;
}
Also used : TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk)

Example 3 with it.cnr.contab.anagraf00.core.bulk

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

the class CRUDFatturaPassivaElettronicaBP method rifiutaFatturaConPEC.

public void rifiutaFatturaConPEC(ActionContext context, DocumentoEleTestataBulk bulk, RifiutaFatturaBulk rifiutaFatturaBulk) throws BusinessProcessException {
    try {
        if (isDirty()) {
            save(context);
            bulk = (DocumentoEleTestataBulk) createComponentSession().inizializzaBulkPerModifica(context.getUserContext(), bulk);
        }
        TerzoBulk prestatore = Optional.ofNullable(bulk.getDocumentoEleTrasmissione().getPrestatore()).orElseThrow(() -> new ApplicationException("Valorizzare il terzo cedente/prestatore"));
        TerzoBulk terzoPerUnitaOrganizzativa = ((it.cnr.contab.anagraf00.ejb.TerzoComponentSession) createComponentSession("CNRANAGRAF00_EJB_TerzoComponentSession")).cercaTerzoPerUnitaOrganizzativa(context.getUserContext(), bulk.getDocumentoEleTrasmissione().getUnitaOrganizzativa());
        Numerazione_baseComponentSession numerazione = (Numerazione_baseComponentSession) EJBCommonServices.createEJB("CNRCONFIG00_TABNUM_EJB_Numerazione_baseComponentSession");
        boolean isNota = bulk.getTipoDocumento().equalsIgnoreCase(TipoDocumentoType.TD_04.value());
        Format dateFormat = new SimpleDateFormat("yyyy/MM/dd");
        Print_spoolerBulk print = new Print_spoolerBulk();
        print.setPgStampa(UUID.randomUUID().getLeastSignificantBits());
        print.setFlEmail(false);
        print.setReport("/docamm/docamm/rifiuto_fattura_elettronica.jasper");
        print.setNomeFile("Comunicazione di non registrabilità del ".concat(LocalDateTime.now().format(DateTimeFormatter.ofPattern("dd-MM-yyyy"))).concat(".pdf"));
        print.setUtcr(context.getUserContext().getUser());
        print.addParam("title", Optional.ofNullable(rifiutaFatturaBulk.getMessageText()).filter(s -> !isNota).map(s -> "Richiesta storno Documento Elettronico").orElseGet(() -> "Rifiuto Documento Elettronico"), String.class);
        print.addParam("message", rifiutaFatturaBulk.getMessage(), String.class);
        print.addParam("note", rifiutaFatturaBulk.getNote(), String.class);
        print.addParam("is_nota", isNota, Boolean.class);
        print.addParam("codice_uo", bulk.getDocumentoEleTrasmissione().getUnitaOrganizzativa().getCd_unita_organizzativa(), String.class);
        print.addParam("descrizione_uo", bulk.getDocumentoEleTrasmissione().getUnitaOrganizzativa().getDs_unita_organizzativa(), String.class);
        print.addParam("codice_cuu", terzoPerUnitaOrganizzativa.getCodiceUnivocoUfficioIpa(), String.class);
        print.addParam("denominazione_sede", prestatore.getDenominazione_sede(), String.class);
        print.addParam("pec", rifiutaFatturaBulk.getEmailPEC(), String.class);
        print.addParam("tipo_documento", DocumentoEleTestataBulk.tiTipoDocumentoKeys.get(bulk.getTipoDocumento()), String.class);
        print.addParam("identificativo_sdi", bulk.getIdentificativoSdi(), Long.class);
        print.addParam("numero_documento", bulk.getNumeroDocumento(), String.class);
        print.addParam("data_documento", bulk.getDataDocumento(), Date.class, dateFormat);
        print.addParam("data_ricezione", bulk.getDocumentoEleTrasmissione().getDataRicezione(), Date.class, dateFormat);
        Report report = SpringUtil.getBean("printService", PrintService.class).executeReport(context.getUserContext(), print);
        LocalDateTime now = LocalDateTime.now();
        int esercizio = now.getYear();
        Long numProtocollo = numerazione.creaNuovoProgressivo(context.getUserContext(), esercizio, "RIFIUTO_FATTURA_PEC", "NUM_PROTOCOLLO", CNRUserContext.getUser(context.getUserContext()));
        AllegatoNonRegistrabilitaBulk allegatoNonRegistrabilitaBulk = new AllegatoNonRegistrabilitaBulk();
        allegatoNonRegistrabilitaBulk.setNome(report.getName());
        allegatoNonRegistrabilitaBulk.setUtenteSIGLA(CNRUserContext.getUser(context.getUserContext()));
        allegatoNonRegistrabilitaBulk.setAnnoProtocollo(esercizio);
        allegatoNonRegistrabilitaBulk.setNumeroProtocollo(Utility.lpad(numProtocollo, 6, '0'));
        allegatoNonRegistrabilitaBulk.setDataProtocollo(Date.from(now.toInstant(ZoneOffset.UTC)));
        allegatoNonRegistrabilitaBulk.setTitolo("Allegato inviato al seguente indirizzo email: " + rifiutaFatturaBulk.getEmailPEC());
        final StorageObject storageObject = SpringUtil.getBean("storeService", StoreService.class).restoreSimpleDocument(allegatoNonRegistrabilitaBulk, report.getInputStream(), report.getContentType(), report.getName(), Optional.ofNullable(getStorePath(bulk, false)).orElseThrow(() -> new ApplicationException("Path sul documentale non trovato, contattare il supporto Help Desk!")), false);
        FatturaPassivaElettronicaService fatturaPassivaElettronicaService = SpringUtil.getBean("fatturaPassivaElettronicaService", FatturaPassivaElettronicaService.class);
        fatturaPassivaElettronicaService.inviaPECFornitore(context.getUserContext(), new ByteArrayDataSource(storeService.getResource(storageObject.getKey()), MimeTypes.PDF.mimetype()), report.getName(), rifiutaFatturaBulk.getEmailPEC(), Optional.ofNullable(rifiutaFatturaBulk.getMessageText()).filter(s -> !isNota).map(s -> "Richiesta Storno documento elettronico ricevuto IdentificativoSdI: ").orElseGet(() -> "Rifiuto documento elettronico ricevuto IdentificativoSdI: ").concat(bulk.getIdentificativoSdi().toString()), Optional.ofNullable(rifiutaFatturaBulk.getMessageText()).filter(s -> !isNota).map(s -> "Richiesta Storno documento elettronico ricevuto. ").orElseGet(() -> "Rifiuto documento elettronico ricevuto. ").concat("Informazioni del rifiuto e riferimenti del documento in allegato." + "\n\nNota: questa è un'e-mail generata automaticamente e non avremo la possibilità di " + "leggere eventuali e-mail di risposta. Non rispondere a questo messaggio."));
        bulk.setFlIrregistrabile("S");
        if (isNota) {
            bulk.setStatoDocumento(StatoDocumentoEleEnum.RIFIUTATA_CON_PEC.name());
        } else {
            bulk.setStatoDocumento(StatoDocumentoEleEnum.DA_STORNARE.name());
        }
        bulk.setToBeUpdated();
        OggettoBulk oggettoBulk = getComponentSession().modificaConBulk(context.getUserContext(), bulk);
        if (!Optional.ofNullable(getEMailPEC(context)).isPresent()) {
            TelefonoBulk telefonoBulk = new TelefonoBulk();
            telefonoBulk.setTerzo(prestatore);
            telefonoBulk.setRiferimento(rifiutaFatturaBulk.getEmailPEC());
            telefonoBulk.setTi_riferimento(TelefonoBulk.PEC);
            telefonoBulk.setFattElettronica(Boolean.TRUE);
            telefonoBulk.setToBeCreated();
            getComponentSession().creaConBulk(context.getUserContext(), telefonoBulk);
        }
        setMessage("Comunicazione inviata correttamente.");
        edit(context, oggettoBulk);
    } catch (ComponentException | IOException | EmailException | BusyResourceException | ValidationException 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) LocalDateTime(java.time.LocalDateTime) ValidationException(it.cnr.jada.bulk.ValidationException) FatturaPassivaElettronicaService(it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) PrintService(it.cnr.contab.reports.service.PrintService) Numerazione_baseComponentSession(it.cnr.contab.config00.tabnum.ejb.Numerazione_baseComponentSession) Print_spoolerBulk(it.cnr.contab.reports.bulk.Print_spoolerBulk) Format(java.text.Format) SimpleDateFormat(java.text.SimpleDateFormat) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) EmailException(org.apache.commons.mail.EmailException) ByteArrayDataSource(javax.mail.util.ByteArrayDataSource) StorageObject(it.cnr.si.spring.storage.StorageObject) Report(it.cnr.contab.reports.bulk.Report) StoreService(it.cnr.si.spring.storage.StoreService) IOException(java.io.IOException) ApplicationException(it.cnr.jada.comp.ApplicationException) BusyResourceException(it.cnr.jada.bulk.BusyResourceException) ComponentException(it.cnr.jada.comp.ComponentException) TelefonoBulk(it.cnr.contab.anagraf00.core.bulk.TelefonoBulk) SimpleDateFormat(java.text.SimpleDateFormat)

Example 4 with it.cnr.contab.anagraf00.core.bulk

use of it.cnr.contab.anagraf00.core.bulk 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)

Example 5 with it.cnr.contab.anagraf00.core.bulk

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

the class CRUDBonusBP method Estrazione.

public void Estrazione(ActionContext context) throws ComponentException, RemoteException, BusinessProcessException, PersistencyException {
    try {
        AnagraficoBulk ente = ((Liquid_coriComponentSession) createComponentSession("CNRCORI00_EJB_Liquid_coriComponentSession", Liquid_coriComponentSession.class)).getAnagraficoEnte(context.getUserContext());
        BonusComponentSession sess = (BonusComponentSession) createComponentSession();
        java.util.List lista = sess.estraiLista(context.getUserContext());
        File f = null;
        Integer conta_det = 0;
        Integer altro = 0;
        Integer mod = 1;
        String data_formattata = Formatta(new Integer(EcfBulk.getDateCalendar(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate()).get(java.util.Calendar.DAY_OF_MONTH)).toString(), "D", 2, "0").concat(Formatta(new Integer(EcfBulk.getDateCalendar(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate()).get(java.util.Calendar.MONTH) + 1).toString(), "D", 2, "0") + EcfBulk.getDateCalendar(it.cnr.jada.util.ejb.EJBCommonServices.getServerDate()).get(java.util.Calendar.YEAR));
        if (lista != null && !lista.isEmpty() && lista.size() != 0)
            f = new File(System.getProperty("tmp.dir.SIGLAWeb") + "/tmp/", "Bonus-" + data_formattata + ".rbs");
        else
            throw new ApplicationException("Non ci sono dati!");
        OutputStream os = (OutputStream) new FileOutputStream(f);
        OutputStreamWriter osw = new OutputStreamWriter(os);
        BufferedWriter bw = new BufferedWriter(osw);
        if (lista != null && !lista.isEmpty()) {
            // Testata - posizionale lunghezza 1900 caratteri
            String Codice_Fiscale = ente.getCodice_fiscale();
            // Testata parte iniziale Fissa Tipo Record "A"
            bw.append("A");
            bw.append(Formatta(null, "S", 14, " "));
            bw.append(Formatta("RBS09", "S", 5, " "));
            // Tipo fornitore
            bw.append("01");
            bw.append(Formatta(Codice_Fiscale, "S", 16, " "));
            bw.append(Formatta(null, "S", 483, " "));
            bw.append(Formatta(null, "S", 4, "0"));
            bw.append(Formatta(null, "S", 4, "0"));
            bw.append(Formatta(null, "S", 100, " "));
            bw.append(Formatta(null, "S", 1068, " "));
            bw.append(Formatta(null, "S", 200, " "));
            bw.append("A");
            bw.append("\r\n");
            // inizio Record B
            for (Iterator i = lista.iterator(); i.hasNext(); ) {
                BonusBulk bonus = (BonusBulk) i.next();
                bonus = sess.recuperoDati(context.getUserContext(), bonus);
                // parte iniziale Fissa Tipo Record "B"
                bw.append("B");
                bw.append(Formatta(bonus.getCodice_fiscale(), "S", 16, " "));
                bw.append(Formatta("1", "D", 8, "0"));
                // tipo modello
                bw.append("1");
                bw.append(Formatta(null, "S", 27, " "));
                bw.append(Formatta(null, "S", 20, " "));
                bw.append(Formatta(null, "S", 16, " "));
                // Flag anomalia a  NO
                bw.append("0");
                // Cognome
                bw.append(Formatta(bonus.getCognome(), "S", 24, " "));
                // nome
                bw.append(Formatta(bonus.getNome(), "S", 20, " "));
                // sesso
                bw.append(Formatta(bonus.getTerzo().getAnagrafico().getTi_sesso(), "S", 1, " "));
                // data nascita
                GregorianCalendar dataNascita = new GregorianCalendar();
                dataNascita.setTime(new java.util.Date(bonus.getDt_nascita().getTime()));
                String data_nasc_form = Formatta(new Integer(dataNascita.get(java.util.Calendar.DAY_OF_MONTH)).toString(), "D", 2, "0").concat(Formatta(new Integer(dataNascita.get(java.util.Calendar.MONTH) + 1).toString(), "D", 2, "0") + dataNascita.get(java.util.Calendar.YEAR));
                bw.append(Formatta(data_nasc_form, "S", 8, "0"));
                // comune
                bw.append(Formatta(bonus.getTerzo().getAnagrafico().getComune_nascita().getDs_comune(), "S", 40, " "));
                // provincia se null 'EE'
                if (bonus.getTerzo().getAnagrafico().getComune_nascita().getTi_italiano_estero().compareTo(it.cnr.contab.anagraf00.tabter.bulk.ComuneBulk.COMUNE_ITALIANO) == 0)
                    bw.append(Formatta(bonus.getTerzo().getAnagrafico().getComune_nascita().getCd_provincia(), "S", 2, " "));
                else
                    bw.append(Formatta("EE", "S", 2, " "));
                // sost.imp.
                bw.append(Formatta(null, "S", 24, " "));
                bw.append(Formatta(null, "S", 20, " "));
                bw.append(Formatta(ente.getRagione_sociale(), "S", 60, " "));
                bw.append(Formatta(Codice_Fiscale, "S", 16, " "));
                // flag
                if (bonus.getCd_condizione().compareTo("a") == 0)
                    bw.append("1");
                else
                    bw.append("0");
                if (bonus.getCd_condizione().compareTo("b") == 0)
                    bw.append("1");
                else
                    bw.append("0");
                if (bonus.getCd_condizione().compareTo("c") == 0)
                    bw.append("1");
                else
                    bw.append("0");
                if (bonus.getCd_condizione().compareTo("d") == 0)
                    bw.append("1");
                else
                    bw.append("0");
                if (bonus.getCd_condizione().compareTo("e") == 0)
                    bw.append("1");
                else
                    bw.append("0");
                if (bonus.getCd_condizione().compareTo("f") == 0)
                    bw.append("1");
                else
                    bw.append("0");
                if (bonus.getCd_condizione().compareTo("g") == 0)
                    bw.append("1");
                else
                    bw.append("0");
                if (bonus.getEsercizio_imposta().compareTo(new Integer("2007")) == 0) {
                    // anno 2007
                    bw.append("1");
                    // anno 2008
                    bw.append("0");
                } else {
                    bw.append("0");
                    // anno 2008
                    bw.append("1");
                }
                // iban
                bw.append(Formatta(null, "S", 27, " "));
                // data richiesta
                GregorianCalendar dataRichiesta = new GregorianCalendar();
                dataRichiesta.setTime(new java.util.Date(bonus.getDt_richiesta().getTime()));
                String data_ric = Formatta(new Integer(dataRichiesta.get(java.util.Calendar.DAY_OF_MONTH)).toString(), "D", 2, "0").concat(Formatta(new Integer(dataRichiesta.get(java.util.Calendar.MONTH) + 1).toString(), "D", 2, "0") + dataRichiesta.get(java.util.Calendar.YEAR));
                bw.append(Formatta(data_ric, "S", 8, "0"));
                // firma
                bw.append("1");
                // intermediario
                bw.append(Formatta(null, "S", 16, " "));
                bw.append(Formatta(null, "S", 5, " "));
                bw.append(Formatta(null, "S", 8, "0"));
                bw.append("0");
                // flag anomalia
                bw.append("0");
                bw.append(Formatta(null, "S", 1446, " "));
                // codice fiscale persona fisica che effettua l'invio
                bw.append(Formatta(sess.recuperaCodiceFiscaleInvio(context.getUserContext()), "S", 16, " "));
                bw.append(Formatta(null, "S", 20, " "));
                bw.append(Formatta(null, "S", 34, " "));
                bw.append("A");
                bw.append("\r\n");
                // fine Record B
                java.util.List det = sess.estraiDettagli(context.getUserContext(), bonus);
                Integer prog = 0;
                mod = 1;
                for (Iterator d = det.iterator(); d.hasNext(); ) {
                    Bonus_nucleo_famBulk dettaglio = (Bonus_nucleo_famBulk) d.next();
                    if (prog == 5) {
                        // totali
                        if (mod == 1) {
                            bw.append("BS007004");
                            bw.append(Formatta((bonus.getIm_reddito_nucleo_f().setScale(0, java.math.BigDecimal.ROUND_HALF_UP)).toString(), "D", 16, " "));
                            bw.append("BS008001");
                            bw.append(Formatta((bonus.getIm_bonus().setScale(0, java.math.BigDecimal.ROUND_HALF_UP)).toString(), "D", 16, " "));
                        }
                        completaRiga(bw, prog, altro, mod);
                        mod = mod + 1;
                        bw.append(Formatta(null, "S", 8, " "));
                        bw.append("A");
                        bw.append("\r\n");
                        prog = 0;
                        altro = 0;
                    }
                    prog = prog + 1;
                    // record tipo c
                    if (prog == 1) {
                        conta_det = conta_det + 1;
                        bw.append("C");
                        bw.append(Formatta(bonus.getCodice_fiscale(), "S", 16, " "));
                        // progressivo modulo
                        bw.append(Formatta(mod.toString(), "D", 8, "0"));
                        bw.append(Formatta(null, "S", 3, " "));
                        bw.append(Formatta(null, "S", 25, " "));
                        bw.append(Formatta(null, "S", 20, " "));
                        bw.append(Formatta(null, "S", 16, " "));
                        if (mod == 1) {
                            bw.append("BS001004");
                            // ?? arrotondamenti ???
                            bw.append(Formatta((bonus.getIm_reddito().setScale(0, java.math.BigDecimal.ROUND_HALF_UP)).toString(), "D", 16, " "));
                        }
                    }
                    if (prog == 1 && dettaglio.getTipo_componente_nucleo().compareTo(Bonus_nucleo_famBulk.CONIUGE) == 0) {
                        bw.append("BS002001");
                        bw.append(Formatta("1", "D", 16, " "));
                        bw.append("BS002003");
                        bw.append(Formatta(dettaglio.getCf_componente_nucleo(), "S", 16, " "));
                        bw.append("BS002004");
                        bw.append(Formatta((dettaglio.getIm_reddito_componente().setScale(0, java.math.BigDecimal.ROUND_HALF_UP)).toString(), "D", 16, " "));
                    } else if (prog == 1 && dettaglio.getTipo_componente_nucleo().compareTo(Bonus_nucleo_famBulk.CONIUGE) != 0) {
                        prog = prog + 1;
                        altro = 1;
                    }
                    if (prog != 1 || mod != 1) {
                        if (prog <= 5) {
                            bw.append("BS00" + (prog + 1) + "001");
                            bw.append(Formatta(dettaglio.getTipo_componente_nucleo(), "S", 16, " "));
                            bw.append("BS00" + (prog + 1) + "003");
                            bw.append(Formatta(dettaglio.getCf_componente_nucleo(), "S", 16, " "));
                            bw.append("BS00" + (prog + 1) + "004");
                            bw.append(Formatta((dettaglio.getIm_reddito_componente().setScale(0, java.math.BigDecimal.ROUND_HALF_UP)).toString(), "D", 16, " "));
                        }
                    }
                // fine record tipo c
                }
                // totali
                if (mod == 1) {
                    bw.append("BS007004");
                    bw.append(Formatta((bonus.getIm_reddito_nucleo_f().setScale(0, java.math.BigDecimal.ROUND_HALF_UP)).toString(), "D", 16, " "));
                    bw.append("BS008001");
                    bw.append(Formatta((bonus.getIm_bonus().setScale(0, java.math.BigDecimal.ROUND_HALF_UP)).toString(), "D", 16, " "));
                }
                completaRiga(bw, prog, altro, mod);
                bw.append(Formatta(null, "S", 8, " "));
                bw.append("A");
                bw.append("\r\n");
                prog = 0;
                altro = 0;
            }
            // end loop bonus
            // record coda
            bw.append("Z");
            bw.append(Formatta(null, "S", 14, " "));
            bw.append(Formatta(new Integer(lista.size()).toString(), "D", 9, "0"));
            bw.append(Formatta(conta_det.toString(), "D", 9, "0"));
            bw.append(Formatta(null, "S", 1864, " "));
            bw.append("A");
            bw.append("\r\n");
            // fine Coda
            bw.flush();
            bw.close();
            osw.close();
            os.close();
            // /
            setFile("/tmp/" + f.getName());
        } else {
            bw.flush();
            bw.close();
            osw.close();
            os.close();
            throw new ApplicationException("Non ci sono dati!");
        }
    } catch (FileNotFoundException e) {
        throw new ApplicationException("File non trovato!");
    } catch (SQLException e) {
        throw new ApplicationException("Errore nel recupero dei dati");
    } catch (IllegalArgumentException e) {
        throw new ApplicationException("Formato file non valido!");
    } catch (IOException e) {
        throw new ApplicationException("Errore nella scrittura del file!");
    }
}
Also used : Liquid_coriComponentSession(it.cnr.contab.cori00.ejb.Liquid_coriComponentSession) BonusComponentSession(it.cnr.contab.compensi00.ejb.BonusComponentSession) SQLException(java.sql.SQLException) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) OutputStream(java.io.OutputStream) FileOutputStream(java.io.FileOutputStream) GregorianCalendar(java.util.GregorianCalendar) FileNotFoundException(java.io.FileNotFoundException) IOException(java.io.IOException) Bonus_nucleo_famBulk(it.cnr.contab.compensi00.docs.bulk.Bonus_nucleo_famBulk) BufferedWriter(java.io.BufferedWriter) ApplicationException(it.cnr.jada.comp.ApplicationException) FileOutputStream(java.io.FileOutputStream) Iterator(java.util.Iterator) OutputStreamWriter(java.io.OutputStreamWriter) File(java.io.File) BonusBulk(it.cnr.contab.compensi00.docs.bulk.BonusBulk)

Aggregations

TerzoBulk (it.cnr.contab.anagraf00.core.bulk.TerzoBulk)16 ComponentException (it.cnr.jada.comp.ComponentException)9 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)7 AnagraficoBulk (it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk)6 it.cnr.jada.bulk (it.cnr.jada.bulk)6 ApplicationException (it.cnr.jada.comp.ApplicationException)6 it.cnr.contab.anagraf00.core.bulk (it.cnr.contab.anagraf00.core.bulk)5 it.cnr.contab.anagraf00.tabrif.bulk (it.cnr.contab.anagraf00.tabrif.bulk)5 it.cnr.contab.docamm00.docs.bulk (it.cnr.contab.docamm00.docs.bulk)5 IDocumentoAmministrativoBP (it.cnr.contab.docamm00.bp.IDocumentoAmministrativoBP)4 IGenericSearchDocAmmBP (it.cnr.contab.docamm00.bp.IGenericSearchDocAmmBP)4 BigDecimal (java.math.BigDecimal)4 it.cnr.contab.anagraf00.bp (it.cnr.contab.anagraf00.bp)3 BancaBulk (it.cnr.contab.anagraf00.core.bulk.BancaBulk)3 OggettoBulk (it.cnr.jada.bulk.OggettoBulk)3 Timestamp (java.sql.Timestamp)3 AnagraficoComponent (it.cnr.contab.anagraf00.comp.AnagraficoComponent)2 Modalita_pagamentoBulk (it.cnr.contab.anagraf00.core.bulk.Modalita_pagamentoBulk)2 ComuneBulk (it.cnr.contab.anagraf00.tabter.bulk.ComuneBulk)2 NazioneBulk (it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk)2