use of it.cnr.contab.doccont00.core.bulk.ImpegnoPGiroBulk 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.contab.doccont00.core.bulk.ImpegnoPGiroBulk in project sigla-main by consiglionazionaledellericerche.
the class ObbligazionePGiroComponent method creaAss_obb_acr_pgiro.
/**
* creazione
* PreCondition:
* un impegno pgiro ed un accertamento pgiro sono stati creati ed e' necessario creare
* l'associazione (Ass_obb_acr_pgiroBulk) fra i due
* PostCondition:
* L'associazione fra accertamento e impegno su partita di giro e' stata creata
*
* @param uc lo <code>UserContext</code> che ha generato la richiesta
* @param imp_pgiro <code>ImpegnoPGiroBulk</code> l'impegno da associare ad un accertamento su partita di giro
* @param accert_pgiro <code>AccertamentoPGiroBulk</code> l'accertamento su partita di giro da associare ad un impegno
*
* @return <code>Ass_obb_acr_pgiroBulk</code> L'associazione obbligazione-accertamento su partita di giro da creare
*/
public Ass_obb_acr_pgiroBulk creaAss_obb_acr_pgiro(UserContext uc, ImpegnoPGiroBulk imp_pgiro, AccertamentoPGiroBulk accert_pgiro) throws ComponentException {
Ass_obb_acr_pgiroBulk ass_oa_pgiro = new Ass_obb_acr_pgiroBulk();
ass_oa_pgiro.setUser(imp_pgiro.getUser());
ass_oa_pgiro.setToBeCreated();
ass_oa_pgiro.setEsercizio_ori_accertamento(accert_pgiro.getEsercizio_originale());
ass_oa_pgiro.setPg_accertamento(accert_pgiro.getPg_accertamento());
ass_oa_pgiro.setEsercizio_ori_obbligazione(imp_pgiro.getEsercizio_originale());
ass_oa_pgiro.setPg_obbligazione(imp_pgiro.getPg_obbligazione());
// campi chiave
ass_oa_pgiro.setEsercizio(imp_pgiro.getEsercizio());
ass_oa_pgiro.setCd_cds(imp_pgiro.getCd_cds());
ass_oa_pgiro.setTi_origine(ass_oa_pgiro.TIPO_SPESA);
return (Ass_obb_acr_pgiroBulk) super.creaConBulk(uc, ass_oa_pgiro);
}
use of it.cnr.contab.doccont00.core.bulk.ImpegnoPGiroBulk 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));
}
}
use of it.cnr.contab.doccont00.core.bulk.ImpegnoPGiroBulk in project sigla-main by consiglionazionaledellericerche.
the class ObbligazionePGiroComponent method findPGiroDaRiportareAvanti.
/* verifico nella vista V_OBB_ACC_RIPORTA quali delle 2 parti della partita di giro devo passare alla
stored procedure che effettua il riporta avanti */
protected IDocumentoContabileBulk findPGiroDaRiportareAvanti(UserContext userContext, IDocumentoContabileBulk doc) throws ComponentException {
try {
SQLBuilder sql = selectPGiroDaRiportare(userContext, doc, "V_OBB_ACC_RIPORTA");
List result = getHome(userContext, V_obb_acc_xxxBulk.class, "V_OBB_ACC_RIPORTA").fetchAll(sql);
if (result != null && result.size() > 0)
return doc;
if (doc instanceof ImpegnoPGiroBulk) {
// per le partite di giro bisogna passare alla procedura PL/SQL sempre
// la parte che ha aperto la partita di giro
ImpegnoPGiroBulk imp = (ImpegnoPGiroBulk) doc;
if (imp.getAssociazione() != null && imp.getAssociazione().getAccertamento() != null) {
doc = imp.getAssociazione().getAccertamento();
sql = selectPGiroDaRiportare(userContext, doc, "V_OBB_ACC_RIPORTA");
result = getHome(userContext, V_obb_acc_xxxBulk.class, "V_OBB_ACC_RIPORTA").fetchAll(sql);
if (result != null && result.size() > 0)
return doc;
}
} else if (doc instanceof AccertamentoPGiroBulk) {
AccertamentoPGiroBulk acr = (AccertamentoPGiroBulk) doc;
if (acr.getAssociazione() != null && acr.getAssociazione().getImpegno() != null) {
doc = acr.getAssociazione().getImpegno();
sql = selectPGiroDaRiportare(userContext, doc, "V_OBB_ACC_RIPORTA");
result = getHome(userContext, V_obb_acc_xxxBulk.class, "V_OBB_ACC_RIPORTA").fetchAll(sql);
if (result != null && result.size() > 0)
return doc;
}
}
return null;
} catch (Exception e) {
throw handleException(e);
}
}
use of it.cnr.contab.doccont00.core.bulk.ImpegnoPGiroBulk in project sigla-main by consiglionazionaledellericerche.
the class ObbligazionePGiroComponent method aggiornaSaldiInDifferita.
/**
* Aggiornamento in differita dei saldi dell'obbligazione su partita di giro.
* Un documento amministrativo di spesa che agisce in modalità transazionale ha creato/modificato gli importi
* relativi ad un impegno pgiro; i saldi di tale impegno non possono essere aggiornati subito in quanto
* tale operazione genererebbe dei lock sulle voci del piano che non ne consentirebbere l'utilizzo ad altri utenti;
* pertanto l'aggiornamento dei saldi dell'obbligazione pgiro viene differito al momento del salvataggio
* del documento amministrativo.
*
* Pre-post-conditions:
*
* Nome: Aggiorna saldi per obbligazione su partita di giro creata
* Pre: Una richiesta di aggiornamento dei saldi in differita e' stata generata per un'obbligazione su capitoli di
* partita di giro che e' stata creata nel contesto transazionale del documento amministrativo ( progressivo
* impegno pgiro < 0)
* Post: I saldi dell'obbligazione pgiro sono stati aggiornati nel metodo 'aggiornaSaldiInInserimento'
*
* Nome: Aggiorna saldi per obbligazione su partita di giro esistente
* Pre: Una richiesta di aggiornamento dei saldi in differita e' stata generata per un'obbligazione su capitoli di
* partita di giro che non e' stata creata nel contesto transazionale del documento amministrativo ( progressivo
* impegno pgiro > 0)
* Post: I saldi dell'obbligazione pgiro sono stati aggiornati nel metodo 'aggiornaSaldiInModifica'
*
* @param userContext lo UserContext che ha generato la richiesta
* @param docContabile l'ImpegnoPGiroBulk per cui aggiornare i saldi
* @param values la Map che contiene il "pg_ver_rec" iniziale dell'impegno
* @param param parametro non utilizzato per le partite di giro
*/
public void aggiornaSaldiInDifferita(UserContext userContext, IDocumentoContabileBulk docContabile, Map values, OptionRequestParameter param) throws ComponentException {
try {
if (docContabile instanceof ImpegnoPGiroBulk) {
ImpegnoPGiroBulk imp_pgiro = (ImpegnoPGiroBulk) docContabile;
Long pg_ver_rec = (Long) values.get("pg_ver_rec");
if (pg_ver_rec == null)
throw new ApplicationException("Aggiornamento in differita dei saldi dei documenti contabili impossibile (pg_ver_rec nullo)");
if (// obbligazione appena inserita
imp_pgiro.getPg_obbligazione().longValue() < 0)
aggiornaSaldiInInserimento(userContext, imp_pgiro, true);
else
aggiornaSaldiInModifica(userContext, imp_pgiro, pg_ver_rec, true);
}
} catch (Exception e) {
throw handleException(e);
}
}
Aggregations