use of it.cnr.jada.comp.ApplicationException in project sigla-main by consiglionazionaledellericerche.
the class ObbligazioneComponent method sdoppiaScadenzaInAutomatico.
public IScadenzaDocumentoContabileBulk sdoppiaScadenzaInAutomatico(UserContext userContext, IScadenzaDocumentoContabileBulk scad, DatiFinanziariScadenzeDTO dati) throws ComponentException {
String nuovaGae = dati.getCdLineaAttivita();
String nuovaDescrizione = dati.getNuovaDescrizione();
Timestamp nuovaScadenza = dati.getNuovaScadenza();
String cdr = dati.getCdCentroResponsabilita();
String voce = dati.getCdVoce();
BigDecimal nuovoImportoScadenzaVecchia = dati.getNuovoImportoScadenzaVecchia();
Obbligazione_scadenzarioBulk scadenzaVecchia = (Obbligazione_scadenzarioBulk) scad;
if (nuovoImportoScadenzaVecchia.compareTo(scad.getIm_scadenza()) == 0)
throw handleException(new ApplicationException("Sdoppiamento in automatico non necessario!"));
if (nuovoImportoScadenzaVecchia.compareTo(new BigDecimal(0)) < 0)
throw handleException(new ApplicationException("L'importo della scadenza deve essere maggiore di 0"));
if (nuovoImportoScadenzaVecchia.compareTo(scad.getIm_scadenza()) == 1)
throw new ApplicationException("L'importo nuovo da assegnare alla scadenza dell'impegno deve essere inferiore al valore originario!");
try {
java.math.BigDecimal importoAssociatoScadenzaVecchia = scadenzaVecchia.getIm_associato_doc_amm();
java.math.BigDecimal vecchioImportoScadenzaVecchia = scadenzaVecchia.getIm_scadenza();
java.math.BigDecimal importoScadenzaNuova = vecchioImportoScadenzaVecchia.subtract(nuovoImportoScadenzaVecchia);
BigDecimal newImportoOsv = Utility.ZERO, totImporto = Utility.ZERO;
ObbligazioneHome obbligazioneHome = (ObbligazioneHome) getHome(userContext, ObbligazioneBulk.class);
ObbligazioneBulk obbligazione = (ObbligazioneBulk) obbligazioneHome.findByPrimaryKey(scadenzaVecchia.getObbligazione());
obbligazione = (ObbligazioneBulk) inizializzaBulkPerModifica(userContext, obbligazione);
// cerco nell'obbligazione riletto la scadenza indicata
for (Iterator s = obbligazione.getObbligazione_scadenzarioColl().iterator(); s.hasNext(); ) {
Obbligazione_scadenzarioBulk os = (Obbligazione_scadenzarioBulk) s.next();
if (os.equalsByPrimaryKey(scadenzaVecchia)) {
scadenzaVecchia = os;
if (dati.getMantieniImportoAssociatoScadenza()) {
scadenzaVecchia.setIm_associato_doc_amm(importoAssociatoScadenzaVecchia);
}
break;
}
}
if (scadenzaVecchia == null)
throw new ApplicationException("Scadenza da sdoppiare non trovata nell'impegno indicato!");
Obbligazione_scadenzarioBulk scadenzaNuova = new Obbligazione_scadenzarioBulk();
scadenzaNuova.setDt_scadenza(nuovaScadenza != null ? nuovaScadenza : scadenzaVecchia.getDt_scadenza());
scadenzaNuova.setDs_scadenza(nuovaDescrizione != null ? nuovaDescrizione : scadenzaVecchia.getDs_scadenza());
scadenzaNuova.setPg_obbligazione(dati.getNuovoPgObbligazioneScadenzario());
obbligazione.addToObbligazione_scadenzarioColl(scadenzaNuova);
// Rigenero i relativi dettagli
generaDettagliScadenzaObbligazione(userContext, obbligazione, scadenzaNuova, false);
for (Iterator s = scadenzaVecchia.getObbligazione_scad_voceColl().iterator(); s.hasNext(); ) {
Obbligazione_scad_voceBulk osvOld = (Obbligazione_scad_voceBulk) s.next();
if (nuovaGae != null && cdr != null) {
if (osvOld.getCd_linea_attivita() != null && osvOld.getCd_linea_attivita().equals(nuovaGae) && osvOld.getCd_centro_responsabilita() != null && osvOld.getCd_centro_responsabilita().equals(cdr)) {
aggiornaImportoScadVoceScadenzaNuova(importoScadenzaNuova, scadenzaNuova, osvOld);
osvOld.setIm_voce(nuovoImportoScadenzaVecchia);
osvOld.setToBeUpdated();
}
} else {
newImportoOsv = nuovoImportoScadenzaVecchia.multiply(osvOld.getIm_voce()).divide(vecchioImportoScadenzaVecchia, 2, BigDecimal.ROUND_HALF_UP);
aggiornaImportoScadVoceScadenzaNuova(newImportoOsv, scadenzaNuova, osvOld);
osvOld.setIm_voce(newImportoOsv);
osvOld.setToBeUpdated();
}
}
// Quadro la sommatoria sulla vecchia scadenza
for (Iterator s = scadenzaVecchia.getObbligazione_scad_voceColl().iterator(); s.hasNext(); ) totImporto = totImporto.add(((Obbligazione_scad_voceBulk) s.next()).getIm_voce());
if (totImporto.compareTo(nuovoImportoScadenzaVecchia) != 0) {
// recupero il primo dettaglio e lo aggiorno per quadrare
for (Iterator s = scadenzaVecchia.getObbligazione_scad_voceColl().iterator(); s.hasNext(); ) {
Obbligazione_scad_voceBulk osv = (Obbligazione_scad_voceBulk) s.next();
BigDecimal arrotondamento = nuovoImportoScadenzaVecchia.subtract(totImporto);
if (osv.getIm_voce().add(arrotondamento).compareTo(Utility.ZERO) != -1) {
osv.setIm_voce(osv.getIm_voce().add(arrotondamento));
scadenzaNuova.getObbligazione_scad_voceColl().stream().filter(el -> el.getCd_centro_responsabilita().equals(osv.getCd_centro_responsabilita())).filter(el -> el.getCd_linea_attivita().equals(osv.getCd_linea_attivita())).findFirst().ifPresent(osvNew -> osvNew.setIm_voce(osvNew.getIm_voce().subtract(arrotondamento)));
break;
}
}
}
totImporto = Utility.ZERO;
// Quadro la sommatoria sulla nuova scadenza
for (Iterator s = scadenzaNuova.getObbligazione_scad_voceColl().iterator(); s.hasNext(); ) totImporto = totImporto.add(((Obbligazione_scad_voceBulk) s.next()).getIm_voce());
if (totImporto.compareTo(importoScadenzaNuova) != 0) {
// recupero il primo dettaglio e lo aggiorno per quadrare
for (Iterator s = scadenzaNuova.getObbligazione_scad_voceColl().iterator(); s.hasNext(); ) {
Obbligazione_scad_voceBulk osv = (Obbligazione_scad_voceBulk) s.next();
if (osv.getIm_voce().add(importoScadenzaNuova.subtract(totImporto)).compareTo(Utility.ZERO) != -1) {
osv.setIm_voce(osv.getIm_voce().add(importoScadenzaNuova.subtract(totImporto)));
break;
}
}
}
scadenzaVecchia.setIm_scadenza(nuovoImportoScadenzaVecchia);
scadenzaVecchia.setToBeUpdated();
scadenzaNuova.setIm_scadenza(importoScadenzaNuova);
scadenzaNuova.setToBeCreated();
obbligazione.setToBeUpdated();
/**
* Viene posto il campo che verifica se il controllo della disponibilità
* è stato effettuato a TRUE, in quanto, l'obbligazione è in modifica
* e lo sdoppiamento delle righe non cambia il valore complessivo
* dell'obbligazione
*/
obbligazione.setCheckDisponibilitaContrattoEseguito(true);
obbligazione.setCheckDisponibilitaIncaricoRepertorioEseguito(true);
modificaConBulk(userContext, obbligazione);
return scadenzaNuova;
} catch (PersistencyException e) {
throw handleException(e);
}
}
use of it.cnr.jada.comp.ApplicationException in project sigla-main by consiglionazionaledellericerche.
the class ObbligazionePGiroComponent method inizializzaBulkPerModifica.
/**
* inizializzazione per modifica
* PreCondition:
* La richiesta di inizializzazione di un ImpegnoPGiroBulk per modifica
* e' stata generata
* PostCondition:
* Vengono recuperati la scadenza e il dettaglio di scadenza associati all'impegno.
* Viene recuperata l'associazione fra l'impegno e l'accertamento
* Viene recuperato l'accertamento associato all'impegno e la relativa scadenza e dettaglio scadenza
*
* @param aUC lo <code>UserContext</code> che ha generato la richiesta
* @param bulk <code>OggettoBulk</code> l'impegno su partita di giro da inizializzare per la modifica
*
* @return imp_pgiro l'impegno su partita di giro inizializzato per la modifica
*/
public OggettoBulk inizializzaBulkPerModifica(UserContext aUC, OggettoBulk bulk) throws ComponentException {
try {
if (bulk instanceof V_obbligazione_im_mandatoBulk) {
V_obbligazione_im_mandatoBulk v_obbligazione = (V_obbligazione_im_mandatoBulk) bulk;
bulk = (OggettoBulk) getHome(aUC, ImpegnoPGiroBulk.class).findByPrimaryKey(new ImpegnoPGiroBulk(v_obbligazione.getCd_cds(), v_obbligazione.getEsercizio(), v_obbligazione.getEsercizio_originale(), v_obbligazione.getPg_obbligazione()));
if (bulk == null)
throw new ApplicationException("L'impegno e' stato cancellato");
}
bulk = super.inizializzaBulkPerModifica(aUC, bulk);
ImpegnoPGiroBulk imp_pgiro = (ImpegnoPGiroBulk) bulk;
AccertamentoPGiroBulk accert_pgiro = null;
imp_pgiro.setCd_terzo_iniziale(imp_pgiro.getCd_terzo());
imp_pgiro.setIm_iniziale_obbligazione(imp_pgiro.getIm_obbligazione());
// query per recuperare la scadenza dell'obbligazione
// impegnoPgiro.getObbligazione_scadenzarioColl().add( scadenza );
Obbligazione_scadenzarioHome obblig_scadHome = (Obbligazione_scadenzarioHome) getHome(aUC, Obbligazione_scadenzarioBulk.class);
SQLBuilder sql = obblig_scadHome.createSQLBuilder();
sql.addClause("AND", "cd_cds", sql.EQUALS, imp_pgiro.getCd_cds());
sql.addClause("AND", "esercizio", sql.EQUALS, imp_pgiro.getEsercizio());
sql.addClause("AND", "esercizio_originale", sql.EQUALS, imp_pgiro.getEsercizio_originale());
sql.addClause("AND", "pg_obbligazione", sql.EQUALS, imp_pgiro.getPg_obbligazione());
List result = obblig_scadHome.fetchAll(sql);
Obbligazione_scadenzarioBulk obblig_scad = (Obbligazione_scadenzarioBulk) result.get(0);
imp_pgiro.setDt_scadenza(obblig_scad.getDt_scadenza());
imp_pgiro.getObbligazione_scadenzarioColl().add(obblig_scad);
obblig_scad.setObbligazione(imp_pgiro);
// carico l'eventuale doc.amministrativo legato alla scadenza
V_doc_passivo_obbligazioneBulk docPassivo = obblig_scadHome.findDoc_passivo(obblig_scad);
if (docPassivo != null) {
obblig_scad.setEsercizio_doc_passivo(docPassivo.getEsercizio());
obblig_scad.setPg_doc_passivo(docPassivo.getPg_documento_amm());
imp_pgiro.setEsercizio_doc_passivo(docPassivo.getEsercizio());
imp_pgiro.setPg_doc_passivo(docPassivo.getPg_documento_amm());
imp_pgiro.setCd_tipo_documento_amm(docPassivo.getCd_tipo_documento_amm());
}
// carico l'eventuale mandato associato
Mandato_rigaBulk mandato = obblig_scadHome.findMandato(obblig_scad);
if (mandato != null) {
imp_pgiro.setEsercizio_mandato(mandato.getEsercizio());
imp_pgiro.setPg_mandato(mandato.getPg_mandato());
}
// query per recuperare scad_voce dell'obbligazione
// scadenza.getObbligazione_scad_voceColl().add( scad_voce );
Obbligazione_scad_voceHome obblig_scad_voceHome = (Obbligazione_scad_voceHome) getHome(aUC, Obbligazione_scad_voceBulk.class);
sql = obblig_scad_voceHome.createSQLBuilder();
sql.addClause("AND", "cd_cds", sql.EQUALS, imp_pgiro.getCd_cds());
sql.addClause("AND", "esercizio", sql.EQUALS, imp_pgiro.getEsercizio());
sql.addClause("AND", "esercizio_originale", sql.EQUALS, imp_pgiro.getEsercizio_originale());
sql.addClause("AND", "pg_obbligazione", sql.EQUALS, imp_pgiro.getPg_obbligazione());
result = obblig_scad_voceHome.fetchAll(sql);
Obbligazione_scad_voceBulk obblig_scad_voce = (Obbligazione_scad_voceBulk) result.get(0);
obblig_scad.getObbligazione_scad_voceColl().add(obblig_scad_voce);
obblig_scad_voce.setObbligazione_scadenzario(obblig_scad);
// query associazione
// impegnoPgiro.setAssociazione( associazione );
// associazione.setObbligazione ( impegnoPgiro);
Ass_obb_acr_pgiroHome associazioneHome = (Ass_obb_acr_pgiroHome) getHome(aUC, Ass_obb_acr_pgiroBulk.class);
sql = associazioneHome.createSQLBuilder();
sql.addClause("AND", "cd_cds", sql.EQUALS, imp_pgiro.getCd_cds());
sql.addClause("AND", "esercizio", sql.EQUALS, imp_pgiro.getEsercizio());
sql.addClause("AND", "esercizio_ori_obbligazione", sql.EQUALS, imp_pgiro.getEsercizio_originale());
sql.addClause("AND", "pg_obbligazione", sql.EQUALS, imp_pgiro.getPg_obbligazione());
result = associazioneHome.fetchAll(sql);
if (result.size() > 0) {
Ass_obb_acr_pgiroBulk associazione = (Ass_obb_acr_pgiroBulk) result.get(0);
imp_pgiro.setAssociazione(associazione);
associazione.setImpegno(imp_pgiro);
// query per recuperare l'accertamentoPgiro
// associazione.setAccertamento( accertamentoPgiro);
// accertamentoPgiro.setAssociazione( associazione )
AccertamentoPGiroHome accert_pgiroHome = (AccertamentoPGiroHome) getHome(aUC, AccertamentoPGiroBulk.class);
sql = accert_pgiroHome.createSQLBuilder();
sql.addClause("AND", "cd_cds", sql.EQUALS, associazione.getCd_cds());
sql.addClause("AND", "esercizio", sql.EQUALS, associazione.getEsercizio());
sql.addClause("AND", "esercizio_originale", sql.EQUALS, associazione.getEsercizio_ori_accertamento());
sql.addClause("AND", "pg_accertamento", sql.EQUALS, associazione.getPg_accertamento());
result = accert_pgiroHome.fetchAll(sql);
accert_pgiro = (AccertamentoPGiroBulk) result.get(0);
accert_pgiro.setAssociazione(associazione);
associazione.setAccertamento(accert_pgiro);
if (accert_pgiro.getCapitolo() != null) {
Elemento_voceBulk ev = (Elemento_voceBulk) getHome(aUC, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(accert_pgiro.getCapitolo().getCd_voce(), accert_pgiro.getCapitolo().getEsercizio(), accert_pgiro.getCapitolo().getTi_appartenenza(), accert_pgiro.getCapitolo().getTi_gestione()));
imp_pgiro.setElemento_voceContr(ev);
}
// query per recuperare la scadenza dell'accertamento
// accertamentoPgiro.getAccertamento_scadenzarioColl().add( scadenza );
Accertamento_scadenzarioHome accert_scadHome = (Accertamento_scadenzarioHome) getHome(aUC, Accertamento_scadenzarioBulk.class);
sql = accert_scadHome.createSQLBuilder();
sql.addClause("AND", "cd_cds", sql.EQUALS, accert_pgiro.getCd_cds());
sql.addClause("AND", "esercizio", sql.EQUALS, accert_pgiro.getEsercizio());
sql.addClause("AND", "esercizio_originale", sql.EQUALS, accert_pgiro.getEsercizio_originale());
sql.addClause("AND", "pg_accertamento", sql.EQUALS, accert_pgiro.getPg_accertamento());
result = accert_scadHome.fetchAll(sql);
Accertamento_scadenzarioBulk accert_scad = (Accertamento_scadenzarioBulk) result.get(0);
accert_pgiro.setDt_scadenza(accert_scad.getDt_scadenza_incasso());
accert_pgiro.getAccertamento_scadenzarioColl().add(accert_scad);
accert_scad.setAccertamento(accert_pgiro);
// carico l'eventuale doc.amministrativo legato alla scadenza
V_doc_attivo_accertamentoBulk docAttivo = accert_scadHome.findDoc_attivo(accert_scad);
if (docAttivo != null) {
accert_scad.setEsercizio_doc_attivo(docAttivo.getEsercizio());
accert_scad.setPg_doc_attivo(docAttivo.getPg_documento_amm());
}
// query per recuperare scad_voce dell'accertamento
// scadenza.getAccertamento_scad_voceColl().add( scad_voce );
Accertamento_scad_voceHome accert_scad_voceHome = (Accertamento_scad_voceHome) getHome(aUC, Accertamento_scad_voceBulk.class);
sql = accert_scad_voceHome.createSQLBuilder();
sql.addClause("AND", "cd_cds", sql.EQUALS, accert_pgiro.getCd_cds());
sql.addClause("AND", "esercizio", sql.EQUALS, accert_pgiro.getEsercizio());
sql.addClause("AND", "esercizio_originale", sql.EQUALS, accert_pgiro.getEsercizio_originale());
sql.addClause("AND", "pg_accertamento", sql.EQUALS, accert_pgiro.getPg_accertamento());
result = accert_scad_voceHome.fetchAll(sql);
Accertamento_scad_voceBulk accert_scad_voce = (Accertamento_scad_voceBulk) result.get(0);
accert_scad.getAccertamento_scad_voceColl().add(accert_scad_voce);
accert_scad_voce.setAccertamento_scadenzario(accert_scad);
}
// query per recuperare cd_uo_ente dell'impegno
Unita_organizzativa_enteHome uo_enteHome = (Unita_organizzativa_enteHome) getHome(aUC, Unita_organizzativa_enteBulk.class);
sql = uo_enteHome.createSQLBuilder();
result = uo_enteHome.fetchAll(sql);
Unita_organizzativa_enteBulk uo_ente = (Unita_organizzativa_enteBulk) result.get(0);
imp_pgiro.setCd_uo_ente(uo_ente.getCd_unita_organizzativa());
if (accert_pgiro != null) {
accert_pgiro.setCd_uo_ente(uo_ente.getCd_unita_organizzativa());
if ((accert_pgiro.getDt_cancellazione() == null && imp_pgiro.getDt_cancellazione() != null) || (accert_pgiro.getDt_cancellazione() != null && imp_pgiro.getDt_cancellazione() == null)) {
accert_pgiro.setFl_isTronco(true);
imp_pgiro.setFl_isTronco(true);
}
}
return imp_pgiro;
} catch (Exception e) {
throw handleException(bulk, e);
}
}
use of it.cnr.jada.comp.ApplicationException in project sigla-main by consiglionazionaledellericerche.
the class ObbligazionePGiroComponent method creaObbligazione_scad_voce.
/**
* creazione
* PreCondition:
* una scadenza di un impegno pgiro e' stata creata ed e' necessario creare il suo dettaglio
* PostCondition:
* Il dettaglio di scadenza (Obbligazione_scad_voceBulk) viene creato
* con linea attività uguale alla linea di attività definita nella Configurazione CNR come Linea attività Spesa ENTE
* e importo uguale all'importo della scadenza dell'obbligazione
* errore - Configurazione CNR
* PreCondition:
* una richiesta di creazione di un dettaglio di scadenza di un impegno pgiro e' stata generata
* ma non e' stata definita in Configurazione CNR la Linea attività Spesa ENTE
* PostCondition:
* Un messaggio di errore segnala all'utente la mancata definizione in Configurazione CNR della linea di attivita' Spesa ENTE
*
* @param uc lo <code>UserContext</code> che ha generato la richiesta
* @param obblig_scad <code>Obbligazione_scadenzarioBulk</code> la scadenza dell'impegno pgiro creata
*
* @return obblig_scad_voce Il dettaglio di scadenza dell'impegno pgiro creato
*/
private Obbligazione_scad_voceBulk creaObbligazione_scad_voce(UserContext uc, Obbligazione_scadenzarioBulk obblig_scad) throws ComponentException {
try {
Obbligazione_scad_voceBulk obblig_scad_voce = new Obbligazione_scad_voceBulk();
obblig_scad_voce.setUser(obblig_scad.getObbligazione().getUser());
obblig_scad_voce.setToBeCreated();
// campi chiave
obblig_scad_voce.setObbligazione_scadenzario(obblig_scad);
// altri campi chiave
obblig_scad_voce.setTi_appartenenza(obblig_scad.getObbligazione().getTi_appartenenza());
obblig_scad_voce.setTi_gestione(obblig_scad.getObbligazione().getTi_gestione());
obblig_scad_voce.setCd_voce(obblig_scad.getObbligazione().getElemento_voce().getCd_elemento_voce());
it.cnr.contab.config00.bulk.Configurazione_cnrBulk config = createConfigurazioneCnrComponentSession().getConfigurazione(uc, null, null, it.cnr.contab.config00.bulk.Configurazione_cnrBulk.PK_LINEA_ATTIVITA_SPECIALE, it.cnr.contab.config00.bulk.Configurazione_cnrBulk.SK_LINEA_ATTIVITA_SPESA_ENTE);
if (config != null) {
it.cnr.contab.config00.latt.bulk.WorkpackageBulk latt = new it.cnr.contab.config00.latt.bulk.WorkpackageBulk(config.getVal01(), config.getVal02());
obblig_scad_voce.setLinea_attivita(latt);
} else
throw new ApplicationException("Configurazione CNR: manca la definizione del GAE SPESA ENTE");
// altri campi
obblig_scad_voce.setIm_voce(obblig_scad.getObbligazione().getIm_obbligazione());
// obblig_scad_voce.setCd_fondo_ricerca( obblig_scad.getObbligazione().getCd_fondo_ricerca() );
obblig_scad.getObbligazione_scad_voceColl().add(obblig_scad_voce);
return obblig_scad_voce;
} catch (Exception e) {
throw handleException(e);
}
}
use of it.cnr.jada.comp.ApplicationException in project sigla-main by consiglionazionaledellericerche.
the class ObbligazionePGiroComponent method annullaObbligazione.
/**
* cancellazione (logica)
* PreCondition:
* L'utente richiede la cancellazione di un impegno su partita di giro
* PostCondition:
* Alla component che gestisce l'accertamento su pgiro viene inoltrata la richiesta di cancellazione (logica)
* dell'accertamento associato all'accertamento pgiro (metodo eliminaAccertamento), l'obbligazione (con la sua
* scadenza e il suo dettaglio scadenza) viene cancellata (metodo eliminaObbligazione)
* errore - doc.amm.associati
* PreCondition:
* La richiesta di cancellazione di un'obbligazione su partita di giro e' stata generata ma esistono
* documenti amministrativi contabilizzati sulla scadenza dell'obbligazione
* PostCondition:
* Un messaggio di errore segnala all'utente l'impossibilità di effettuare la cancellazione
*
* @param userContext lo <code>UserContext</code> che ha generato la richiesta
* @param imp_pgiro <code>ImpegnoPGiroBulk</code> l'impegno su partita di giro da cancellare (logicamente)
* @return imp_pgiro <code>ImpegnoPGiroBulk</code> l'impegno su partita di giro annullato
*/
public ImpegnoPGiroBulk annullaObbligazione(UserContext userContext, ImpegnoPGiroBulk imp_pgiro) throws ComponentException {
try {
verificaStatoEsercizio(userContext, imp_pgiro.getEsercizio(), imp_pgiro.getCd_cds());
// segnalo impossibilità di annullare un residuo se l'esercizio precedente è ancora aperto
if (imp_pgiro.getCd_tipo_documento_cont().equals(Numerazione_doc_contBulk.TIPO_IMP_RES))
verificaStatoEsercizioEsPrecedente(userContext, imp_pgiro.getEsercizio(), imp_pgiro.getCd_cds());
if (imp_pgiro.isAssociataADocAmm())
throw new ApplicationException("Impossibile cancellare l'Annotazione di Spesa su Partita di Giro perche' ha documenti amministrativi associati");
// annullo il record relativo all'accertamento partita di giro
if (!imp_pgiro.isFl_isTronco())
createAccertamentoPGiroComponent().eliminaAccertamento(userContext, imp_pgiro.getAssociazione().getAccertamento());
// annullo il record relativo all'obbligazione partita di giro
eliminaObbligazione(userContext, imp_pgiro);
return imp_pgiro;
} catch (Exception e) {
throw handleException(imp_pgiro, e);
}
}
use of it.cnr.jada.comp.ApplicationException in project sigla-main by consiglionazionaledellericerche.
the class ObbligazionePGiroComponent 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>ImpegnoPGiroBulk</code> l'obbligazione su partita di giro da validare
*/
protected void verificaObbligazione(UserContext userContext, ImpegnoPGiroBulk 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 = ((ImpegnoPGiroHome) getHome(userContext, ImpegnoPGiroBulk.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));
}
}
Aggregations