use of it.cnr.contab.gestiva00.core.bulk.Liquidazione_ivaVBulk in project sigla-main by consiglionazionaledellericerche.
the class StampaRegistriIvaComponent method callStampeIva.
// ^^@@
/**
* 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());
// CD CDS
cs.setString(1, ((Gestione_registri_ivaVBulk) stampaBulk).getUnita_organizzativa().getUnita_padre().getCd_unita_organizzativa());
// Cd_unita_organizzativa
cs.setString(2, ((Gestione_registri_ivaVBulk) stampaBulk).getUnita_organizzativa().getCd_unita_organizzativa());
// ESERCIZIO
cs.setInt(3, stampaBulk.getEsercizio().intValue());
// Cd_tipo_sezionale
cs.setString(4, stampaBulk.getTipo_sezionale().getCd_tipo_sezionale());
// Data inizio
cs.setDate(5, new Date(stampaBulk.getData_da().getTime()));
// Data fine
cs.setDate(6, new Date(stampaBulk.getData_a().getTime()));
// Utente
cs.setString(7, stampaBulk.getUser());
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());
// CD CDS
cs.setString(1, stampaBulk.getCd_cds());
// Cd_unita_organizzativa
cs.setString(2, stampaBulk.getCd_unita_organizzativa());
// ESERCIZIO
cs.setInt(3, stampaBulk.getEsercizio().intValue());
if (stampaBulk.isStarSezionali())
// Cd_tipo_sezionale
cs.setString(4, "*");
else
// Cd_tipo_sezionale
cs.setString(4, stampaBulk.getTipo_sezionale().getCd_tipo_sezionale());
// Data inizio
cs.setDate(5, new Date(stampaBulk.getData_da().getTime()));
// Data fine
cs.setDate(6, new Date(stampaBulk.getData_a().getTime()));
if (stampaBulk.getTipo_stampa().equals(stampaBulk.TIPO_STAMPA_LIQUIDAZIONE) && stampaBulk.getTipo_report().equals(stampaBulk.DEFINITIVO))
// TipoStampa = 'LIQUIDAZIONE_DEF'
cs.setString(7, stampaBulk.getTipo_stampa() + "_DEF");
else
// TipoStampa = 'REGISTRI'/ 'RIEPILOGATIVI' / 'LIQUIDAZIONE' / 'LIQUIDAZIONE DI MASSA'
cs.setString(7, stampaBulk.getTipo_stampa());
if (stampaBulk.isStarRegistro()) {
if (stampaBulk.isRiepilogativo())
cs.setString(8, ((Riepilogativi_ivaVBulk) stampaBulk).getSezionaliFlag());
else
// TipoRegistro
cs.setString(8, "*");
} else if (stampaBulk.getTipo_stampa() != null && stampaBulk.getTipo_stampa().equals(stampaBulk.TIPO_STAMPA_RIEPILOGATIVI_IVA_DIFFERITA))
cs.setString(8, ((Riepilogativi_ivaVBulk) stampaBulk).getSezionaliFlag());
else
// TipoRegistro
cs.setString(8, stampaBulk.getTipo_sezionale().getTi_acquisti_vendite());
// TipoReport = 'P' [provvisorio] / 'D' [definitivo]
cs.setString(9, stampaBulk.getTipo_report());
cs.setString(10, ((stampaBulk.isRistampa()) ? stampaBulk.RISTAMPA : // Ristampa = 'N' [no ristampa] / 'Y' [ristampa]
stampaBulk.NON_RISTAMPA));
// repId [dalla sequence]
cs.setBigDecimal(11, pg_Stampa);
// logId [?] (al momento non è gestito...)
cs.setInt(12, 1);
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);
}
use of it.cnr.contab.gestiva00.core.bulk.Liquidazione_ivaVBulk in project sigla-main by consiglionazionaledellericerche.
the class StampaRegistriIvaComponent method aggiornaLiquidazione.
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());
return liquidazione;
}
Aggregations