Search in sources :

Example 1 with Rif_modalita_pagamentoBulk

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

the class ReversaleComponent method docGenerico_creaDocumentoGenericoRiga.

/**
 * creazione riga di documento di entrata x incasso IVA da fatture estere
 * PreCondition:
 * E' stata generata la richiesta di creazione di una riga di documento amministrativo di entrata
 * a partire da una reversale di incasso IVA x fattura estera
 * PostCondition:
 * Un riga di documento amministrativo viene creata.
 *
 * @param userContext lo <code>UserContext</code> che ha generato la richiesta
 * @param documento   <code>Documento_genericoBulk</code> il documento generico
 * @param scadenza    <code>Accertamento_scadenzarioBulk</code> la scadenza dell'accertamento
 * @param importo     L'importo della reversale di regolarizzazione
 * @param mRiga       Mandato_rigaBulk da cui dedurre le modalita di pagamento
 * @return riga <code>Documento_generico_rigaBulk</code> la riga del documento generico creata
 */
public Documento_generico_rigaBulk docGenerico_creaDocumentoGenericoRiga(UserContext userContext, Documento_genericoBulk documento, Accertamento_scadenzarioBulk scadenza, BigDecimal importo, Mandato_rigaBulk mRiga) throws ComponentException {
    try {
        Documento_generico_rigaBulk riga = docGenerico_creaDocumentoGenericoRiga(userContext, documento, scadenza, importo);
        // terzo uo
        SQLBuilder sql = getHome(userContext, TerzoBulk.class).createSQLBuilder();
        sql.addClause("AND", "cd_unita_organizzativa", SQLBuilder.EQUALS, documento.getCd_unita_organizzativa());
        sql.addClause("AND", "dt_canc", SQLBuilder.ISNULL, null);
        List result = getHome(userContext, TerzoBulk.class).fetchAll(sql);
        if (result == null || result.size() == 0)
            throw handleException(new ApplicationException(" Impossibile emettere la reversale: l'unità organizzativa " + documento.getCd_unita_organizzativa() + " non e' stata codificata in anagrafica"));
        TerzoBulk terzo_uo = (TerzoBulk) result.get(0);
        riga.setCd_terzo_uo_cds(terzo_uo.getCd_terzo());
        riga.setTerzo_uo_cds(terzo_uo);
        // modalità pagamento
        sql = getHome(userContext, Modalita_pagamentoBulk.class).createSQLBuilder();
        sql.addClause("AND", "cd_terzo", SQLBuilder.EQUALS, terzo_uo.getCd_terzo());
        sql.addClause("AND", "cd_terzo_delegato", SQLBuilder.ISNULL, null);
        sql.addTableToHeader("RIF_MODALITA_PAGAMENTO");
        sql.addSQLJoin("RIF_MODALITA_PAGAMENTO.CD_MODALITA_PAG", "MODALITA_PAGAMENTO.CD_MODALITA_PAG");
        sql.addSQLClause("AND", "TI_PAGAMENTO", SQLBuilder.EQUALS, Rif_modalita_pagamentoBulk.BANCARIO);
        result = getHome(userContext, Modalita_pagamentoBulk.class).fetchAll(sql);
        if (result == null || result.size() == 0)
            throw handleException(new ApplicationException(" Impossibile emettere la reversale: l'unità organizzativa " + documento.getCd_unita_organizzativa() + " non ha modalità di pagamento associate"));
        Modalita_pagamentoBulk mp = (Modalita_pagamentoBulk) result.get(0);
        riga.setCd_modalita_pag_uo_cds(mp.getCd_modalita_pag());
        riga.setModalita_pagamento_uo_cds(new Rif_modalita_pagamentoBulk(mp.getCd_modalita_pag()));
        sql = getHome(userContext, BancaBulk.class).createSQLBuilder();
        sql.addClause("AND", "cd_terzo", SQLBuilder.EQUALS, terzo_uo.getCd_terzo());
        sql.addClause("AND", "ti_pagamento", SQLBuilder.EQUALS, Rif_modalita_pagamentoBulk.BANCARIO);
        sql.addClause("AND", "fl_cancellato", SQLBuilder.EQUALS, Boolean.FALSE);
        sql.addSQLClause("AND", "CODICE_IBAN", SQLBuilder.ISNOTNULL, null);
        sql.addSQLClause("AND", "cd_terzo_delegato", SQLBuilder.ISNULL, null);
        try {
            if (!Utility.createParametriCnrComponentSession().getParametriCnr(userContext, CNRUserContext.getEsercizio(userContext)).getFl_tesoreria_unica().booleanValue())
                sql.addSQLClause("AND", "BANCA.FL_CC_CDS", SQLBuilder.EQUALS, "Y");
            else {
                Configurazione_cnrBulk config = new Configurazione_cnrBulk("CONTO_CORRENTE_SPECIALE", "ENTE", "*", new Integer(0));
                it.cnr.contab.config00.bulk.Configurazione_cnrHome home = (it.cnr.contab.config00.bulk.Configurazione_cnrHome) getHome(userContext, config);
                List configurazioni = home.find(config);
                if ((configurazioni != null) && (configurazioni.size() == 1)) {
                    Configurazione_cnrBulk configBanca = (Configurazione_cnrBulk) configurazioni.get(0);
                    sql.addSQLClause("AND", "BANCA.ABI", SQLBuilder.EQUALS, configBanca.getVal01());
                    sql.addSQLClause("AND", "BANCA.CAB", SQLBuilder.EQUALS, configBanca.getVal02());
                    sql.addSQLClause("AND", "BANCA.NUMERO_CONTO", SQLBuilder.CONTAINS, configBanca.getVal03());
                }
            }
        } catch (Exception e) {
            throw handleException(e);
        }
        result = getHome(userContext, BancaBulk.class).fetchAll(sql);
        if (result == null || result.size() == 0)
            throw handleException(new ApplicationException(" Impossibile emettere la reversale: l'unità organizzativa " + documento.getCd_unita_organizzativa() + " non ha coordinate bancarie associate"));
        BancaBulk banca = (BancaBulk) result.get(0);
        riga.setPg_banca_uo_cds(banca.getPg_banca());
        riga.setBanca_uo_cds(banca);
        return riga;
    } catch (Exception e) {
        throw handleException(e);
    }
}
Also used : Configurazione_cnrHome(it.cnr.contab.config00.bulk.Configurazione_cnrHome) ParseException(java.text.ParseException) ValidationException(it.cnr.jada.bulk.ValidationException) RemoteException(java.rmi.RemoteException) IntrospectionException(it.cnr.jada.persistency.IntrospectionException) SQLException(java.sql.SQLException) PersistencyException(it.cnr.jada.persistency.PersistencyException) IOException(java.io.IOException) BulkList(it.cnr.jada.bulk.BulkList) it.cnr.contab.anagraf00.core.bulk(it.cnr.contab.anagraf00.core.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) Configurazione_cnrHome(it.cnr.contab.config00.bulk.Configurazione_cnrHome) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk) Configurazione_cnrBulk(it.cnr.contab.config00.bulk.Configurazione_cnrBulk)

Example 2 with Rif_modalita_pagamentoBulk

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

the class GruppoCRComponent method findBancaOptions.

public List findBancaOptions(UserContext userContext, Gruppo_cr_detBulk det) throws ComponentException {
    try {
        if (det.getTerzo() != null && det.getTerzo().getCd_terzo() != null) {
            det.setTerzo((TerzoBulk) getHome(userContext, TerzoBulk.class).findByPrimaryKey(new TerzoBulk(det.getTerzo().getCd_terzo())));
            if (det.getModalitaOptions() != null && !det.getModalitaOptions().isEmpty() && det.getModalitaPagamento().getCd_modalita_pag() == null)
                det.setModalitaPagamento((Rif_modalita_pagamentoBulk) new BulkList(det.getModalitaOptions()).get(0));
            SQLBuilder sql = getHome(userContext, BancaBulk.class).createSQLBuilder();
            sql.addClause("AND", "cd_terzo", sql.EQUALS, det.getTerzo().getCd_terzo());
            // sql.addSQLClause("AND", "BANCA.CD_TERZO_DELEGATO", sql.ISNULL, null);
            sql.addSQLClause("AND", "BANCA.FL_CANCELLATO", sql.EQUALS, "N");
            sql.addSQLClause("AND", "BANCA.PG_BANCA", sql.EQUALS, det.getPg_banca());
            sql.addOrderBy("FL_CC_CDS DESC");
            if (det.getModalitaPagamento() != null && det.getModalitaPagamento().getCd_modalita_pag() != null) {
                SQLBuilder sql2 = getHome(userContext, Modalita_pagamentoBulk.class).createSQLBuilder();
                sql2.setHeader("SELECT DISTINCT TI_PAGAMENTO ");
                sql2.addTableToHeader("rif_modalita_pagamento");
                sql2.addSQLClause("AND", "modalita_pagamento.cd_terzo", sql.EQUALS, det.getTerzo().getCd_terzo());
                sql2.addSQLClause("AND", "modalita_pagamento.cd_modalita_pag", sql.EQUALS, det.getModalitaPagamento().getCd_modalita_pag());
                sql2.addSQLJoin("modalita_pagamento.cd_modalita_pag", "rif_modalita_pagamento.cd_modalita_pag");
                // sql2.addSQLClause("AND", "MODALITA_PAGAMENTO.CD_TERZO_DELEGATO", sql.ISNULL, null);
                sql.addSQLClause("AND", "TI_PAGAMENTO", sql.EQUALS, sql2);
            }
            List result = getHome(userContext, BancaBulk.class).fetchAll(sql);
            if (result.size() == 0)
                throw new ApplicationException("Non esistono o non sono valide le coordinate bancarie associate per il terzo " + det.getTerzo().getCd_terzo());
            return result;
        } else
            return null;
    } catch (it.cnr.jada.persistency.PersistencyException ex) {
        throw handleException(ex);
    }
}
Also used : SQLBuilder(it.cnr.jada.persistency.sql.SQLBuilder) Modalita_pagamentoBulk(it.cnr.contab.anagraf00.core.bulk.Modalita_pagamentoBulk) PersistencyException(it.cnr.jada.persistency.PersistencyException) ApplicationException(it.cnr.jada.comp.ApplicationException) TerzoBulk(it.cnr.contab.anagraf00.core.bulk.TerzoBulk) BancaBulk(it.cnr.contab.anagraf00.core.bulk.BancaBulk) BulkList(it.cnr.jada.bulk.BulkList) BulkList(it.cnr.jada.bulk.BulkList) List(java.util.List) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk)

Example 3 with Rif_modalita_pagamentoBulk

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

the class FatturaPassivaComponent method validaFattura.

// ^^@@
/**
 * validazione numero fattura
 * PreCondition:
 * Il numero della fattura fornitore è gia presente nell'archivio fatture.
 * PostCondition:
 * Viene visualizzato il messaggio "Attenzione duplicazione fattura: Il numero di fattura risulta già registrato".
 * tutti i controlli superati
 * PreCondition:
 * Nessuna situazione di errore di validazione è stata rilevata.
 * PostCondition:
 * Consentita la registrazione.
 * validazione numero di dettagli maggiore di zero.
 * PreCondition:
 * Il numero di dettagli nella fattura è zero
 * PostCondition:
 * Viene inviato un messaggio: "Attenzione non possono esistere fatture senza almeno un dettaglio".
 * validazione aggiunta dettagli n fatture con stato iva B o C.
 * PreCondition:
 * E' stato aggiunto un dettaglio in  fatture con stato iva B o C .
 * PostCondition:
 * Viene inviato un messaggio:"Attenzione non si possono aggiungere dettagli in fatture con stato iva B o C ."
 * validazione modifica sezionale
 * PreCondition:
 * E' stato modificato un sezionale in fatture con dettagli in stato not I e stato iva B o C.
 * PostCondition:
 * Viene inviato un messaggio:"Attenzione non si possono eliminare  dettagli in  fatture parzialmente contabilizzate e stato iva B o C"
 * validazione modifica testata (G3)
 * PreCondition:
 * Sono stati modificati i campi  numero fattura di  emissione, data fattura di emissione , importo, flag IntraUE, flag San Marino, sezionale,
 * valuta in fatture con stato iva B o C .
 * PostCondition:
 * Viene inviato un messaggio:"Attenzione non si possono modificare questi campi in fatture pagate o in stato IVA B o C"
 * validazione modifica testata campo fornitore.(G5)
 * PreCondition:
 * E stato modificato il campo fornitore nella testata in stato (B or C) or (A and testata=P).
 * PostCondition:
 * Viene inviato un messaggio:"Attenzione lo stato della fattura non consente di modificare il fornitore".
 * validazione modifica fattura pagata.
 * PreCondition:
 * E' satata eseguita una modifica in fattura con testata in stato P.
 * PostCondition:
 * Viene inviato un messaggio:"Attenzione non si può modificare nulla in una fattura pagata".
 * validazione quadratura IVA.
 * PreCondition:
 * Il totale imponibile +IVA  di tutte le righe non quadra con il totale fattura riporato in testata.
 * PostCondition:
 * Viene inviato un messaggio:"Attenzione, la somma degli imponibili delle righe + la somma della relativa iva non quadra con il totale
 * fattura".
 * validazione associazione scadenze
 * PreCondition:
 * Esistono dettagli non collegati ad obbligazione.
 * PostCondition:
 * Viene inviato un messaggio:"Attenzione non si possono modificare questi campi in fatture pagate o in stato IVA B o C"
 */
// ^^@@
public void validaFattura(UserContext aUC, Fattura_passivaBulk fatturaPassiva) throws ComponentException {
    ObbligazioniTable obbligazioniHash = fatturaPassiva.getFattura_passiva_obbligazioniHash();
    if (obbligazioniHash != null && !obbligazioniHash.isEmpty()) {
        Enumeration en = obbligazioniHash.keys();
        while (en.hasMoreElements()) {
            Obbligazione_scadenzarioBulk scad = (Obbligazione_scadenzarioBulk) en.nextElement();
            CigBulk cig = null;
            String motivoAssenzaCig = null;
            if ((scad != null && scad.getObbligazione() != null && scad.getObbligazione().getContratto() != null && scad.getObbligazione().getContratto().getCig() != null)) {
                cig = scad.getObbligazione().getContratto().getCig();
            } else {
                motivoAssenzaCig = scad.getMotivo_assenza_cig();
                cig = scad.getCig();
            }
            Vector righeCollegate = (Vector) obbligazioniHash.get(scad);
            if (righeCollegate != null) {
                for (Iterator i = righeCollegate.iterator(); i.hasNext(); ) {
                    Fattura_passiva_rigaBulk riga = ((Fattura_passiva_rigaBulk) i.next());
                    if (!(((cig == null || cig.getCdCig() == null) && riga.getCig() == null) || (cig != null && riga.getCig() != null && cig.equalsByPrimaryKey(riga.getCig())))) {
                        riga.setCig(cig);
                        riga.setToBeUpdated();
                    }
                    if (!((motivoAssenzaCig == null && riga.getMotivo_assenza_cig() == null) || (motivoAssenzaCig != null && riga.getMotivo_assenza_cig() != null && motivoAssenzaCig.equals(riga.getMotivo_assenza_cig())))) {
                        riga.setMotivo_assenza_cig(motivoAssenzaCig);
                        riga.setToBeUpdated();
                    }
                }
            }
        }
    }
    if (fatturaPassiva.getFattura_passiva_dettColl().isEmpty())
        throw new it.cnr.jada.comp.ApplicationException("Attenzione: per salvare una " + fatturaPassiva.getDescrizioneEntita() + " è necessario inserire almeno un dettaglio");
    for (Iterator i = fatturaPassiva.getFattura_passiva_dettColl().iterator(); i.hasNext(); ) {
        Fattura_passiva_rigaBulk riga = (Fattura_passiva_rigaBulk) i.next();
        validaRiga(aUC, riga);
        controlliCig(riga);
    }
    searchDuplicateInDB(aUC, fatturaPassiva);
    validazioneComune(aUC, fatturaPassiva);
    if (fatturaPassiva instanceof Fattura_passiva_IBulk && (fatturaPassiva.isBollaDoganale() || fatturaPassiva.isSpedizioniere()) && ((Fattura_passiva_IBulk) fatturaPassiva).getFattura_estera() == null)
        throw new it.cnr.jada.comp.ApplicationException("La fattura è definita come bolla doganale o spedizioniere. Specificare la fattura estera collegata!");
    if (fatturaPassiva instanceof Nota_di_creditoBulk) {
        Nota_di_creditoBulk ndc = (Nota_di_creditoBulk) fatturaPassiva;
        if (ndc.getAccertamentiHash() != null && !ndc.getAccertamentiHash().isEmpty()) {
            if (ndc.getModalita_pagamento_uo() == null)
                throw new it.cnr.jada.comp.ApplicationException("Specificare le modalità di pagamento per gli accertamenti inseriti.");
            if (ndc.getBanca_uo() == null)
                throw new it.cnr.jada.comp.ApplicationException("Specificare il conto d'appoggio per gli accertamenti inseriti.");
        }
        controllaQuadraturaAccertamenti(aUC, ndc);
    }
    controllaQuadraturaConti(aUC, fatturaPassiva);
    // if ((fatturaPassiva.getStato_liquidazione()==null || fatturaPassiva.getStato_liquidazione().compareTo(Fattura_passiva_IBulk.LIQ)==0))
    if (!fatturaPassiva.isGenerataDaCompenso())
        controllaContabilizzazioneDiTutteLeRighe(aUC, fatturaPassiva);
    else {
        if (fatturaPassiva.getCompenso() == null)
            throw new it.cnr.jada.comp.ApplicationException("Prima di salvare la fattura occorre generare il compenso!");
    }
    if (fatturaPassiva instanceof Fattura_passiva_IBulk) {
        Rif_modalita_pagamentoBulk mod = null;
        BancaBulk banca = null;
        TerzoBulk terzo = null;
        for (Iterator i = fatturaPassiva.getFattura_passiva_dettColl().iterator(); i.hasNext(); ) {
            Fattura_passiva_rigaBulk riga = (Fattura_passiva_rigaBulk) i.next();
            if (riga.getCessionario() == null) {
                if (mod != null && mod.getCd_modalita_pag().compareTo(riga.getModalita_pagamento().getCd_modalita_pag()) == 0 && terzo.getCd_terzo() == riga.getFornitore().getCd_terzo() && banca.getPg_banca().intValue() != riga.getBanca().getPg_banca().intValue()) {
                    throw new it.cnr.jada.comp.ApplicationException("Attenzione sono state indicate delle coordinate bancarie diverse sulle righe!");
                } else {
                    mod = riga.getModalita_pagamento();
                    banca = riga.getBanca();
                    terzo = riga.getFornitore();
                }
            }
        }
    }
    controllaQuadraturaIntrastat(aUC, fatturaPassiva);
    controllaQuadraturaObbligazioni(aUC, fatturaPassiva);
    controllaQuadraturaOrdini(aUC, fatturaPassiva);
}
Also used : ApplicationException(it.cnr.jada.comp.ApplicationException) ApplicationException(it.cnr.jada.comp.ApplicationException) RemoteIterator(it.cnr.jada.util.RemoteIterator) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk)

Example 4 with Rif_modalita_pagamentoBulk

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

the class DocumentoGenericoComponent method findModalitaSelezionate.

// ^^@@
/**
 * cerca i dati relativi alla modalità selezionata
 * PreCondition:
 * Viene cambiata la modalità di pagamento
 * PostCondition:
 * restituisce i dati relativi alla modalità selezionata
 */
// ^^@@
public Rif_modalita_pagamentoBulk findModalitaSelezionate(UserContext aUC, Documento_generico_rigaBulk documentoGenericoRiga) throws ComponentException, it.cnr.jada.persistency.PersistencyException, it.cnr.jada.persistency.IntrospectionException {
    try {
        String modalita;
        it.cnr.jada.bulk.BulkHome home = getHome(aUC, Rif_modalita_pagamentoBulk.class);
        it.cnr.jada.persistency.sql.SQLBuilder sql = home.createSQLBuilder();
        if (documentoGenericoRiga.getDocumento_generico().getTi_entrate_spese() == Documento_genericoBulk.SPESE)
            modalita = documentoGenericoRiga.getCd_modalita_pag();
        else
            modalita = documentoGenericoRiga.getCd_modalita_pag_uo_cds() != null ? documentoGenericoRiga.getCd_modalita_pag_uo_cds() : (documentoGenericoRiga.getModalita_pagamento_uo_cds() == null ? null : documentoGenericoRiga.getModalita_pagamento_uo_cds().getCd_modalita_pag());
        sql.addClause("AND", "cd_modalita_pag", SQLBuilder.EQUALS, modalita);
        it.cnr.jada.persistency.Broker broker = home.createBroker(sql);
        if (!broker.next())
            return null;
        Rif_modalita_pagamentoBulk modalitaBulk = (Rif_modalita_pagamentoBulk) broker.fetch(Rif_modalita_pagamentoBulk.class);
        broker.close();
        return modalitaBulk;
    } catch (it.cnr.jada.persistency.PersistencyException e) {
        throw handleException(e);
    }
}
Also used : PersistencyException(it.cnr.jada.persistency.PersistencyException) it.cnr.contab.anagraf00.core.bulk(it.cnr.contab.anagraf00.core.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.config00.sto.bulk(it.cnr.contab.config00.sto.bulk) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) it.cnr.jada.bulk(it.cnr.jada.bulk) it.cnr.contab.inventario00.docs.bulk(it.cnr.contab.inventario00.docs.bulk) it.cnr.jada.persistency.sql(it.cnr.jada.persistency.sql) Rif_modalita_pagamentoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk)

Example 5 with Rif_modalita_pagamentoBulk

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

Rif_modalita_pagamentoBulk (it.cnr.contab.anagraf00.tabrif.bulk.Rif_modalita_pagamentoBulk)30 PersistencyException (it.cnr.jada.persistency.PersistencyException)17 ApplicationException (it.cnr.jada.comp.ApplicationException)13 RemoteException (java.rmi.RemoteException)13 ComponentException (it.cnr.jada.comp.ComponentException)12 TerzoBulk (it.cnr.contab.anagraf00.core.bulk.TerzoBulk)11 BancaBulk (it.cnr.contab.anagraf00.core.bulk.BancaBulk)10 IntrospectionException (it.cnr.jada.persistency.IntrospectionException)10 it.cnr.contab.docamm00.docs.bulk (it.cnr.contab.docamm00.docs.bulk)8 it.cnr.contab.doccont00.core.bulk (it.cnr.contab.doccont00.core.bulk)8 UserContext (it.cnr.jada.UserContext)8 BulkList (it.cnr.jada.bulk.BulkList)7 ValidationException (it.cnr.jada.bulk.ValidationException)7 BigDecimal (java.math.BigDecimal)7 Timestamp (java.sql.Timestamp)6 it.cnr.contab.anagraf00.core.bulk (it.cnr.contab.anagraf00.core.bulk)5 NazioneBulk (it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk)5 IOException (java.io.IOException)5 SQLException (java.sql.SQLException)5 java.util (java.util)5