Search in sources :

Example 26 with AnagraficoBulk

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

the class AnagraficoComponent method calcolaMontantePerPagamentoEsterno.

private void calcolaMontantePerPagamentoEsterno(UserContext userContext, AnagraficoBulk anagrafico, boolean creazione) throws ComponentException {
    // Prima mi recupero il Tipo Rapporto Occasionale dai Parametri Ente
    String messaggio = "Esiste almeno un compenso con data di registrazione superiore alla data indicata.";
    Tipo_rapportoBulk tipo_rapporto_occa = null;
    BigDecimal imp_pag_esterno = new BigDecimal(0);
    Pagamento_esternoHome pagamento_esternoHome = (Pagamento_esternoHome) getHome(userContext, Pagamento_esternoBulk.class);
    Parametri_cnrHome home = (Parametri_cnrHome) getHome(userContext, Parametri_cnrBulk.class);
    CompensoHome compensoHome = (CompensoHome) getHome(userContext, CompensoBulk.class);
    try {
        Parametri_cnrBulk parametri_correnti = (Parametri_cnrBulk) (home.findByPrimaryKey(new Parametri_cnrBulk(it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext))));
        if (parametri_correnti == null)
            throw new ApplicationException("Non esistono i parametri CNR per l'anno " + it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext));
        tipo_rapporto_occa = parametri_correnti.getTipo_rapporto();
    } catch (PersistencyException e) {
        throw new ApplicationException("Non esistono i parametri CNR per l'anno in corso.");
    }
    for (java.util.Iterator i = anagrafico.getPagamenti_esterni().listIterator(); i.hasNext(); ) {
        Pagamento_esternoBulk pagamento_esterno = (Pagamento_esternoBulk) i.next();
        if (pagamento_esterno != null && pagamento_esterno.getCd_tipo_rapporto() != null && (pagamento_esterno.getCrudStatus() == OggettoBulk.TO_BE_CREATED || pagamento_esterno.getCrudStatus() == OggettoBulk.TO_BE_UPDATED || creazione)) {
            if (pagamento_esterno.getCrudStatus() == OggettoBulk.TO_BE_UPDATED) {
                try {
                    // Recupero il record sul DB e verifico i cambiamenti sui campi interessati
                    Pagamento_esternoBulk pagamento_esternoDB = (Pagamento_esternoBulk) (pagamento_esternoHome.findAndLock(pagamento_esterno));
                    // in caso di risposta affermativa aggiorno il Montante
                    if ((pagamento_esterno.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto()) && !pagamento_esternoDB.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto())) || (!pagamento_esterno.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto()) && pagamento_esternoDB.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto())) || (pagamento_esterno.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto()) && pagamento_esternoDB.getDt_pagamento().compareTo(pagamento_esterno.getDt_pagamento()) != 0 && ((compensoHome.findCompensoConDataSuperiore(((CNRUserContext) userContext).getEsercizio(), anagrafico.getCd_anag(), pagamento_esternoDB.getDt_pagamento()).booleanValue() && !compensoHome.findCompensoConDataSuperiore(((CNRUserContext) userContext).getEsercizio(), anagrafico.getCd_anag(), pagamento_esterno.getDt_pagamento()).booleanValue()) || (!compensoHome.findCompensoConDataSuperiore(((CNRUserContext) userContext).getEsercizio(), anagrafico.getCd_anag(), pagamento_esternoDB.getDt_pagamento()).booleanValue() && compensoHome.findCompensoConDataSuperiore(((CNRUserContext) userContext).getEsercizio(), anagrafico.getCd_anag(), pagamento_esterno.getDt_pagamento()).booleanValue())) || (compensoHome.findCompensoConDataSuperiore(((CNRUserContext) userContext).getEsercizio(), anagrafico.getCd_anag(), pagamento_esternoDB.getDt_pagamento()).booleanValue() && compensoHome.findCompensoConDataInferiore(((CNRUserContext) userContext).getEsercizio(), anagrafico.getCd_anag(), pagamento_esternoDB.getDt_pagamento()).booleanValue()) && (!compensoHome.findCompensoConDataSuperiore(((CNRUserContext) userContext).getEsercizio(), anagrafico.getCd_anag(), pagamento_esterno.getDt_pagamento()).booleanValue() || !compensoHome.findCompensoConDataInferiore(((CNRUserContext) userContext).getEsercizio(), anagrafico.getCd_anag(), pagamento_esterno.getDt_pagamento()).booleanValue())) || (pagamento_esterno.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto()) && pagamento_esternoDB.getIm_pagamento().compareTo(pagamento_esterno.getIm_pagamento()) != 0)) {
                        try {
                            if (compensoHome.findCompensoConDataSuperiore(((CNRUserContext) userContext).getEsercizio(), anagrafico.getCd_anag(), pagamento_esterno.getDt_pagamento()).booleanValue())
                                throw new ApplicationException(messaggio);
                        } catch (PersistencyException e) {
                            throw new ApplicationException(messaggio);
                        }
                    }
                    if ((pagamento_esterno.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto()) && compensoHome.findCompensoConDataSuperiore(((CNRUserContext) userContext).getEsercizio(), anagrafico.getCd_anag(), pagamento_esternoDB.getDt_pagamento()).booleanValue())) {
                        try {
                            if (!compensoHome.findCompensoConDataSuperiore(((CNRUserContext) userContext).getEsercizio(), anagrafico.getCd_anag(), pagamento_esterno.getDt_pagamento()).booleanValue())
                                throw new ApplicationException("Esiste almeno un compenso con data di registrazione inferiore alla data indicata.");
                        } catch (PersistencyException e) {
                            throw new ApplicationException("Esiste almeno un compenso con data di registrazione inferiore alla data indicata.");
                        }
                    }
                    // In questo caso il tipo di rapporto non era Occasionale e poi è stato aggiornato
                    if (pagamento_esterno.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto()) && !pagamento_esternoDB.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto())) {
                        imp_pag_esterno = pagamento_esterno.getIm_pagamento();
                        aggiornaMontantiPagEst(userContext, anagrafico.getCd_anag(), imp_pag_esterno);
                    }
                    // In questo caso il tipo di rapporto era Occasionale e poi è stato aggiornato
                    if (!pagamento_esterno.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto()) && pagamento_esternoDB.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto())) {
                        // Controllo se può aggiornare il record sui compensi attraverso la data
                        // in caso di risposta affermativa aggiorno il Montante
                        imp_pag_esterno = pagamento_esternoDB.getIm_pagamento().negate();
                        aggiornaMontantiPagEst(userContext, anagrafico.getCd_anag(), imp_pag_esterno);
                    }
                    // è stato aggiornato l'importo
                    if (pagamento_esterno.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto()) && pagamento_esternoDB.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto()) && pagamento_esternoDB.getIm_pagamento().compareTo(pagamento_esterno.getIm_pagamento()) != 0) {
                        // in caso di risposta affermativa aggiorno il Montante
                        if (pagamento_esternoDB.getIm_pagamento().compareTo(pagamento_esterno.getIm_pagamento()) == -1)
                            imp_pag_esterno = pagamento_esterno.getIm_pagamento().add(pagamento_esternoDB.getIm_pagamento().negate());
                        else
                            imp_pag_esterno = pagamento_esternoDB.getIm_pagamento().add(pagamento_esterno.getIm_pagamento().negate()).negate();
                        aggiornaMontantiPagEst(userContext, anagrafico.getCd_anag(), imp_pag_esterno);
                    }
                } catch (PersistencyException e1) {
                    throw new ApplicationException("Errore nel recupero dei compensi." + e1.getMessage());
                } catch (OutdatedResourceException e) {
                    throw new ApplicationException("Errore nel recupero dei compensi." + e.getMessage());
                } catch (BusyResourceException e) {
                    throw new ApplicationException("Errore nel recupero dei compensi." + e.getMessage());
                }
            }
            if (pagamento_esterno != null && pagamento_esterno.getTipo_rapporto() != null && (pagamento_esterno.getCrudStatus() == OggettoBulk.TO_BE_CREATED || creazione) && pagamento_esterno.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto()) && pagamento_esterno.getIm_pagamento() != null) {
                // in caso di risposta affermativa aggiorno il Montante
                try {
                    if (compensoHome.findCompensoConDataSuperiore(((CNRUserContext) userContext).getEsercizio(), anagrafico.getCd_anag(), pagamento_esterno.getDt_pagamento()).booleanValue())
                        throw new ApplicationException(messaggio);
                } catch (PersistencyException e) {
                    throw new ApplicationException(messaggio);
                }
                imp_pag_esterno = pagamento_esterno.getIm_pagamento();
                aggiornaMontantiPagEst(userContext, anagrafico.getCd_anag(), imp_pag_esterno);
            }
        }
    }
    for (java.util.Iterator i = anagrafico.getPagamenti_esterni().deleteIterator(); i.hasNext(); ) {
        Pagamento_esternoBulk pagamento_esterno = (Pagamento_esternoBulk) i.next();
        // Recupero il record sul DB
        try {
            pagamento_esterno = (Pagamento_esternoBulk) (pagamento_esternoHome.findAndLock(pagamento_esterno));
        } catch (PersistencyException e1) {
            if (!(e1 instanceof it.cnr.jada.persistency.ObjectNotFoundException))
                throw new ComponentException(e1);
        } catch (OutdatedResourceException e1) {
            throw new ApplicationException("Risorsa modificata, rieffettuare la ricerca.");
        } catch (BusyResourceException e1) {
            throw new ApplicationException("Risorsa occupata!");
        }
        if (pagamento_esterno != null && pagamento_esterno.getCd_tipo_rapporto() != null) {
            if (pagamento_esterno.getCd_tipo_rapporto().equals(tipo_rapporto_occa.getCd_tipo_rapporto()) && pagamento_esterno.getIm_pagamento() != null) {
                // in caso di risposta affermativa aggiorno il Montante
                try {
                    if (compensoHome.findCompensoConDataSuperiore(((CNRUserContext) userContext).getEsercizio(), anagrafico.getCd_anag(), pagamento_esterno.getDt_pagamento()).booleanValue())
                        throw new ApplicationException(messaggio);
                } catch (PersistencyException e) {
                    throw new ApplicationException(messaggio);
                }
                imp_pag_esterno = pagamento_esterno.getIm_pagamento().negate();
                aggiornaMontantiPagEst(userContext, anagrafico.getCd_anag(), imp_pag_esterno);
            }
        }
    }
}
Also used : Parametri_cnrHome(it.cnr.contab.config00.bulk.Parametri_cnrHome) BigDecimal(java.math.BigDecimal) CompensoHome(it.cnr.contab.compensi00.docs.bulk.CompensoHome) Tipo_rapportoBulk(it.cnr.contab.anagraf00.tabrif.bulk.Tipo_rapportoBulk) ApplicationException(it.cnr.jada.comp.ApplicationException) it.cnr.contab.anagraf00.util(it.cnr.contab.anagraf00.util) java.util(java.util) ComponentException(it.cnr.jada.comp.ComponentException) PersistencyException(it.cnr.jada.persistency.PersistencyException) CompensoBulk(it.cnr.contab.compensi00.docs.bulk.CompensoBulk) CNRUserContext(it.cnr.contab.utenze00.bp.CNRUserContext) Parametri_cnrBulk(it.cnr.contab.config00.bulk.Parametri_cnrBulk)

Example 27 with AnagraficoBulk

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

the class AnagraficoComponent method bulkForSIP.

public java.util.List bulkForSIP(UserContext userContext, OggettoBulk bulk) throws it.cnr.jada.comp.ComponentException {
    try {
        AnagraficoBulk anagrafico = (AnagraficoBulk) bulk;
        anagrafico.setNazionalita((NazioneBulk) getHome(userContext, NazioneBulk.class).findByPrimaryKey(anagrafico.getNazionalita()));
        anagrafico.setComune_fiscale((ComuneBulk) getHome(userContext, ComuneBulk.class).findByPrimaryKey(anagrafico.getComune_fiscale()));
        getHomeCache(userContext).fetchAll(userContext);
        anagrafico.setTi_italiano_estero(anagrafico.getNazionalita().getTi_nazione());
        if (anagrafico.getPartita_iva() != null || anagrafico.getCodice_fiscale() != null) {
            try {
                SQLBuilder sql = getHome(userContext, anagrafico).createSQLBuilder();
                sql.openParenthesis("AND");
                sql.addClause("OR", "partita_iva", sql.EQUALS, anagrafico.getPartita_iva());
                sql.addClause("OR", "codice_fiscale", sql.EQUALS, anagrafico.getCodice_fiscale());
                sql.closeParenthesis();
                if (!anagrafico.isToBeCreated())
                    sql.addClause("AND", "cd_anag", sql.NOT_EQUALS, anagrafico.getCd_anag());
                if (sql.executeExistsQuery(getConnection(userContext)))
                    throw new DuplicateKeyException();
            } catch (java.sql.SQLException e) {
                throw handleException(e);
            }
        }
        if (anagrafico.getTi_entita().equalsIgnoreCase(AnagraficoBulk.GIURIDICA) && NazioneBulk.ITALIA.equals(anagrafico.getTi_italiano_estero()) && anagrafico.getPartita_iva() != null)
            anagrafico.setCodice_fiscale(anagrafico.getPartita_iva());
        if (anagrafico.isToBeCreated())
            anagrafico = (AnagraficoBulk) creaConBulk(userContext, bulk);
        else if (anagrafico.isToBeUpdated()) {
            anagrafico = (AnagraficoBulk) modificaConBulk(userContext, bulk);
            modificaDefaultTerzoForSIP(userContext, anagrafico);
        }
        V_terzo_anagrafico_sipHome home = (V_terzo_anagrafico_sipHome) getHome(userContext, V_terzo_anagrafico_sipBulk.class);
        SQLBuilder sql = home.createSQLBuilder();
        sql.addSQLClause("AND", "CD_ANAG", SQLBuilder.EQUALS, anagrafico.getCd_anag());
        return home.fetchAll(sql);
    } catch (PersistencyException e) {
        throw new ComponentException(e);
    }
}
Also used : NazioneBulk(it.cnr.contab.anagraf00.tabter.bulk.NazioneBulk) ComponentException(it.cnr.jada.comp.ComponentException) PersistencyException(it.cnr.jada.persistency.PersistencyException) ComuneBulk(it.cnr.contab.anagraf00.tabter.bulk.ComuneBulk) it.cnr.jada.persistency.sql(it.cnr.jada.persistency.sql)

Example 28 with AnagraficoBulk

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

the class CRUDAnagraficaAction method doOnDt_fin_validitaChange.

public Forward doOnDt_fin_validitaChange(ActionContext context) {
    try {
        it.cnr.contab.anagraf00.bp.CRUDAnagraficaBP bp = (it.cnr.contab.anagraf00.bp.CRUDAnagraficaBP) getBusinessProcess(context);
        AnagraficoBulk anagrafico = bp.getAnagrafico();
        java.util.GregorianCalendar data_da = (java.util.GregorianCalendar) java.util.GregorianCalendar.getInstance();
        java.util.GregorianCalendar data_a = (java.util.GregorianCalendar) java.util.GregorianCalendar.getInstance();
        Carico_familiare_anagBulk carico = (Carico_familiare_anagBulk) bp.getCrudCarichi_familiari_anag().getModel();
        java.sql.Timestamp oldData = carico.getDt_fin_validita();
        java.sql.Timestamp maxDataCompensi = bp.findMaxDataCompValida(context.getUserContext(), anagrafico);
        try {
            fillModel(context);
            if (carico.getDt_fin_validita() == null)
                throw new ValidationException("E' necessario inserire la data di fine validità.");
            data_da.setTime(carico.getDt_ini_validita());
            data_a.setTime(carico.getDt_fin_validita());
            if (!bp.isSearching())
                try {
                    if ((oldData == null || carico.getDt_fin_validita().before(oldData)) && anagrafico.isUtilizzata_detrazioni() && carico.getDt_fin_validita().before(maxDataCompensi))
                        throw new ValidationException("Carico familiare utilizzato nel calcolo delle detrazioni. E' possibile inserire solo una data successiva al " + new SimpleDateFormat("dd/MM/yyyy").format(maxDataCompensi));
                } catch (ValidationException ex) {
                    carico.setDt_fin_validita(oldData);
                    bp.setModel(context, anagrafico);
                    throw ex;
                }
            return context.findDefaultForward();
        } catch (it.cnr.jada.bulk.FillException e) {
            carico.setDt_fin_validita(oldData);
            bp.setModel(context, anagrafico);
            throw e;
        }
    } catch (Throwable e) {
        return handleException(context, e);
    }
}
Also used : GregorianCalendar(java.util.GregorianCalendar) Timestamp(java.sql.Timestamp) GregorianCalendar(java.util.GregorianCalendar) it.cnr.contab.anagraf00.bp(it.cnr.contab.anagraf00.bp) it.cnr.jada.util(it.cnr.jada.util) it.cnr.contab.anagraf00.tabrif.bulk(it.cnr.contab.anagraf00.tabrif.bulk) it.cnr.contab.anagraf00.core.bulk(it.cnr.contab.anagraf00.core.bulk) it.cnr.jada.bulk(it.cnr.jada.bulk) SimpleDateFormat(java.text.SimpleDateFormat)

Example 29 with AnagraficoBulk

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

the class CRUDAnagraficaAction method doClickFlagFigliosenza.

public Forward doClickFlagFigliosenza(ActionContext context) {
    it.cnr.contab.anagraf00.bp.CRUDAnagraficaBP bp = (it.cnr.contab.anagraf00.bp.CRUDAnagraficaBP) getBusinessProcess(context);
    Carico_familiare_anagBulk carichi_fam = (Carico_familiare_anagBulk) bp.getCrudCarichi_familiari_anag().getModel();
    try {
        fillModel(context);
        if (carichi_fam.getDt_ini_validita() == null || carichi_fam.getDt_fin_validita() == null)
            throw new ApplicationException("Attenzione, valorizzare prima la data di inizio e fine validità");
        if (carichi_fam.getFl_primo_figlio_manca_con() != null && carichi_fam.getFl_primo_figlio_manca_con().booleanValue())
            bp.checkConiugeAlreadyExistFor(context, (AnagraficoBulk) bp.getModel(), carichi_fam);
        return context.findDefaultForward();
    } catch (Throwable e) {
        carichi_fam.setFl_primo_figlio_manca_con(Boolean.FALSE);
        return handleException(context, e);
    }
}
Also used : ApplicationException(it.cnr.jada.comp.ApplicationException) it.cnr.contab.anagraf00.bp(it.cnr.contab.anagraf00.bp)

Example 30 with AnagraficoBulk

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

the class CRUDAnagraficaAction method doCambiaDateDiariaMissEst.

public Forward doCambiaDateDiariaMissEst(ActionContext context) {
    try {
        CRUDAnagraficaBP bp = (CRUDAnagraficaBP) getBusinessProcess(context);
        AnagraficoBulk anagrafico = (AnagraficoBulk) bp.getModel();
        java.sql.Timestamp oldDtIniDiaria = anagrafico.getDt_inizio_diaria_miss_est();
        java.sql.Timestamp oldDtFinDiaria = anagrafico.getDt_fine_diaria_miss_est();
        try {
            fillModel(context);
            if (anagrafico.getDt_inizio_diaria_miss_est() != null && anagrafico.getDt_fine_diaria_miss_est() != null && anagrafico.getDt_inizio_diaria_miss_est().after(anagrafico.getDt_fine_diaria_miss_est())) {
                anagrafico.setDt_inizio_diaria_miss_est(oldDtIniDiaria);
                anagrafico.setDt_fine_diaria_miss_est(oldDtFinDiaria);
                throw new MessageToUser("La Data di Inizio autorizzazione non può essere successiva alla data di Fine autorizzazione.", bp.ERROR_MESSAGE);
            }
            if (bp.isSearching())
                return context.findDefaultForward();
        } catch (it.cnr.jada.bulk.FillException e) {
            anagrafico.setDt_inizio_diaria_miss_est(oldDtIniDiaria);
            anagrafico.setDt_fine_diaria_miss_est(oldDtFinDiaria);
            throw e;
        }
        return context.findDefaultForward();
    } catch (Throwable e) {
        return handleException(context, e);
    }
}
Also used : Timestamp(java.sql.Timestamp) it.cnr.contab.anagraf00.tabrif.bulk(it.cnr.contab.anagraf00.tabrif.bulk) it.cnr.contab.anagraf00.core.bulk(it.cnr.contab.anagraf00.core.bulk) it.cnr.jada.bulk(it.cnr.jada.bulk)

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