Search in sources :

Example 6 with AnagraficoBulk

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

the class FatturaElettronicaPassivaComponent method completaDocumento.

@SuppressWarnings("unchecked")
public void completaDocumento(UserContext usercontext, DocumentoEleTrasmissioneBulk documentoEleTrasmissioneBulk) throws ComponentException {
    try {
        AnagraficoHome anagraficoHome = (AnagraficoHome) getHome(usercontext, AnagraficoBulk.class);
        TerzoHome terzoHome = (TerzoHome) getHome(usercontext, TerzoBulk.class);
        Rif_modalita_pagamentoHome rifModPagHome = (Rif_modalita_pagamentoHome) getHome(usercontext, Rif_modalita_pagamentoBulk.class);
        Modalita_pagamentoHome modPagHome = (Modalita_pagamentoHome) getHome(usercontext, Modalita_pagamentoBulk.class);
        Voce_ivaHome voceIvaHome = (Voce_ivaHome) getHome(usercontext, Voce_ivaBulk.class);
        List<String> anomalieTrasmissione = new ArrayList<String>();
        SQLBuilder sql = terzoHome.createSQLBuilder();
        sql.addClause(FindClause.AND, "codiceUnivocoUfficioIpa", SQLBuilder.EQUALS, documentoEleTrasmissioneBulk.getCodiceDestinatario());
        sql.addSQLClause("AND", "DT_FINE_RAPPORTO", sql.ISNULL, null);
        List<TerzoBulk> terzoUOS = terzoHome.fetchAll(sql);
        if (terzoUOS != null && !terzoUOS.isEmpty()) {
            documentoEleTrasmissioneBulk.setUnitaOrganizzativa(terzoUOS.get(0).getUnita_organizzativa());
            documentoEleTrasmissioneBulk.setCommittente(terzoUOS.get(0));
        } else {
            TerzoBulk terzoEnte = terzoHome.findTerzoEnte();
            documentoEleTrasmissioneBulk.setUnitaOrganizzativa(terzoEnte.getUnita_organizzativa());
            documentoEleTrasmissioneBulk.setCommittente(terzoEnte);
        }
        /**
         * Invio mail di notifica Ricezione
         */
        try {
            String subject = "[SIGLA] Notifica ricezione fattura passiva con Identificativo SdI:" + documentoEleTrasmissioneBulk.getIdentificativoSdi();
            subject += " UO: " + documentoEleTrasmissioneBulk.getUnitaOrganizzativa().getCd_unita_organizzativa();
            String text = "E' pervenuta la fattura dal trasmittente: <b>" + documentoEleTrasmissioneBulk.getIdCodice() + "</b><br>" + "Prestatore: " + documentoEleTrasmissioneBulk.getDenominzionePrestatore() + "<br>" + "Il documento è presente nell'area temporanea di SIGLA.";
            String addressTO = null;
            Utente_indirizzi_mailHome utente_indirizzi_mailHome = (Utente_indirizzi_mailHome) getHome(usercontext, Utente_indirizzi_mailBulk.class);
            for (java.util.Iterator<Utente_indirizzi_mailBulk> i = utente_indirizzi_mailHome.findUtenteNotificaRicezioneFatturaElettronica(documentoEleTrasmissioneBulk.getUnitaOrganizzativa()).iterator(); i.hasNext(); ) {
                Utente_indirizzi_mailBulk utente_indirizzi = (Utente_indirizzi_mailBulk) i.next();
                if (addressTO == null)
                    addressTO = new String();
                else
                    addressTO = addressTO + ",";
                addressTO = addressTO + utente_indirizzi.getIndirizzo_mail();
            }
            if (addressTO != null) {
                SendMail.sendMail(subject, text, InternetAddress.parse(addressTO));
            }
        } catch (Exception _ex) {
        }
        if (documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale() != null || documentoEleTrasmissioneBulk.getPrestatoreCodice() != null) {
            final List<String> cigs = documentoEleTrasmissioneBulk.getDocEleTestataColl().stream().map(DocumentoEleTestataBulk::getDocEleAcquistoColl).flatMap(documentoEleAcquistoBulks -> documentoEleAcquistoBulks.stream()).map(DocumentoEleAcquistoBulk::getAcquistoCig).filter(s -> Optional.ofNullable(s).isPresent()).collect(Collectors.toList());
            if (!cigs.isEmpty()) {
                ContrattoHome contrattoHome = (ContrattoHome) getHome(usercontext, ContrattoBulk.class);
                for (String cig : cigs) {
                    final Optional<ContrattoBulk> optionalContrattoBulk = contrattoHome.findByCIG(usercontext, cig).stream().findAny();
                    if (optionalContrattoBulk.isPresent()) {
                        final TerzoBulk figura_giuridica_esterna = optionalContrattoBulk.get().getFigura_giuridica_esterna();
                        if (Optional.ofNullable(documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale()).filter(s -> s.equalsIgnoreCase(Optional.ofNullable(figura_giuridica_esterna.getCodice_fiscale_anagrafico()).orElse(""))).isPresent() || (Optional.ofNullable(documentoEleTrasmissioneBulk.getPrestatoreCodice()).filter(s -> s.equalsIgnoreCase(Optional.ofNullable(figura_giuridica_esterna.getPartita_iva_anagrafico()).orElse(""))).isPresent() && !Optional.ofNullable(figura_giuridica_esterna).flatMap(terzoBulk -> Optional.ofNullable(terzoBulk.getAnagrafico())).flatMap(anagraficoBulk -> Optional.ofNullable(anagraficoBulk.getTi_entita_giuridica())).map(s -> s.equalsIgnoreCase(AnagraficoBulk.GIURIDICA)).orElse(Boolean.TRUE))) {
                            documentoEleTrasmissioneBulk.setPrestatore(figura_giuridica_esterna);
                            documentoEleTrasmissioneBulk.setPrestatoreAnag(figura_giuridica_esterna.getAnagrafico());
                        }
                    }
                }
            }
            if (!Optional.ofNullable(documentoEleTrasmissioneBulk).flatMap(documentoEleTrasmissioneBulk1 -> Optional.ofNullable(documentoEleTrasmissioneBulk.getPrestatore())).flatMap(terzoBulk -> Optional.ofNullable(terzoBulk.getCd_terzo())).isPresent()) {
                List<AnagraficoBulk> anagraficoBulks = null;
                anagraficoBulks = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale(), documentoEleTrasmissioneBulk.getPrestatoreCodice());
                if (anagraficoBulks != null && !anagraficoBulks.isEmpty()) {
                    if (anagraficoBulks.size() == 1) {
                        AnagraficoBulk anag = anagraficoBulks.get(0);
                        documentoEleTrasmissioneBulk.setPrestatoreAnag(anag);
                        List<TerzoBulk> terzi = terzoHome.findTerzi(anagraficoBulks.get(0));
                        if (terzi != null && !terzi.isEmpty() && terzi.size() == 1) {
                            documentoEleTrasmissioneBulk.setPrestatore(terzi.get(0));
                        }
                    } else {
                        anomalieTrasmissione.add("Esistono più di una riga in anagrafica per il CF:" + documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale() + " o la partita IVA: " + documentoEleTrasmissioneBulk.getPrestatoreCodice());
                    }
                }
            }
            if (documentoEleTrasmissioneBulk.getPrestatoreCodice() != null) {
                List<AnagraficoBulk> list = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(null, documentoEleTrasmissioneBulk.getPrestatoreCodice());
                if (list != null && list.size() == 1) {
                    AnagraficoBulk anagraficoBulk = list.get(0);
                    if (anagraficoBulk.isGruppoIVA()) {
                        documentoEleTrasmissioneBulk.setPrestatoreAnag(anagraficoBulk);
                        documentoEleTrasmissioneBulk.setPrestatore(null);
                        if (documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale() != null) {
                            List<AnagraficoBulk> lista = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(documentoEleTrasmissioneBulk.getPrestatoreCodicefiscale(), null);
                            if (lista != null && lista.size() == 1) {
                                AnagraficoBulk anagraficoPerTerzo = lista.get(0);
                                if (documentoEleTrasmissioneBulk.getDataRicezione().compareTo(anagraficoBulk.getDt_canc()) <= 0 && documentoEleTrasmissioneBulk.getDataRicezione().compareTo(anagraficoBulk.getDtIniValGruppoIva()) > 0) {
                                    List<TerzoBulk> listaTerzi = terzoHome.findTerzi(anagraficoPerTerzo);
                                    if (listaTerzi.size() == 0) {
                                        documentoEleTrasmissioneBulk.setPrestatore(listaTerzi.get(0));
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
        if (documentoEleTrasmissioneBulk.getRappresentanteCodicefiscale() != null || documentoEleTrasmissioneBulk.getRappresentanteCodice() != null) {
            List<AnagraficoBulk> anagraficoBulks = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(documentoEleTrasmissioneBulk.getRappresentanteCodicefiscale(), documentoEleTrasmissioneBulk.getRappresentanteCodice());
            if (anagraficoBulks != null && !anagraficoBulks.isEmpty()) {
                if (anagraficoBulks.size() == 1) {
                    documentoEleTrasmissioneBulk.setRappresentanteAnag(anagraficoBulks.get(0));
                    List<TerzoBulk> terzi = terzoHome.findTerzi(anagraficoBulks.get(0));
                    if (terzi != null && !terzi.isEmpty() && terzi.size() == 1) {
                        documentoEleTrasmissioneBulk.setRappresentante(terzi.get(0));
                    }
                } else {
                    anomalieTrasmissione.add("Esistono più di una riga in anagrafica per il CF:" + documentoEleTrasmissioneBulk.getRappresentanteCodicefiscale() + " o la partita IVA: " + documentoEleTrasmissioneBulk.getRappresentanteCodice());
                }
            }
        }
        if (documentoEleTrasmissioneBulk.getIntermediarioCodicefiscale() != null || documentoEleTrasmissioneBulk.getIntermediarioCodice() != null) {
            List<AnagraficoBulk> anagraficoBulks = anagraficoHome.findByCodiceFiscaleOrPartitaIVA(documentoEleTrasmissioneBulk.getIntermediarioCodicefiscale(), documentoEleTrasmissioneBulk.getIntermediarioCodice());
            if (anagraficoBulks != null && !anagraficoBulks.isEmpty()) {
                if (anagraficoBulks.size() == 1) {
                    documentoEleTrasmissioneBulk.setIntermediarioAnag(anagraficoBulks.get(0));
                    List<TerzoBulk> terzi = terzoHome.findTerzi(anagraficoBulks.get(0));
                    if (terzi != null && !terzi.isEmpty() && terzi.size() == 1) {
                        documentoEleTrasmissioneBulk.setIntermediario(terzi.get(0));
                    }
                } else {
                    anomalieTrasmissione.add("Esistono più di una riga in anagrafica per il CF:" + documentoEleTrasmissioneBulk.getIntermediarioCodicefiscale() + " o la partita IVA: " + documentoEleTrasmissioneBulk.getIntermediarioCodice());
                }
            }
        }
        if (!anomalieTrasmissione.isEmpty())
            documentoEleTrasmissioneBulk.setAnomalieRicezione(StringUtils.join(anomalieTrasmissione.toArray(), " - "));
        for (DocumentoEleTestataBulk docTestata : documentoEleTrasmissioneBulk.getDocEleTestataColl()) {
            List<String> anomalieTestata = new ArrayList<String>();
            if (docTestata.getBeneficiarioModPag() != null) {
                SQLBuilder sqlRifModPag = rifModPagHome.createSQLBuilder();
                sqlRifModPag.addClause(FindClause.AND, "tipoPagamentoSdi", SQLBuilder.EQUALS, docTestata.getBeneficiarioModPag());
                List<Rif_modalita_pagamentoBulk> rifModPags = rifModPagHome.fetchAll(sqlRifModPag);
                boolean trovataModPag = Boolean.FALSE;
                for (Rif_modalita_pagamentoBulk rif_modalita_pagamentoBulk : rifModPags) {
                    Modalita_pagamentoBulk modalitaPagamento = (Modalita_pagamentoBulk) modPagHome.findByPrimaryKey(new Modalita_pagamentoBulk(rif_modalita_pagamentoBulk.getCd_modalita_pag(), docTestata.getDocumentoEleTrasmissione().getPrestatoreCdTerzo()));
                    if (modalitaPagamento != null) {
                        trovataModPag = Boolean.TRUE;
                        docTestata.setModalitaPagamento(modalitaPagamento);
                        break;
                    }
                }
                if (!trovataModPag) {
                    anomalieTestata.add("Modalità di pagamento non trovata");
                }
            }
            if (!anomalieTestata.isEmpty())
                docTestata.setAnomalie(StringUtils.join(anomalieTestata.toArray(), " - "));
            docTestata.setStatoDocumento(StatoDocumentoEleEnum.AGGIORNATO.name());
            docTestata.setToBeUpdated();
            for (DocumentoEleIvaBulk documentoEleIvaBulk : docTestata.getDocEleIVAColl()) {
                List<String> anomalieIVA = new ArrayList<String>();
                SQLBuilder sqlVoceIva = voceIvaHome.createSQLBuilder();
                sqlVoceIva.addClause(FindClause.AND, "percentuale", SQLBuilder.EQUALS, documentoEleIvaBulk.getAliquotaIva());
                sqlVoceIva.addSQLClause(FindClause.AND, "NATURA_OPER_NON_IMP_SDI", SQLBuilder.EQUALS, documentoEleIvaBulk.getNatura());
                List<Voce_ivaBulk> results = voceIvaHome.fetchAll(sqlVoceIva);
                if (results.isEmpty())
                    anomalieIVA.add("Codice Iva non trovato!");
                if (results.size() > 1)
                    anomalieIVA.add("Esistonio piu codici Iva associabili alla riga!");
                if (results.size() == 1)
                    documentoEleIvaBulk.setVoceIva(results.get(0));
                if (!anomalieIVA.isEmpty())
                    documentoEleIvaBulk.setAnomalie(StringUtils.join(anomalieIVA.toArray(), " - "));
                documentoEleIvaBulk.setToBeUpdated();
            }
        }
        documentoEleTrasmissioneBulk.setToBeUpdated();
        modificaConBulk(usercontext, documentoEleTrasmissioneBulk);
    } catch (Throwable throwable) {
        throw handleException(throwable);
    }
}
Also used : StringUtils(org.apache.commons.lang.StringUtils) it.cnr.contab.anagraf00.core.bulk(it.cnr.contab.anagraf00.core.bulk) Parametri_cdsBulk(it.cnr.contab.config00.bulk.Parametri_cdsBulk) LoggerFactory(org.slf4j.LoggerFactory) StatoDocumentoEleEnum(it.cnr.contab.docamm00.fatturapa.bulk.StatoDocumentoEleEnum) SendMail(it.cnr.jada.util.SendMail) DocumentoEleAcquistoBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleAcquistoBulk) TipoIntegrazioneSDI(it.cnr.contab.docamm00.fatturapa.bulk.TipoIntegrazioneSDI) DocumentoEleTestataBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleTestataBulk) Configurazione_cnrHome(it.cnr.contab.config00.bulk.Configurazione_cnrHome) ValidationException(it.cnr.jada.bulk.ValidationException) DocumentoEleScontoMaggBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleScontoMaggBulk) SoggettoEmittenteType(it.gov.agenziaentrate.ivaservizi.docs.xsd.fatture.v1.SoggettoEmittenteType) Timestamp(java.sql.Timestamp) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Tipo_unita_organizzativaHome(it.cnr.contab.config00.sto.bulk.Tipo_unita_organizzativaHome) FatturaPassivaElettronicaService(it.cnr.contab.docamm00.service.FatturaPassivaElettronicaService) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) Collectors(java.util.stream.Collectors) DocumentoEleLineaBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleLineaBulk) Serializable(java.io.Serializable) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) Fattura_passiva_IBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_IBulk) Stream(java.util.stream.Stream) Query(it.cnr.jada.persistency.sql.Query) Fattura_passivaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passivaBulk) UserContext(it.cnr.jada.UserContext) DocumentoEleAllegatiBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleAllegatiBulk) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) java.util(java.util) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) Parametri_cdsHome(it.cnr.contab.config00.bulk.Parametri_cdsHome) RegimeFiscaleType(it.gov.agenziaentrate.ivaservizi.docs.xsd.fatture.v1.RegimeFiscaleType) Utility(it.cnr.contab.util.Utility) Utente_indirizzi_mailBulk(it.cnr.contab.utenze00.bulk.Utente_indirizzi_mailBulk) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) TipoAcquistoEnum(it.cnr.contab.docamm00.fatturapa.bulk.TipoAcquistoEnum) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) InternetAddress(javax.mail.internet.InternetAddress) Rif_modalita_pagamentoHome(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoHome) ContrattoHome(it.cnr.contab.config00.contratto.bulk.ContrattoHome) DocumentoEleTestataHome(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleTestataHome) Voce_ivaHome(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaHome) FindClause(it.cnr.jada.persistency.sql.FindClause) DocumentoEleTrasmissioneHome(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleTrasmissioneHome) DocumentoEleTrasmissioneBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleTrasmissioneBulk) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) Logger(org.slf4j.Logger) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk) Voce_ivaBulk(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk) BusyResourceException(it.cnr.jada.bulk.BusyResourceException) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) DocumentoEleTributiBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleTributiBulk) IOException(java.io.IOException) BulkList(it.cnr.jada.bulk.BulkList) Fattura_passivaHome(it.cnr.contab.docamm00.docs.bulk.Fattura_passivaHome) DocumentoEleIvaBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleIvaBulk) DocumentoEleDdtBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleDdtBulk) Utente_indirizzi_mailHome(it.cnr.contab.utenze00.bulk.Utente_indirizzi_mailHome) ComponentException(it.cnr.jada.comp.ComponentException) CompoundFindClause(it.cnr.jada.persistency.sql.CompoundFindClause) SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) DocumentoEleIvaBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleIvaBulk) DocumentoEleTestataBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleTestataBulk) DocumentoEleAcquistoBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleAcquistoBulk) Voce_ivaBulk(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk) Voce_ivaHome(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaHome) ContrattoHome(it.cnr.contab.config00.contratto.bulk.ContrattoHome) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) Utente_indirizzi_mailHome(it.cnr.contab.utenze00.bulk.Utente_indirizzi_mailHome) ValidationException(it.cnr.jada.bulk.ValidationException) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) BusyResourceException(it.cnr.jada.bulk.BusyResourceException) IOException(java.io.IOException) ComponentException(it.cnr.jada.comp.ComponentException) Rif_modalita_pagamentoHome(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoHome) java.util(java.util) Utente_indirizzi_mailBulk(it.cnr.contab.utenze00.bulk.Utente_indirizzi_mailBulk) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk)

Example 7 with AnagraficoBulk

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

the class CRUDOrdineAcqAction method doFreeSearchFindFornitore.

public Forward doFreeSearchFindFornitore(ActionContext context) {
    CRUDOrdineAcqBP bp = (CRUDOrdineAcqBP) context.getBusinessProcess();
    TerzoBulk tb = new TerzoBulk();
    tb.setAnagrafico(new AnagraficoBulk());
    return freeSearch(context, bp.getFormField("fornitore"), tb);
}
Also used : CRUDOrdineAcqBP(it.cnr.contab.ordmag.ordini.bp.CRUDOrdineAcqBP) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk)

Example 8 with AnagraficoBulk

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

the class CompensoComponent method isSospensioneIrpefOkPerContabil.

public boolean isSospensioneIrpefOkPerContabil(UserContext userContext, CompensoBulk compenso) throws ComponentException {
    Timestamp data_da = null;
    Timestamp data_a = null;
    try {
        Configurazione_cnrComponentSession sess = (Configurazione_cnrComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession");
        if (sess.getDt01(userContext, null, null, "SOSPENSIONE_IRPEF", "PERIODO_VALIDITA") == null || sess.getDt02(userContext, null, null, "SOSPENSIONE_IRPEF", "PERIODO_VALIDITA") == null)
            throw new ApplicationException("Configurazione CNR: non sono stati impostati i valori per la gestione della Sospensione IRPEF");
        data_da = sess.getDt01(userContext, null, null, "SOSPENSIONE_IRPEF", "PERIODO_VALIDITA");
        data_a = sess.getDt02(userContext, null, null, "SOSPENSIONE_IRPEF", "PERIODO_VALIDITA");
        java.sql.Timestamp data_emis_mand = it.cnr.jada.util.ejb.EJBCommonServices.getServerDate();
        // deve essere calcolata la sospensione, altrimenti no
        if (compenso.getCd_terzo() != null) {
            try {
                TerzoHome tHome = (TerzoHome) getHome(userContext, TerzoBulk.class);
                TerzoBulk tKey = new TerzoBulk(compenso.getCd_terzo());
                TerzoBulk t = (TerzoBulk) tHome.findByPrimaryKey(tKey);
                if (t == null) {
                    return false;
                } else {
                    AnagraficoHome aHome = (AnagraficoHome) getHome(userContext, AnagraficoBulk.class);
                    AnagraficoBulk aKey = new AnagraficoBulk(t.getCd_anag());
                    AnagraficoBulk a = (AnagraficoBulk) aHome.findByPrimaryKey(aKey);
                    if (a == null)
                        return false;
                    else {
                        if (a.getFl_sospensione_irpef() && isPrevistaSospensioneSuTrattCori(compenso) && data_emis_mand.compareTo(data_da) >= 0 && data_emis_mand.compareTo(data_a) <= 0) {
                            if (isCalcolataSospensione(compenso))
                                return true;
                            else
                                return false;
                        } else {
                            if (isNonCalcolataSospensione(compenso))
                                return true;
                            else
                                return false;
                        }
                    }
                }
            } catch (it.cnr.jada.persistency.PersistencyException ex) {
                throw handleException(compenso, ex);
            }
        } else
            return false;
    } catch (javax.ejb.EJBException e) {
        throw handleException(compenso, e);
    } catch (java.rmi.RemoteException e) {
        throw handleException(compenso, e);
    }
}
Also used : Configurazione_cnrComponentSession(it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) PersistencyException(it.cnr.jada.persistency.PersistencyException) Timestamp(java.sql.Timestamp) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) TerzoHome(it.cnr.contab.anagraf00.core.bulk.TerzoHome) Timestamp(java.sql.Timestamp) RemoteException(java.rmi.RemoteException) ApplicationException(it.cnr.jada.comp.ApplicationException) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) AnagraficoHome(it.cnr.contab.anagraf00.core.bulk.AnagraficoHome)

Example 9 with AnagraficoBulk

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

Example 10 with AnagraficoBulk

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

the class CRUDFatturaPassivaElettronicaAction method doCRUDModalitaPagamento.

public Forward doCRUDModalitaPagamento(ActionContext context) throws FillException, BusinessProcessException {
    CRUDFatturaPassivaElettronicaBP fatturaPassivaElettronicaBP = (CRUDFatturaPassivaElettronicaBP) context.getBusinessProcess();
    DocumentoEleTestataBulk bulk = (DocumentoEleTestataBulk) fatturaPassivaElettronicaBP.getModel();
    AnagraficoBulk anagrafico = null;
    TerzoBulk terzo = null;
    if (bulk.getDocumentoEleTrasmissione().getSoggettoEmittente() != null && bulk.getDocumentoEleTrasmissione().getSoggettoEmittente().equals(SoggettoEmittenteType.TZ.value())) {
        if (bulk.getDocumentoEleTrasmissione().getIntermediarioCdTerzo() != null) {
            anagrafico = bulk.getDocumentoEleTrasmissione().getIntermediarioAnag();
            terzo = bulk.getDocumentoEleTrasmissione().getIntermediario();
        } else if (bulk.getDocumentoEleTrasmissione().getRappresentanteCdTerzo() != null) {
            anagrafico = bulk.getDocumentoEleTrasmissione().getRappresentanteAnag();
            terzo = bulk.getDocumentoEleTrasmissione().getRappresentante();
        } else {
            anagrafico = bulk.getDocumentoEleTrasmissione().getPrestatoreAnag();
            terzo = bulk.getDocumentoEleTrasmissione().getPrestatore();
        }
    } else {
        anagrafico = bulk.getDocumentoEleTrasmissione().getPrestatoreAnag();
        terzo = bulk.getDocumentoEleTrasmissione().getPrestatore();
    }
    FormField formfield = getFormField(context, "main.modalitaPagamento");
    try {
        CRUDTerzoBP nbp = (CRUDTerzoBP) context.createBusinessProcess("CRUDTerzoBP", new Object[] { "M", anagrafico });
        nbp.basicEdit(context, terzo, true);
        nbp.setTab("tab", "tabModalitaPagamento");
        context.addHookForward("bringback", this, "doBringBackCRUD");
        HookForward hookforward = (HookForward) context.findForward("bringback");
        hookforward.addParameter("field", formfield);
        nbp.setBringBack(true);
        return context.addBusinessProcess(nbp);
    } catch (Throwable e) {
        return handleException(context, e);
    }
}
Also used : TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) AnagraficoBulk(it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk) CRUDTerzoBP(it.cnr.contab.anagraf00.bp.CRUDTerzoBP) DocumentoEleTestataBulk(it.cnr.contab.docamm00.fatturapa.bulk.DocumentoEleTestataBulk) CRUDFatturaPassivaElettronicaBP(it.cnr.contab.docamm00.bp.CRUDFatturaPassivaElettronicaBP)

Aggregations

AnagraficoBulk (it.cnr.contab.anagraf00.core.bulk.AnagraficoBulk)48 ApplicationException (it.cnr.jada.comp.ApplicationException)33 TerzoBulk (it.cnr.contab.anagraf00.core.bulk.TerzoBulk)31 PersistencyException (it.cnr.jada.persistency.PersistencyException)26 ComponentException (it.cnr.jada.comp.ComponentException)24 RemoteException (java.rmi.RemoteException)24 IntrospectionException (it.cnr.jada.persistency.IntrospectionException)17 BigDecimal (java.math.BigDecimal)14 Timestamp (java.sql.Timestamp)14 ComuneBulk (it.cnr.contab.anagraf00.tabter.bulk.ComuneBulk)13 it.cnr.jada.bulk (it.cnr.jada.bulk)13 java.util (java.util)13 it.cnr.contab.anagraf00.core.bulk (it.cnr.contab.anagraf00.core.bulk)12 AnagraficoComponentSession (it.cnr.contab.anagraf00.ejb.AnagraficoComponentSession)12 EJBException (javax.ejb.EJBException)12 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)11 Iterator (java.util.Iterator)11 AnagraficoHome (it.cnr.contab.anagraf00.core.bulk.AnagraficoHome)10 IOException (java.io.IOException)10 TerzoHome (it.cnr.contab.anagraf00.core.bulk.TerzoHome)9