it.cnr.contab.chiusura00.comp.RicercaDocContComponent Maven / Gradle / Ivy
/*
* Copyright (C) 2019 Consiglio Nazionale delle Ricerche
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package it.cnr.contab.chiusura00.comp;
import it.cnr.contab.chiusura00.bulk.V_obb_acc_xxxBulk;
import it.cnr.contab.config00.bulk.Parametri_cdsBulk;
import it.cnr.contab.config00.bulk.Parametri_cdsHome;
import it.cnr.contab.config00.esercizio.bulk.EsercizioBulk;
import it.cnr.contab.config00.latt.bulk.WorkpackageBulk;
import it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk;
import it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome;
import it.cnr.contab.config00.pdcfin.bulk.Voce_fBulk;
import it.cnr.contab.config00.sto.bulk.CdrBulk;
import it.cnr.contab.config00.sto.bulk.CdsBulk;
import it.cnr.contab.config00.sto.bulk.EnteBulk;
import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk;
import it.cnr.contab.config00.sto.bulk.Unita_organizzativa_enteBulk;
import it.cnr.contab.doccont00.core.bulk.Accertamento_scad_voceBulk;
import it.cnr.contab.doccont00.core.bulk.Numerazione_doc_contBulk;
import it.cnr.contab.doccont00.core.bulk.Obbligazione_scad_voceBulk;
import it.cnr.contab.pdg00.bulk.Pdg_residuoBulk;
import it.cnr.contab.pdg00.bulk.Pdg_residuoHome;
import it.cnr.contab.progettiric00.core.bulk.Progetto_other_fieldBulk;
import it.cnr.contab.progettiric00.enumeration.StatoProgetto;
import it.cnr.contab.utenze00.bp.CNRUserContext;
import it.cnr.jada.UserContext;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.comp.ApplicationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.persistency.PersistencyException;
import it.cnr.jada.persistency.sql.CompoundFindClause;
import it.cnr.jada.persistency.sql.FindClause;
import it.cnr.jada.persistency.sql.LoggableStatement;
import it.cnr.jada.persistency.sql.PersistentHome;
import it.cnr.jada.persistency.sql.SQLBuilder;
import java.rmi.RemoteException;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Timestamp;
import java.util.BitSet;
import java.util.List;
import javax.ejb.EJBException;
public class RicercaDocContComponent extends it.cnr.jada.comp.RicercaComponent implements IRicercaDocContComponent
{
final static String PROC_NAME_ANNULLAMENTO = "CNRCTB047.annullaDocCont";
final static String PROC_NAME_RIPORTA_AVANTI = "CNRCTB047.riportoNextEsDocCOnt";
final static String PROC_NAME_RIPORTA_INDIETRO = "CNRCTB047.riportoPrevEsDocCOnt";
final static String PROC_NAME_RIPORTA_AVANTI_EVOLUTO = "CNRCTB047.riportoNextEsDocContVoce";
/**
* RicercaDocContComponent constructor comment.
*/
public RicercaDocContComponent() {
super();
}
/*
* Pre: nella VSX_CHIUSURA sono stati inseriti i record con le chiavi dei doc.contabili da annullare
* Post: viene chiamata la stored procedure di annullamento dei doc.contabili inseriti in VSX_CHIUSURA
*
* @param userContext UserContext
* @param pg_call Long da utilizzare come chiave nella tabella VSX_CHIUSURA
*/
public void callAnnullamentoDocCont(UserContext userContext, Long pg_call) throws ComponentException
{
LoggableStatement cs = null;
try
{
try
{
cs = new LoggableStatement(getConnection(userContext),
"{ call " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"CNRCTB047.annullamentoDocCont( ?, ? ) }",false,this.getClass());
cs.setObject( 1, pg_call);
cs.setObject( 2, ((CNRUserContext)userContext).getUser());
// cs.setObject( 2, ((CNRUserContext)userContext).getEsercizio());
// cs.setObject( 4, it.cnr.jada.util.ejb.EJBCommonServices.getServerTimestamp());
cs.executeQuery();
} catch (Throwable e)
{
throw handleException(e);
} finally
{
if (cs != null) cs.close();
}
} catch (java.sql.SQLException ex) {
throw handleException(ex);
}
}
/*
* Pre: nella VSX_CHIUSURA sono stati inseriti i record con le chiavi dei doc.contabili da riportare
* all'esercizio successivo
* Post: viene chiamata la stored procedure di riporto dei doc.contabili inseriti in VSX_CHIUSURA
* @param userContext UserContext
* @param pg_call Long da utilizzare come chiave nella tabella VSX_CHIUSURA
*/
public void callRiportoNextEsDocCont(UserContext userContext, Long pg_call) throws ComponentException
{
LoggableStatement cs = null;
try
{
try
{
cs = new LoggableStatement(getConnection(userContext),
"{ call " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"CNRCTB047.riportoNextEsDocCOnt( ?, ? , ?) }",false,this.getClass());
cs.setObject( 1, pg_call);
cs.setObject( 2, ((CNRUserContext)userContext).getUser());
cs.setObject( 3, ((CNRUserContext)userContext).getCd_cds());
// cs.setObject( 2, ((CNRUserContext)userContext).getEsercizio());
// cs.setObject( 3, ((CNRUserContext)userContext).getUser());
// cs.setObject( 4, it.cnr.jada.util.ejb.EJBCommonServices.getServerTimestamp());
cs.executeQuery();
} catch (Throwable e)
{
throw handleException(e);
} finally
{
if (cs != null) cs.close();
}
} catch (java.sql.SQLException ex) {
throw handleException(ex);
}
}
/*
* Name: riporto es successivo per CDS diverso da Ente
* Pre: in scrivania è stato selezinato un Cds diverso dall'Ente
* l'utente ha specificato se vuole riportare all'es. successivo doc. contabili di entrata o di spesa
* l'utente ha specificato se vuole riportare all'es. successivo doc. contabili creati dall'uo di scrivania per
* se stesso o per l'ente
* l'utente ha selezionato un opportuno elemento voce
* nella VSX_CHIUSURA sono stati inseriti i record con le chiavi dei doc.contabili da riportare
* all'esercizio successivo e il nuovo elemento voce
* Post: viene chiamata la stored procedure di riporto dei doc.contabili inseriti in VSX_CHIUSURA con cambio di
* elemento voce
* Name: riporto es successivo per CDS ugaule a Ente
* Pre: in scrivania è stato selezinato il Cds dell'Ente
* l'utente ha selezionato una nuova voce_f
* nella VSX_CHIUSURA sono stati inseriti i record con le chiavi dei degli impegni o degli impegni residui
* da riportare all'esercizio successivo e la nuova voce_f
* Post: viene chiamata la stored procedure di riporto dei doc.contabili inseriti in VSX_CHIUSURA con cambio di
* voce_f
* @param userContext UserContext
* @param pg_call Long da utilizzare come chiave nella tabella VSX_CHIUSURA
*/
public void callRiportoNextEsDocContVoce(UserContext userContext, Long pg_call) throws ComponentException
{
LoggableStatement cs = null;
try
{
try
{
cs = new LoggableStatement(getConnection(userContext),
"{ call " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"CNRCTB047.riportoNextEsDocContVoce( ?, ? ) }",false,this.getClass());
cs.setObject( 1, pg_call);
cs.setObject( 2, ((CNRUserContext)userContext).getUser());
// cs.setObject( 2, ((CNRUserContext)userContext).getEsercizio());
// cs.setObject( 3, ((CNRUserContext)userContext).getUser());
// cs.setObject( 4, it.cnr.jada.util.ejb.EJBCommonServices.getServerTimestamp());
cs.executeQuery();
} catch (Throwable e)
{
throw handleException(e);
} finally
{
if (cs != null) cs.close();
}
} catch (java.sql.SQLException ex) {
throw handleException(ex);
}
}
/*
* Name: riporto da esercizio successivo
* Pre: nella VSX_CHIUSURA sono stati inseriti i record con le chiavi dei doc.contabili selezionati dall'utente
* che erano già stati riportati all'esercizio successivo
* all'esercizio successivo e il nuovo elemento voce
* Post: viene chiamata la stored procedure di riporto indietro dei doc.contabili inseriti in VSX_CHIUSURA
* @param userContext UserContext
* @param pg_call Long da utilizzare come chiave nella tabella VSX_CHIUSURA
*/
public void callRiportoPrevEsDocCont(UserContext userContext, Long pg_call) throws ComponentException
{
LoggableStatement cs = null;
try
{
try
{
cs = new LoggableStatement(getConnection(userContext),
"{ call " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"CNRCTB047.riportoPrevEsDocCOnt( ?, ? ) }",false,this.getClass());
cs.setObject( 1, pg_call);
cs.setObject( 2, ((CNRUserContext)userContext).getUser());
// cs.setObject( 2, ((CNRUserContext)userContext).getEsercizio());
// cs.setObject( 3, ((CNRUserContext)userContext).getUser());
// cs.setObject( 4, it.cnr.jada.util.ejb.EJBCommonServices.getServerTimestamp());
cs.executeQuery();
} catch (Throwable e)
{
throw handleException(e);
} finally
{
if (cs != null) cs.close();
}
} catch (java.sql.SQLException ex) {
throw handleException(ex);
}
}
/*
* Name: ricerca per annullamento
* Pre: l'utente ha richiesto la lista dei documenti contabili che possono essere annullati
* Post: il sistema restituisce il Remote Iterator con la lista dei doc. contabili che possono essere annullati
* @param userContext UserContext
* @param docCont V_obb_acc_xxxBulk con le clasuole di ricerca indicate dall'utente
* @return RemoteIterator con la lista di V_obb_acc_xxxBulk che soddisfano le clausole
di ricerca
*/
public it.cnr.jada.util.RemoteIterator cercaPerAnnullamento(UserContext userContext, V_obb_acc_xxxBulk docCont ) throws it.cnr.jada.comp.ComponentException
{
try {
return iterator(
userContext,
selectPerAnnullamento(userContext,docCont),
docCont.getClass(),
getFetchPolicyName("find"));
} catch(Throwable e) {
throw handleException(e);
}
}
/*
* Name: ricerca per riporta esercizio successivo
* Pre: l'utente ha richiesto la lista dei documenti contabili che possono essere portati all'esercizio successivo
* Post: il sistema restituisce il Remote Iterator con la lista dei doc. contabili che possono essere portati all'esercizio successivo
* @param userContext UserContext
* @param docCont V_obb_acc_xxxBulk con le clasuole di ricerca indicate dall'utente
* @return RemoteIterator con la lista di V_obb_acc_xxxBulk che soddisfano le clausole
di ricerca
*/
public it.cnr.jada.util.RemoteIterator cercaPerRiportaAvanti(UserContext userContext, V_obb_acc_xxxBulk docCont ) throws it.cnr.jada.comp.ComponentException
{
try {
return iterator(
userContext,
selectPerRiportaAvanti(userContext,docCont),
docCont.getClass(),
getFetchPolicyName("find"));
} catch(Throwable e) {
throw handleException(e);
}
}
/*
* Name: ricerca per riporta esercizio successivo con cambio di elemento voce/voce_f
* Pre: l'utente ha richiesto la lista dei documenti contabili che possono essere portati all'esercizio successivo con cambio di elemento_voce o di voce_f
* Post: il sistema restituisce il Remote Iterator con la lista dei doc. contabili che possono essere portati all'esercizio successivo
* @param userContext UserContext
* @param docCont V_obb_acc_xxxBulk con le clasuole di ricerca indicate dall'utente
* @return RemoteIterator con la lista di V_obb_acc_xxxBulk che soddisfano le clausole
di ricerca
*/
public it.cnr.jada.util.RemoteIterator cercaPerRiportaAvantiEvoluto(UserContext userContext, V_obb_acc_xxxBulk docCont ) throws it.cnr.jada.comp.ComponentException
{
return cercaPerRiportaAvanti( userContext, docCont );
}
/*
* Name: ricerca per riporta esercizio indietro
* Pre: l'utente ha richiesto la lista dei documenti contabili che possono essere portati indietro dall'esercizio successivo
* Post: il sistema restituisce il Remote Iterator con la lista dei doc. contabili che possono essere portati indietro dall'esercizio successivo
* @param userContext UserContext
* @param docCont V_obb_acc_xxxBulk con le clasuole di ricerca indicate dall'utente
* @return RemoteIterator con la lista di V_obb_acc_xxxBulk che soddisfano le clausole
di ricerca
*/
public it.cnr.jada.util.RemoteIterator cercaPerRiportaIndietro(UserContext userContext, V_obb_acc_xxxBulk docCont ) throws it.cnr.jada.comp.ComponentException
{
try {
return iterator(
userContext,
selectPerRiportaIndietro(userContext,docCont),
docCont.getClass(),
getFetchPolicyName("find"));
} catch(Throwable e) {
throw handleException(e);
}
}
/*
* Name: annullamento selezione
* Pre: l'utente ha richiesto l'annullamento della selezione della lista dei documenti contabili
* che aveva precedentemente selezioanto
* Post: il sistema cancella dalla tabella VSX_CHIUSURA gli elementi inseriti fino a quel momento a fronte del pg_call corrente
* @param userContext UserContext
* @param doc V_obb_acc_xxxBulk con il pg_call corrente della VSX_CHIUSURA
*/
public void clearSelection(it.cnr.jada.UserContext userContext, V_obb_acc_xxxBulk doc) throws it.cnr.jada.comp.ComponentException
{
try
{
if ( doc.getPg_call() == null )
return;
LoggableStatement ps = new LoggableStatement(getConnection( userContext),
"DELETE FROM " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"VSX_CHIUSURA " +
"WHERE PG_CALL = ? " ,true,this.getClass());
try
{
ps.setObject( 1, doc.getPg_call());
ps.executeUpdate();
}
finally
{
try{ps.close();}catch( java.sql.SQLException e ){};
}
}
catch (SQLException e )
{
throw handleException( e );
}
}
/*
* Name: annullamento selezione per annullamento
* Pre: l'utente ha richiesto l'annullamento della selezione della lista dei documenti contabili
* che aveva precedentemente selezioanto per annullamento
* Post: il sistema cancella dalla tabella VSX_CHIUSURA gli elementi inseriti fino a quel momento a fronte del pg_call corrente
* @param userContext UserContext
* @param doc V_obb_acc_xxxBulk con il pg_call corrente della VSX_CHIUSURA
*/
public void clearSelectionPerAnnullamento(it.cnr.jada.UserContext userContext, V_obb_acc_xxxBulk doc) throws it.cnr.jada.comp.ComponentException
{
clearSelection( userContext, doc );
}
/*
* Name: annullamento selezione per riporta avanti
* Pre: l'utente ha richiesto l'annullamento della selezione della lista dei documenti contabili
* che aveva precedentemente selezioanto per riportare all'esercizio successivo
* Post: il sistema cancella dalla tabella VSX_CHIUSURA gli elementi inseriti fino a quel momento a fronte del pg_call corrente
* @param userContext UserContext
* @param doc V_obb_acc_xxxBulk con il pg_call corrente della VSX_CHIUSURA
*/
public void clearSelectionPerRiportaAvanti(it.cnr.jada.UserContext userContext, V_obb_acc_xxxBulk doc) throws it.cnr.jada.comp.ComponentException
{
clearSelection( userContext, doc );
}
/*
* Name: annullamento selezione per riporta indietro
* Pre: l'utente ha richiesto l'annullamento della selezione della lista dei documenti contabili
* che aveva precedentemente selezionato per riportare indietro dall'esercizio successivo
* Post: il sistema cancella dalla tabella VSX_CHIUSURA gli elementi inseriti fino a quel momento a fronte del pg_call corrente
* @param userContext UserContext
* @param doc V_obb_acc_xxxBulk con il pg_call corrente della VSX_CHIUSURA
*/
public void clearSelectionPerRiportaIndietro(it.cnr.jada.UserContext userContext, V_obb_acc_xxxBulk doc) throws it.cnr.jada.comp.ComponentException
{
clearSelection( userContext, doc );
}
/*
* Name: eliminazione di un doc.contabile della VSC_CHIUSURA
* Pre: l'utente ha deselezionato un doc. contabile precedentemente selezionato e che era stato inserito nella VSX_CHIUSRA
* Post: il sistema cancella un record dalla tabella VSX_CHIUSURA
* @param userContext UserContext
* @param pg_call Long il pg_call corrente della VSX_CHIUSURA
* @param doc V_obb_acc_xxxBulk con la chiave del doc. contabile da eliminare
*/
protected void eliminaVsx(UserContext userContext, Long pg_call, V_obb_acc_xxxBulk doc ) throws ComponentException
{
try
{
LoggableStatement ps = new LoggableStatement(getConnection( userContext),
"DELETE FROM " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"VSX_CHIUSURA " +
"WHERE PG_CALL = ? AND " +
"CD_CDS = ? AND " +
"ESERCIZIO = ? AND " +
"ESERCIZIO_ORI_ACC_OBB = ? AND " +
"PG_ACC_OBB = ? AND " +
"TI_GESTIONE = ? ",true ,this.getClass());
try
{
ps.setObject( 1, pg_call);
ps.setString( 2, doc.getCd_cds());
ps.setObject( 3, doc.getEsercizio());
ps.setObject( 4, doc.getEsercizio_ori_acc_obb());
ps.setObject( 5, doc.getPg_acc_obb());
ps.setString( 6, doc.getTi_gestione());
// ps.setObject( 6, doc.getPg_ver_rec());
ps.executeUpdate();
}
finally
{
try{ps.close();}catch( java.sql.SQLException e ){};
}
}
catch (SQLException e )
{
throw handleException( e );
}
}
/*
* Name: identificazione dell'ultimo PAR_NUM
* Pre: il sistema deve inserire dei reocord nella tabella VSX_CHIUSURA
* Post: il sistema identifica l'ultimo PAR_NUM inserito per un certo PG_CALL
* @param userContext UserContext
* @param pg_call Long il pg_call corrente della VSX_CHIUSURA
* @return Integer l'ultimo par_num inserito in VSX_CHIUSURA per il pg_call specificato
*/
protected Integer getLast_par_num(UserContext userContext, Long pg_call) throws ComponentException
{
try
{
LoggableStatement ps = new LoggableStatement(getConnection( userContext),
"SELECT PAR_NUM FROM " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"VSX_CHIUSURA " +
"WHERE PG_CALL = ? AND " +
"PAR_NUM = ( SELECT MAX(PAR_NUM) " +
"FROM " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"VSX_CHIUSURA " +
"WHERE PG_CALL = ? ) " +
"FOR UPDATE NOWAIT",true,this.getClass());
try
{
ps.setObject( 1, pg_call);
ps.setObject( 2, pg_call);
ResultSet rs = ps.executeQuery();
try
{
if ( rs.next() )
return new Integer( rs.getInt(1) + 1) ;
else
return new Integer( 1 ) ;
}
finally
{
try{rs.close();}catch( java.sql.SQLException e ){};
}
}
finally
{
try{ps.close();}catch( java.sql.SQLException e ){};
}
}
catch (SQLException e )
{
throw handleException( e );
}
}
/*
* Name: identificazione di un nuovo PG_CALL
* Pre: il sistema deve inserire dei reocord nella tabella VSX_CHIUSURA
* Post: il sistema identifica un nuovo PG_CALL da usare nell'inserimento dei record nella tabella VSX_CHIUSURA
* @param userContext UserContext
* @return Long il pg_call da usare come chiave della VSX_CHIUSURA
*/
protected Long getPg_call(UserContext userContext) throws ComponentException
{
LoggableStatement cs = null;
Long pg = null;
try
{
try {
cs = new LoggableStatement(getConnection(userContext),
"{ ? = call " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"IBMUTL020.vsx_get_pg_call() }",false,this.getClass());
cs.registerOutParameter( 1, java.sql.Types.NUMERIC);
cs.executeQuery();
pg = new Long(cs.getLong(1));
} catch (Throwable e) {
throw handleException(e);
} finally {
if (cs != null) cs.close();
}
} catch (java.sql.SQLException ex) {
throw handleException(ex);
}
if (pg == null)
throw new it.cnr.jada.comp.ApplicationException("Impossibile ottenere un progressivo valido per la vista VSX_CHIUSURA!");
return pg;
}
/*
* Name: inzializzazione della selezione
* Pre: l'utente ha richiesto la visualizzazione di documenti contabili che soddisfano certi criteri di ricerca
* Post: il sistema inzializza un nuovo PG_CALL da usare successivamente nell'inserimento dei record nella tabella VSX_CHIUSURA
* @param userContext UserContext
* @param doc V_obb_acc_xxxBulk da inizializzare con il pg_call
* @return doc V_obb_acc_xxxBulk inizializzato con il pg_call
*/
protected V_obb_acc_xxxBulk initializeSelection(UserContext userContext, V_obb_acc_xxxBulk doc) throws ComponentException
{
try
{
// setSavepoint(userContext,"VSX_CHIUSURA");
doc.setPg_call( getPg_call(userContext));
return doc;
} catch(Exception e) {
throw handleException(e);
}
}
/*
* Name: inzializzazione della selezione per annullamento
* Pre: l'utente ha richiesto la visualizzazione di documenti contabili che soddisfano certi criteri di ricerca per effettuare un annullamento
* Post: il sistema inzializza un nuovo PG_CALL da usare successivamente nell'inserimento dei record nella tabella VSX_CHIUSURA
* @param userContext UserContext
* @param doc V_obb_acc_xxxBulk da inizializzare con il pg_call
* @return doc V_obb_acc_xxxBulk inizializzato con il pg_call
*/
public V_obb_acc_xxxBulk initializeSelectionPerAnnullamento(UserContext userContext, V_obb_acc_xxxBulk doc) throws ComponentException
{
try
{
return initializeSelection(userContext,doc);
} catch(Exception e) {
throw handleException(e);
}
}
/*
* Name: inzializzazione della selezione per riporta avanti
* Pre: l'utente ha richiesto la visualizzazione di documenti contabili che soddisfano certi criteri di ricerca per effettuare il loro riporto all'esercizio
* successivo
* Post: il sistema inzializza un nuovo PG_CALL da usare successivamente nell'inserimento dei record nella tabella VSX_CHIUSURA
* @param userContext UserContext
* @param doc V_obb_acc_xxxBulk da inizializzare con il pg_call
* @return doc V_obb_acc_xxxBulk inizializzato con il pg_call
*/
public V_obb_acc_xxxBulk initializeSelectionPerRiportaAvanti(UserContext userContext, V_obb_acc_xxxBulk doc) throws ComponentException
{
try
{
return initializeSelection(userContext,doc);
} catch(Exception e) {
throw handleException(e);
}
}
/*
* Name: inzializzazione della selezione per riporta indietro
* Pre: l'utente ha richiesto la visualizzazione di documenti contabili che soddisfano certi criteri di ricerca per effettuare il loro riporto
* indietro dall'esercizio successivo
* Post: il sistema inzializza un nuovo PG_CALL da usare successivamente nell'inserimento dei record nella tabella VSX_CHIUSURA
* @param userContext UserContext
* @param doc V_obb_acc_xxxBulk da inizializzare con il pg_call
* @return doc V_obb_acc_xxxBulk inizializzato con il pg_call
*/
public V_obb_acc_xxxBulk initializeSelectionPerRiportaIndietro(UserContext userContext, V_obb_acc_xxxBulk doc) throws ComponentException
{
try
{
return initializeSelection(userContext,doc);
} catch(Exception e) {
throw handleException(e);
}
}
/*
Name: esercizio non aperto
Pre: l'esercizio di scrivani per il cds di scrivania non è in stato aperto
Post: il sistema segnala all'utente l'impossibilità di richiamare le funzioni di annullamento, riporto ad esercizio
successivo e riporto da esercizio successivo
Name: esercizio aperto
Pre: l'esercizio di scrivani per il cds di scrivania è in stato aperto
Post: il sistema inizializza il bulk V_obb_acc_xxxBulk con alcuni dati utilizzati successivamente dalle funzionalità
di chiususra
*/
public OggettoBulk inizializzaBulkPerRicerca(UserContext userContext,OggettoBulk bulk) throws ComponentException
{
try
{
// initializeKeysAndOptionsInto(userContext,bulk);
EnteBulk ente = (EnteBulk) getHome( userContext, EnteBulk.class).findAll().get(0);
((V_obb_acc_xxxBulk)bulk).setCd_cds_ente( ente.getCd_unita_organizzativa());
((V_obb_acc_xxxBulk)bulk).setCd_cds_scrivania( ((CNRUserContext)userContext).getCd_cds());
verificaStatoEsercizio( userContext, ((CNRUserContext)userContext).getEsercizio(), ((CNRUserContext)userContext).getCd_cds() );
verificaAbilitazioneRibaltamento( userContext);
return bulk;
} catch(Throwable e) {
throw handleException(e);
}
}
/*
* Name: inserimento di un doc.contabile della VSX_CHIUSURA
* Pre: l'utente ha selezionato un doc. contabile
* Post: il sistema inserisce un record dalla tabella VSX_CHIUSURA relativo al doc. contabile da elaborare
* @param userContext UserContext
* @param ricerca V_obb_acc_xxxBulk con il pg_call ed eventualmente la nuova voce_f o il nuovo elemento_voce
* @param doc V_obb_acc_xxxBulk con la chiave del documento contabile da inserire nella VSX_CHIUSURA
* @param last_par_num Integer con l'ultimo valore di par_num della VSX_CHIUSURA
* @param proc_name String con il nome della stored procedure da inserire nella VSX_CHIUSURA
* @param esercizio_ribaltamento Integer esercizio del ribaltamento
* @return Integer l'ultimo par_num inserito per il pg_call corrente
*/
protected Integer inserisciVsx(UserContext userContext, V_obb_acc_xxxBulk ricerca, V_obb_acc_xxxBulk doc,Integer last_par_num, String proc_name, Integer esercizio_ribaltamento ) throws ComponentException
{
try
{
LoggableStatement ps =new LoggableStatement( getConnection( userContext),
"INSERT INTO " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"VSX_CHIUSURA ( " +
"PG_CALL, " +
"PAR_NUM, " +
"TI_GESTIONE, " +
"ESERCIZIO, " +
"CD_CDS, " +
"CD_CDS_ORIGINE, " +
"ESERCIZIO_ORI_ACC_OBB, " +
"PG_ACC_OBB, " +
"TI_APPARTENENZA, " +
"CD_ELEMENTO_VOCE, " +
"CD_VOCE, " +
"PG_VER_REC_DOC, " +
"PROC_NAME, " +
"PG_VER_REC, " +
"UTUV, " +
"UTCR, " +
"DACR, " +
"DUVA, " +
"MESSAGETOUSER, " +
"ESERCIZIO_RIBALTAMENTO ) " +
"VALUES ( ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ? )" ,
true,this.getClass());
try
{
ps.setObject( 1, ricerca.getPg_call());
ps.setObject( 2, last_par_num);
ps.setString( 3, doc.getTi_gestione());
ps.setObject( 4, doc.getEsercizio());
ps.setString( 5, doc.getCd_cds());
ps.setString( 6, doc.getCd_cds_origine());
ps.setObject( 7, doc.getEsercizio_ori_acc_obb());
ps.setObject( 8, doc.getPg_acc_obb());
if ( ricerca.getNuova_voce().getCd_voce() != null )
{
ps.setString( 9, ricerca.getNuova_voce().getTi_appartenenza());
ps.setString( 10, null);
ps.setString( 11, ricerca.getNuova_voce().getCd_voce());
}
else if ( ricerca.getNuovo_ev().getCd_elemento_voce() != null )
{
ps.setString( 9, ricerca.getNuovo_ev().getTi_appartenenza());
ps.setString( 10, ricerca.getNuovo_ev().getCd_elemento_voce());
ps.setString( 11, null);
}
else
{
ps.setString( 9, null);
ps.setString( 10, null);
ps.setString( 11, null);
}
ps.setObject( 12, doc.getPg_ver_rec());
ps.setString( 13, proc_name);
ps.setObject( 14, new Integer(1));
ps.setString( 15, userContext.getUser());
ps.setString( 16, userContext.getUser());
Timestamp now = it.cnr.jada.util.ejb.EJBCommonServices.getServerTimestamp();
ps.setTimestamp(17, now );
ps.setTimestamp(18, now );
ps.setString(19, null );
ps.setObject(20, esercizio_ribaltamento);
ps.executeUpdate();
last_par_num = new Integer(last_par_num.intValue() + 1);
return last_par_num;
}
finally
{
try{ps.close();}catch( java.sql.SQLException e ){};
}
}
catch (Exception e )
{
throw handleException( e );
}
}
/*
* Name: inserimento di tutti i doc.contabile della VSX_CHIUSURA
* Pre: l'utente ha effettuato una ricerca che ha dato come risultato una lista di documenti contabili
* l'utente ha selezionato di voler agire su tutti i documenti contabili proposti dal sistema
* Post: il sistema inserisce tutti i record relativi alla lista dei doc.contabili tramite
* una INSERT/SELECT
* @param userContext UserContext
* @param doc V_obb_acc_xxxBulk con l'eventuale nuova voce_f o il nuovo elemento_voce
* @param proc_name String con il nome della stored procedure da inserire nella VSX_CHIUSURA
* @param esercizio_ribaltamento Integer esercizio del ribaltamento
* @param sqlB SQLBuilder clausole SQL che permettono di identificare i doc.contabili da inserire in
*/
public void selectAll(UserContext userContext, V_obb_acc_xxxBulk doc, String proc_name, Integer es_ribaltamento, SQLBuilder sqlB ) throws ComponentException
{
try
{
String insertStmt = "INSERT INTO " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"VSX_CHIUSURA ( " +
"PG_CALL, " +
"PAR_NUM, " +
"TI_GESTIONE, " +
"ESERCIZIO, " +
"CD_CDS, " +
"CD_CDS_ORIGINE, " +
"ESERCIZIO_ORI_ACC_OBB, " +
"PG_ACC_OBB, " +
"PROC_NAME, " +
"PG_VER_REC_DOC, " +
"PG_VER_REC, " +
"UTUV, " +
"UTCR, " +
"DACR, " +
"DUVA, " +
"MESSAGETOUSER, " +
"ESERCIZIO_RIBALTAMENTO, " +
"TI_APPARTENENZA, " +
"CD_ELEMENTO_VOCE, " +
"CD_VOCE " +
") ";
SQLBuilder sql = sqlB;
// select 999, rownum, ti_gestione, esercizio, cd_cds, pg_acc_obb, 'XXXX', pg_ver_rec, 'TEST', 'TEST', sysdate, sysdate, null
String header = "SELECT " + doc.getPg_call().toString() +
", rownum, ti_gestione, esercizio, cd_cds, cd_cds_origine, esercizio_ori_acc_obb, pg_acc_obb, '" +
proc_name +
"', pg_ver_rec, " +
"1, '" +
((CNRUserContext)userContext).getUser() +
"', '" +
((CNRUserContext)userContext).getUser() +
"', sysdate, sysdate, null, " +
es_ribaltamento + ", ";
if ( doc.getNuova_voce().getCd_voce() != null )
header = header + " '" +
doc.getNuova_voce().getTi_appartenenza() + "', null, '" +
doc.getNuova_voce().getCd_voce() + "'";
else if ( doc.getNuovo_ev().getCd_elemento_voce() != null )
header = header + " '" +
doc.getNuovo_ev().getTi_appartenenza() + "', '" +
doc.getNuovo_ev().getCd_elemento_voce() + "', null";
else
header = header + " null, null, null ";
sql.setHeader( header );
String result = insertStmt.concat( sql.getStatement());
sql.setStatement( result);
LoggableStatement ps = sql.prepareStatement(getConnection(userContext));
try
{
ps.executeUpdate();
}
finally
{
try{ps.close();}catch( java.sql.SQLException e ){};
}
}
catch(Exception e)
{
throw handleException(e);
}
}
/*
* Name: inserimento di tutti i doc.contabile della VSX_CHIUSURA per annullamento
* Pre: l'utente ha effettuato una ricerca che ha dato come risultato una lista di documenti contabili potenzialmente annullabili
* l'utente ha selezionato di voler agire su tutti i documenti contabili proposti dal sistema
* Post: il sistema inserisce tutti i record relativi alla lista dei doc.contabili tramite
* una INSERT/SELECT
* @param userContext UserContext
* @param doc V_obb_acc_xxxBulk con le clausole specificate dall'utente
*/
public void selectAllPerAnnullamento(UserContext userContext, V_obb_acc_xxxBulk doc ) throws ComponentException
{
try
{
selectAll( userContext, doc, PROC_NAME_ANNULLAMENTO, ((CNRUserContext)userContext).getEsercizio(), selectPerAnnullamento( userContext, doc));
}
catch(Exception e)
{
throw handleException(e);
}
/*
try
{
Query sql = selectPerAnnullamento( userContext, doc );
V_mandato_reversaleHome home = (V_mandato_reversaleHome) getHome( userContext, V_mandato_reversaleBulk.class );
SQLBroker broker = home.createBroker( sql );
Long last_pg_dettaglio = ((Distinta_cassiere_detHome)getHome( userContext, Distinta_cassiere_detBulk.class)).getUltimoPg_Dettaglio( userContext, distinta );
V_mandato_reversaleBulk docContabile;
while ( broker.next() )
{
docContabile = (V_mandato_reversaleBulk) broker.fetch(V_mandato_reversaleBulk.class );
last_pg_dettaglio = inserisciDettaglioDistinta( userContext, distinta, docContabile, last_pg_dettaglio );
last_pg_dettaglio = aggiungiMandatiEReversaliCollegati( userContext, distinta, docContabile, last_pg_dettaglio ) ;
}
broker.close();
*/
/*
String schema = it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema();
String user = it.cnr.contab.utenze00.bp.CNRUserContext.getUser(userContext);
java.sql.Timestamp dacr = new java.sql.Timestamp(System.currentTimeMillis());
java.sql.PreparedStatement ps = getConnection(userContext).prepareStatement(
"INSERT INTO "+schema+"ASS_TIPO_LA_CDR ( CD_CENTRO_RESPONSABILITA, CD_TIPO_LINEA_ATTIVITA, UTCR, DUVA, UTUV, DACR, PG_VER_REC ) SELECT CD_CENTRO_RESPONSABILITA, ?, ?, ?, ?, ?, 1 FROM "+schema+"V_CDR_VALIDO WHERE ESERCIZIO = ? AND NOT EXISTS ( SELECT 1 FROM "+schema+"ASS_TIPO_LA_CDR WHERE V_CDR_VALIDO.CD_CENTRO_RESPONSABILITA = ASS_TIPO_LA_CDR.CD_CENTRO_RESPONSABILITA AND ASS_TIPO_LA_CDR.CD_TIPO_LINEA_ATTIVITA = ? ) ");
ps.setString(1,dsitinta.getCd_tipo_linea_attivita()); // CD_TIPO_LINEA_ATTIVITA
ps.setString(2,user); // UTCR
ps.setTimestamp(3,dacr); // DUVA
ps.setString(4,user); // UTUV
ps.setTimestamp(5,dacr); // DACR
ps.setInt(6,it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(userContext).intValue()); // ESERCIZIO
ps.setString(7,tipo_la.getCd_tipo_linea_attivita()); // CD_TIPO_LINEA_ATTIVITA
LoggableStatement.execute(ps);
try{ps.close();}catch( java.sql.SQLException e ){};
}
catch(Exception e)
{
throw handleException(e);
}
*/
}
/*
* Name: inserimento di tutti i doc.contabile della VSX_CHIUSURA per riporta avanti
* Pre: l'utente ha effettuato una ricerca che ha dato come risultato una lista di documenti contabili potenzialmente
* riportabili all'esercizio successivo
* l'utente ha selezionato di voler agire su tutti i documenti contabili proposti dal sistema
* Post: il sistema inserisce tutti i record relativi alla lista dei doc.contabili tramite
* una INSERT/SELECT
* @param userContext UserContext
* @param doc V_obb_acc_xxxBulk con le clausole specificate dall'utente
*/
public void selectAllPerRiportaAvanti(UserContext userContext, V_obb_acc_xxxBulk doc ) throws ComponentException
{
try
{
selectAll( userContext, doc, PROC_NAME_RIPORTA_AVANTI, new Integer(((CNRUserContext)userContext).getEsercizio().intValue() + 1), selectPerRiportaAvanti( userContext, doc));
}
catch(Exception e)
{
throw handleException(e);
}
}
/*
* Name: inserimento di tutti i doc.contabile della VSX_CHIUSURA per riporta avanti evoluto
* Pre: l'utente ha effettuato una ricerca che ha dato come risultato una lista di documenti contabili potenzialmente
* riportabili all'esercizio successivo con cambio di elemento_voce o di voce_f
* l'utente ha selezionato un elemento voce o una voce_f
* l'utente ha selezionato di voler agire su tutti i documenti contabili proposti dal sistema
* Post: il sistema inserisce tutti i record relativi alla lista dei doc.contabili tramite
* una INSERT/SELECT
* @param userContext UserContext
* @param doc V_obb_acc_xxxBulk con le clausole specificate dall'utente
*/
public void selectAllPerRiportaAvantiEvoluto(UserContext userContext, V_obb_acc_xxxBulk doc ) throws ComponentException
{
try
{
selectAll( userContext, doc, PROC_NAME_RIPORTA_AVANTI_EVOLUTO, new Integer(((CNRUserContext)userContext).getEsercizio().intValue() + 1), selectPerRiportaAvanti( userContext, doc));
}
catch(Exception e)
{
throw handleException(e);
}
}
/*
* Name: inserimento di tutti i doc.contabile della VSX_CHIUSURA per riporta indietro
* Pre: l'utente ha effettuato una ricerca che ha dato come risultato una lista di documenti contabili potenzialmente
* riportabili indietro dall'esercizio successivo
* l'utente ha selezionato di voler agire su tutti i documenti contabili proposti dal sistema
* Post: il sistema inserisce tutti i record relativi alla lista dei doc.contabili tramite
* una INSERT/SELECT
* @param userContext UserContext
* @param doc V_obb_acc_xxxBulk con le clausole specificate dall'utente
*/
public void selectAllPerRiportaIndietro(UserContext userContext, V_obb_acc_xxxBulk doc ) throws ComponentException
{
try
{
selectAll( userContext, doc, PROC_NAME_RIPORTA_INDIETRO, new Integer(((CNRUserContext)userContext).getEsercizio().intValue() - 1),selectPerRiportaIndietro(userContext, doc));
}
catch(Exception e)
{
throw handleException(e);
}
}
/*
* Name: selezione elemento voce per Ente
* Pre: l'utente ha in scrivania l'ente
* l'utente ha richiesto la selezione di un elemento_voce
* Post: il sistema propone tutti i CAPITOLI o le CATEGORIE di SPESA del CNR per l'esercizio di scrivania
* Name: selezione elemento voce per Cds - caso 1
* Pre: l'utente ha in scrivania un cds diverso dall'Ente
* l'utente ha richiesto la selezione di docuemnti contabili emessi nel bilancio dell'ente
* l'utente ha richiesto la selezione di un elemento_voce
* Post: il sistema propone tutti i CAPITOLI di ENTRATA o SPESA del CNR per l'esercizio di scrivania
* Name: selezione elemento voce per Cds - caso 2
* Pre: l'utente ha in scrivania un cds diverso dall'Ente
* l'utente ha richiesto la selezione di docuemnti contabili emessi nel bilancio del Cds
* l'utente ha richiesto la selezione di un elemento_voce
* Post: il sistema propone tutti i CAPITOLI di ENTRATA o SPESA del CDS per l'esercizio di scrivania
* @param userContext UserContext
* @param docCont V_obb_acc_xxxBulk con le clausole specificate dall'utente
* @param ev Elemento_voceBulk elemento voce da ricercare
* @param clauses CompoundFindClause clausole specificate dall'utente
* @return SQLBuilder con le clausole per eseguire la ricerca sull'elemento voce
*/
public SQLBuilder selectElemento_voceByClause(UserContext userContext, V_obb_acc_xxxBulk docCont, it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk ev, CompoundFindClause clauses ) throws it.cnr.jada.comp.ComponentException
{
SQLBuilder sql = getHome( userContext, it.cnr.contab.config00.pdcfin.bulk.Elemento_voceBulk.class ).createSQLBuilder();
sql.addClause( clauses );
sql.addSQLClause( "AND", "esercizio", sql.EQUALS, ((CNRUserContext)userContext).getEsercizio());
if ( docCont.getFl_ente().booleanValue() || docCont.isEnteInScrivania())
sql.addSQLClause( "AND", "ti_appartenenza", sql.EQUALS, it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome.APPARTENENZA_CNR);
else
sql.addSQLClause( "AND", "ti_appartenenza", sql.EQUALS, it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome.APPARTENENZA_CDS);
if ( docCont.isEnteInScrivania() )
sql.addSQLClause( "AND", "ti_gestione", sql.EQUALS, it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome.GESTIONE_SPESE);
if ( docCont.getTi_gestione() != null )
sql.addSQLClause( "AND", "ti_gestione", sql.EQUALS, docCont.getTi_gestione());
//spese CNR --> CAPITOLI/CATEGORIE
//altri --> CAPITOLI
if (docCont.isEnteInScrivania() )
{
sql.openParenthesis( "AND");
sql.addSQLClause( "AND", "ti_elemento_voce", sql.EQUALS, it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome.TIPO_CAPITOLO);
sql.addSQLClause( "OR", "ti_elemento_voce", sql.EQUALS, it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome.TIPO_CATEGORIA);
sql.closeParenthesis();
}
else
sql.addSQLClause( "AND", "ti_elemento_voce", sql.EQUALS, it.cnr.contab.config00.pdcfin.bulk.Elemento_voceHome.TIPO_CAPITOLO);
return sql;
}
/* funzione di riporta con cambio di capitolo */
/* selezionata solo nel caso di impegni CNR non su partita di giro */
/*
* Name: selezione voce_f per Ente
* Pre: l'utente ha in scrivania l'ente
* l'utente ha richiesto la funzione di riporta con cambio di capitolo
* l'utente ha richiesto la visualizzazione dei nuovi capitoli validi
* Post: il sistema propone tutti i CAPITOLI di spesa del CNR PARTE 1 definiti per l'esercizio+1
* @param userContext UserContext
* @param docCont V_obb_acc_xxxBulk con le clausole specificate dall'utente
* @param nuova_voce Voce_fBulk voce da ricercare
* @param clauses CompoundFindClause clausole specificate dall'utente
* @return SQLBuilder con le clausole per eseguire la ricerca sulla nuova voce
*/
public SQLBuilder selectNuova_voceByClause(UserContext userContext, V_obb_acc_xxxBulk docCont, Voce_fBulk nuova_voce, CompoundFindClause clauses ) throws it.cnr.jada.comp.ComponentException
{
SQLBuilder sql = getHome( userContext, Voce_fBulk.class ).createSQLBuilder();
sql.addClause( clauses );
sql.addSQLClause( "AND", "esercizio", sql.EQUALS, new Integer(((CNRUserContext)userContext).getEsercizio().intValue() + 1));
sql.addSQLClause( "AND", "fl_mastrino", sql.EQUALS, "Y");
sql.addSQLClause( "AND", "ti_appartenenza", sql.EQUALS, Elemento_voceHome.APPARTENENZA_CNR);
sql.addSQLClause( "AND", "ti_gestione", sql.EQUALS, Elemento_voceHome.GESTIONE_SPESE);
sql.addSQLClause( "AND", "cd_parte", sql.EQUALS, Elemento_voceHome.PARTE_1);
return sql;
}
/* funzione di riporta con cambio di elemento */
/* selezionata per tutti i doc.cont. esclusi gli impegni CNR non su partita di giro */
/*
Name: errore gestione
Pre: l'utente ha in scrivania un cds diverso dall'Ente
l'utente ha richiesto la visualizzazione dei nuovi capitoli validi
l'utente non ha specificato la gestione (ENTRATA/SPESA)
Post: il sistema emette un messahhio di errore per indicare che la gestione è un campo mandatorio
Name: selezione elemento voce - caso 1
Pre: l'utente ha in scrivania un cds diverso dall'Ente
l'utente ha richiesto la selezione di docuemnti contabili emessi nel bilancio dell'ente (accertamenti o partite di giro)
l'utente ha richiesto la visualizzazione dei nuovi capitoli validi
Post: il sistema propone tutti i CAPITOLI di ENTRATA o SPESA del CNR per l'esercizio successivo a quello di scrivania
Name: selezione elemento voce - caso 2
Pre: l'utente ha in scrivania un cds diverso dall'Ente
l'utente ha richiesto la selezione di docuemnti contabili del bilancio del Cds (obbligazioni o partite di giro)
l'utente ha richiesto la visualizzazione dei nuovi capitoli validi
Post: il sistema propone tutti i CAPITOLI di ENTRATA o SPESA del CDS per l'esercizio successivo a quello di scrivania
* @param userContext UserContext
* @param docCont V_obb_acc_xxxBulk con le clausole specificate dall'utente
* @param nuovo_ev Elemento_voceBulk elemento voce da ricercare
* @param clauses CompoundFindClause clausole specificate dall'utente
* @return SQLBuilder con le clausole per eseguire la ricerca sull'elemento voce
*/
public SQLBuilder selectNuovo_evByClause(UserContext userContext, V_obb_acc_xxxBulk docCont, Elemento_voceBulk nuovo_ev, CompoundFindClause clauses ) throws it.cnr.jada.comp.ComponentException
{
SQLBuilder sql = getHome( userContext, Elemento_voceBulk.class ).createSQLBuilder();
sql.addClause( clauses );
sql.addSQLClause( "AND", "esercizio", sql.EQUALS, new Integer(((CNRUserContext)userContext).getEsercizio().intValue() + 1));
sql.addSQLClause( "AND", "ti_elemento_voce", sql.EQUALS, Elemento_voceHome.TIPO_CAPITOLO);
if ( docCont.getFl_ente().booleanValue() )
sql.addSQLClause( "AND", "ti_appartenenza", sql.EQUALS, Elemento_voceHome.APPARTENENZA_CNR);
else
sql.addSQLClause( "AND", "ti_appartenenza", sql.EQUALS, Elemento_voceHome.APPARTENENZA_CDS);
if ( docCont.getTi_gestione() == null )
//se non ho il 999 in scrivania l'utente deve selezionare un tipo gestione
throw new ApplicationException( "E' necessario selezionare il tipo di gestione:Entrata o Spesa");
else
sql.addSQLClause( "AND", "ti_gestione", sql.EQUALS, docCont.getTi_gestione());
return sql;
}
/*
Name: ricerca per annullamento Ente
Pre: l'utente ha in scrivania il Cds dell'Ente
l'utente ha richiesto la lista dei documenti contabili che possono essere annullati
Post: il sistema restituisce le clausole per identificare i documenti contabili presenti nella vista V_OBB_ACC_ANNULLA
per l'esercizio di scrivania emessi dall'UO dell'Ente e di tipo IMPEGNO RESIDUO
Name: ricerca per annullamento Cds
Pre: l'utente ha in scrivania il Cds diverso dall'Ente
l'utente ha richiesto la lista dei documenti contabili che possono essere annullati
Post: il sistema restituisce le clausole per identificare i documenti contabili presenti nella vista V_OBB_ACC_ANNULLA
per l'esercizio di scrivania emessi dall'UO di scrivania sia nel proprio bilancio che nel bilancio dell'Ente
* @param userContext UserContext
* @param docCont V_obb_acc_xxxBulk con le clausole specificate dall'utente
* @return SQLBuilder con le clausole per eseguire la ricerca sulla V_OBB_ACC_ANNULLA
*/
protected SQLBuilder selectPerAnnullamento(UserContext userContext, V_obb_acc_xxxBulk docCont ) throws it.cnr.jada.comp.ComponentException
{
SQLBuilder sql = getHome( userContext, V_obb_acc_xxxBulk.class, "V_OBB_ACC_ANNULLA" ).createSQLBuilder();
sql.addSQLClause( "AND", "esercizio", sql.EQUALS, ((CNRUserContext)userContext).getEsercizio());
sql.addSQLClause( "AND", "cd_uo_origine", sql.EQUALS, ((CNRUserContext)userContext).getCd_unita_organizzativa());
if ( docCont.isEnteInScrivania() )
//solo gli impegni residui possono essere annullati
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.EQUALS, Numerazione_doc_contBulk.TIPO_IMP_RES);
if ( docCont.getFl_ente().booleanValue() )
{//se ho il cds in scrivania e cerco doc x l'ente
sql.addSQLClause( "AND", "cd_cds", sql.EQUALS, docCont.getCd_cds_ente());
if ( docCont.getTi_competenza_residuo() != null )
{
if ( docCont.getTi_competenza_residuo().equals( docCont.TIPO_RESIDUO ))
// solo ACR_RES (gli IMP_RES vengono gestiti dal CNR)
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.EQUALS, Numerazione_doc_contBulk.TIPO_ACR_RES);
else
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.NOT_EQUALS, Numerazione_doc_contBulk.TIPO_ACR_RES);
}
}
else
sql.addSQLClause( "AND", "cd_cds", sql.EQUALS, ((CNRUserContext)userContext).getCd_cds());
if ( docCont.getTi_gestione() != null )
sql.addSQLClause( "AND", "ti_gestione", sql.EQUALS, docCont.getTi_gestione());
if ( docCont.getIm_acc_obb() != null )
sql.addSQLClause( "AND", "im_acc_obb", sql.EQUALS, docCont.getIm_acc_obb());
if ( docCont.getCd_terzo() != null )
sql.addSQLClause( "AND", "cd_terzo", sql.EQUALS, docCont.getCd_terzo());
if ( docCont.getCd_elemento_voce() != null )
sql.addSQLClause( "AND", "cd_elemento_voce", sql.EQUALS, docCont.getCd_elemento_voce());
if ( docCont.getPg_doc_da() != null )
sql.addSQLClause( "AND", "pg_acc_obb", sql.GREATER_EQUALS, docCont.getPg_doc_da());
if ( docCont.getPg_doc_a() != null )
sql.addSQLClause( "AND", "pg_acc_obb", sql.LESS_EQUALS, docCont.getPg_doc_a());
return sql;
/*
sql.addSQLClause( "AND", "esercizio", sql.EQUALS, ((CNRUserContext)userContext).getEsercizio());
sql.addSQLClause( "AND", "cd_uo_origine", sql.EQUALS, ((CNRUserContext)userContext).getCd_unita_organizzativa());
sql.addSQLClause( "AND", "im_acc_obb", sql.GREATER, new BigDecimal(0));
sql.addSQLClause( "AND", "im_associato_doc_amm", sql.EQUALS, new BigDecimal(0));
sql.addSQLClause( "AND", "riportato", sql.EQUALS, "N");
// sql.addSQLClause( "AND", "dt_cancellazione", sql.ISNULL, null); la vista già filtra i cancellati
if ( docCont.isEnteInScrivania() )
//solo gli impegni residui possono essere annullati
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.EQUALS, Numerazione_doc_contBulk.TIPO_IMP_RES);
if ( docCont.getFl_ente().booleanValue() )
{//se ho il cds in scrivania e cerco doc x l'ente
sql.addSQLClause( "AND", "cd_cds", sql.EQUALS, docCont.getCd_cds_ente());
if ( docCont.getTi_competenza_residuo() != null )
{
if ( docCont.getTi_competenza_residuo().equals( docCont.TIPO_RESIDUO ))
// solo ACR_RES (gli IMP_RES vengono gestiti dal CNR)
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.EQUALS, Numerazione_doc_contBulk.TIPO_ACR_RES);
else
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.NOT_EQUALS, Numerazione_doc_contBulk.TIPO_ACR_RES);
}
}
else
sql.addSQLClause( "AND", "cd_cds", sql.EQUALS, ((CNRUserContext)userContext).getCd_cds());
if ( docCont.getTi_gestione() != null )
sql.addSQLClause( "AND", "ti_gestione", sql.EQUALS, docCont.getTi_gestione());
if ( docCont.getIm_acc_obb() != null )
sql.addSQLClause( "AND", "im_acc_obb", sql.EQUALS, docCont.getIm_acc_obb());
if ( docCont.getCd_terzo() != null )
sql.addSQLClause( "AND", "cd_terzo", sql.EQUALS, docCont.getCd_terzo());
if ( docCont.getCd_elemento_voce() != null )
sql.addSQLClause( "AND", "cd_elemento_voce", sql.EQUALS, docCont.getCd_elemento_voce());
if ( docCont.getPg_doc_da() != null )
sql.addSQLClause( "AND", "pg_acc_obb", sql.GREATER_EQUALS, docCont.getPg_doc_da());
if ( docCont.getPg_doc_a() != null )
sql.addSQLClause( "AND", "pg_acc_obb", sql.LESS_EQUALS, docCont.getPg_doc_a());
// per le partite di giro viene proposta solo quella di origine
sql.addSQLClause( "AND", "(TI_ORIGINE IS NULL OR TI_ORIGINE = TI_GESTIONE) ");
return sql;
*/
}
/*
Name: ricerca per riporta avanti Ente
Pre: l'utente ha in scrivania il Cds dell'Ente
l'utente ha richiesto la lista dei documenti contabili che possono essere riportati all'esercizio successivo
Post: il sistema restituisce le clausole per identificare i documenti contabili presenti nella vista V_OBB_ACC_RIPORTA
per l'esercizio di scrivania emessi dall'UO dell'Ente (tipo IMPEGNO e/o IMPEGNO RESIDUO)
Name: ricerca per riporta avanti Cds
Pre: l'utente ha in scrivania un Cds diverso dall'Ente
l'utente ha richiesto la lista dei documenti contabili che possono essere riportati all'esercizio successivo
Post: il sistema restituisce le clausole per identificare i documenti contabili presenti nella vista V_OBB_ACC_RIPORTA
per l'esercizio di scrivania emessi dall'UO di scrivania sia per l'Ente (tipo ACCERTAMENTO e/o ACCERTAMENTO RESIDUO)
che per se stesso (tipo OBBLIGAZIONE, OBBLIGAZIONE PGIRO e/o ACCERTAMENTO PGIRO)
* @param userContext UserContext
* @param docCont V_obb_acc_xxxBulk con le clausole specificate dall'utente
* @return SQLBuilder con le clausole per eseguire la ricerca sulla V_OBB_ACC_RIPORTA
*/
protected SQLBuilder selectPerRiportaAvanti(UserContext userContext, V_obb_acc_xxxBulk docCont ) throws it.cnr.jada.comp.ComponentException
{
SQLBuilder sql = getHome( userContext, V_obb_acc_xxxBulk.class, "V_OBB_ACC_RIPORTA" ).createSQLBuilder();
sql.addSQLClause( "AND", "esercizio", sql.EQUALS, ((CNRUserContext)userContext).getEsercizio());
//sql.addSQLClause( "AND", "cd_uo_origine", sql.EQUALS, ((CNRUserContext)userContext).getCd_unita_organizzativa());
sql.addSQLClause( "AND", "cd_cds_origine", sql.EQUALS, ((CNRUserContext)userContext).getCd_cds());
if ( docCont.isEnteInScrivania() )
{
//se ho l'ente in scrivania e cerco dei residui solo --> IMP_RES (ACR_RES sono gestiti dai CDS)
if ( docCont.getTi_competenza_residuo() != null && docCont.getTi_competenza_residuo().equals( docCont.TIPO_RESIDUO ))
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.EQUALS, Numerazione_doc_contBulk.TIPO_IMP_RES);
else if ( docCont.getTi_competenza_residuo() != null && docCont.getTi_competenza_residuo().equals( docCont.TIPO_COMPETENZA ))
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.NOT_EQUALS, Numerazione_doc_contBulk.TIPO_IMP_RES);
}
else if ( docCont.getFl_ente().booleanValue() )
{
sql.addSQLClause( "AND", "cd_cds", sql.EQUALS, docCont.getCd_cds_ente());
if ( docCont.getTi_competenza_residuo() != null )
{ //se ho il cds in scrivania e cerco doc x l'ente
if ( docCont.getTi_competenza_residuo().equals( docCont.TIPO_RESIDUO ))
// solo ACR_RES (gli IMP_RES vengono gestiti dal CNR)
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.EQUALS, Numerazione_doc_contBulk.TIPO_ACR_RES);
else
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.NOT_EQUALS, Numerazione_doc_contBulk.TIPO_ACR_RES);
}
}
//else
// sql.addSQLClause( "AND", "cd_cds_origine", sql.EQUALS, ((CNRUserContext)userContext).getCd_cds());
if ( docCont.getTi_gestione() != null )
sql.addSQLClause( "AND", "ti_gestione", sql.EQUALS, docCont.getTi_gestione());
if ( docCont.getIm_acc_obb() != null )
sql.addSQLClause( "AND", "im_acc_obb", sql.EQUALS, docCont.getIm_acc_obb());
if ( docCont.getCd_terzo() != null )
sql.addSQLClause( "AND", "cd_terzo", sql.EQUALS, docCont.getCd_terzo());
if ( docCont.getCd_elemento_voce() != null )
sql.addSQLClause( "AND", "cd_elemento_voce", sql.EQUALS, docCont.getCd_elemento_voce());
if (docCont.getCd_voce() != null && !docCont.isROCd_voce())
sql.addSQLClause( "AND", "cd_voce", sql.LIKE, docCont.getCd_voce() );
if ( docCont.getPg_doc_da() != null )
sql.addSQLClause( "AND", "pg_acc_obb", sql.GREATER_EQUALS, docCont.getPg_doc_da());
if ( docCont.getPg_doc_a() != null )
sql.addSQLClause( "AND", "pg_acc_obb", sql.LESS_EQUALS, docCont.getPg_doc_a());
return sql;
/*
sql.addSQLClause( "AND", "esercizio", sql.EQUALS, ((CNRUserContext)userContext).getEsercizio());
sql.addSQLClause( "AND", "cd_uo_origine", sql.EQUALS, ((CNRUserContext)userContext).getCd_unita_organizzativa());
sql.addSQLClause( "AND", "im_acc_obb", sql.GREATER, new BigDecimal(0));
sql.addSQLClause( "AND", "riportato", sql.EQUALS, "N");
//non vi siano mandati con stato EMESSO sulle scadenze
sql.addSQLClause( "AND", "im_associato_rev_man = im_riscontrato");
//non sia stata completamente riscontrata
sql.addSQLClause( "AND", "im_acc_obb > im_riscontrato");
// sql.addSQLClause( "AND", "dt_cancellazione", sql.ISNULL, null); la vista già filtra i cancellati
if ( docCont.isEnteInScrivania() )
{
//se ho l'ente in scrivania e cerco dei residui solo --> IMP_RES (ACR_RES sono gestiti dai CDS)
if ( docCont.getTi_competenza_residuo() != null && docCont.getTi_competenza_residuo().equals( docCont.TIPO_RESIDUO ))
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.EQUALS, Numerazione_doc_contBulk.TIPO_IMP_RES);
else if ( docCont.getTi_competenza_residuo() != null && docCont.getTi_competenza_residuo().equals( docCont.TIPO_COMPETENZA ))
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.NOT_EQUALS, Numerazione_doc_contBulk.TIPO_IMP_RES);
}
else if ( docCont.getFl_ente().booleanValue() )
{
sql.addSQLClause( "AND", "cd_cds", sql.EQUALS, docCont.getCd_cds_ente());
if ( docCont.getTi_competenza_residuo() != null )
{ //se ho il cds in scrivania e cerco doc x l'ente
if ( docCont.getTi_competenza_residuo().equals( docCont.TIPO_RESIDUO ))
// solo ACR_RES (gli IMP_RES vengono gestiti dal CNR)
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.EQUALS, Numerazione_doc_contBulk.TIPO_ACR_RES);
else
sql.addSQLClause( "AND", "cd_tipo_documento_cont", sql.NOT_EQUALS, Numerazione_doc_contBulk.TIPO_ACR_RES);
}
}
else
sql.addSQLClause( "AND", "cd_cds", sql.EQUALS, ((CNRUserContext)userContext).getCd_cds());
if ( docCont.getTi_gestione() != null )
sql.addSQLClause( "AND", "ti_gestione", sql.EQUALS, docCont.getTi_gestione());
if ( docCont.getIm_acc_obb() != null )
sql.addSQLClause( "AND", "im_acc_obb", sql.EQUALS, docCont.getIm_acc_obb());
if ( docCont.getCd_terzo() != null )
sql.addSQLClause( "AND", "cd_terzo", sql.EQUALS, docCont.getCd_terzo());
if ( docCont.getCd_elemento_voce() != null )
sql.addSQLClause( "AND", "cd_elemento_voce", sql.EQUALS, docCont.getCd_elemento_voce());
if ( docCont.getPg_doc_da() != null )
sql.addSQLClause( "AND", "pg_acc_obb", sql.GREATER_EQUALS, docCont.getPg_doc_da());
if ( docCont.getPg_doc_a() != null )
sql.addSQLClause( "AND", "pg_acc_obb", sql.LESS_EQUALS, docCont.getPg_doc_a());
// solo per il CDS (non per l'ente) per le partite di giro viene proposta solo quella di origine
sql.addSQLClause( "AND", "((cd_tipo_documento_cont <> '" + Numerazione_doc_contBulk.TIPO_ACR_PGIRO + "' AND " +
" cd_tipo_documento_cont <> '" + Numerazione_doc_contBulk.TIPO_OBB_PGIRO + "') OR " +
"(cd_tipo_documento_cont = '" + Numerazione_doc_contBulk.TIPO_ACR_PGIRO + "' AND " +
" ti_origine = 'E' ) OR " +
"(cd_tipo_documento_cont = '" + Numerazione_doc_contBulk.TIPO_OBB_PGIRO + "' AND " +
" ti_origine = 'S' ))" );
return sql;
*/
}
/*
Name: ricerca per riporta indietro Ente
Pre: l'utente ha in scrivania il Cds dell'Ente
l'utente ha richiesto la lista dei documenti contabili che possono essere riportati indietro dall'esercizio successivo
Post: il sistema restituisce le clausole per identificare i documenti contabili presenti nella vista V_OBB_ACC_DERIPORTA
per l'esercizio di scrivania emessi dall'UO dell'Ente (tipo IMPEGNO RESIDUO)
Name: ricerca per riporta indietro Cds
Pre: l'utente ha in scrivania un Cds diverso dall'Ente
l'utente ha richiesto la lista dei documenti contabili che possono essere riportati indietro dall'esercizio successivo
Post: il sistema restituisce le clausole per identificare i documenti contabili presenti nella vista V_OBB_ACC_DERIPORTA
per l'esercizio di scrivania emessi dall'UO di scrivania sia per l'Ente (tipo ACCERTAMENTO RESIDUO)
che per se stesso (tipo OBBLIGAZIONE, OBBLIGAZIONE PGIRO e/o ACCERTAMENTO PGIRO)
* @param userContext UserContext
* @param docCont V_obb_acc_xxxBulk con le clausole specificate dall'utente
* @return SQLBuilder con le clausole per eseguire la ricerca sulla V_OBB_ACC_DERIPORTA
*/
protected SQLBuilder selectPerRiportaIndietro(UserContext userContext, V_obb_acc_xxxBulk docCont ) throws it.cnr.jada.comp.ComponentException
{
SQLBuilder sql = getHome( userContext, V_obb_acc_xxxBulk.class, "V_OBB_ACC_DERIPORTA" ).createSQLBuilder();
sql.addSQLClause( "AND", "esercizio", sql.EQUALS, ((CNRUserContext)userContext).getEsercizio());
sql.addSQLClause( "AND", "cd_uo_origine", sql.EQUALS, ((CNRUserContext)userContext).getCd_unita_organizzativa());
if ( docCont.getFl_ente().booleanValue() )
sql.addSQLClause( "AND", "cd_cds", sql.EQUALS, docCont.getCd_cds_ente());
else
sql.addSQLClause( "AND", "cd_cds", sql.EQUALS, ((CNRUserContext)userContext).getCd_cds());
if ( docCont.getTi_gestione() != null )
sql.addSQLClause( "AND", "ti_gestione", sql.EQUALS, docCont.getTi_gestione());
if ( docCont.getIm_acc_obb() != null )
sql.addSQLClause( "AND", "im_acc_obb", sql.EQUALS, docCont.getIm_acc_obb());
if ( docCont.getCd_terzo() != null )
sql.addSQLClause( "AND", "cd_terzo", sql.EQUALS, docCont.getCd_terzo());
if ( docCont.getCd_elemento_voce() != null )
sql.addSQLClause( "AND", "cd_elemento_voce", sql.EQUALS, docCont.getCd_elemento_voce());
if ( docCont.getCd_voce() != null && !docCont.isROCd_voce())
sql.addSQLClause( "AND", "cd_voce", sql.LIKE, docCont.getCd_voce() );
if ( docCont.getPg_doc_da() != null )
sql.addSQLClause( "AND", "pg_acc_obb", sql.GREATER_EQUALS, docCont.getPg_doc_da());
if ( docCont.getPg_doc_a() != null )
sql.addSQLClause( "AND", "pg_acc_obb", sql.LESS_EQUALS, docCont.getPg_doc_a());
return sql;
/*
sql.addSQLClause( "AND", "esercizio", sql.EQUALS, ((CNRUserContext)userContext).getEsercizio());
sql.addSQLClause( "AND", "cd_uo_origine", sql.EQUALS, ((CNRUserContext)userContext).getCd_unita_organizzativa());
sql.addSQLClause( "AND", "im_acc_obb", sql.GREATER, new BigDecimal(0));
sql.addSQLClause( "AND", "pg_acc_obb_ori_riporto", sql.ISNOTNULL, null);
//non vi siano mandati con stato EMESSO sulle scadenze
sql.addSQLClause( "AND", "im_associato_rev_man = im_riscontrato");
//non sia stata completamente riscontrata
sql.addSQLClause( "AND", "im_acc_obb > im_riscontrato");
// sql.addSQLClause( "AND", "dt_cancellazione", sql.ISNULL, null); la vista già filtra i cancellati
if ( docCont.getFl_ente().booleanValue() )
sql.addSQLClause( "AND", "cd_cds", sql.EQUALS, docCont.getCd_cds_ente());
else
sql.addSQLClause( "AND", "cd_cds", sql.EQUALS, ((CNRUserContext)userContext).getCd_cds());
if ( docCont.getTi_gestione() != null )
sql.addSQLClause( "AND", "ti_gestione", sql.EQUALS, docCont.getTi_gestione());
if ( docCont.getIm_acc_obb() != null )
sql.addSQLClause( "AND", "im_acc_obb", sql.EQUALS, docCont.getIm_acc_obb());
if ( docCont.getCd_terzo() != null )
sql.addSQLClause( "AND", "cd_terzo", sql.EQUALS, docCont.getCd_terzo());
if ( docCont.getCd_elemento_voce() != null )
sql.addSQLClause( "AND", "cd_elemento_voce", sql.EQUALS, docCont.getCd_elemento_voce());
if ( docCont.getPg_doc_da() != null )
sql.addSQLClause( "AND", "pg_acc_obb", sql.GREATER_EQUALS, docCont.getPg_doc_da());
if ( docCont.getPg_doc_a() != null )
sql.addSQLClause( "AND", "pg_acc_obb", sql.LESS_EQUALS, docCont.getPg_doc_a());
// solo per il CDS (non per l'ente) per le partite di giro viene proposta solo quella di origine
sql.addSQLClause( "AND", "((cd_tipo_documento_cont <> '" + Numerazione_doc_contBulk.TIPO_ACR_PGIRO + "' AND " +
" cd_tipo_documento_cont <> '" + Numerazione_doc_contBulk.TIPO_OBB_PGIRO + "') OR " +
"(cd_tipo_documento_cont = '" + Numerazione_doc_contBulk.TIPO_ACR_PGIRO + "' AND " +
" ti_origine = 'E' ) OR " +
"(cd_tipo_documento_cont = '" + Numerazione_doc_contBulk.TIPO_OBB_PGIRO + "' AND " +
" ti_origine = 'S' ))" );
return sql;
*/
}
/**
*
* Name: selezione/deselezione di documenti contabili
* Pre: l'utente ha richiesto la visualizzazzione di una lista di documenti contabili
* l'utente ha selezionato alcuni documenti conatbili
* l'utente ha deselezionato alcuni documenti conatbili precedentemente selezionati
* Post: il sistema inserisce nella VSX_CHIUSURA le chiavi dei documenti contabili selezionati dall'utente (metodo 'inserisciVsx')
* il sistema elimina dalla VSX_CHIUSURA le chiavi dei documenti contabili deselezionati dall'utente (metodo 'eliminaVsx')
*
* @param userContext lo UserContext che ha generato la richiesta
* @param ricerca il V_obb_acc_xxxBulk con le clausole di ricerca specificate dall'utente
* @param docContabili l'array di documenti contabili (V_obb_acc_xxxBulk) potenzialmente interessati da questa modifica
* @param oldDocContabili il BitSet che specifica la precedente selezione nell'array docContabili
* @param newDocContabili il BitSet che specifica l'attuale selezione nell'array docContabili
*/
protected void setSelection(UserContext userContext, V_obb_acc_xxxBulk ricerca, OggettoBulk[] docContabili,BitSet oldDocContabili, BitSet newDocContabili, String procName, Integer es_ribaltamento) throws ComponentException
{
try
{
Integer last_par_num = null;
for (int i = 0;i < docContabili.length;i++)
{
V_obb_acc_xxxBulk docContabile = (V_obb_acc_xxxBulk)docContabili[i];
if (oldDocContabili.get(i) != newDocContabili.get(i))
{
if ( last_par_num == null )
last_par_num = getLast_par_num( userContext, ricerca.getPg_call() );
if (newDocContabili.get(i))
last_par_num = inserisciVsx( userContext, ricerca, docContabile, last_par_num, procName, es_ribaltamento);
else
eliminaVsx(userContext,ricerca.getPg_call(), docContabile);
}
}
}
catch(Throwable e)
{
throw handleException(e);
}
}
/**
*
* Name: selezione/deselezione di documenti contabili
* Pre: l'utente ha richiesto la visualizzazzione di una lista di documenti contabili per annullamento
* l'utente ha selezionato alcuni documenti conatabili
* l'utente ha deselezionato alcuni documenti contabili precedentemente selezionati
* Post: il sistema inserisce nella VSX_CHIUSURA le chiavi dei documenti contabili selezionati dall'utente (metodo 'inserisciVsx')
* il sistema elimina dalla VSX_CHIUSURA le chiavi dei documenti contabili deselezionati dall'utente (metodo 'eliminaVsx')
*
* @param userContext lo UserContext che ha generato la richiesta
* @param ricerca il V_obb_acc_xxxBulk con le clausole di ricerca specificate dall'utente
* @param docContabili l'array di documenti contabili (V_obb_acc_xxxBulk) potenzialmente interessati da questa modifica
* @param oldDocContabili il BitSet che specifica la precedente selezione nell'array docContabili
* @param newDocContabili il BitSet che specifica l'attuale selezione nell'array docContabili
*/
public void setSelectionPerAnnullamento(UserContext userContext, V_obb_acc_xxxBulk doc, OggettoBulk[] docContabili,BitSet oldDocContabili, BitSet newDocContabili) throws ComponentException
{
try
{
setSelection( userContext, doc, docContabili, oldDocContabili, newDocContabili, PROC_NAME_ANNULLAMENTO, ((CNRUserContext)userContext).getEsercizio());
}
catch(Throwable e)
{
throw handleException(e);
}
}
/**
*
* Name: selezione/deselezione di documenti contabili
* Pre: l'utente ha richiesto la visualizzazzione di una lista di documenti contabili per riporto all'es. successivo
* l'utente ha selezionato alcuni documenti conatabili
* l'utente ha deselezionato alcuni documenti contabili precedentemente selezionati
* Post: il sistema inserisce nella VSX_CHIUSURA le chiavi dei documenti contabili selezionati dall'utente (metodo 'inserisciVsx')
* il sistema elimina dalla VSX_CHIUSURA le chiavi dei documenti contabili deselezionati dall'utente (metodo 'eliminaVsx')
*
* @param userContext lo UserContext che ha generato la richiesta
* @param ricerca il V_obb_acc_xxxBulk con le clausole di ricerca specificate dall'utente
* @param docContabili l'array di documenti contabili (V_obb_acc_xxxBulk) potenzialmente interessati da questa modifica
* @param oldDocContabili il BitSet che specifica la precedente selezione nell'array docContabili
* @param newDocContabili il BitSet che specifica l'attuale selezione nell'array docContabili
*/
public void setSelectionPerRiportaAvanti(UserContext userContext, V_obb_acc_xxxBulk doc, OggettoBulk[] docContabili,BitSet oldDocContabili, BitSet newDocContabili) throws ComponentException
{
try
{
setSelection( userContext, doc, docContabili, oldDocContabili, newDocContabili, PROC_NAME_RIPORTA_AVANTI, new Integer(((CNRUserContext)userContext).getEsercizio().intValue() + 1));
}
catch(Throwable e)
{
throw handleException(e);
}
}
/**
*
* Name: selezione/deselezione di documenti contabili
* Pre: l'utente ha richiesto la visualizzazzione di una lista di documenti contabili per riporto all'es. successivo
con cambio di elemento_voce o voce_f
* l'utente ha selezionato alcuni documenti conatabili
* l'utente ha deselezionato alcuni documenti contabili precedentemente selezionati
* Post: il sistema inserisce nella VSX_CHIUSURA le chiavi dei documenti contabili selezionati dall'utente (metodo 'inserisciVsx')
* il sistema elimina dalla VSX_CHIUSURA le chiavi dei documenti contabili deselezionati dall'utente (metodo 'eliminaVsx')
*
* @param userContext lo UserContext che ha generato la richiesta
* @param ricerca il V_obb_acc_xxxBulk con le clausole di ricerca specificate dall'utente
* @param docContabili l'array di documenti contabili (V_obb_acc_xxxBulk) potenzialmente interessati da questa modifica
* @param oldDocContabili il BitSet che specifica la precedente selezione nell'array docContabili
* @param newDocContabili il BitSet che specifica l'attuale selezione nell'array docContabili
*/
public void setSelectionPerRiportaAvantiEvoluto(UserContext userContext, V_obb_acc_xxxBulk doc, OggettoBulk[] docContabili,BitSet oldDocContabili, BitSet newDocContabili) throws ComponentException
{
try
{
setSelection( userContext, doc, docContabili, oldDocContabili, newDocContabili, PROC_NAME_RIPORTA_AVANTI_EVOLUTO, new Integer(((CNRUserContext)userContext).getEsercizio().intValue() + 1));
}
catch(Throwable e)
{
throw handleException(e);
}
}
/**
*
* Name: selezione/deselezione di documenti contabili
* Pre: l'utente ha richiesto la visualizzazzione di una lista di documenti contabili per riporto indietro dall'es. successivo
* l'utente ha selezionato alcuni documenti conatabili
* l'utente ha deselezionato alcuni documenti contabili precedentemente selezionati
* Post: il sistema inserisce nella VSX_CHIUSURA le chiavi dei documenti contabili selezionati dall'utente (metodo 'inserisciVsx')
* il sistema elimina dalla VSX_CHIUSURA le chiavi dei documenti contabili deselezionati dall'utente (metodo 'eliminaVsx')
*
* @param userContext lo UserContext che ha generato la richiesta
* @param ricerca il V_obb_acc_xxxBulk con le clausole di ricerca specificate dall'utente
* @param docContabili l'array di documenti contabili (V_obb_acc_xxxBulk) potenzialmente interessati da questa modifica
* @param oldDocContabili il BitSet che specifica la precedente selezione nell'array docContabili
* @param newDocContabili il BitSet che specifica l'attuale selezione nell'array docContabili
*/
public void setSelectionPerRiportaIndietro(UserContext userContext, V_obb_acc_xxxBulk doc, OggettoBulk[] docContabili,BitSet oldDocContabili, BitSet newDocContabili) throws ComponentException
{
try
{
setSelection( userContext, doc, docContabili, oldDocContabili, newDocContabili, PROC_NAME_RIPORTA_INDIETRO, new Integer(((CNRUserContext)userContext).getEsercizio().intValue() - 1));
}
catch(Throwable e)
{
throw handleException(e);
}
}
/**
* Verifica dello stato dell'esercizio
*
* @param userContext UserContext
* @param es Integer l'esercizio da verificare
* @param cd_cds String il cds da verificare
*
* @return FALSE se per il cds interessato non è stato inserito nessun esercizio o se l'esercizio non è in stato di "aperto"
* TRUE in tutti gli altri casi
*
*/
void verificaStatoEsercizio( UserContext userContext, Integer es, String cd_cds ) throws ComponentException, it.cnr.jada.persistency.PersistencyException
{
EsercizioBulk esercizio = (EsercizioBulk) getHome(userContext, EsercizioBulk.class).findByPrimaryKey(
new EsercizioBulk( cd_cds, es ));
if (esercizio == null )
throw handleException( new ApplicationException( "Funzione non abilitata: esercizio inesistente!") );
if ( !esercizio.STATO_APERTO.equals(esercizio.getSt_apertura_chiusura()))
throw handleException( new ApplicationException( "Funzione non abilitata: esercizio non aperto!") );
}
public boolean isRibaltato(it.cnr.jada.UserContext userContext) throws ComponentException
{
try {
return ((Parametri_cdsHome)getHome(userContext,Parametri_cdsBulk.class)).isRibaltato(userContext);
}
catch(Throwable e) {
throw handleException(e);
}
}
public boolean isRibaltato(it.cnr.jada.UserContext userContext, CdrBulk cdr) throws ComponentException
{
try {
cdr = (CdrBulk)getHome(userContext, CdrBulk.class, null, getFetchPolicyName("find")).findByPrimaryKey(cdr);
cdr.setUnita_padre((Unita_organizzativaBulk)getHome(userContext, Unita_organizzativaBulk.class).findByPrimaryKey(new Unita_organizzativaBulk(cdr.getCd_unita_organizzativa())));
return ((Parametri_cdsHome)getHome(userContext,Parametri_cdsBulk.class)).isRibaltato(userContext, cdr.getCd_cds());
}
catch(Throwable e) {
throw handleException(e);
}
}
public boolean isRibaltato(it.cnr.jada.UserContext userContext, String cds, Integer esercizio) throws ComponentException
{
try {
return ((Parametri_cdsHome)getHome(userContext,Parametri_cdsBulk.class)).isRibaltato(userContext, cds, esercizio);
}
catch(Throwable e) {
throw handleException(e);
}
}
public boolean isRibaltato(it.cnr.jada.UserContext userContext, Unita_organizzativaBulk uo, Integer esercizio) throws ComponentException
{
try {
uo = (Unita_organizzativaBulk)getHome(userContext, Unita_organizzativaBulk.class, null, getFetchPolicyName("find")).findByPrimaryKey(uo);
return ((Parametri_cdsHome)getHome(userContext,Parametri_cdsBulk.class)).isRibaltato(userContext, uo.getCd_proprio_unita(), esercizio);
}
catch(Throwable e) {
throw handleException(e);
}
}
public boolean isRibaltato(it.cnr.jada.UserContext userContext, CdsBulk cds) throws ComponentException
{
try {
return ((Parametri_cdsHome)getHome(userContext,Parametri_cdsBulk.class)).isRibaltato(userContext, cds.getCd_unita_organizzativa());
}
catch(Throwable e) {
throw handleException(e);
}
}
public boolean isRibaltato(it.cnr.jada.UserContext userContext, CdsBulk cds, Integer esercizio) throws ComponentException
{
try {
return ((Parametri_cdsHome)getHome(userContext,Parametri_cdsBulk.class)).isRibaltato(userContext, cds.getCd_unita_organizzativa(), esercizio);
}
catch(Throwable e) {
throw handleException(e);
}
}
/**
* Ritorna true se esistono righe con disponibilità sfondata su V_SITUAZIONE_LINEE_COMP_RES
*
* @param userContext
* @return
* @throws ComponentException
*/
public boolean isSfondataDispCdS(it.cnr.jada.UserContext userContext) throws ComponentException {
try {
String cd_cds = CNRUserContext.getCd_cds(userContext);
if(cd_cds != null) {
String selCount = "SELECT COUNT(*)" +
" FROM " + it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() + "V_SITUAZIONE_LINEE_COMP_RES" +
" WHERE CD_CDS = '" + cd_cds + "'" +
" AND ESERCIZIO = " + ((CNRUserContext)userContext).getEsercizio() +
" AND TI_GESTIONE = '" + Elemento_voceHome.GESTIONE_SPESE + "' " +
" AND FL_PARTITA_GIRO = 'N' " +
" AND (DISP_COMP<0 OR DISP_RES_IMP<0) " ;
// per la 999 esclude i residui
Unita_organizzativa_enteBulk ente = (Unita_organizzativa_enteBulk) getHome( userContext, Unita_organizzativa_enteBulk.class).findAll().get(0);
if (cd_cds.equals( ente.getCd_unita_padre())){
selCount = selCount +
" AND ESERCIZIO_RES = ESERCIZIO " ;
}
java.sql.ResultSet rsCount = getHomeCache(userContext).getConnection().createStatement().executeQuery(selCount);
rsCount.next();
if(rsCount.getInt(1) > 0)
return true;
else
return false;
} else {
return true;
}
}
catch(Throwable e) {
throw handleException(e);
}
}
/**
* Ritorna true se è stata chiusa la ricostruzione dei residui per i CdR del CDS di scrivania
*
* @param userContext
* @return
* @throws ComponentException
*/
public boolean isRicosResiduiChiusa(it.cnr.jada.UserContext userContext) throws ComponentException {
try {
String cd_cds = CNRUserContext.getCd_cds(userContext);
if(cd_cds != null) {
// uso createSQLBuilderEsteso perchè il metodo createSQLBuilder filtra alcune cose
SQLBuilder sql = ((Pdg_residuoHome)getHome(userContext, Pdg_residuoBulk.class)).createSQLBuilder();
sql.addTableToHeader("V_CDR_VALIDO_CDS");
sql.addSQLJoin("PDG_RESIDUO.ESERCIZIO", "V_CDR_VALIDO_CDS.ESERCIZIO");
sql.addSQLJoin("PDG_RESIDUO.CD_CENTRO_RESPONSABILITA", "V_CDR_VALIDO_CDS.CD_CENTRO_RESPONSABILITA");
sql.addSQLClause("AND", "STATO", sql.NOT_EQUALS, Pdg_residuoBulk.STATO_CHIUSO);
sql.addSQLClause("AND", "CD_CDS", sql.EQUALS, cd_cds);
List result = getHome( userContext, Pdg_residuoBulk.class ).fetchAll( sql );
if ( result.size() > 0 )
return false;
else
return true;
} else {
return false;
}
}
catch(Throwable e) {
throw handleException(e);
}
}
public boolean isRiaccertamentoChiuso(it.cnr.jada.UserContext userContext) throws ComponentException {
try {
String cd_cds = CNRUserContext.getCd_cds(userContext);
if(cd_cds != null) {
Parametri_cdsBulk param_cds = (Parametri_cdsBulk)getHome(userContext, Parametri_cdsBulk.class).findByPrimaryKey(new Parametri_cdsBulk(cd_cds,((CNRUserContext)userContext).getEsercizio()));
if (param_cds.getFl_riaccertamento()) {
SQLBuilder sql = selectResiduiForRiaccertamento(userContext);
if (sql.executeCountQuery(getConnection(userContext))>0)
return false;
}
}
return true;
}
catch(Throwable e) {
throw handleException(e);
}
}
public boolean isRiobbligazioneChiusa(it.cnr.jada.UserContext userContext) throws ComponentException {
try {
String cd_cds = CNRUserContext.getCd_cds(userContext);
if(cd_cds != null) {
Parametri_cdsBulk param_cds = (Parametri_cdsBulk)getHome(userContext, Parametri_cdsBulk.class).findByPrimaryKey(new Parametri_cdsBulk(cd_cds,((CNRUserContext)userContext).getEsercizio()));
if (param_cds.getFl_riobbligazione()) {
SQLBuilder sql = selectResiduiForRiobbligazione(userContext);
if (sql.executeCountQuery(getConnection(userContext))>0)
return false;
}
}
return true;
}
catch(Throwable e) {
throw handleException(e);
}
}
public boolean isGaeCollegateProgetti(it.cnr.jada.UserContext userContext) throws ComponentException {
try {
String cd_cds = CNRUserContext.getCd_cds(userContext);
if(cd_cds != null) {
SQLBuilder sql = selectGaeSenzaProgettiForRibaltamento(userContext);
if (sql.executeCountQuery(getConnection(userContext))>0)
return false;
}
return true;
}
catch(Throwable e) {
throw handleException(e);
}
}
public boolean getCdsRibaltato(UserContext context)throws ComponentException
{
LoggableStatement cs = null;
try
{
cs = new LoggableStatement(getConnection(context),
"{ ? = call " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"CNRCTB048.getcdsribaltato( ?, ? ) }",false,this.getClass());
cs.registerOutParameter( 1, java.sql.Types.VARCHAR);
cs.setInt(2, ((CNRUserContext)context).getEsercizio());
cs.setString(3, ((CNRUserContext)context).getCd_cds());
cs.executeQuery();
return "Y".equals(cs.getString(1));
} catch (Throwable e) {
throw handleException(e);
} finally {
if (cs != null)
try {
cs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
public void callRibaltaDispImproprie(UserContext userContext) throws ComponentException
{
LoggableStatement cs = null;
try
{
try
{
cs = new LoggableStatement(getConnection(userContext),
"{ call " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"CNRCTB047.ribalta_disp_improprie( ?, ? , ?) }",false,this.getClass());
cs.setObject( 1, ((CNRUserContext)userContext).getEsercizio());
cs.setObject( 2, ((CNRUserContext)userContext).getCd_cds());
cs.setObject( 3, ((CNRUserContext)userContext).getUser());
cs.executeQuery();
} catch (Throwable e)
{
throw handleException(e);
} finally
{
if (cs != null) cs.close();
}
} catch (java.sql.SQLException ex) {
throw handleException(ex);
}
}
public OggettoBulk updateParametriCds (UserContext context) throws EJBException,ComponentException, PersistencyException, RemoteException {
Parametri_cdsBulk parametri_cds =(Parametri_cdsBulk)getHome(context,Parametri_cdsBulk.class).findByPrimaryKey(new Parametri_cdsBulk(((CNRUserContext)context).getCd_cds(),((CNRUserContext)context).getEsercizio()-1));
if(parametri_cds==null || parametri_cds.getFl_ribaltato()){
parametri_cds =(Parametri_cdsBulk)getHome(context,Parametri_cdsBulk.class).findByPrimaryKey(new Parametri_cdsBulk(((CNRUserContext)context).getCd_cds(),((CNRUserContext)context).getEsercizio()));
try {
parametri_cds.setFl_ribaltato( new Boolean(true));
parametri_cds.setToBeUpdated();
updateBulk(context, parametri_cds);
} catch(Throwable e) {
throw handleException(e);
}
}
else{
throw new ApplicationException("Attenzione! Il ribaltamento per l'esercizio precedente non è stato effettuato.");
}
return parametri_cds;
}
public void verificaAbilitazioneRibaltamento( UserContext userContext ) throws ComponentException, it.cnr.jada.persistency.PersistencyException
{
Parametri_cdsBulk parametri_cds =(Parametri_cdsBulk)getHome(userContext,Parametri_cdsBulk.class).findByPrimaryKey(new Parametri_cdsBulk(((CNRUserContext)userContext).getCd_cds(),((CNRUserContext)userContext).getEsercizio()));
if(parametri_cds==null || !parametri_cds.getFl_riporta_avanti())
throw new ApplicationException("Il ribaltamento all'esercizio successivo non è abilitato per questo cds.");
}
public SQLBuilder selectResiduiForRiaccertamento(UserContext userContext) throws it.cnr.jada.comp.ComponentException {
SQLBuilder sql = getHome( userContext, V_obb_acc_xxxBulk.class, "V_OBB_ACC_RIPORTA" ).createSQLBuilder();
sql.addSQLClause(FindClause.AND, "V_OBB_ACC_RIPORTA.ESERCIZIO", SQLBuilder.EQUALS, ((CNRUserContext)userContext).getEsercizio());
sql.addSQLClause(FindClause.AND, "V_OBB_ACC_RIPORTA.CD_CDS_ORIGINE", SQLBuilder.EQUALS, ((CNRUserContext)userContext).getCd_cds());
sql.addSQLClause(FindClause.AND, "V_OBB_ACC_RIPORTA.TI_GESTIONE", SQLBuilder.EQUALS, Elemento_voceHome.GESTIONE_ENTRATE);
sql.addSQLClause(FindClause.AND, "V_OBB_ACC_RIPORTA.CD_TIPO_DOCUMENTO_CONT", SQLBuilder.EQUALS, Numerazione_doc_contBulk.TIPO_ACR_RES);
sql.addSQLClause(FindClause.AND, "V_OBB_ACC_RIPORTA.FL_PGIRO",SQLBuilder.EQUALS, "N");
sql.addTableToHeader("ACCERTAMENTO");
sql.addSQLJoin("ACCERTAMENTO.CD_CDS", "V_OBB_ACC_RIPORTA.CD_CDS");
sql.addSQLJoin("ACCERTAMENTO.ESERCIZIO", "V_OBB_ACC_RIPORTA.ESERCIZIO");
sql.addSQLJoin("ACCERTAMENTO.ESERCIZIO_ORIGINALE", "V_OBB_ACC_RIPORTA.ESERCIZIO_ORI_ACC_OBB");
sql.addSQLJoin("ACCERTAMENTO.PG_ACCERTAMENTO", "V_OBB_ACC_RIPORTA.PG_ACC_OBB");
sql.addSQLClause(FindClause.AND, "ACCERTAMENTO.STATO_RESIDUO", SQLBuilder.ISNULL, null);
return sql;
}
public SQLBuilder selectResiduiForRiobbligazione(UserContext userContext) throws it.cnr.jada.comp.ComponentException {
SQLBuilder sql = getHome( userContext, V_obb_acc_xxxBulk.class, "V_OBB_ACC_RIPORTA" ).createSQLBuilder();
sql.addSQLClause(FindClause.AND, "V_OBB_ACC_RIPORTA.ESERCIZIO", SQLBuilder.EQUALS, ((CNRUserContext)userContext).getEsercizio());
sql.addSQLClause(FindClause.AND, "V_OBB_ACC_RIPORTA.CD_CDS_ORIGINE", SQLBuilder.EQUALS, ((CNRUserContext)userContext).getCd_cds());
sql.addSQLClause(FindClause.AND, "V_OBB_ACC_RIPORTA.TI_GESTIONE", SQLBuilder.EQUALS, Elemento_voceHome.GESTIONE_SPESE);
sql.addSQLClause(FindClause.AND, "V_OBB_ACC_RIPORTA.CD_TIPO_DOCUMENTO_CONT", SQLBuilder.EQUALS, Numerazione_doc_contBulk.TIPO_OBB_RES);
sql.addSQLClause(FindClause.AND, "V_OBB_ACC_RIPORTA.FL_PGIRO",SQLBuilder.EQUALS, "N");
sql.addTableToHeader("OBBLIGAZIONE");
sql.addSQLJoin("OBBLIGAZIONE.CD_CDS", "V_OBB_ACC_RIPORTA.CD_CDS");
sql.addSQLJoin("OBBLIGAZIONE.ESERCIZIO", "V_OBB_ACC_RIPORTA.ESERCIZIO");
sql.addSQLJoin("OBBLIGAZIONE.ESERCIZIO_ORIGINALE", "V_OBB_ACC_RIPORTA.ESERCIZIO_ORI_ACC_OBB");
sql.addSQLJoin("OBBLIGAZIONE.PG_OBBLIGAZIONE", "V_OBB_ACC_RIPORTA.PG_ACC_OBB");
sql.addSQLClause(FindClause.AND, "OBBLIGAZIONE.STATO_RESIDUO", SQLBuilder.ISNULL, null);
return sql;
}
public SQLBuilder selectGaeSenzaProgettiForRibaltamento(UserContext userContext) throws it.cnr.jada.comp.ComponentException {
SQLBuilder sql = getHome( userContext, V_obb_acc_xxxBulk.class, "V_OBB_ACC_RIPORTA" ).createSQLBuilder();
sql.addSQLClause(FindClause.AND, "esercizio", SQLBuilder.EQUALS, ((CNRUserContext)userContext).getEsercizio());
sql.addSQLClause(FindClause.AND, "cd_cds_origine", SQLBuilder.EQUALS, ((CNRUserContext)userContext).getCd_cds());
PersistentHome gaeHome = getHome(userContext, WorkpackageBulk.class, "V_LINEA_ATTIVITA_VALIDA");
PersistentHome accHome = getHome(userContext, Accertamento_scad_voceBulk.class);
SQLBuilder sqlAccExist = accHome.createSQLBuilder();
sqlAccExist.addSQLJoin("ACCERTAMENTO_SCAD_VOCE.CD_CDS", "V_OBB_ACC_RIPORTA.CD_CDS");
sqlAccExist.addSQLJoin("ACCERTAMENTO_SCAD_VOCE.ESERCIZIO", "V_OBB_ACC_RIPORTA.ESERCIZIO");
sqlAccExist.addSQLJoin("ACCERTAMENTO_SCAD_VOCE.ESERCIZIO_ORIGINALE", "V_OBB_ACC_RIPORTA.ESERCIZIO_ORI_ACC_OBB");
sqlAccExist.addSQLJoin("ACCERTAMENTO_SCAD_VOCE.PG_ACCERTAMENTO", "V_OBB_ACC_RIPORTA.PG_ACC_OBB");
SQLBuilder sqlGaeAccExist = gaeHome.createSQLBuilder();
sqlGaeAccExist.addSQLJoin("V_LINEA_ATTIVITA_VALIDA.CD_CENTRO_RESPONSABILITA", "ACCERTAMENTO_SCAD_VOCE.CD_CENTRO_RESPONSABILITA");
sqlGaeAccExist.addSQLJoin("V_LINEA_ATTIVITA_VALIDA.CD_LINEA_ATTIVITA", "ACCERTAMENTO_SCAD_VOCE.CD_LINEA_ATTIVITA");
sqlGaeAccExist.addSQLClause(FindClause.AND, "V_LINEA_ATTIVITA_VALIDA.ESERCIZIO", SQLBuilder.EQUALS, ((CNRUserContext)userContext).getEsercizio()+1);
sqlGaeAccExist.addSQLClause(FindClause.AND, "V_LINEA_ATTIVITA_VALIDA.PG_PROGETTO", SQLBuilder.ISNOTNULL, null);
sqlAccExist.addSQLNotExistsClause(FindClause.AND, sqlGaeAccExist);
PersistentHome obbHome = getHome(userContext, Obbligazione_scad_voceBulk.class);
SQLBuilder sqlObbExist = obbHome.createSQLBuilder();
sqlObbExist.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.CD_CDS", "V_OBB_ACC_RIPORTA.CD_CDS");
sqlObbExist.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.ESERCIZIO", "V_OBB_ACC_RIPORTA.ESERCIZIO");
sqlObbExist.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.ESERCIZIO_ORIGINALE", "V_OBB_ACC_RIPORTA.ESERCIZIO_ORI_ACC_OBB");
sqlObbExist.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.PG_OBBLIGAZIONE", "V_OBB_ACC_RIPORTA.PG_ACC_OBB");
SQLBuilder sqlGaeObbExist = gaeHome.createSQLBuilder();
sqlGaeObbExist.addSQLJoin("V_LINEA_ATTIVITA_VALIDA.CD_CENTRO_RESPONSABILITA", "OBBLIGAZIONE_SCAD_VOCE.CD_CENTRO_RESPONSABILITA");
sqlGaeObbExist.addSQLJoin("V_LINEA_ATTIVITA_VALIDA.CD_LINEA_ATTIVITA", "OBBLIGAZIONE_SCAD_VOCE.CD_LINEA_ATTIVITA");
sqlGaeObbExist.addSQLClause(FindClause.AND, "V_LINEA_ATTIVITA_VALIDA.ESERCIZIO", SQLBuilder.EQUALS, ((CNRUserContext)userContext).getEsercizio()+1);
sqlGaeObbExist.addSQLClause(FindClause.AND, "V_LINEA_ATTIVITA_VALIDA.PG_PROGETTO", SQLBuilder.ISNOTNULL, null);
sqlObbExist.addSQLNotExistsClause(FindClause.AND, sqlGaeObbExist);
sql.openParenthesis(FindClause.AND);
sql.openParenthesis(FindClause.OR);
sql.addSQLClause(FindClause.AND, "ti_gestione", SQLBuilder.EQUALS, Elemento_voceHome.GESTIONE_ENTRATE);
sql.addSQLExistsClause(FindClause.AND, sqlAccExist);
sql.closeParenthesis();
sql.openParenthesis(FindClause.OR);
sql.addSQLClause(FindClause.AND, "ti_gestione", SQLBuilder.EQUALS, Elemento_voceHome.GESTIONE_SPESE);
sql.addSQLExistsClause(FindClause.AND, sqlObbExist);
sql.closeParenthesis();
sql.closeParenthesis();
return sql;
}
public it.cnr.jada.util.RemoteIterator cercaResiduiForRiaccertamento(UserContext userContext) throws it.cnr.jada.comp.ComponentException
{
try {
return iterator(
userContext,
selectResiduiForRiaccertamento(userContext),
V_obb_acc_xxxBulk.class,
getFetchPolicyName("find"));
} catch(Throwable e) {
throw handleException(e);
}
}
public it.cnr.jada.util.RemoteIterator cercaGaeSenzaProgettiForRibaltamento(UserContext userContext) throws it.cnr.jada.comp.ComponentException
{
try {
return iterator(
userContext,
selectGaeSenzaProgettiForRibaltamento(userContext),
V_obb_acc_xxxBulk.class,
getFetchPolicyName("find"));
} catch(Throwable e) {
throw handleException(e);
}
}
public boolean isProgettiCollegatiGaeApprovati(it.cnr.jada.UserContext userContext) throws ComponentException {
try {
String cd_cds = CNRUserContext.getCd_cds(userContext);
if(cd_cds != null) {
SQLBuilder sql = selectProgettiCollegatiGaeNonApprovatiForRibaltamento(userContext);
if (sql.executeCountQuery(getConnection(userContext))>0)
return false;
}
return true;
}
catch(Throwable e) {
throw handleException(e);
}
}
public SQLBuilder selectProgettiCollegatiGaeNonApprovatiForRibaltamento(UserContext userContext) throws it.cnr.jada.comp.ComponentException {
SQLBuilder sql = getHome( userContext, V_obb_acc_xxxBulk.class, "V_OBB_ACC_RIPORTA" ).createSQLBuilder();
sql.addSQLClause(FindClause.AND, "esercizio", SQLBuilder.EQUALS, ((CNRUserContext)userContext).getEsercizio());
sql.addSQLClause(FindClause.AND, "cd_cds_origine", SQLBuilder.EQUALS, ((CNRUserContext)userContext).getCd_cds());
PersistentHome gaeHome = getHome(userContext, WorkpackageBulk.class, "V_LINEA_ATTIVITA_VALIDA");
PersistentHome accHome = getHome(userContext, Accertamento_scad_voceBulk.class);
SQLBuilder sqlAccExist = accHome.createSQLBuilder();
sqlAccExist.addSQLJoin("ACCERTAMENTO_SCAD_VOCE.CD_CDS", "V_OBB_ACC_RIPORTA.CD_CDS");
sqlAccExist.addSQLJoin("ACCERTAMENTO_SCAD_VOCE.ESERCIZIO", "V_OBB_ACC_RIPORTA.ESERCIZIO");
sqlAccExist.addSQLJoin("ACCERTAMENTO_SCAD_VOCE.ESERCIZIO_ORIGINALE", "V_OBB_ACC_RIPORTA.ESERCIZIO_ORI_ACC_OBB");
sqlAccExist.addSQLJoin("ACCERTAMENTO_SCAD_VOCE.PG_ACCERTAMENTO", "V_OBB_ACC_RIPORTA.PG_ACC_OBB");
SQLBuilder sqlGaeAccExist = gaeHome.createSQLBuilder();
sqlGaeAccExist.addSQLJoin("V_LINEA_ATTIVITA_VALIDA.CD_CENTRO_RESPONSABILITA", "ACCERTAMENTO_SCAD_VOCE.CD_CENTRO_RESPONSABILITA");
sqlGaeAccExist.addSQLJoin("V_LINEA_ATTIVITA_VALIDA.CD_LINEA_ATTIVITA", "ACCERTAMENTO_SCAD_VOCE.CD_LINEA_ATTIVITA");
sqlGaeAccExist.addSQLClause(FindClause.AND, "V_LINEA_ATTIVITA_VALIDA.ESERCIZIO", SQLBuilder.EQUALS, ((CNRUserContext)userContext).getEsercizio()+1);
sqlGaeAccExist.addTableToHeader("PROGETTO_OTHER_FIELD");
sqlGaeAccExist.addSQLJoin("V_LINEA_ATTIVITA_VALIDA.PG_PROGETTO", "PROGETTO_OTHER_FIELD.PG_PROGETTO");
sqlGaeAccExist.addTableToHeader("TIPO_FINANZIAMENTO");
sqlGaeAccExist.addSQLJoin("PROGETTO_OTHER_FIELD.ID_TIPO_FINANZIAMENTO", "TIPO_FINANZIAMENTO.ID");
sqlGaeAccExist.openParenthesis(FindClause.AND);
sqlGaeAccExist.addSQLClause(FindClause.OR, "PROGETTO_OTHER_FIELD.STATO", SQLBuilder.EQUALS, StatoProgetto.STATO_APPROVATO.value());
sqlGaeAccExist.openParenthesis(FindClause.OR);
sqlGaeAccExist.addSQLClause(FindClause.AND, "TIPO_FINANZIAMENTO.FL_PIANO_ECO_FIN", SQLBuilder.EQUALS, "N");
sqlGaeAccExist.addSQLClause(FindClause.AND, "PROGETTO_OTHER_FIELD.DT_FINE", SQLBuilder.ISNOTNULL, null);
sqlGaeAccExist.closeParenthesis();
sqlGaeAccExist.closeParenthesis();
sqlAccExist.addSQLNotExistsClause(FindClause.AND, sqlGaeAccExist);
PersistentHome obbHome = getHome(userContext, Obbligazione_scad_voceBulk.class);
SQLBuilder sqlObbExist = obbHome.createSQLBuilder();
sqlObbExist.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.CD_CDS", "V_OBB_ACC_RIPORTA.CD_CDS");
sqlObbExist.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.ESERCIZIO", "V_OBB_ACC_RIPORTA.ESERCIZIO");
sqlObbExist.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.ESERCIZIO_ORIGINALE", "V_OBB_ACC_RIPORTA.ESERCIZIO_ORI_ACC_OBB");
sqlObbExist.addSQLJoin("OBBLIGAZIONE_SCAD_VOCE.PG_OBBLIGAZIONE", "V_OBB_ACC_RIPORTA.PG_ACC_OBB");
SQLBuilder sqlGaeObbExist = gaeHome.createSQLBuilder();
sqlGaeObbExist.addSQLJoin("V_LINEA_ATTIVITA_VALIDA.CD_CENTRO_RESPONSABILITA", "OBBLIGAZIONE_SCAD_VOCE.CD_CENTRO_RESPONSABILITA");
sqlGaeObbExist.addSQLJoin("V_LINEA_ATTIVITA_VALIDA.CD_LINEA_ATTIVITA", "OBBLIGAZIONE_SCAD_VOCE.CD_LINEA_ATTIVITA");
sqlGaeObbExist.addSQLClause(FindClause.AND, "V_LINEA_ATTIVITA_VALIDA.ESERCIZIO", SQLBuilder.EQUALS, ((CNRUserContext)userContext).getEsercizio()+1);
sqlGaeObbExist.addTableToHeader("PROGETTO_OTHER_FIELD");
sqlGaeObbExist.addSQLJoin("V_LINEA_ATTIVITA_VALIDA.PG_PROGETTO", "PROGETTO_OTHER_FIELD.PG_PROGETTO");
sqlGaeObbExist.addSQLClause(FindClause.AND, "PROGETTO_OTHER_FIELD.STATO", SQLBuilder.EQUALS, StatoProgetto.STATO_APPROVATO.value());
sqlObbExist.addSQLNotExistsClause(FindClause.AND, sqlGaeObbExist);
sql.openParenthesis(FindClause.AND);
sql.openParenthesis(FindClause.OR);
sql.addSQLClause(FindClause.AND, "ti_gestione", SQLBuilder.EQUALS, Elemento_voceHome.GESTIONE_ENTRATE);
sql.addSQLExistsClause(FindClause.AND, sqlAccExist);
sql.closeParenthesis();
sql.openParenthesis(FindClause.OR);
sql.addSQLClause(FindClause.AND, "ti_gestione", SQLBuilder.EQUALS, Elemento_voceHome.GESTIONE_SPESE);
sql.addSQLExistsClause(FindClause.AND, sqlObbExist);
sql.closeParenthesis();
sql.closeParenthesis();
return sql;
}
public it.cnr.jada.util.RemoteIterator cercaProgettiCollegatiGaeNonApprovatiForRibaltamento(UserContext userContext) throws it.cnr.jada.comp.ComponentException
{
try {
return iterator(
userContext,
selectProgettiCollegatiGaeNonApprovatiForRibaltamento(userContext),
V_obb_acc_xxxBulk.class,
getFetchPolicyName("find"));
} catch(Throwable e) {
throw handleException(e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy