it.cnr.contab.gestiva00.comp.StampaRegistriIvaComponent 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.gestiva00.comp;
import java.rmi.RemoteException;
import java.sql.Date;
import java.sql.SQLException;
import javax.ejb.EJBException;
import it.cnr.contab.config00.ejb.Parametri_cnrComponentSession;
import it.cnr.contab.config00.latt.bulk.CostantiTi_gestione;
import it.cnr.contab.config00.latt.bulk.WorkpackageBulk;
import it.cnr.contab.config00.pdcfin.bulk.NaturaBulk;
import it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk;
import it.cnr.contab.config00.sto.bulk.Unita_organizzativaHome;
import it.cnr.contab.docamm00.tabrif.bulk.Bene_servizioBulk;
import it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk;
import it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleHome;
import it.cnr.contab.gestiva00.core.bulk.Codici_iva_fatture_acquistiVBulk;
import it.cnr.contab.gestiva00.core.bulk.Codici_iva_fatture_emesseVBulk;
import it.cnr.contab.gestiva00.core.bulk.Gestione_registri_ivaVBulk;
import it.cnr.contab.gestiva00.core.bulk.IPrintable;
import it.cnr.contab.gestiva00.core.bulk.Liquidazione_annualeVBulk;
import it.cnr.contab.gestiva00.core.bulk.Liquidazione_definitiva_ivaVBulk;
import it.cnr.contab.gestiva00.core.bulk.Liquidazione_ivaBulk;
import it.cnr.contab.gestiva00.core.bulk.Liquidazione_ivaHome;
import it.cnr.contab.gestiva00.core.bulk.Liquidazione_ivaVBulk;
import it.cnr.contab.gestiva00.core.bulk.Liquidazione_iva_annualeVBulk;
import it.cnr.contab.gestiva00.core.bulk.Liquidazione_iva_ripart_finBulk;
import it.cnr.contab.gestiva00.core.bulk.Liquidazione_massa_provvisoria_ivaVBulk;
import it.cnr.contab.gestiva00.core.bulk.Quadri_va_veVBulk;
import it.cnr.contab.gestiva00.core.bulk.Quadri_va_vfVBulk;
import it.cnr.contab.gestiva00.core.bulk.Report_statoBulk;
import it.cnr.contab.gestiva00.core.bulk.Report_statoHome;
import it.cnr.contab.gestiva00.core.bulk.Riepilogativi_ivaVBulk;
import it.cnr.contab.gestiva00.core.bulk.Stampa_registri_ivaVBulk;
import it.cnr.contab.gestiva00.core.bulk.Vp_liquid_iva_annualeBulk;
import it.cnr.contab.gestiva00.core.bulk.Vp_liquid_iva_annualeHome;
import it.cnr.jada.UserContext;
import it.cnr.jada.bulk.BulkList;
import it.cnr.jada.bulk.MTUStuff;
import it.cnr.jada.bulk.MTUWrapper;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.comp.ApplicationException;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.comp.RicercaComponent;
import it.cnr.jada.persistency.PersistencyException;
import it.cnr.jada.persistency.sql.ApplicationWarningPersistencyException;
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.SQLBuilder;
import it.cnr.jada.persistency.sql.SQLExceptionHandler;
/**
* Insert the type's description here.
* Creation date: (08/10/2001 15:39:09)
* @author: CNRADM
*/
public class StampaRegistriIvaComponent extends RicercaComponent implements IStampaRegistriIvaMgr {
public StampaRegistriIvaComponent() {
super();
}
private Liquidazione_ivaBulk aggiornaLiquidazione(it.cnr.jada.UserContext userContext, Liquidazione_ivaVBulk stampaBulk, java.math.BigDecimal pg_Stampa) throws it.cnr.jada.comp.ComponentException {
Liquidazione_ivaBulk liquidazione= stampaBulk.getLiquidazione_iva();
liquidazione.setReport_id(new Long(pg_Stampa.longValue()));
liquidazione.setDt_inizio(stampaBulk.getData_da());
liquidazione.setDt_fine(stampaBulk.getData_a());
liquidazione.setTipo_liquidazione(stampaBulk.getTipoSezionaleFlag());
//if (stampaBulk.getVariazioni_imposta_deb()!=null && stampaBulk.getVariazioni_imposta_deb().compareTo(new java.math.BigDecimal(0))!=0)
//liquidazione.setVar_imp_per_prec(stampaBulk.getVariazioni_imposta_deb());
//if (stampaBulk.getVariazioni_imposta_cre()!=null && stampaBulk.getVariazioni_imposta_cre().compareTo(new java.math.BigDecimal(0))!=0)
//liquidazione.setVar_imp_per_prec(stampaBulk.getVariazioni_imposta_cre().multiply(new java.math.BigDecimal(-1)));
return liquidazione;
}
/**
* riepilogoLiquidazioneIVA method comment.
*/
private void callRiepilogoLiquidazioneIVA(
it.cnr.jada.UserContext userContext,
Liquidazione_iva_annualeVBulk bulk)
throws SQLException, PersistencyException, ComponentException {
LoggableStatement cs= null;
try {
cs = new LoggableStatement(getConnection(userContext),"{call " + it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema()
+ "CNRCTB253.riepilogoLiquidazioneIva(?,?) }",false,this.getClass());
cs.setLong(1, bulk.getId_report().longValue()); // Id stampa
cs.setInt(2, bulk.getEsercizio().intValue()); // Esercizio
cs.executeQuery();
} catch (java.sql.SQLException e) {
throw SQLExceptionHandler.getInstance().handleSQLException(e);
} finally {
if (cs != null) cs.close();
}
}
//^^@@
/**
* gestisce il richiamo delle procedure sul DB per la registrazione, la stampa,
* la liquidazione, la conferma dei registri e l'annullamento di un registro
* registro provvisorio o definitivo
* PreCondition:
* richiesta di creare un registro nuovo provvisorio o definitivo
* PostCondition:
* crea il registro
* stampa di un registro
* PreCondition:
* richiesta di stampa di un registro provvisorio o definitivo
* PostCondition:
* crea il prospetto di stampa
* liquidazione
* PreCondition:
* liquidazione provvisoria o definitiva
* PostCondition:
* crea la liquidazione
* Si è verificato un errore.
* PreCondition:
* Si è verificato un errore.
* PostCondition:
* Viene inviato un messaggio e non permette l'operazione
*/
//^^@@
public MTUWrapper callStampeIva(it.cnr.jada.UserContext userContext, Stampa_registri_ivaVBulk stampaBulk) throws it.cnr.jada.comp.ComponentException {
//ricavo il progressivo unico pg_stampa
java.math.BigDecimal pg_Stampa = null;
if (stampaBulk instanceof IPrintable) {
if (stampaBulk instanceof Liquidazione_massa_provvisoria_ivaVBulk)
pg_Stampa = ((IPrintable)stampaBulk).getId_report();
else {
pg_Stampa = getSequence(userContext);
((IPrintable)stampaBulk).setId_report(pg_Stampa);
}
}
MTUStuff message= new MTUStuff("");
//per le liquidazioni aggiungo una riga con i dati i dati inseriti dall'utente
if (stampaBulk.isLiquidazione()) {
Liquidazione_ivaBulk liquidazione= aggiornaLiquidazione(userContext, (Liquidazione_ivaVBulk) stampaBulk, pg_Stampa);
try {
insertBulk(userContext, liquidazione);
} catch (it.cnr.jada.persistency.PersistencyException ex) {
throw new it.cnr.jada.comp.ApplicationException("Errore generale");
}
}
String msgSP= "";
if (stampaBulk.getTipo_stampa().equals("GESTIONE")) {
controllaSezionali(userContext, stampaBulk);
LoggableStatement cs= null;
try {
try {
if (stampaBulk.getTipo_report().equals("CONFERMA"))
cs= new LoggableStatement(getConnection(userContext),"{call " + it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema()
+ "CNRCTB250.conferma_registro(?,?,?,?,?,?,?) }",false,this.getClass());
else
cs= new LoggableStatement(getConnection(userContext),"{call " + it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema()
+ "CNRCTB250.annulla_registro(?,?,?,?,?,?,?) }",false,this.getClass());
cs.setString(1, ((Gestione_registri_ivaVBulk)stampaBulk).getUnita_organizzativa().getUnita_padre().getCd_unita_organizzativa()); // CD CDS
cs.setString(2, ((Gestione_registri_ivaVBulk)stampaBulk).getUnita_organizzativa().getCd_unita_organizzativa()); // Cd_unita_organizzativa
cs.setInt(3, stampaBulk.getEsercizio().intValue()); // ESERCIZIO
cs.setString(4, stampaBulk.getTipo_sezionale().getCd_tipo_sezionale()); // Cd_tipo_sezionale
cs.setDate(5, new Date(stampaBulk.getData_da().getTime())); // Data inizio
cs.setDate(6, new Date(stampaBulk.getData_a().getTime())); // Data fine
cs.setString(7, stampaBulk.getUser()); // Utente
cs.executeQuery();
} catch (java.sql.SQLException e) {
throw SQLExceptionHandler.getInstance().handleSQLException(e);
} finally {
if (cs != null)
cs.close();
}
} catch (Throwable ex) {
if (ex instanceof ApplicationWarningPersistencyException)
message.setMessage(ex.getMessage());
else
throw handleException(ex);
}
} else {
//richiamo la stored procedure per la generazione dei vari report
LoggableStatement cs= null;
try {
try {
cs= new LoggableStatement(getConnection(userContext),"{call " + it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema()
+ "CNRCTB250.StampeIVA(?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?) }",false,this.getClass());
cs.setString(1, stampaBulk.getCd_cds()); // CD CDS
cs.setString(2, stampaBulk.getCd_unita_organizzativa()); // Cd_unita_organizzativa
cs.setInt(3, stampaBulk.getEsercizio().intValue()); // ESERCIZIO
if (stampaBulk.isStarSezionali())
cs.setString(4, "*"); // Cd_tipo_sezionale
else
cs.setString(4, stampaBulk.getTipo_sezionale().getCd_tipo_sezionale()); // Cd_tipo_sezionale
cs.setDate(5, new Date(stampaBulk.getData_da().getTime())); // Data inizio
cs.setDate(6, new Date(stampaBulk.getData_a().getTime())); // Data fine
if (stampaBulk.getTipo_stampa().equals(stampaBulk.TIPO_STAMPA_LIQUIDAZIONE) && stampaBulk.getTipo_report().equals(stampaBulk.DEFINITIVO))
cs.setString(7, stampaBulk.getTipo_stampa() + "_DEF"); // TipoStampa = 'LIQUIDAZIONE_DEF'
else
cs.setString(7, stampaBulk.getTipo_stampa()); // TipoStampa = 'REGISTRI'/ 'RIEPILOGATIVI' / 'LIQUIDAZIONE' / 'LIQUIDAZIONE DI MASSA'
if (stampaBulk.isStarRegistro()) {
if (stampaBulk.isRiepilogativo())
cs.setString(8, ((Riepilogativi_ivaVBulk)stampaBulk).getSezionaliFlag());
else
cs.setString(8, "*"); // TipoRegistro
} else
if (stampaBulk.getTipo_stampa() != null && stampaBulk.getTipo_stampa().equals(stampaBulk.TIPO_STAMPA_RIEPILOGATIVI_IVA_DIFFERITA))
cs.setString(8, ((Riepilogativi_ivaVBulk)stampaBulk).getSezionaliFlag());
else
cs.setString(8, stampaBulk.getTipo_sezionale().getTi_acquisti_vendite()); // TipoRegistro
cs.setString(9, stampaBulk.getTipo_report()); // TipoReport = 'P' [provvisorio] / 'D' [definitivo]
cs.setString(10, ((stampaBulk.isRistampa())?
stampaBulk.RISTAMPA :
stampaBulk.NON_RISTAMPA)); // Ristampa = 'N' [no ristampa] / 'Y' [ristampa]
cs.setBigDecimal(11, pg_Stampa); // repId [dalla sequence]
cs.setInt(12, 1); // logId [?] (al momento non è gestito...)
cs.registerOutParameter(13, java.sql.Types.VARCHAR);
cs.setString(14, stampaBulk.getUser());
cs.setString(15, (stampaBulk.getTipoSezionaleFlag() == null) ?
"" :
stampaBulk.getTipoSezionaleFlag());
cs.setString(16, stampaBulk.getTipoImpegnoFlag());
cs.executeQuery();
msgSP= cs.getString(13);
} catch (java.sql.SQLException e) {
throw SQLExceptionHandler.getInstance().handleSQLException(e);
} finally {
if (cs != null)
cs.close();
}
} catch (Throwable ex) {
if (ex instanceof ApplicationWarningPersistencyException)
message.setMessage(ex.getMessage());
else
throw handleException(ex);
}
//per la liquidazione vado a rileggere i dati updatati dalla stored procedure
if (stampaBulk.isLiquidazione()) {
try {
Liquidazione_ivaBulk liquidazione= ((Liquidazione_ivaVBulk) stampaBulk).getLiquidazione_iva();
it.cnr.jada.bulk.BulkHome home= getHome(userContext, Liquidazione_ivaBulk.class);
it.cnr.jada.persistency.sql.SQLBuilder sql= home.createSQLBuilder();
sql.addClause("AND", "cd_cds", sql.EQUALS, liquidazione.getCd_cds());
sql.addClause("AND", "esercizio", sql.EQUALS, liquidazione.getEsercizio());
sql.addClause("AND", "cd_unita_organizzativa", sql.EQUALS, liquidazione.getCd_unita_organizzativa());
sql.addClause("AND", "dt_inizio", sql.EQUALS, liquidazione.getDt_inizio());
sql.addClause("AND", "dt_fine", sql.EQUALS, liquidazione.getDt_fine());
if(stampaBulk instanceof Liquidazione_definitiva_ivaVBulk)
sql.addClause("AND", "report_id", sql.EQUALS, new Long(0L));
else
sql.addClause("AND", "report_id", sql.EQUALS, liquidazione.getReport_id());
sql.addClause("AND", "tipo_liquidazione", sql.EQUALS, stampaBulk.getTipoSezionaleFlag());
it.cnr.jada.persistency.Broker broker= home.createBroker(sql);
if (!broker.next())
throw new ApplicationException("Impossibile recuperare i dati della liquidazione dopo l'esecuzione della procedura!");
((Liquidazione_ivaVBulk) stampaBulk).setLiquidazione_iva((Liquidazione_ivaBulk) broker.fetch(Liquidazione_ivaBulk.class));
} catch (it.cnr.jada.persistency.PersistencyException e) {
throw handleException(e);
}
}
}
if (msgSP != null && msgSP != "")
message.setMessage(msgSP);
return new MTUWrapper(stampaBulk, message);
}
/**
* riepilogoLiquidazioneIVA method comment.
*/
private void callTabCodIvaAcquisti(
it.cnr.jada.UserContext userContext,
Liquidazione_iva_annualeVBulk bulk)
throws SQLException, PersistencyException, ComponentException {
LoggableStatement cs= null;
try {
cs = new LoggableStatement(getConnection(userContext),"{call " + it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema()
+ "CNRCTB253.tabCodIvaAcquisti(?, ?, ?) }",false,this.getClass());
cs.setLong(1, bulk.getId_report().longValue()); // Id stampa
cs.setInt(2, bulk.getEsercizio().intValue()); // Esercizio
cs.setString(3, (bulk instanceof Quadri_va_vfVBulk)?"Y":"N"); // FlEsclusione
cs.executeQuery();
} catch (java.sql.SQLException e) {
throw SQLExceptionHandler.getInstance().handleSQLException(e);
} finally {
if (cs != null) cs.close();
}
}
/**
* riepilogoLiquidazioneIVA method comment.
*/
private void callTabCodIvaVendite(
it.cnr.jada.UserContext userContext,
Liquidazione_iva_annualeVBulk bulk)
throws SQLException, PersistencyException, ComponentException {
LoggableStatement cs= null;
try {
cs = new LoggableStatement(getConnection(userContext),"{call " + it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema()
+ "CNRCTB253.tabCodIvaVendite(?, ?, ?) }",false,this.getClass());
cs.setLong(1, bulk.getId_report().longValue()); // Id stampa
cs.setInt(2, bulk.getEsercizio().intValue()); // Esercizio
cs.setString(3, (bulk instanceof Quadri_va_veVBulk)?"Y":"N"); // FlEsclusione
cs.executeQuery();
} catch (java.sql.SQLException e) {
throw SQLExceptionHandler.getInstance().handleSQLException(e);
} finally {
if (cs != null) cs.close();
}
}
//^^@@
/**
* controlla lo stato del report e della liquidazione
* controllare lo stato del registro in B
* PreCondition:
* richiesta di confermare o annullare un registro
* PostCondition:
* autorizza a procedere con l'operazione
* controllare che per il periodo non ci siano liquidazioni definitive
* PreCondition:
* richiesta di annullare un registro
* PostCondition:
* autorizza a procedere con l'operazione
* PreCondition:
* non trova nessun record.
* PostCondition:
* Viene inviato un messaggio e non permette l'operazione
* PreCondition:
* Si è verificato un errore.
* PostCondition:
* Viene inviato un messaggio e non permette l'operazione
*/
//^^@@
private void controllaSezionali(it.cnr.jada.UserContext userContext, Stampa_registri_ivaVBulk stampaBulk) throws it.cnr.jada.comp.ComponentException {
Gestione_registri_ivaVBulk bulk= (Gestione_registri_ivaVBulk) stampaBulk;
//controlla il report stato
int rc= -1;
try {
it.cnr.jada.persistency.sql.SQLBuilder sql= getHome(userContext, Report_statoBulk.class).createSQLBuilder();
sql.addSQLClause("AND", "STATO", sql.EQUALS, "B");
sql.addSQLClause("AND", "DT_INIZIO", sql.EQUALS, new Date(stampaBulk.getData_da().getTime()));
sql.addSQLClause("AND", "DT_FINE", sql.EQUALS, new Date(stampaBulk.getData_a().getTime()));
sql.addSQLClause("AND", "ESERCIZIO", sql.EQUALS, bulk.getEsercizio());
sql.addSQLClause("AND", "CD_CDS", sql.EQUALS, bulk.getUnita_organizzativa().getUnita_padre().getCd_unita_organizzativa());
sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, bulk.getUnita_organizzativa().getCd_unita_organizzativa());
sql.addSQLClause("AND", "TIPO_REPORT", sql.EQUALS, "REGISTRO_IVA");
sql.addSQLClause("AND", "CD_TIPO_SEZIONALE", sql.EQUALS, bulk.getTipo_sezionale().getCd_tipo_sezionale());
rc= sql.executeCountQuery(getHomeCache(userContext).getConnection());
if (rc == 0)
throw new it.cnr.jada.comp.ApplicationException("Attenzione, non ci sono registri per i valori impostati.");
} catch (SQLException ex) {
throw handleException(ex);
}
if (bulk.getTipo_report().equals("ANNULLA")) {
//controlla la liquidazione
rc= -1;
try {
it.cnr.jada.persistency.sql.SQLBuilder sql= getHome(userContext, Liquidazione_ivaBulk.class).createSQLBuilder();
sql.addSQLClause("AND", "STATO", sql.EQUALS, "D");
sql.addSQLClause("AND", "REPORT_ID", sql.EQUALS, "0");
sql.addSQLClause("AND", "DT_INIZIO", sql.EQUALS, new Date(stampaBulk.getData_da().getTime()));
sql.addSQLClause("AND", "DT_FINE", sql.EQUALS, new Date(stampaBulk.getData_a().getTime()));
sql.addSQLClause("AND", "ESERCIZIO", sql.EQUALS, bulk.getEsercizio());
sql.addSQLClause("AND", "CD_CDS", sql.EQUALS, bulk.getUnita_organizzativa().getUnita_padre().getCd_unita_organizzativa());
sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, bulk.getUnita_organizzativa().getCd_unita_organizzativa());
rc= sql.executeCountQuery(getHomeCache(userContext).getConnection());
if (rc != 0)
throw new it.cnr.jada.comp.ApplicationException("Attenzione, non è possibile annullare poichè esiste una liquidazione.");
} catch (SQLException ex) {
throw handleException(ex);
}
}
//tutto ok
return;
}
public BulkList findRegistriStampati(
UserContext userContext,
Stampa_registri_ivaVBulk stampa)
throws ComponentException {
Report_statoBulk reportStato = new Report_statoBulk();
reportStato.completeFrom(stampa);
Report_statoHome home = (Report_statoHome)getHome(userContext, reportStato);
try {
BulkList registriStampati = new BulkList(home.findAndOrderByDt_inizio(reportStato));
getHomeCache(userContext).fetchAll(userContext);
return registriStampati;
} catch (PersistencyException e) {
throw handleException(e);
}
}
//^^@@
/**
* Identificativo univoco progressivo per la gestione dell' IVA
* PreCondition:
* Viene richiesta un progressivo
* PostCondition:
* ritorna un valore
* PreCondition:
* Si è verificato un errore.
* PostCondition:
* Viene inviato un messaggio con il relativo errore ritornato dal DB
*/
//^^@@
private java.math.BigDecimal getSequence(it.cnr.jada.UserContext userContext) throws it.cnr.jada.comp.ComponentException {
//ricavo il progressivo unico pg_stampa
java.math.BigDecimal pg_Stampa= new java.math.BigDecimal(0);
try {
LoggableStatement ps= new LoggableStatement(getConnection(userContext),
"select IBMSEQ00_STAMPA.nextval from dual",true,this.getClass());
try {
java.sql.ResultSet rs= ps.executeQuery();
try {
if (rs.next())
pg_Stampa= rs.getBigDecimal(1);
} finally {
try{rs.close();}catch( java.sql.SQLException e ){};
}
} catch (java.sql.SQLException e) {
throw handleException(e);
} finally {
try{ps.close();}catch( java.sql.SQLException e ){};
}
} catch (java.sql.SQLException e) {
throw handleException(e);
}
return pg_Stampa;
}
/**
* riepilogoLiquidazioneIVA method comment.
*/
public it.cnr.contab.gestiva00.core.bulk.Liquidazione_iva_annualeVBulk
riepilogoLiquidazioneIVA(it.cnr.jada.UserContext userContext,
it.cnr.contab.gestiva00.core.bulk.Liquidazione_iva_annualeVBulk bulk)
throws it.cnr.jada.comp.ComponentException {
if (!(bulk instanceof Liquidazione_annualeVBulk)) return bulk;
//ricavo il progressivo unico pg_stampa
java.math.BigDecimal pg_Stampa= getSequence(userContext);
if (bulk instanceof IPrintable)
((IPrintable)bulk).setId_report(pg_Stampa);
try {
callRiepilogoLiquidazioneIVA(userContext, bulk);
Vp_liquid_iva_annualeHome home = (Vp_liquid_iva_annualeHome)getHome(userContext, Vp_liquid_iva_annualeBulk.class);
BulkList lista = null;
lista = home.findDettagliPerTipo(bulk, Liquidazione_iva_annualeVBulk.TIPO_A_CLAUSE);
if (lista != null && !lista.isEmpty())
bulk.setImporto(((Vp_liquid_iva_annualeBulk)lista.get(0)).getIm_iva());
lista = home.findDettagliPerTipo(bulk, Liquidazione_iva_annualeVBulk.TIPO_B_CLAUSE);
bulk.setElenco(lista);
lista = home.findDettagliPerTipo(bulk, Liquidazione_iva_annualeVBulk.TIPO_C_CLAUSE);
if (lista != null && !lista.isEmpty())
((Liquidazione_annualeVBulk)bulk).setImportoTotale(((Vp_liquid_iva_annualeBulk)lista.get(0)).getIm_iva());
} catch (Throwable t) {
throw handleException(t);
}
bulk.setRistampabile(true);
return bulk;
}
//^^@@
/**
* Prospetto delle liquidazioni definitive
* richiesta la lista delle liquidazioni
* PreCondition:
* Viene richiesta la lista delle liquidazioni già stampate
* PostCondition:
* visualizza la lista delle liquidazioni stampate
* si verifica un errore
* PreCondition:
* Si è verificato un errore.
* PostCondition:
* Viene inviato un messaggio con il relativo errore ritornato dal DB
*/
//^^@@
public java.util.Collection selectProspetti_stampatiByClause(
UserContext aUC,
OggettoBulk bulk,
Liquidazione_ivaBulk liq,
CompoundFindClause clauses)
throws ComponentException, it.cnr.jada.persistency.PersistencyException {
Liquidazione_ivaHome home= (Liquidazione_ivaHome) getHome(aUC, Liquidazione_ivaBulk.class);
it.cnr.jada.persistency.sql.SQLBuilder sql= home.createSQLBuilder();
Stampa_registri_ivaVBulk stampaBulk=(Stampa_registri_ivaVBulk) bulk;
sql.addClause(clauses);
sql.setDistinctClause(true);
sql.addSQLClause("AND", "CD_CDS", sql.EQUALS, stampaBulk.getCd_cds());
sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, stampaBulk.getCd_unita_organizzativa());
sql.addSQLClause("AND", "ESERCIZIO", sql.EQUALS, stampaBulk.getEsercizio());
sql.addSQLClause("AND", "STATO", sql.EQUALS, stampaBulk.DEFINITIVO);
sql.addSQLClause("AND", "TIPO_LIQUIDAZIONE", sql.EQUALS, stampaBulk.getTipoSezionaleFlag());
return (java.util.Collection) home.fetchAll(sql);
}
//^^@@
/**
* Combo dei sezionali
* PreCondition:
* Viene richiesta la lista dei sezionali relativi alla UO di appartenenza
* PostCondition:
* visualizza la lista dei sezionali
* Si è verificato un errore
* PreCondition:
* Si è verificato un errore.
* PostCondition:
* Viene inviato un messaggio con il relativo errore ritornato dal DB
*/
//^^@@
public java.util.Collection selectTipi_sezionaliByClause(
UserContext aUC,
OggettoBulk bulk,
Tipo_sezionaleBulk tipo_sez,
CompoundFindClause clauses)
throws ComponentException, it.cnr.jada.persistency.PersistencyException {
Tipo_sezionaleHome home= (Tipo_sezionaleHome) getHome(aUC, Tipo_sezionaleBulk.class);
it.cnr.jada.persistency.sql.SQLBuilder sql= home.createSQLBuilder();
Stampa_registri_ivaVBulk stampaBulk=(Stampa_registri_ivaVBulk) bulk;
sql.addClause(clauses);
sql.setDistinctClause(true);
sql.addTableToHeader("SEZIONALE");
sql.addSQLJoin("TIPO_SEZIONALE.CD_TIPO_SEZIONALE","SEZIONALE.CD_TIPO_SEZIONALE");
sql.addSQLClause("AND", "SEZIONALE.CD_CDS", sql.EQUALS, stampaBulk.getCd_cds());
sql.addSQLClause("AND", "SEZIONALE.CD_UNITA_ORGANIZZATIVA", sql.EQUALS, stampaBulk.getCd_unita_organizzativa());
sql.addSQLClause("AND", "SEZIONALE.ESERCIZIO", sql.EQUALS, stampaBulk.getEsercizio());
if (stampaBulk.getTipoSezionaleFlag() != null) {
if (stampaBulk.SEZIONALI_COMMERCIALI.equalsIgnoreCase(stampaBulk.getTipoSezionaleFlag()))
sql.addSQLClause("AND", "TIPO_SEZIONALE.TI_ISTITUZ_COMMERC", sql.EQUALS, Tipo_sezionaleBulk.COMMERCIALE);
else if (stampaBulk.SEZIONALI_SAN_MARINO_SENZA_IVA.equalsIgnoreCase(stampaBulk.getTipoSezionaleFlag())) {
sql.addSQLClause("AND", "TIPO_SEZIONALE.FL_SAN_MARINO_SENZA_IVA", sql.EQUALS, "Y");
sql.addSQLClause("AND", "TIPO_SEZIONALE.TI_ISTITUZ_COMMERC", sql.EQUALS, Tipo_sezionaleBulk.ISTITUZIONALE);
sql.addSQLClause("AND", "TIPO_SEZIONALE.TI_BENE_SERVIZIO",sql.NOT_EQUALS,Bene_servizioBulk.SERVIZIO);
/* RP INTRASTAT EVENTUALMENTE UTILE SE RICHIESTO UN'UNICA LIQUIDAZIONE
} else if (stampaBulk.SEZIONALI_BENI_INTRA_UE_SERVIZI_INTRA_EXTRA_UE.equalsIgnoreCase(stampaBulk.getTipoSezionaleFlag())) {
sql.openParenthesis("AND");
sql.openParenthesis("AND");
sql.addSQLClause("AND", "TIPO_SEZIONALE.FL_INTRA_UE", sql.EQUALS, "Y");
sql.addSQLClause("AND", "TIPO_SEZIONALE.TI_ISTITUZ_COMMERC", sql.EQUALS, Tipo_sezionaleBulk.ISTITUZIONALE);
sql.addSQLClause("AND", "TIPO_SEZIONALE.TI_BENE_SERVIZIO",sql.EQUALS,Bene_servizioBulk.BENE);
sql.closeParenthesis();
sql.openParenthesis("OR");
sql.openParenthesis("OR");
sql.addSQLClause("AND", "TIPO_SEZIONALE.FL_INTRA_UE", sql.EQUALS, "Y");
sql.addSQLClause("OR", "TIPO_SEZIONALE.FL_EXTRA_UE", sql.EQUALS, "Y");
sql.closeParenthesis();
sql.addSQLClause("AND", "TIPO_SEZIONALE.TI_ISTITUZ_COMMERC", sql.EQUALS, Tipo_sezionaleBulk.ISTITUZIONALE);
sql.addSQLClause("AND", "TIPO_SEZIONALE.TI_BENE_SERVIZIO",sql.EQUALS,Bene_servizioBulk.SERVIZIO);
sql.closeParenthesis();
sql.closeParenthesis();
}*/
} else if (stampaBulk.SEZIONALI_BENI_INTRA_UE.equalsIgnoreCase(stampaBulk.getTipoSezionaleFlag())) {
sql.addSQLClause("AND", "TIPO_SEZIONALE.FL_INTRA_UE", sql.EQUALS, "Y");
sql.addSQLClause("AND", "TIPO_SEZIONALE.TI_ISTITUZ_COMMERC", sql.EQUALS, Tipo_sezionaleBulk.ISTITUZIONALE);
sql.addSQLClause("AND", "TIPO_SEZIONALE.TI_BENE_SERVIZIO",sql.EQUALS,Bene_servizioBulk.BENE);
} else if (stampaBulk.SEZIONALI_SERVIZI_NON_RESIDENTI.equalsIgnoreCase(stampaBulk.getTipoSezionaleFlag())) {
sql.openParenthesis("AND");
sql.addSQLClause("AND", "TIPO_SEZIONALE.FL_INTRA_UE", sql.EQUALS, "Y");
sql.addSQLClause("OR", "TIPO_SEZIONALE.FL_EXTRA_UE", sql.EQUALS, "Y");
sql.addSQLClause("OR", "TIPO_SEZIONALE.FL_SAN_MARINO_SENZA_IVA", sql.EQUALS, "Y");
sql.closeParenthesis();
sql.addSQLClause("AND", "TIPO_SEZIONALE.TI_ISTITUZ_COMMERC", sql.EQUALS, Tipo_sezionaleBulk.ISTITUZIONALE);
sql.addSQLClause("AND", "TIPO_SEZIONALE.TI_BENE_SERVIZIO",sql.EQUALS,Bene_servizioBulk.SERVIZIO);
} else if (stampaBulk.SEZIONALI_SPLIT_PAYMENT.equalsIgnoreCase(stampaBulk.getTipoSezionaleFlag())) {
sql.addSQLClause("AND", "TIPO_SEZIONALE.FL_SPLIT_PAYMENT", sql.EQUALS, "Y");
sql.addSQLClause("AND", "TIPO_SEZIONALE.TI_ISTITUZ_COMMERC", sql.EQUALS, Tipo_sezionaleBulk.ISTITUZIONALE);
}
}
sql.addOrderBy("CD_TIPO_SEZIONALE");
return (java.util.Collection) home.fetchAll(sql);
}
//^^@@
/**
* searchtool delle unita organizzative (creazione e annullamento di registri in stato B)
* PreCondition:
* Viene richiesta la lista delle UO
* PostCondition:
* ritorna la lista delle UO
* Si è verificato un errore
* PreCondition:
* Si è verificato un errore.
* PostCondition:
* Viene inviato un messaggio con il relativo errore ritornato dal DB
*/
//^^@@
public it.cnr.jada.persistency.sql.SQLBuilder selectUnita_organizzativaByClause(
UserContext aUC,
Stampa_registri_ivaVBulk stampaBulk,
Unita_organizzativaBulk uo,
CompoundFindClause clauses)
throws ComponentException {
Unita_organizzativaHome home= (Unita_organizzativaHome) getHome(aUC, Unita_organizzativaBulk.class);
it.cnr.jada.persistency.sql.SQLBuilder sql= home.createSQLBuilder();
if (((Gestione_registri_ivaVBulk)stampaBulk).getUnita_organizzativa()!=null)
sql.addSQLClause("AND", "CD_UNITA_ORGANIZZATIVA", sql.EQUALS, ((Gestione_registri_ivaVBulk)stampaBulk).getUnita_organizzativa().getCd_unita_organizzativa());
return sql;
}
/**
* tabCodIvaAcquisti method comment.
*/
public it.cnr.contab.gestiva00.core.bulk.Liquidazione_iva_annualeVBulk
tabCodIvaAcquisti(
it.cnr.jada.UserContext userContext,
it.cnr.contab.gestiva00.core.bulk.Liquidazione_iva_annualeVBulk bulk)
throws it.cnr.jada.comp.ComponentException {
if (!(bulk instanceof Codici_iva_fatture_acquistiVBulk ||
bulk instanceof Quadri_va_vfVBulk)) return bulk;
//ricavo il progressivo unico pg_stampa
java.math.BigDecimal pg_Stampa= getSequence(userContext);
if (bulk instanceof IPrintable)
((IPrintable)bulk).setId_report(pg_Stampa);
try {
callTabCodIvaAcquisti(userContext, bulk);
Vp_liquid_iva_annualeHome home = (Vp_liquid_iva_annualeHome)getHome(userContext, Vp_liquid_iva_annualeBulk.class);
BulkList lista = null;
lista = home.findDettagliPerTipo(bulk, Liquidazione_iva_annualeVBulk.TIPO_A_CLAUSE);
bulk.setElenco(lista);
lista = home.findDettagliPerTipo(bulk, Liquidazione_iva_annualeVBulk.TIPO_B_CLAUSE);
Vp_liquid_iva_annualeBulk liquid = (Vp_liquid_iva_annualeBulk)lista.get(0);
if (lista != null && !lista.isEmpty())
bulk.setImporto(liquid.getImponibile());
if (bulk instanceof Quadri_va_vfVBulk) {
Quadri_va_vfVBulk quadro = (Quadri_va_vfVBulk)bulk;
quadro.setIm_tot_iva(liquid.getIm_iva());
quadro.setIm_totale(liquid.getIm_totale());
lista = home.findDettagliPerTipo(bulk, Liquidazione_iva_annualeVBulk.TIPO_C_CLAUSE);
quadro.setElencoSecondario(lista);
}
} catch (Throwable t) {
throw handleException(t);
}
bulk.setRistampabile(true);
return bulk;
}
/**
* tabCodIvaVendite method comment.
*/
public it.cnr.contab.gestiva00.core.bulk.Liquidazione_iva_annualeVBulk
tabCodIvaVendite(
it.cnr.jada.UserContext userContext,
it.cnr.contab.gestiva00.core.bulk.Liquidazione_iva_annualeVBulk bulk)
throws it.cnr.jada.comp.ComponentException {
if (!(bulk instanceof Codici_iva_fatture_emesseVBulk ||
bulk instanceof Quadri_va_veVBulk)) return bulk;
//ricavo il progressivo unico pg_stampa
java.math.BigDecimal pg_Stampa= getSequence(userContext);
if (bulk instanceof IPrintable)
((IPrintable)bulk).setId_report(pg_Stampa);
try {
callTabCodIvaVendite(userContext, bulk);
Vp_liquid_iva_annualeHome home = (Vp_liquid_iva_annualeHome)getHome(userContext, Vp_liquid_iva_annualeBulk.class);
BulkList lista = null;
lista = home.findDettagliPerTipo(bulk, Liquidazione_iva_annualeVBulk.TIPO_A_CLAUSE);
bulk.setElenco(lista);
lista = home.findDettagliPerTipo(bulk, Liquidazione_iva_annualeVBulk.TIPO_B_CLAUSE);
Vp_liquid_iva_annualeBulk liquid = (Vp_liquid_iva_annualeBulk)lista.get(0);
if (lista != null && !lista.isEmpty())
bulk.setImporto(liquid.getImponibile());
if (bulk instanceof Quadri_va_veVBulk) {
Quadri_va_veVBulk quadro = (Quadri_va_veVBulk)bulk;
quadro.setIm_tot_iva(liquid.getIm_iva());
quadro.setIm_totale(liquid.getIm_totale());
lista = home.findDettagliPerTipo(bulk, Liquidazione_iva_annualeVBulk.TIPO_C_CLAUSE);
quadro.setElencoSecondario(lista);
}
} catch (Throwable t) {
throw handleException(t);
}
bulk.setRistampabile(true);
return bulk;
}
public SQLBuilder selectLinea_di_attivitaByClause (UserContext userContext,Liquidazione_iva_ripart_finBulk ripartizione, WorkpackageBulk linea_di_attivita, CompoundFindClause clause) throws ComponentException, PersistencyException{
SQLBuilder sql = getHome(userContext, WorkpackageBulk.class, "V_LINEA_ATTIVITA_VALIDA").createSQLBuilder();
sql.addClause( clause );
sql.addSQLClause(FindClause.AND, "ESERCIZIO", SQLBuilder.EQUALS, ((it.cnr.contab.utenze00.bp.CNRUserContext) userContext).getEsercizio());
sql.addSQLClause(FindClause.AND, "TI_GESTIONE", SQLBuilder.EQUALS, CostantiTi_gestione.TI_GESTIONE_SPESE);
sql.addSQLClause(FindClause.AND, "CD_CENTRO_RESPONSABILITA", SQLBuilder.LIKE, ripartizione.getCd_unita_organizzativa()+"%");
sql.addTableToHeader("NATURA");
sql.addSQLJoin("V_LINEA_ATTIVITA_VALIDA.CD_NATURA","NATURA.CD_NATURA");
sql.addSQLClause(FindClause.AND,"NATURA.TIPO",SQLBuilder.EQUALS,NaturaBulk.TIPO_NATURA_FONTI_ESTERNE);
// Obbligatorio cofog sulle GAE
try{
if(((Parametri_cnrComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Parametri_cnrComponentSession",Parametri_cnrComponentSession.class)).isCofogObbligatorio(userContext))
sql.addSQLClause("AND","CD_COFOG",SQLBuilder.ISNOTNULL,null);
} catch (RemoteException e) {
throw new ComponentException(e);
} catch (EJBException e) {
throw new ComponentException(e);
}
return sql;
}
} © 2015 - 2025 Weber Informatics LLC | Privacy Policy