it.cnr.contab.docamm00.comp.AutoFatturaComponent 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.docamm00.comp;
import java.rmi.RemoteException;
import java.util.GregorianCalendar;
import it.cnr.contab.config00.bulk.Configurazione_cnrBulk;
import it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession;
import it.cnr.contab.doccont00.core.bulk.IScadenzaDocumentoContabileHome;
import it.cnr.contab.doccont00.core.bulk.IScadenzaDocumentoContabileBulk;
import it.cnr.contab.docamm00.docs.bulk.Numerazione_doc_ammBulk;
import it.cnr.contab.docamm00.ejb.ProgressiviAmmComponentSession;
import it.cnr.contab.docamm00.tabrif.bulk.SezionaleBulk;
import java.io.Serializable;
import it.cnr.contab.docamm00.docs.bulk.Fattura_passivaBulk;
import it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_IBulk;
import it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoBulk;
import it.cnr.contab.docamm00.docs.bulk.AutofatturaBulk;
import it.cnr.jada.UserContext;
import it.cnr.jada.bulk.OggettoBulk;
import it.cnr.jada.comp.ApplicationException;
import it.cnr.jada.comp.CRUDComponent;
import it.cnr.jada.comp.ComponentException;
import it.cnr.jada.comp.ICRUDMgr;
import it.cnr.jada.persistency.sql.LoggableStatement;
public class AutoFatturaComponent
extends CRUDComponent
implements IAutoFatturaMgr,
ICRUDMgr,
Cloneable,
Serializable {
/**
* AutoFatturaComponent constructor comment.
*/
public AutoFatturaComponent() {
/*Default constructor*/
}
//^^@@
/**
* Calcolo totali di fattura.
* PreCondition:
* Nessuna condizione di errore rilevata.
* PostCondition:
* Aggiorna lo stato dei documenti amministrativi associati al mandato.
* Inserimento del mandato.
* PreCondition:
* Si sta inserendo o modificando il mandato.
* PostCondition:
* Aggiorna lo stato dei documenti amministrativi associati al mandato con stato P o L.
* Annullamento del mandato.
* PreCondition:
* Si sta annullando il mandato.
* PostCondition:
* Aggiorna lo stato dei documenti amministrativi associati al mandato con stato A.
* Cancellazione del mandato.
* PreCondition:
* Si sta cancellando il mandato.
* PostCondition:
* Aggiorna lo stato dei documenti amministrativi associati al mandato con stato Q.
* Si verifica errore.
* PreCondition:
* Condizione di errore.
* PostCondition:
* Viene rilanciata una ComponentExcpetion con messaggio dettagliato.
*/
//^^@@
public void aggiornaStatoDocumentiAmministrativi(
it.cnr.jada.UserContext userContext,
String cd_cds,
String cd_unita_organizzativa,
String tipo_documento,
Integer esercizio,
Long progressivo,
String action)
throws it.cnr.jada.comp.ComponentException {
}
private void assegnaProgressivo(UserContext userContext,AutofatturaBulk autofattura) throws ComponentException {
try {
// Assegno un nuovo progressivo alla fattura
ProgressiviAmmComponentSession progressiviSession = (ProgressiviAmmComponentSession)it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRDOCAMM00_EJB_ProgressiviAmmComponentSession", ProgressiviAmmComponentSession.class);
Numerazione_doc_ammBulk numerazione = new Numerazione_doc_ammBulk(autofattura);
autofattura.setPg_autofattura(progressiviSession.getNextPG(userContext, numerazione));
} catch (Throwable t) {
throw handleException(autofattura, t);
}
}
//^^@@
/**
* Tutti I controli superati.
* PreCondition:
* Nessuna condizione di errore rilevata.
* PostCondition:
* Viene restituita l'autofattura inalterata.
*/
//^^@@
public IDocumentoAmministrativoBulk calcoloConsuntivi (UserContext aUC, IDocumentoAmministrativoBulk documentoAmministrativo) throws ComponentException {
return documentoAmministrativo;
}
private void callVerifyDataRegistrazione(
UserContext userContext,
AutofatturaBulk autofattura)
throws ComponentException {
LoggableStatement cs = null;
try {
cs = new LoggableStatement(getConnection(userContext),
"{ call " +
it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() +
"CNRCTB100.chkDtRegistrazPerIva(?, ?, ?, ?, ?) }",false,this.getClass());
cs.setString(1, autofattura.getCd_cds_origine());
cs.setString(2, autofattura.getCd_uo_origine());
cs.setInt(3, autofattura.getEsercizio().intValue());
cs.setString(4, autofattura.getCd_tipo_sezionale());
cs.setTimestamp(5, autofattura.getDt_registrazione());
cs.executeQuery();
} catch (Throwable e) {
throw handleException(autofattura, e);
} finally {
try {
if (cs != null) cs.close();
} catch (java.sql.SQLException e) {
throw handleException(autofattura, e);
}
}
}
//^^@@
/**
* Creazione di un'autofattura
* PreCondition:
* Nessuna condizione di errore rilevata.
* PostCondition:
* l'autofattura viene creata
* Si verifica errore.
* PreCondition:
* Condizione di errore.
* PostCondition:
* Viene rilanciata una ComponentExcpetion con messaggio dettagliato.
* Validazione autofattura.
* PreCondition:
* Non viene superata la validazione.
* PostCondition:
* Viene rilanciata una ComponentExcpetion con messaggio relativo alla validazione non verificata.
* Assegnazione di un progressivo
* PreCondition:
* Non è possibile assegnare un progressivo per l'autofattura
* PostCondition:
* Viene rilanciata una ComponentExcpetion con messaggio relativo.
*/
//^^@@
public OggettoBulk creaConBulk(UserContext userContext,OggettoBulk bulk) throws it.cnr.jada.comp.ComponentException {
return creaConBulk(userContext, bulk, null);
}
/**
* creaConBulk method comment.
*/
public it.cnr.jada.bulk.OggettoBulk creaConBulk(it.cnr.jada.UserContext userContext, it.cnr.jada.bulk.OggettoBulk bulk, it.cnr.contab.doccont00.core.bulk.OptionRequestParameter status) throws it.cnr.jada.comp.ComponentException {
AutofatturaBulk autofattura = (AutofatturaBulk)bulk;
assegnaProgressivo(userContext, autofattura);
validaAutofattura(userContext, autofattura);
autofattura.setUser(userContext.getUser());
return super.creaConBulk(userContext, autofattura);
}
//^^@@
/**
* Cancellazione di un'autofattura
* PreCondition:
* Nessuna condizione di errore rilevata.
* PostCondition:
* l'autofattura viene cancellata
* Si verifica errore.
* PreCondition:
* Condizione di errore.
* PostCondition:
* Viene rilanciata una ComponentExcpetion con messaggio dettagliato.
*/
//^^@@
private void eliminaAutofattura(UserContext userContext,AutofatturaBulk autofattura) throws it.cnr.jada.comp.ComponentException {
if (!autofattura.STATO_CONTABILIZZATO.equalsIgnoreCase(autofattura.getStato_cofi()) &&
!autofattura.STATO_PARZIALE.equalsIgnoreCase(autofattura.getStato_cofi()))
throw new it.cnr.jada.comp.ApplicationException("L'autofattura per la fattura passiva \"" + autofattura.getFattura_passiva().getDs_fattura_passiva() + "\" è già stata pagata. Operazione annullata.");
//A seguito dell'errore segnalato 569 (dovuto alla richiesta 423) il controllo
//successivo viene demandato a isStampataSuRegistroIVA della FATTURA PASSIVA.
//String statoIVA = getStatoIVA(userContext, autofattura);
//if (AutofatturaBulk.STATO_IVA_B.equalsIgnoreCase(statoIVA) ||
//AutofatturaBulk.STATO_IVA_C.equalsIgnoreCase(statoIVA)) {
//String descr = (autofattura.getFattura_passiva().getDs_fattura_passiva() == null) ?
//autofattura.getFattura_passiva().getPg_fattura_passiva().toString() :
//autofattura.getFattura_passiva().getDs_fattura_passiva();
//throw new it.cnr.jada.comp.ApplicationException("L'autofattura per la fattura passiva \"" + descr + "\" ha uno stato IVA diverso da \"A\". Operazione annullata.");
//}
}
//^^@@
/**
* Cancellazione di un'autofattura
* PreCondition:
* Nessuna condizione di errore rilevata.
* PostCondition:
* l'autofattura viene cancellata
* Si verifica errore.
* PreCondition:
* Condizione di errore.
* PostCondition:
* Viene rilanciata una ComponentExcpetion con messaggio dettagliato.
*/
//^^@@
public void eliminaConBulk(UserContext userContext,OggettoBulk bulk) throws it.cnr.jada.comp.ComponentException {
eliminaAutofattura(userContext, (AutofatturaBulk)bulk);
super.eliminaConBulk(userContext, bulk);
}
//^^@@
/**
* estrazione sezionali validi
* PreCondition:
* Nessun errore riscontrato.
* PostCondition:
* E' stato estratto il vettore dei sezionali corrispondente al tipo sezionale richiesto.
* fattura di tipo non valido
* PreCondition:
* E' stata selezionata una fattura di tipo non valido.
* PostCondition:
* Viene inviato il messaggio: "Il tipo di fattura selezionato non è valido".
* Tipo sezionale autofattura
* PreCondition:
* Il tipo sezionale ricercato non è di tipo autofattura
* PostCondition:
* Non viene aggiunto al vettore.
* Tipo sezionale per autofatture intra UE
* PreCondition:
* Il tipo sezionale ricercato non è contemporaneamente di tipo autofattura e tipo intra UE
* PostCondition:
* Viene ricercato il tipo sezionale generico per autofattura.
* Tipo sezionale per fatture S. Marino senza iva
* PreCondition:
* Il tipo sezionale ricercato non è contemporaneamente di tipo autofattura e tipo S. Marino senza iva
* PostCondition:
* Viene ricercato il tipo sezionale generico per autofattura.
* Ricerca del tipo sezionale generico per autofatture
* PreCondition:
* Il tipo sezionale per autofattura non è definito
* PostCondition:
* Non viene aggiunto al vettore.
* Tipo fatture commerciali
* PreCondition:
* Il tipo di sezionale non è commerciale
* PostCondition:
* Non viene aggiunto al vettore.
* Tipo fatture vendita
* PreCondition:
* Il tipo di sezionale non è definito per la vendita
* PostCondition:
* Non viene aggiunto al vettore.
* Tipo della fattura
* PreCondition:
* Il tipo della fattura non è 'autofattura'
* PostCondition:
* Non viene restituito alcun elemento
* Esercizio del tipo sezionale dell'autofattura
* PreCondition:
* Il tipo sezionale non è definito per l'esercizio corrente
* PostCondition:
* Non viene aggiunto al vettore.
* Unità Organizzativa del tipo sezionale dell'autofattura
* PreCondition:
* Il tipo sezionale non è definito per la UO corrente
* PostCondition:
* Non viene aggiunto al vettore.
*/
//^^@@
public java.util.Vector estraeSezionali (UserContext aUC, AutofatturaBulk autofattura) throws ComponentException {
try {
if (autofattura == null || autofattura.getTi_istituz_commerc() == null)
return null;
return new java.util.Vector(findSezionali(aUC, autofattura, false));
} catch (Throwable t) {
throw handleException(autofattura, t);
}
}
public java.util.Vector estraeSezionali (UserContext aUC, AutofatturaBulk autofattura,boolean obbIta) throws ComponentException {
try {
if (autofattura == null || autofattura.getTi_istituz_commerc() == null)
return null;
return new java.util.Vector(findSezionali(aUC, autofattura, obbIta));
} catch (Throwable t) {
throw handleException(autofattura, t);
}
}
public java.util.Collection findSezionali(UserContext aUC, AutofatturaBulk autofattura,boolean obbIta)
throws ComponentException,it.cnr.jada.persistency.PersistencyException,it.cnr.jada.persistency.IntrospectionException {
if (autofattura.getTi_istituz_commerc() == null) return null;
java.util.Vector options = new java.util.Vector();
String[][] autofatturaClause = { { "TIPO_SEZIONALE.FL_AUTOFATTURA", "Y", "AND" } };
//String[][] defaultOption = new String[][] { autofatturaClause };
if (autofattura.getFl_intra_ue().booleanValue())
options.add(new String[][] { { "TIPO_SEZIONALE.FL_INTRA_UE","Y", "AND" } });
else if (autofattura.getFl_extra_ue().booleanValue())
options.add(new String[][] { { "TIPO_SEZIONALE.FL_EXTRA_UE","Y", "AND" } });
else if (autofattura.getFl_san_marino_con_iva().booleanValue())
options.add(new String[][] { { "TIPO_SEZIONALE.FL_SAN_MARINO_CON_IVA","Y", "AND" } });
else if (autofattura.getFl_san_marino_senza_iva().booleanValue())
options.add(new String[][] { { "TIPO_SEZIONALE.FL_SAN_MARINO_SENZA_IVA","Y", "AND" } });
else
if(!obbIta)
options.add(new String[][] { { "TIPO_SEZIONALE.FL_ORDINARIO","Y", "AND" } });
if (autofattura.getFl_split_payment()!=null && autofattura.getFl_split_payment().booleanValue())
options.add(new String[][] { { "TIPO_SEZIONALE.FL_SPLIT_PAYMENT","Y", "AND" } });
else
options.add(autofatturaClause);
//********************************
//Il seguente if è stato richiesto da Paolo espressamente su richiesta CINECA
if (autofattura.isAutofatturaNeeded() && autofattura.isAutofatturaDiBeni())
options.add(new String[][] {
{ "TIPO_SEZIONALE.TI_BENE_SERVIZIO", autofattura.getTi_bene_servizio(), "AND" }
});
else
options.add(new String[][] {
{ "TIPO_SEZIONALE.TI_BENE_SERVIZIO", "*", "AND" } //,
// { "TIPO_SEZIONALE.TI_BENE_SERVIZIO", autofattura.getTi_bene_servizio(), "OR" }
});
Fattura_passivaBulk fatturaPassiva=(Fattura_passivaBulk) findByPrimaryKey(aUC, autofattura.getFattura_passiva());
if ((fatturaPassiva.isCommerciale()) &&
(fatturaPassiva.getFl_split_payment()==null ||
(fatturaPassiva.getFl_split_payment()!=null && !fatturaPassiva.getFl_split_payment().booleanValue())) &&
fatturaPassiva.getData_protocollo()!=null &&
!fatturaPassiva.isEstera() &&
!fatturaPassiva.isSanMarinoSenzaIVA() &&
!fatturaPassiva.isSanMarinoConIVA()){
Configurazione_cnrBulk conf = getLimitiRitardoDetraibile(aUC, fatturaPassiva);
if(fatturaPassiva.getDt_registrazione() != null && fatturaPassiva.getDt_registrazione().after(conf.getDt01()) &&
(fatturaPassiva.getDt_registrazione().before(conf.getDt02())|| fatturaPassiva.getDt_registrazione().equals(conf.getDt02())))
options.add(new String[][]{{"TIPO_SEZIONALE.FL_REG_TARDIVA", "Y", "AND"}});
else
options.add(new String[][]{{"TIPO_SEZIONALE.FL_REG_TARDIVA", "N", "AND"}});
}else{
options.add(new String[][]{{"TIPO_SEZIONALE.FL_REG_TARDIVA", "N", "AND"}});
}
//********************************
//java.util.Collection result =
return ((it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleHome)getHome(aUC,it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk.class)).findTipiSezionali(
autofattura.getEsercizio(),
autofattura.getCd_uo_origine(),
autofattura.getTi_istituz_commerc(),
it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk.VENDITE,
autofattura.getTi_fattura(),
options);
//if (result == null || result.isEmpty())
//result = ((it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleHome)getHome(aUC,it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk.class)).findTipiSezionali(
//autofattura.getEsercizio(),
//autofattura.getCd_uo_origine(),
//autofattura.getTi_istituz_commerc(),
//it.cnr.contab.docamm00.tabrif.bulk.Tipo_sezionaleBulk.VENDITE,
//autofattura.getTi_fattura(),
//defaultOption);
//return result;
}
private String getStatoIVA(UserContext userContext, AutofatturaBulk autofattura)
throws ComponentException {
return (autofattura.getProtocollo_iva() == null ||
autofattura.getProtocollo_iva_generale() == null) ?
"A" : "B";
}
//^^@@
/**
* Modifica di un'autofattura
* PreCondition:
* Nessuna condizione di errore rilevata.
* PostCondition:
* l'autofattura viene aggiornata
* Si verifica errore.
* PreCondition:
* Condizione di errore.
* PostCondition:
* Viene rilanciata una ComponentExcpetion con messaggio dettagliato.
*/
//^^@@
public OggettoBulk modificaConBulk(UserContext userContext,OggettoBulk bulk) throws it.cnr.jada.comp.ComponentException {
return modificaConBulk(userContext, bulk, null);
}
/**
* modificaConBulk method comment.
*/
public it.cnr.jada.bulk.OggettoBulk modificaConBulk(it.cnr.jada.UserContext userContext, it.cnr.jada.bulk.OggettoBulk bulk, it.cnr.contab.doccont00.core.bulk.OptionRequestParameter status) throws it.cnr.jada.comp.ComponentException {
try {
validaModificaConBulk(userContext,bulk);
return eseguiModificaConBulk(userContext,bulk);
} catch (Throwable e) {
throw handleException(e);
}
}
/**
* Normale.
* PreCondition:
* Viene richiesta la visualizzazione del consuntivo fattura.
* PostCondition:
* Vegono restituiti i dettagli fattura raggruppati per codice IVA.
*/
public void protocolla(it.cnr.jada.UserContext param0, java.sql.Timestamp param1, java.lang.Long param2) throws it.cnr.jada.comp.ComponentException {}
/**
* riportaAvanti method comment.
*/
public it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoBulk riportaAvanti(it.cnr.jada.UserContext userContext, it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoBulk docAmm, it.cnr.contab.doccont00.core.bulk.OptionRequestParameter status) throws it.cnr.jada.comp.ComponentException {
return null;
}
/**
* riportaIndietro method comment.
*/
public it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoBulk riportaIndietro(it.cnr.jada.UserContext userContext, it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoBulk docAmm) throws it.cnr.jada.comp.ComponentException {
return null;
}
/**
* Annulla le modifiche apportate al compenso e ritorna al savepoint impostato in precedenza
*
* Pre-post-conditions:
*
* Nome: Rollback to savePoint
* Pre: Una richiesta di annullare tutte le modifiche apportate e di ritornare al savepoint e' stata generata
* Post: Tutte le modifiche effettuate sul compenso vengono annullate, mentre rimangono valide le
* modifiche apportate al doc. amministrativo che ha aperto il compenso
* @param uc lo UserContext che ha generato la richiesta
*/
public void rollbackToSavePoint(UserContext userContext, String savePointName) throws ComponentException {
try {
rollbackToSavepoint(userContext, savePointName);
} catch (java.sql.SQLException e) {
if (e.getErrorCode() != 1086)
throw handleException(e);
}
}
/**
* Imposta un savepoint che consente di salvare le modifiche apportate al doc. amministrativo fino a quel momento
* in modo che se gli aggiornamenti apportati al compenso non venissero confermati (rollback), comunque non verrebbero persi
* anche quelli del documento amministrativo.
*
* Pre-post-conditions:
*
* Nome: Imposta savePoint
* Pre: Una richiesta di impostare un savepoint e' stata generata
* Post: Un savepoint e' stato impostato in modo che le modifiche apportate al doc. amministrativo vengono consolidate
*
* @param uc lo UserContext che ha generato la richiesta
*/
public void setSavePoint(UserContext userContext, String savePointName) throws ComponentException {
try {
setSavepoint(userContext, savePointName);
} catch (java.sql.SQLException e) {
throw handleException(e);
}
}
//^^@@
/**
* Aggiornamento di un dettaglio di documento amministrativo
* PreCondition:
* Nessuna condizione di errore rilevata.
* PostCondition:
* Il dettaglio viene aggiornato
* Si verifica errore.
* PreCondition:
* Condizione di errore.
* PostCondition:
* Viene rilanciata una ComponentExcpetion con messaggio dettagliato.
*/
//^^@@
public it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoRigaBulk update(it.cnr.jada.UserContext param0, it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoRigaBulk param1) throws it.cnr.jada.comp.ComponentException {
return null;
}
public IScadenzaDocumentoContabileBulk updateImportoAssociatoDocAmm(
it.cnr.jada.UserContext userContext,
IScadenzaDocumentoContabileBulk scadenza)
throws it.cnr.jada.comp.ComponentException {
try {
((IScadenzaDocumentoContabileHome)getHome(userContext, scadenza.getClass())).aggiornaImportoAssociatoADocAmm(userContext,scadenza);
} catch (it.cnr.jada.persistency.PersistencyException exc) {
throw handleException((OggettoBulk)scadenza, exc);
} catch (it.cnr.jada.bulk.BusyResourceException exc) {
throw handleException((OggettoBulk)scadenza, exc);
} catch (it.cnr.jada.bulk.OutdatedResourceException exc) {
throw handleException((OggettoBulk)scadenza, exc);
}
return scadenza;
}
//^^@@
/**
* validazione autofattura
* PreCondition:
* Non esiste il sezionale per l'autofattura legato al sezionale fattura di origine
* PostCondition:
* Viene inviato il messaggio "non è stato definito un sezionale per le autofatture e il tipo sezionale"
*/
//^^@@
public void validaAutofattura(UserContext aUC,AutofatturaBulk autofattura) throws ComponentException {
if (!verificaEsistenzaSezionalePer(aUC, autofattura))
throw new it.cnr.jada.comp.ApplicationException("Attenzione: non è stato definito un sezionale per le autofatture e il tipo sezionale \"" + autofattura.getTipo_sezionale().getDs_tipo_sezionale() + "\"!");
//Verifica la validità della data di registrazione rispetto all'ultima
//data di stampa registri IVA
callVerifyDataRegistrazione(aUC, autofattura);
}
private boolean verificaEsistenzaSezionalePer(
UserContext userContext,
AutofatturaBulk autofattura)
throws ComponentException {
if (autofattura != null && autofattura.getTipo_sezionale() != null) {
SezionaleBulk key = new SezionaleBulk(
autofattura.getCd_cds_origine(),
autofattura.getTipo_sezionale().getCd_tipo_sezionale(),
autofattura.getCd_uo_origine(),
autofattura.getEsercizio(),
autofattura.getTi_fattura());
try {
return getHome(userContext, it.cnr.contab.docamm00.tabrif.bulk.SezionaleBulk.class).findByPrimaryKey(key) != null;
} catch (it.cnr.jada.persistency.PersistencyException e) {
throw handleException(autofattura, e);
}
}
return false;
}
/**
* verificaStatoEsercizio method comment.
*/
public boolean verificaStatoEsercizio(it.cnr.jada.UserContext userContext, it.cnr.contab.config00.esercizio.bulk.EsercizioBulk anEsercizio) throws it.cnr.jada.comp.ComponentException {
return false;
}
public Configurazione_cnrBulk getLimitiRitardoDetraibile(UserContext userContext, Fattura_passivaBulk fattura) throws ComponentException {
try {
Configurazione_cnrComponentSession sess = (Configurazione_cnrComponentSession) it.cnr.jada.util.ejb.EJBCommonServices
.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession");
GregorianCalendar tsGregorian = (GregorianCalendar) GregorianCalendar.getInstance();
tsGregorian.setTime(fattura.getData_protocollo());
Configurazione_cnrBulk conf =sess.getConfigurazione(userContext, tsGregorian.get(GregorianCalendar.YEAR), null,
Configurazione_cnrBulk.PK_FATTURA_PASSIVA, Configurazione_cnrBulk.SK_LIMITE_REG_TARDIVA);
if (conf !=null && conf.getDt01()!=null && conf.getDt02()!=null)
return conf;
else
throw new ApplicationException("Configurazione registrazione tardiva mancante.");
} catch (javax.ejb.EJBException ex) {
throw handleException(ex);
} catch (RemoteException ex) {
throw handleException(ex);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy