use of it.cnr.jada.comp.ApplicationException in project sigla-main by consiglionazionaledellericerche.
the class MandatoAutomaticoComponent method findModalita_pagamentoOptions.
/**
* lista le modalità di pagamento
* PreCondition:
* E' stato creata una riga di mandato di trasferimento
* PostCondition:
* La lista delle modalità di pagamento del terzo beneficiario, tutte appartenenti alla stessa classe (Bancario/Postale/..) per cui si sta emettendo il mandato,
* viene estratta.Vengono escluse le modalità di pagamento riferite a terzi cessionari
*
* @param userContext lo <code>UserContext</code> che ha generato la richiesta
* @param mandato <code>MandatoAccreditamentoBulk</code> il mandato di trasferimento
*
* @return result la lista delle modalità di pagamento definite per il terzo beneficiario del mandato
* null non è stata definita nessuna modalità di pagamento per il terzo beneficiario del mandato
*/
public List findModalita_pagamentoOptions(UserContext userContext, MandatoAutomaticoWizardBulk mandato) throws it.cnr.jada.persistency.PersistencyException, it.cnr.jada.persistency.IntrospectionException, ComponentException {
if (mandato.getMandato_terzo() != null) {
SQLBuilder sql = getHome(userContext, Modalita_pagamentoBulk.class).createSQLBuilder();
sql.addTableToHeader("RIF_MODALITA_PAGAMENTO");
sql.addSQLJoin("MODALITA_PAGAMENTO.CD_MODALITA_PAG", "RIF_MODALITA_PAGAMENTO.CD_MODALITA_PAG");
sql.addClause("AND", "cd_terzo", sql.EQUALS, mandato.getMandato_terzo().getCd_terzo());
sql.addClause("AND", "cd_terzo_delegato", sql.ISNULL, null);
List result = getHome(userContext, Modalita_pagamentoBulk.class).fetchAll(sql);
if (result.size() == 0)
throw new ApplicationException("Non esistono modalità di pagamento per il terzo " + mandato.getMandato_terzo().getCd_terzo());
return result;
} else
return null;
}
use of it.cnr.jada.comp.ApplicationException in project sigla-main by consiglionazionaledellericerche.
the class MandatoAutomaticoComponent method inizializzaMappaAutomatismo.
public OggettoBulk inizializzaMappaAutomatismo(UserContext aUC, OggettoBulk bulk) throws ComponentException {
try {
MandatoAutomaticoWizardBulk mandato = (MandatoAutomaticoWizardBulk) bulk;
mandato.getMandatiColl().clear();
if (mandato.isAutomatismoDaImpegni()) {
if (mandato.getFind_doc_passivi().getCd_terzo() == null && mandato.getFind_doc_passivi().getCd_precedente() == null && mandato.getFind_doc_passivi().getCognome() == null && mandato.getFind_doc_passivi().getRagione_sociale() == null && mandato.getFind_doc_passivi().getNome() == null && mandato.getFind_doc_passivi().getPartita_iva() == null && mandato.getFind_doc_passivi().getCodice_fiscale() == null)
throw new ApplicationException("Attenzione! Deve essere specificato almeno un campo dell'anagrafica.");
else {
mandato.getImpegniSelezionatiColl().clear();
mandato.getImpegniColl().clear();
mandato.setMandato_terzo(creaMandatoTerzo(aUC, mandato, cercaTerzo(aUC, mandato)));
mandato = listaImpegniTerzo(aUC, mandato);
mandato.setModalita_pagamento((Modalita_pagamentoBulk) findModalita_pagamentoOptions(aUC, mandato).get(0));
mandato.setBanca((BancaBulk) findBancaOptions(aUC, mandato).get(0));
mandato.getModelloDocumento().setDt_da_competenza_coge(mandato.getDt_emissione());
mandato.getModelloDocumento().setDt_a_competenza_coge(mandato.getDt_emissione());
initializeKeysAndOptionsInto(aUC, bulk);
}
} else if (mandato.isAutomatismoDaDocumentiPassivi()) {
mandato.getDocPassiviColl().clear();
/*
* Necessario per caricare il bollo di default
*/
mandato.setMandato_terzo(creaMandatoTerzo(aUC, mandato, null));
bulk = listaDocPassivi(aUC, mandato);
}
return bulk;
} catch (Exception e) {
throw handleException(bulk, e);
}
}
use of it.cnr.jada.comp.ApplicationException in project sigla-main by consiglionazionaledellericerche.
the class ObbligazioneBilEnteComponent method creaConBulk.
/**
* creazione
* PreCondition:
* L'utente richiede la creazione di un nuovo impegno su partita di giro
* PostCondition:
* L'impegno, dopo essere stato validato (metodo verificaObbligazione), viene creato e in automatico viene creata una
* scadenza (metodo creaObbligazione_scadenzario) e un dettaglio di scadenza (metodo creaObbligazione_scad_voce).
* I saldi relativi alla voce del piano dell'obbligazione vengono aggiornati (metodo aggiornaCapitoloSaldoObbligazione).
* Alla componente che gestisce gli AccertamentiPGiro viene chiesta la creazione di un Accertamento (metodo creaAccertamento).
* Viene creata l'associazione (Ass_obb_acr_pgiroBulk) fra l'impegno e l'accertamento su partita di giro (metodo creaAss_obb_acr_pgiro)
*
* @param uc lo <code>UserContext</code> che ha generato la richiesta
* @param bulk <code>OggettoBulk</code> l'impegno su partita di giro da creare
*
* @return imp L'impegno su partita di giro creato
*/
public OggettoBulk creaConBulk(UserContext uc, OggettoBulk bulk) throws ComponentException {
try {
ImpegnoBulk imp = (ImpegnoBulk) bulk;
// controlliamo che non esista già un impegno su bilancio ente per la voce selezionata
// ObbligazioneHome vocehome =(ObbligazioneHome)getHome(uc, ObbligazioneBulk.class);
Obbligazione_scad_voceHome vocehome = (Obbligazione_scad_voceHome) getHome(uc, Obbligazione_scad_voceBulk.class);
SQLBuilder sql = vocehome.createSQLBuilder();
sql.addTableToHeader("OBBLIGAZIONE");
sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.CD_CDS", "OBBLIGAZIONE.CD_CDS");
sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.ESERCIZIO", "OBBLIGAZIONE.ESERCIZIO");
sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.ESERCIZIO_ORIGINALE", "OBBLIGAZIONE.ESERCIZIO_ORIGINALE");
sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.PG_OBBLIGAZIONE", "OBBLIGAZIONE.PG_OBBLIGAZIONE");
sql.addClause("AND", "esercizio", sql.EQUALS, imp.getEsercizio());
sql.addClause("AND", "cd_cds", sql.EQUALS, imp.getUnita_organizzativa().getCd_unita_padre());
sql.addClause("AND", "cd_voce", sql.EQUALS, imp.getVoce_f().getCd_voce());
sql.addSQLClause("AND", "cd_tipo_documento_cont", sql.EQUALS, Numerazione_doc_contBulk.TIPO_IMP);
List result = vocehome.fetchAll(sql);
if (!result.isEmpty())
throw new ApplicationException("Impossibile creare l'impegno con la voce del piano selezionata poichè è già stato creato un impegno su bilancio ente per tale voce.");
imp.setCd_cds(imp.getUnita_organizzativa().getCd_unita_padre());
if (imp.getCd_unita_organizzativa().equals(imp.getCd_uo_ente()))
imp.setCd_tipo_documento_cont(Numerazione_doc_contBulk.TIPO_IMP);
else
imp.setCd_tipo_documento_cont(Numerazione_doc_contBulk.TIPO_OBB_PGIRO);
verificaObbligazione(uc, imp);
// viene già impostato nel doBringBack ma lo rifacciamo
if (imp.getVoce_f() != null)
imp.setElemento_voce(((ImpegnoHome) getHome(uc, ImpegnoBulk.class)).findElementoVoceFor(imp.getVoce_f()));
Obbligazione_scadenzarioBulk obblig_scad = creaObbligazione_scadenzario(uc, imp);
creaObbligazione_scad_voce(uc, obblig_scad);
imp = (ImpegnoBulk) super.creaConBulk(uc, imp);
if (!uc.isTransactional())
// aggiorna i saldi
aggiornaCapitoloSaldoObbligazione(uc, imp, INSERIMENTO);
// AccertamentoPGiroBulk accert_pgiro = createAccertamentoPGiroComponent().creaAccertamento( uc, imp);
// Ass_obb_acr_pgiroBulk ass_oa_pgiro = (Ass_obb_acr_pgiroBulk) creaAss_obb_acr_pgiro( uc, imp, accert_pgiro);
verificaStatoEsercizio(uc, ((CNRUserContext) uc).getEsercizio(), imp.getCd_cds());
return imp;
} catch (Exception e) {
throw handleException(bulk, e);
}
}
use of it.cnr.jada.comp.ApplicationException in project sigla-main by consiglionazionaledellericerche.
the class ObbligazioneBilEnteComponent method verificaObbligazione.
/**
* Tutti controlli superati
* PreCondition:
* La data di registrazione dell'obbligazione su partita di giro è corretta.
* PostCondition:
* L'obbligazione su partita di giro è valida. E' consentito eseguire l'attività di salvataggio.
* La data di registrazione dell'obbligazione su partita di giro non è corretta.
* PreCondition:
* E' stata inserita dall'utente una data di registrazione antecedente a quella dell'ultima obbligazione pgiro
* salvata sul database
* PostCondition:
* L'utente viene avvisato tramite un messaggio di errore che non è possibile inserire un'obbligazione su partita
* di giro con data anteriore a quella dell'ultima obbligazione salvata su database. L'attività non è consentita.
*
* @param userContext lo <code>UserContext</code> che ha generato la richiesta
* @param impegno <code>ImpegnoBulk</code> l'obbligazione su partita di giro da validare
*/
protected void verificaObbligazione(UserContext userContext, ImpegnoBulk impegno) throws it.cnr.jada.persistency.PersistencyException, ComponentException, ApplicationException, javax.ejb.EJBException {
if (impegno.isToBeCreated()) {
Timestamp lastDayOfTheYear = DateServices.getLastDayOfYear(impegno.getEsercizio().intValue());
if (impegno.getDt_registrazione().before(DateServices.getFirstDayOfYear(impegno.getEsercizio().intValue())) || impegno.getDt_registrazione().after(lastDayOfTheYear))
throw new ApplicationException("La data di registrazione deve appartenere all'esercizio di scrivania");
Timestamp today = it.cnr.jada.util.ejb.EJBCommonServices.getServerDate();
if (today.after(lastDayOfTheYear) && impegno.getDt_registrazione().compareTo(lastDayOfTheYear) != 0)
throw new ApplicationException("La data di registrazione deve essere " + java.text.DateFormat.getDateInstance().format(lastDayOfTheYear));
Timestamp dataUltObbligazione = ((ImpegnoHome) getHome(userContext, ImpegnoBulk.class)).findDataUltimaObbligazionePerCds(impegno);
if (dataUltObbligazione != null && dataUltObbligazione.after(impegno.getDt_registrazione()))
throw new ApplicationException("Non è possibile inserire un'Annotazione di Spesa su Partita di Giro con data anteriore a " + java.text.DateFormat.getDateTimeInstance().format(dataUltObbligazione));
}
}
use of it.cnr.jada.comp.ApplicationException in project sigla-main by consiglionazionaledellericerche.
the class ObbligazioneBilEnteComponent method modificaConBulk.
public OggettoBulk modificaConBulk(UserContext aUC, OggettoBulk bulk) throws ComponentException {
try {
ImpegnoBulk imp = (ImpegnoBulk) bulk;
verificaStatoEsercizio(aUC, imp.getEsercizio(), imp.getCd_cds());
// controlliamo che non esista già un impegno su bilancio ente per la voce selezionata
// ObbligazioneHome vocehome =(ObbligazioneHome)getHome(uc, ObbligazioneBulk.class);
Obbligazione_scad_voceHome vocehome = (Obbligazione_scad_voceHome) getHome(aUC, Obbligazione_scad_voceBulk.class);
SQLBuilder sql = vocehome.createSQLBuilder();
sql.addTableToHeader("OBBLIGAZIONE");
sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.CD_CDS", "OBBLIGAZIONE.CD_CDS");
sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.ESERCIZIO", "OBBLIGAZIONE.ESERCIZIO");
sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.ESERCIZIO_ORIGINALE", "OBBLIGAZIONE.ESERCIZIO_ORIGINALE");
sql.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.PG_OBBLIGAZIONE", "OBBLIGAZIONE.PG_OBBLIGAZIONE");
sql.addClause("AND", "esercizio", sql.EQUALS, imp.getEsercizio());
sql.addClause("AND", "cd_cds", sql.EQUALS, imp.getUnita_organizzativa().getCd_unita_padre());
sql.addClause("AND", "cd_voce", sql.EQUALS, imp.getVoce_f().getCd_voce());
sql.addSQLClause("AND", "cd_tipo_documento_cont", sql.EQUALS, Numerazione_doc_contBulk.TIPO_IMP);
// deve essere escluso l'impegno che si sta modificando
sql.openParenthesis("AND");
sql.addClause("AND", "esercizio_originale", sql.NOT_EQUALS, imp.getEsercizio_originale());
sql.addClause("OR", "pg_obbligazione", sql.NOT_EQUALS, imp.getPg_obbligazione());
sql.closeParenthesis();
List result = vocehome.fetchAll(sql);
if (!result.isEmpty())
throw new ApplicationException("Impossibile creare l'impegno con la voce del piano selezionata poichè è già stato creato un impegno su bilancio ente per tale voce.");
// segnalo impossibilità di modificare importo se ci sono doc amministrativi associati
if (!imp.isFromDocAmm() && imp.isAssociataADocAmm() && imp.getIm_iniziale_obbligazione() != null && imp.getIm_iniziale_obbligazione().compareTo(imp.getIm_obbligazione()) != 0)
throw new ApplicationException("Impossibile variare importo dell'Impegno su bilancio Ente perche' e' associata a doc. amministrativi");
// segnalo impossibilità di modificare importo se ci sono mandati associati
if (imp.isFromDocAmm() && imp.isAssociataADocAmm() && imp.getIm_iniziale_obbligazione() != null && imp.getIm_iniziale_obbligazione().compareTo(imp.getIm_obbligazione()) != 0 && imp.getPg_mandato() != null)
throw new ApplicationException("Impossibile variare importo dell'Impegno su bilancio Ente perche' e' associata a mandato");
// segnalo impossibilità di modificare un residuo se l'esercizio precedente è ancora aperto
if (imp.getCd_tipo_documento_cont().equals(Numerazione_doc_contBulk.TIPO_IMP_RES))
verificaStatoEsercizioEsPrecedente(aUC, imp.getEsercizio(), imp.getCd_cds());
// importo
Obbligazione_scadenzarioBulk obblig_scadenzario = (Obbligazione_scadenzarioBulk) imp.getObbligazione_scadenzarioColl().get(0);
obblig_scadenzario.setIm_scadenza(imp.getIm_obbligazione());
obblig_scadenzario.setToBeUpdated();
Obbligazione_scad_voceBulk obblig_scad_voce = (Obbligazione_scad_voceBulk) obblig_scadenzario.getObbligazione_scad_voceColl().get(0);
obblig_scad_voce.setIm_voce(imp.getIm_obbligazione());
obblig_scad_voce.setToBeUpdated();
// descrizione
obblig_scadenzario.setDs_scadenza(imp.getDs_obbligazione());
// dt_scadenza
obblig_scadenzario.setDt_scadenza(imp.getDt_scadenza());
// viene già impostato nel doBringBack ma lo rifacciamo
if (imp.getVoce_f() != null)
imp.setElemento_voce(((ImpegnoHome) getHome(aUC, ImpegnoBulk.class)).findElementoVoceFor(imp.getVoce_f()));
imp.setUser(aUC.getUser());
updateBulk(aUC, imp);
obblig_scadenzario.setUser(aUC.getUser());
updateBulk(aUC, obblig_scadenzario);
obblig_scad_voce.setUser(aUC.getUser());
if (obblig_scad_voce.getCd_voce().equals(imp.getVoce_f().getCd_voce()))
updateBulk(aUC, obblig_scad_voce);
else // se e' stato modificato il capitolo e' necessario ricreare lo scad_voce
// perchè non e' possibile aggiornare la chiave
{
Obbligazione_scad_voceBulk newObblig_scad_voce = new Obbligazione_scad_voceBulk();
newObblig_scad_voce.setLinea_attivita(obblig_scad_voce.getLinea_attivita());
newObblig_scad_voce.setObbligazione_scadenzario(obblig_scad_voce.getObbligazione_scadenzario());
newObblig_scad_voce.setIm_voce(obblig_scad_voce.getIm_voce());
newObblig_scad_voce.setTi_appartenenza(obblig_scad_voce.getTi_appartenenza());
newObblig_scad_voce.setTi_gestione(obblig_scad_voce.getTi_gestione());
// aggiorniamo la voce con quella impostata in mappa
newObblig_scad_voce.setCd_voce(imp.getVoce_f().getCd_voce());
newObblig_scad_voce.setUser(obblig_scad_voce.getUser());
newObblig_scad_voce.setCd_fondo_ricerca(obblig_scad_voce.getCd_fondo_ricerca());
insertBulk(aUC, newObblig_scad_voce);
deleteBulk(aUC, obblig_scad_voce);
}
if (!aUC.isTransactional()) // aggiorna i saldi
{
aggiornaCapitoloSaldoObbligazione(aUC, imp, MODIFICA);
aggiornaStatoCOAN_COGEDocAmm(aUC, imp);
}
verificaStatoEsercizio(aUC, ((CNRUserContext) aUC).getEsercizio(), imp.getCd_cds());
return imp;
} catch (Exception e) {
throw handleException(bulk, e);
}
}
Aggregations