Search in sources :

Example 1 with Voce_ivaBulk

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

the class CRUDCompensoAction method doBlankSearchFind_voce_iva.

public Forward doBlankSearchFind_voce_iva(ActionContext context, CompensoBulk compenso) {
    if (compenso != null) {
        CRUDCompensoBP bp = (CRUDCompensoBP) getBusinessProcess(context);
        compenso.setVoceIva(new Voce_ivaBulk());
        compenso.setStatoCompensoToEseguiCalcolo();
        bp.setDirty(true);
    }
    return context.findDefaultForward();
}
Also used : CRUDCompensoBP(it.cnr.contab.compensi00.bp.CRUDCompensoBP) Voce_ivaBulk(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk)

Example 2 with Voce_ivaBulk

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

the class OrdineAcqComponent method inizializzaBulkPerModifica.

@Override
public OggettoBulk inizializzaBulkPerModifica(UserContext usercontext, OggettoBulk oggettobulk) throws ComponentException {
    OrdineAcqBulk ordine = (OrdineAcqBulk) super.inizializzaBulkPerModifica(usercontext, oggettobulk);
    ordine.setUnicoMagazzinoAbilitato(unicoMagazzinoAbilitato(usercontext, ordine));
    it.cnr.jada.bulk.BulkHome homeRiga = getHome(usercontext, OrdineAcqRigaBulk.class);
    it.cnr.jada.persistency.sql.SQLBuilder sql = homeRiga.createSQLBuilder();
    sql.addClause("AND", "numero", sql.EQUALS, ordine.getNumero());
    sql.addClause("AND", "cdCds", sql.EQUALS, ordine.getCdCds());
    sql.addClause("AND", "cdUnitaOperativa", sql.EQUALS, ordine.getCdUnitaOperativa());
    sql.addClause("AND", "esercizio", sql.EQUALS, ordine.getEsercizio());
    sql.addClause("AND", "cdNumeratore", sql.EQUALS, ordine.getCdNumeratore());
    sql.addOrderBy("cd_cds");
    sql.addOrderBy("cd_unita_operativa");
    sql.addOrderBy("esercizio");
    sql.addOrderBy("cd_numeratore");
    sql.addOrderBy("numero");
    sql.addOrderBy("riga");
    try {
        ordine.setRigheOrdineColl(new it.cnr.jada.bulk.BulkList(homeRiga.fetchAll(sql)));
        for (java.util.Iterator i = ordine.getRigheOrdineColl().iterator(); i.hasNext(); ) {
            OrdineAcqRigaBulk riga = (OrdineAcqRigaBulk) i.next();
            // if (riga.getBeneServizio() != null){
            // Bene_servizioBulk bene = recuperoBeneServizio(usercontext, riga.getCdBeneServizio());
            // riga.setBeneServizio(bene);
            // riga.setTipoConsegnaDefault(bene.getTipoGestione());
            // }
            // if (riga.getUnitaMisura() != null){
            // UnitaMisuraHome home = (UnitaMisuraHome)getHome(usercontext, UnitaMisuraBulk.class);
            // UnitaMisuraBulk um = (UnitaMisuraBulk)home.findByPrimaryKey(new UnitaMisuraBulk(riga.getCdUnitaMisura()));
            // riga.setUnitaMisura(um);
            // }
            // if (riga.getVoceIva() != null){
            // Voce_ivaHome home = (Voce_ivaHome)getHome(usercontext, Voce_ivaBulk.class);
            // Voce_ivaBulk voce = (Voce_ivaBulk)home.findByPrimaryKey(new Voce_ivaBulk(riga.getCdVoceIva()));
            // riga.setVoceIva(voce);
            // }
            it.cnr.jada.bulk.BulkHome homeConsegna = getHome(usercontext, OrdineAcqConsegnaBulk.class);
            it.cnr.jada.persistency.sql.SQLBuilder sqlConsegna = homeConsegna.createSQLBuilder();
            sqlConsegna.addClause("AND", "numero", sql.EQUALS, ordine.getNumero());
            sqlConsegna.addClause("AND", "cdCds", sql.EQUALS, ordine.getCdCds());
            sqlConsegna.addClause("AND", "cdUnitaOperativa", sql.EQUALS, ordine.getCdUnitaOperativa());
            sqlConsegna.addClause("AND", "esercizio", sql.EQUALS, ordine.getEsercizio());
            sqlConsegna.addClause("AND", "cdNumeratore", sql.EQUALS, ordine.getCdNumeratore());
            sqlConsegna.addClause("AND", "riga", sql.EQUALS, riga.getRiga());
            sqlConsegna.addOrderBy("consegna");
            riga.setRigheConsegnaColl(new it.cnr.jada.bulk.BulkList(homeConsegna.fetchAll(sqlConsegna)));
            getHomeCache(usercontext).fetchAll(usercontext);
            Obbligazione_scadenzarioBulk scadenzaComune = null;
            Boolean esisteScadenzaComune = false;
            for (java.util.Iterator c = riga.getRigheConsegnaColl().iterator(); c.hasNext(); ) {
                OggettoBulk consbulk = (OggettoBulk) c.next();
                OrdineAcqConsegnaBulk cons = (OrdineAcqConsegnaBulk) consbulk;
                // }
                if (cons.getObbligazioneScadenzario() != null) {
                    // Obbligazione_scadenzarioBulk scad = retrieveObbligazioneScadenzario(usercontext, cons);
                    // cons.setObbligazioneScadenzario(scad);
                    Obbligazione_scadenzarioBulk scad = cons.getObbligazioneScadenzario();
                    if (scadenzaComune == null || scadenzaComune.equalsByPrimaryKey(scad)) {
                        esisteScadenzaComune = true;
                        scadenzaComune = scad;
                    } else {
                        esisteScadenzaComune = false;
                    }
                } else {
                    esisteScadenzaComune = false;
                }
                if (cons.getUnitaOperativaOrd() != null) {
                    UnitaOperativaOrdBulk uop = recuperoUopDest(usercontext, cons);
                    cons.setUnitaOperativaOrd(uop);
                }
            }
            impostaCampiDspRiga(riga);
            if (esisteScadenzaComune) {
                riga.setDspObbligazioneScadenzario(scadenzaComune);
            }
        }
    } catch (PersistencyException e) {
        throw handleException(e);
    }
    // impostaTotaliOrdine(ordine);
    rebuildObbligazioni(usercontext, ordine);
    return inizializzaOrdine(usercontext, (OggettoBulk) ordine, false);
}
Also used : BulkList(it.cnr.jada.bulk.BulkList) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) it.cnr.jada.persistency.sql(it.cnr.jada.persistency.sql) java.util(java.util) PersistencyException(it.cnr.jada.persistency.PersistencyException) it.cnr.contab.anagraf00.core.bulk(it.cnr.contab.anagraf00.core.bulk) it.cnr.contab.docamm00.tabrif.bulk(it.cnr.contab.docamm00.tabrif.bulk) it.cnr.contab.config00.sto.bulk(it.cnr.contab.config00.sto.bulk) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) it.cnr.contab.ordmag.ordini.bulk(it.cnr.contab.ordmag.ordini.bulk)

Example 3 with Voce_ivaBulk

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

the class FatturaOrdineBulk method calcolaRettifiche.

public void calcolaRettifiche() {
    final BigDecimal prezzoUnitario = Optional.ofNullable(getPrezzoUnitarioRett()).orElseGet(() -> getOrdineAcqConsegna().getOrdineAcqRiga().getPrezzoUnitario());
    final BigDecimal percentualeIva = Optional.ofNullable(getVoceIva()).filter(voce_ivaBulk -> Optional.ofNullable(voce_ivaBulk.getPercentuale()).isPresent()).map(voce_ivaBulk -> voce_ivaBulk.getPercentuale()).orElseGet(() -> getOrdineAcqConsegna().getOrdineAcqRiga().getVoce_iva().getPercentuale());
    setImImponibile(prezzoUnitario.multiply(getOrdineAcqConsegna().getQuantita()).setScale(2, RoundingMode.HALF_UP));
    setImIva(getImImponibile().multiply(percentualeIva).divide(BigDecimal.TEN.multiply(BigDecimal.TEN)).setScale(2, RoundingMode.HALF_UP));
    setImTotaleConsegna(getImImponibile().add(getImIva()));
}
Also used : Fattura_passiva_rigaIBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaIBulk) BigDecimal(java.math.BigDecimal) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) Fattura_passiva_rigaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk) Voce_ivaBulk(it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk) MathContext(java.math.MathContext) Optional(java.util.Optional) ValidationException(it.cnr.jada.bulk.ValidationException) RoundingMode(java.math.RoundingMode) BigDecimal(java.math.BigDecimal)

Example 4 with Voce_ivaBulk

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

the class FatturaAttivaSingolaComponent method validaRiga.

/**
 * validazione bene.
 * PreCondition:
 * Il bene  relativo alla riga fattura in via di variazione risulta di tipo soggetto ad inventario.
 * PostCondition:
 * Viene inviato un messaggio all'utente "Questo bene è soggetto ad inventario".
 * NOTA: Vanno dettagliate le condizioni di inventario non appena disponibile il relativo use case
 * tutti i controli superati
 * PreCondition:
 * Nessun errore rilevato.
 * PostCondition:
 * Viene consentita la registrazione riga.
 * validazione modifica imponibile, iva, totale, aliquota (G2)
 * PreCondition:
 * Sono stati modificati i campi  imponibile, iva, totale, aliquiota (G2) in fattura in stato B or C
 * PostCondition:
 * Viene inviato un messaggio "Attenzione:  questa modifica non è permessa"
 * validazione modifica dettaglio pagato.
 * PreCondition:
 * E' stato modificato un dettaglio in stato P.
 * PostCondition:
 * Viene inviato un messaggio:"Attenzione non si può eliminare un dettaglio già pagato".
 * validazione modifica dettaglio di fattura già pagata.
 * PreCondition:
 * E' stato modificato un dettaglio di fattura in stato P.
 * PostCondition:
 * Viene inviato un messaggio:"Attenzione non si può modificare un dettaglio in una fattura già pagata".
 */
// ^^@@
public void validaRiga(UserContext aUC, Fattura_attiva_rigaBulk fatturaRiga) throws ComponentException {
    if (fatturaRiga.getBene_servizio() == null || fatturaRiga.getBene_servizio().getCrudStatus() == OggettoBulk.UNDEFINED)
        throw new it.cnr.jada.comp.ApplicationException("Inserire un bene/servizio per la riga.");
    if (fatturaRiga.getDs_riga_fattura() == null)
        throw new it.cnr.jada.comp.ApplicationException("Inserire una descrizione per la riga.");
    if (fatturaRiga.getQuantita() == null || fatturaRiga.getQuantita().intValue() <= 0)
        throw new it.cnr.jada.comp.ApplicationException("La quantità specificata nel dettaglio NON è valida.");
    try {
        VoceIvaComponentSession h = (VoceIvaComponentSession) EJBCommonServices.createEJB("CNRDOCAMM00_EJB_VoceIvaComponentSession", VoceIvaComponentSession.class);
        Voce_ivaBulk def = h.caricaVoceIvaDefault(aUC);
        if (def != null && def.getCd_voce_iva() != null)
            if (fatturaRiga.getVoce_iva().getCd_voce_iva().compareTo(def.getCd_voce_iva()) == 0)
                throw new it.cnr.jada.comp.ApplicationException("Codice iva non valido");
    } catch (java.rmi.RemoteException e) {
        throw handleException(e);
    }
    try {
        fatturaRiga.validaDateCompetenza();
    } catch (it.cnr.jada.bulk.ValidationException e) {
        throw new it.cnr.jada.comp.ApplicationException(e.getMessage());
    }
    if (fatturaRiga.getFattura_attiva().getTi_causale_emissione().equals(fatturaRiga.getFattura_attiva().TARIFFARIO) && (fatturaRiga.getTariffario() == null || fatturaRiga.getTariffario().getCd_tariffario() == null || fatturaRiga.getTariffario().getCrudStatus() == OggettoBulk.UNDEFINED))
        throw new it.cnr.jada.comp.ApplicationException("Selezionare un tariffario!");
    if (fatturaRiga.getAccertamento_scadenzario() != null && !fatturaRiga.getAccertamento_scadenzario().getAccertamento().getCd_terzo().equals(fatturaRiga.getFattura_attiva().getCliente().getCd_terzo()) && !fatturaRiga.getAccertamento_scadenzario().getAccertamento().getDebitore().getAnagrafico().getTi_entita().equals(AnagraficoBulk.DIVERSI))
        throw new it.cnr.jada.comp.ApplicationException("Attenzione! Il cliente selezionato non corrisponde al cliente dell'accertamento " + ((fatturaRiga.getDs_riga_fattura() != null) ? "sul dettaglio " + fatturaRiga.getDs_riga_fattura() : "su un dettaglio"));
    Elemento_voceBulk voce = recuperoVoce(aUC, fatturaRiga.getAccertamento_scadenzario());
    if (fatturaRiga.getPg_trovato() != null && ((fatturaRiga.getAccertamento_scadenzario() == null) || (fatturaRiga.getAccertamento_scadenzario() != null && isInibitaIndicazioneTrovato(voce))))
        fatturaRiga.setPg_trovato(null);
    if (fatturaRiga.getAccertamento_scadenzario() != null && isObbligatoriaIndicazioneTrovato(voce) && fatturaRiga.getPg_trovato() == null)
        throw new it.cnr.jada.comp.ApplicationException("Attenzione! Non è stato inserito il Brevetto/Trovato mentre la voce di bilancio utilizzata per la contabilizzazione del dettaglio collegato ne prevede l'indicazione obbligatoria");
    // nei periodi del sezionale impostato sulla riga
    if (fatturaRiga.getFattura_attiva().getTi_causale_emissione().equals(fatturaRiga.getFattura_attiva().TARIFFARIO) && fatturaRiga.getFattura_attiva().getDt_registrazione() != null && fatturaRiga.getTariffario() != null && (fatturaRiga.getTariffario().getDt_ini_validita().after(fatturaRiga.getFattura_attiva().getDt_registrazione()) || fatturaRiga.getTariffario().getDt_fine_validita().before(fatturaRiga.getFattura_attiva().getDt_registrazione())))
        throw new it.cnr.jada.comp.ApplicationException("Attenzione! Per la data di registrazione impostata il tariffario selezionato " + ((fatturaRiga.getDs_riga_fattura() != null) ? "sul dettaglio " + fatturaRiga.getDs_riga_fattura() : "su un dettaglio") + "non è valido");
    // }
    if (fatturaRiga instanceof Nota_di_credito_attiva_rigaBulk && fatturaRiga.getFattura_attiva() != null && !fatturaRiga.getFattura_attiva().isIvaRecuperabile() && fatturaRiga.getVoce_iva() != null && !fatturaRiga.getVoce_iva().getFl_iva_non_recuperabile())
        throw new it.cnr.jada.comp.ApplicationException("Attenzione! Il codice iva " + ((fatturaRiga.getDs_riga_fattura() != null) ? "sul dettaglio " + fatturaRiga.getDs_riga_fattura() : "su un dettaglio") + " non è valido");
    if (Optional.ofNullable(fatturaRiga).flatMap(fattura_attiva_rigaBulk -> Optional.ofNullable(fattura_attiva_rigaBulk.getVoce_iva())).flatMap(voce_ivaBulk -> Optional.ofNullable(voce_ivaBulk.getFl_obb_dichiarazione_intento())).orElse(Boolean.FALSE))
        verificaEsistenzaDichiarazioneIntento(aUC, fatturaRiga);
    if (!RemoveAccent.isOk(fatturaRiga.getDs_riga_fattura())) {
        throw new ApplicationException("La descrizione contienere caratteri speciali non supportati.");
    }
}
Also used : it.cnr.contab.docamm00.intrastat.bulk(it.cnr.contab.docamm00.intrastat.bulk) EsercizioBulk(it.cnr.contab.config00.esercizio.bulk.EsercizioBulk) it.cnr.jada.comp(it.cnr.jada.comp) it.cnr.contab.anagraf00.core.bulk(it.cnr.contab.anagraf00.core.bulk) LoggerFactory(org.slf4j.LoggerFactory) SendMail(it.cnr.jada.util.SendMail) Vsx_rif_protocollo_ivaBulk(it.cnr.contab.docamm00.views.bulk.Vsx_rif_protocollo_ivaBulk) BigDecimal(java.math.BigDecimal) AnagraficoComponentSession(it.cnr.contab.anagraf00.ejb.AnagraficoComponentSession) it.cnr.contab.docamm00.tabrif.bulk(it.cnr.contab.docamm00.tabrif.bulk) it.cnr.contab.config00.sto.bulk(it.cnr.contab.config00.sto.bulk) PrintService(it.cnr.contab.reports.service.PrintService) DateFormat(java.text.DateFormat) AccertamentoAbstractComponentSession(it.cnr.contab.doccont00.ejb.AccertamentoAbstractComponentSession) UtenteBulk(it.cnr.contab.utenze00.bulk.UtenteBulk) AddressException(javax.mail.internet.AddressException) Timestamp(java.sql.Timestamp) V_stm_paramin_ft_attivaBulk(it.cnr.contab.docamm00.views.bulk.V_stm_paramin_ft_attivaBulk) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) ProvinciaBulk(it.cnr.contab.anagraf00.tabter.bulk.ProvinciaBulk) EJBCommonServices(it.cnr.jada.util.ejb.EJBCommonServices) Parametri_cnrBulk(it.cnr.contab.config00.bulk.Parametri_cnrBulk) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) RemoteException(java.rmi.RemoteException) EJBException(javax.ejb.EJBException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) Parametri_cnrComponentSession(it.cnr.contab.config00.ejb.Parametri_cnrComponentSession) RicercaTrovato(it.cnr.contab.docamm00.client.RicercaTrovato) NazioneBulk(it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk) WorkpackageBulk(it.cnr.contab.config00.latt.bulk.WorkpackageBulk) Vsx_rif_protocollo_ivaHome(it.cnr.contab.docamm00.views.bulk.Vsx_rif_protocollo_ivaHome) SpringUtil(it.cnr.contab.service.SpringUtil) UserContext(it.cnr.jada.UserContext) it.cnr.jada.persistency.sql(it.cnr.jada.persistency.sql) RemoveAccent(it.cnr.contab.util.RemoveAccent) java.util(java.util) Utility(it.cnr.contab.util.Utility) SimpleDateFormat(java.text.SimpleDateFormat) Tipo_atto_bolloBulk(it.cnr.contab.bollo00.tabrif.bulk.Tipo_atto_bolloBulk) it.cnr.contab.doccont00.core.bulk(it.cnr.contab.doccont00.core.bulk) Utente_indirizzi_mailBulk(it.cnr.contab.utenze00.bulk.Utente_indirizzi_mailBulk) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk) InternetAddress(javax.mail.internet.InternetAddress) ScritturaPartitaDoppiaFromDocumentoComponent(it.cnr.contab.coepcoan00.comp.ScritturaPartitaDoppiaFromDocumentoComponent) SQLException(java.sql.SQLException) ProgressiviAmmComponentSession(it.cnr.contab.docamm00.ejb.ProgressiviAmmComponentSession) it.cnr.contab.inventario01.bulk(it.cnr.contab.inventario01.bulk) NaturaBulk(it.cnr.contab.config00.pdcfin.bulk.NaturaBulk) OptionRequestParameter(it.cnr.contab.doccont00.core.bulk.OptionRequestParameter) RemoteIterator(it.cnr.jada.util.RemoteIterator) Elemento_voceHome(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome) TipoIVA(it.cnr.contab.util.enumeration.TipoIVA) DocumentoContabileComponentSession(it.cnr.contab.doccont00.comp.DocumentoContabileComponentSession) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) PersistencyException(it.cnr.jada.persistency.PersistencyException) Logger(org.slf4j.Logger) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk) VoceIvaComponentSession(it.cnr.contab.docamm00.ejb.VoceIvaComponentSession) ContrattoBulk(it.cnr.contab.config00.contratto.bulk.ContrattoBulk) Print_spoolerBulk(it.cnr.contab.reports.bulk.Print_spoolerBulk) ObbligazioneAbstractComponentSession(it.cnr.contab.doccont00.ejb.ObbligazioneAbstractComponentSession) RiportoDocAmmComponentSession(it.cnr.contab.docamm00.ejb.RiportoDocAmmComponentSession) XMLGregorianCalendar(javax.xml.datatype.XMLGregorianCalendar) Report(it.cnr.contab.reports.bulk.Report) NazioneHome(it.cnr.contab.anagraf00.tabter.bulk.NazioneHome) java.io(java.io) ProvinciaHome(it.cnr.contab.anagraf00.tabter.bulk.ProvinciaHome) it.cnr.jada.bulk(it.cnr.jada.bulk) Utente_indirizzi_mailHome(it.cnr.contab.utenze00.bulk.Utente_indirizzi_mailHome) V_stm_paramin_ft_attivaHome(it.cnr.contab.docamm00.views.bulk.V_stm_paramin_ft_attivaHome) it.cnr.contab.inventario00.docs.bulk(it.cnr.contab.inventario00.docs.bulk) it.cnr.jada.comp(it.cnr.jada.comp) Elemento_voceBulk(it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk) RemoteException(java.rmi.RemoteException) VoceIvaComponentSession(it.cnr.contab.docamm00.ejb.VoceIvaComponentSession) 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.tabrif.bulk(it.cnr.contab.docamm00.tabrif.bulk) it.cnr.contab.config00.sto.bulk(it.cnr.contab.config00.sto.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.jada.bulk(it.cnr.jada.bulk) it.cnr.contab.inventario00.docs.bulk(it.cnr.contab.inventario00.docs.bulk)

Example 5 with Voce_ivaBulk

use of it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk 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)

Aggregations

Voce_ivaBulk (it.cnr.contab.docamm00.tabrif.bulk.Voce_ivaBulk)18 ComponentException (it.cnr.jada.comp.ComponentException)11 RemoteException (java.rmi.RemoteException)10 PersistencyException (it.cnr.jada.persistency.PersistencyException)9 ApplicationException (it.cnr.jada.comp.ApplicationException)8 Rif_modalita_pagamentoBulk (it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk)7 ContrattoBulk (it.cnr.contab.config00.contratto.bulk.ContrattoBulk)7 Elemento_voceBulk (it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk)7 it.cnr.contab.doccont00.core.bulk (it.cnr.contab.doccont00.core.bulk)7 DetailedRuntimeException (it.cnr.jada.DetailedRuntimeException)7 UserContext (it.cnr.jada.UserContext)7 IntrospectionException (it.cnr.jada.persistency.IntrospectionException)7 it.cnr.contab.anagraf00.core.bulk (it.cnr.contab.anagraf00.core.bulk)6 it.cnr.contab.docamm00.docs.bulk (it.cnr.contab.docamm00.docs.bulk)6 it.cnr.contab.docamm00.intrastat.bulk (it.cnr.contab.docamm00.intrastat.bulk)6 EJBException (javax.ejb.EJBException)6 NazioneBulk (it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk)5 VoceIvaComponentSession (it.cnr.contab.docamm00.ejb.VoceIvaComponentSession)5 it.cnr.contab.docamm00.tabrif.bulk (it.cnr.contab.docamm00.tabrif.bulk)5 BulkList (it.cnr.jada.bulk.BulkList)5