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);
}
}
}
}
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);
}
}
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);
}
}
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);
}
}
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);
}
}
Aggregations