use of it.cnr.jada.persistency.IntrospectionException in project sigla-main by consiglionazionaledellericerche.
the class ElaboraFileIntraAction method doElaboraFileInvio.
public Forward doElaboraFileInvio(ActionContext context) throws ComponentException, PersistencyException, IntrospectionException {
try {
fillModel(context);
ElaboraFileIntraBP bp = (ElaboraFileIntraBP) context.getBusinessProcess();
VIntrastatBulk dett = (VIntrastatBulk) bp.getModel();
if (dett.getMese() == null)
return handleException(context, new it.cnr.jada.bulk.ValidationException("Attenzione: specificare il Mese"));
try {
bp.doElaboraFile(context, dett, Boolean.TRUE);
} catch (Exception e) {
return handleException(context, e);
}
bp.setMessage("Elaborazione completata.");
return context.findDefaultForward();
} catch (it.cnr.jada.bulk.FillException e) {
return handleException(context, e);
}
}
use of it.cnr.jada.persistency.IntrospectionException in project sigla-main by consiglionazionaledellericerche.
the class ElaboraFileIntraAction method doConfermaElaborazione.
public Forward doConfermaElaborazione(ActionContext context) throws ComponentException, PersistencyException, IntrospectionException {
try {
fillModel(context);
ElaboraFileIntraBP bp = (ElaboraFileIntraBP) context.getBusinessProcess();
if (bp.getModel() instanceof VIntrastatBulk) {
VIntrastatBulk dett = (VIntrastatBulk) bp.getModel();
try {
bp.confermaElaborazione(context, dett);
} catch (Exception e) {
return handleException(context, e);
}
bp.setMessage("Elaborazione confermata.");
return context.findDefaultForward();
}
} catch (Exception e) {
return handleException(context, e);
}
return context.findDefaultForward();
}
use of it.cnr.jada.persistency.IntrospectionException in project sigla-main by consiglionazionaledellericerche.
the class ElaboraFileIntraAction method doElaboraFile.
public Forward doElaboraFile(ActionContext context) throws ComponentException, PersistencyException, IntrospectionException {
try {
fillModel(context);
ElaboraFileIntraBP bp = (ElaboraFileIntraBP) context.getBusinessProcess();
if (bp.getModel() instanceof VIntrastatBulk) {
VIntrastatBulk dett = (VIntrastatBulk) bp.getModel();
if (dett.getMese() == null)
return handleException(context, new it.cnr.jada.bulk.ValidationException("Attenzione: specificare il Mese"));
try {
bp.doElaboraFile(context, dett, Boolean.FALSE);
} catch (Exception e) {
return handleException(context, e);
}
} else {
VIntra12Bulk dett = (VIntra12Bulk) bp.getModel();
if (dett.getMese() == null)
return handleException(context, new it.cnr.jada.bulk.ValidationException("Attenzione: specificare il Mese"));
try {
bp.doElaboraFile(context, dett);
} catch (Exception e) {
return handleException(context, e);
}
}
bp.setMessage("Elaborazione completata.");
return context.findDefaultForward();
} catch (it.cnr.jada.bulk.FillException e) {
return handleException(context, e);
}
}
use of it.cnr.jada.persistency.IntrospectionException in project sigla-main by consiglionazionaledellericerche.
the class ElaboraFileSpesometroAction method doElaboraFile.
public Forward doElaboraFile(ActionContext context) throws ComponentException, PersistencyException, IntrospectionException {
try {
fillModel(context);
ElaboraFileSpesometroBP bp = (ElaboraFileSpesometroBP) context.getBusinessProcess();
bp.setFile(null);
VSpesometroNewBulk dett = (VSpesometroNewBulk) bp.getModel();
if (dett.getNome_file() == null || dett.getNome_file().length() != 22) {
throw new ApplicationException("Indicare un nome di file valido!");
}
if (dett.getDa_data() == null || dett.getA_data() == null) {
throw new ApplicationException("Indicare il periodo di estrazione!");
}
if (dett.getA_data().before(dett.getDa_data()))
throw new ApplicationException("Periodo di estrazione non valido!");
GregorianCalendar dataDa = new GregorianCalendar();
dataDa.setTime(new java.util.Date(dett.getDa_data().getTime()));
int anno = dataDa.get(GregorianCalendar.YEAR);
dataDa.setTime(new java.util.Date(dett.getA_data().getTime()));
int anno_a = dataDa.get(GregorianCalendar.YEAR);
if (CNRUserContext.getEsercizio(context.getUserContext()).intValue() != anno || CNRUserContext.getEsercizio(context.getUserContext()).intValue() != anno_a)
throw new ApplicationException("Periodo di estrazione non coerente con esercizio di scrivania!");
if (dett.getTipo() == null)
throw new ApplicationException("Indicare il tipo!");
try {
bp.doElaboraFile(context, dett);
} catch (Exception e) {
return handleException(context, e);
}
bp.setMessage("Elaborazione completata.");
return context.findDefaultForward();
} catch (Exception e) {
return handleException(context, e);
}
}
use of it.cnr.jada.persistency.IntrospectionException in project sigla-main by consiglionazionaledellericerche.
the class SaldoComponent method aggiornaSaldiAnniSuccessivi.
public void aggiornaSaldiAnniSuccessivi(UserContext userContext, String cd_cdr, String cd_linea_attivita, IVoceBilancioBulk voce, Integer esercizio_res, BigDecimal importo, Voce_f_saldi_cdr_lineaBulk saldoOld) throws ComponentException {
Voce_f_saldi_cdr_lineaBulk saldoNew;
try {
Ass_evold_evnewHome ass_evold_evnewHome = (Ass_evold_evnewHome) getHome(userContext, Ass_evold_evnewBulk.class);
CdrHome cdrHome = (CdrHome) getHome(userContext, CdrBulk.class);
CdrBulk cdr = (CdrBulk) cdrHome.findByPrimaryKey(new CdrBulk(cd_cdr));
getHomeCache(userContext).fetchAll(userContext, cdrHome);
if (((Parametri_cdsHome) getHome(userContext, Parametri_cdsBulk.class)).isRibaltato(userContext, cdr.getCd_cds())) {
// RECUPERO L'ELEMENTO DELL'ANNO IN CORSO
for (Iterator esercizi = ((EsercizioHome) getHome(userContext, EsercizioBulk.class)).findEserciziSuccessivi(new EsercizioBulk(CNRUserContext.getCd_cds(userContext), CNRUserContext.getEsercizio(userContext))).iterator(); esercizi.hasNext(); ) {
EsercizioBulk esercizio = (EsercizioBulk) esercizi.next();
String codiceVoce = voce.getCd_voce(), codiceVoceForSaldoNew = null;
// recupero la voce di ribaltamento
Elemento_voceBulk elemento_voce = null;
if (voce instanceof Voce_fBulk) {
if (!((Parametri_cnrHome) getHome(userContext, Parametri_cnrBulk.class)).isNuovoPdg(esercizio.getEsercizio())) {
voce = (Voce_fBulk) getHome(userContext, Voce_fBulk.class).findByPrimaryKey(new Voce_fBulk(voce.getCd_voce(), esercizio.getEsercizio(), saldoOld.getTi_appartenenza(), saldoOld.getTi_gestione()));
getHomeCache(userContext).fetchAll(userContext);
if (voce == null)
throw new ApplicationException("La voce: " + codiceVoce + " non è presente nell'esercizio: " + esercizio.getEsercizio());
saldoNew = findAndLock(userContext, esercizio.getEsercizio(), esercizio_res, cd_cdr, cd_linea_attivita, voce);
codiceVoceForSaldoNew = voce.getCd_voce();
elemento_voce = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(voce.getCd_elemento_voce(), esercizio.getEsercizio(), voce.getTi_appartenenza(), voce.getTi_gestione()));
} else {
// recupero la voce di ribaltamento
// Voce_fBulk voceOld = (Voce_fBulk)getHome(userContext,Voce_fBulk.class).findByPrimaryKey(
// new Voce_fBulk(voce.getCd_voce(),CNRUserContext.getEsercizio(userContext),saldoOld.getTi_appartenenza(),saldoOld.getTi_gestione())
// );
//
// getHomeCache(userContext).fetchAll(userContext);
//
// if (voceOld == null)
// throw new ApplicationException("La voce: "+ voce.getCd_voce() +" non è presente nell'esercizio: "+CNRUserContext.getEsercizio(userContext));
Elemento_voceBulk elementoVoceOld = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(saldoOld.getCd_voce(), CNRUserContext.getEsercizio(userContext), saldoOld.getTi_appartenenza(), saldoOld.getTi_gestione()));
if (elementoVoceOld == null)
throw new ApplicationException("Elemento voce non trovato per la Voce: " + saldoOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
// cerco la voce del nuovo anno
List listVociNew = ass_evold_evnewHome.findAssElementoVoceNewList(elementoVoceOld);
if (!listVociNew.isEmpty()) {
if (listVociNew.size() > 1)
throw new ApplicationException("Trovate nella tabella di associazione Vecchie/Nuove Voci più elementi voce nel nuovo anno per la Voce: " + elementoVoceOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
elemento_voce = (Elemento_voceBulk) listVociNew.get(0);
} else {
elemento_voce = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(elementoVoceOld.getCd_elemento_voce(), esercizio.getEsercizio(), elementoVoceOld.getTi_appartenenza(), elementoVoceOld.getTi_gestione()));
}
if (elemento_voce == null || elemento_voce.getEsercizio().compareTo(esercizio.getEsercizio()) != 0)
throw new ApplicationException("Elemento voce non trovato o associato ad una voce di anno differente rispetto a quello di ribaltamento per la Voce: " + saldoOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
saldoNew = findAndLock(userContext, esercizio.getEsercizio(), esercizio_res, cd_cdr, cd_linea_attivita, elemento_voce);
codiceVoceForSaldoNew = elemento_voce.getCd_voce();
}
} else {
// recupero la voce di ribaltamento
Elemento_voceBulk elementoVoceOld = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(voce.getCd_elemento_voce(), CNRUserContext.getEsercizio(userContext), voce.getTi_appartenenza(), voce.getTi_gestione()));
if (elementoVoceOld == null)
throw new ApplicationException("Elemento voce non trovato per la Voce: " + voce.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
getHomeCache(userContext).fetchAll(userContext);
// cerco la voce del nuovo anno
List listVociNew = ass_evold_evnewHome.findAssElementoVoceNewList(elementoVoceOld);
if (!listVociNew.isEmpty()) {
if (listVociNew.size() > 1)
throw new ApplicationException("Trovate nella tabella di associazione Vecchie/Nuove Voci più elementi voce nel nuovo anno per la Voce: " + elementoVoceOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
elemento_voce = (Elemento_voceBulk) listVociNew.get(0);
} else {
elemento_voce = (Elemento_voceBulk) getHome(userContext, Elemento_voceBulk.class).findByPrimaryKey(new Elemento_voceBulk(elementoVoceOld.getCd_elemento_voce(), esercizio.getEsercizio(), elementoVoceOld.getTi_appartenenza(), elementoVoceOld.getTi_gestione()));
}
if (elemento_voce == null || elemento_voce.getEsercizio().compareTo(esercizio.getEsercizio()) != 0)
throw new ApplicationException("Elemento voce non trovato o associato ad una voce di anno differente rispetto a quello di ribaltamento per la Voce: " + elementoVoceOld.getCd_voce() + " nell'esercizio: " + CNRUserContext.getEsercizio(userContext));
saldoNew = findAndLock(userContext, esercizio.getEsercizio(), esercizio_res, cd_cdr, cd_linea_attivita, elemento_voce);
codiceVoceForSaldoNew = elemento_voce.getCd_voce();
}
getHomeCache(userContext).fetchAll(userContext);
WorkpackageBulk workpackage = (WorkpackageBulk) getHome(userContext, WorkpackageBulk.class).findByPrimaryKey(new WorkpackageBulk(cd_cdr, cd_linea_attivita));
// Obbligatorio cofog sulle GAE
Parametri_cnrBulk par = (Parametri_cnrBulk) getHome(userContext, Parametri_cnrBulk.class).findByPrimaryKey(new Parametri_cnrBulk(esercizio.getEsercizio()));
if (par != null && par.getLivello_pdg_cofog() != 0)
if ((workpackage.getTi_gestione().compareTo(CostantiTi_gestione.TI_GESTIONE_SPESE) == 0) && workpackage.getCd_cofog() == null)
throw new ApplicationException("Non è possibile utilizzare GAE di spesa in cui non è indicata la classificazione Cofog.");
getHomeCache(userContext).fetchAll(userContext);
if (saldoNew == null) {
if (elemento_voce == null)
throw new ApplicationException("Elemento voce non trovato per la Voce: " + voce.getCd_voce() + " nell'esercizio: " + esercizio.getEsercizio());
saldoNew = new Voce_f_saldi_cdr_lineaBulk(esercizio.getEsercizio(), esercizio_res, cd_cdr, cd_linea_attivita, voce.getTi_appartenenza(), voce.getTi_gestione(), codiceVoceForSaldoNew);
saldoNew.setCd_elemento_voce(elemento_voce.getCd_elemento_voce());
saldoNew.inizializzaSommeAZero();
saldoNew.setToBeCreated();
insertBulk(userContext, saldoNew);
}
if (saldoNew != null) {
saldoNew.setIm_stanz_res_improprio(saldoNew.getIm_stanz_res_improprio().subtract(importo));
// calcolo i vincoli
Pdg_vincoloHome home = (Pdg_vincoloHome) getHome(userContext, Pdg_vincoloBulk.class);
List<Pdg_vincoloBulk> listVincoli = home.cercaDettagliVincolati(saldoNew);
BigDecimal impVincolo = listVincoli.stream().map(e -> e.getIm_vincolo()).reduce((x, y) -> x.add(y)).orElse(BigDecimal.ZERO);
BigDecimal diff = saldoNew.getDispAdImpResiduoImproprio().subtract(impVincolo);
if (diff.compareTo(Utility.ZERO) < 0) {
if (voce.getTi_gestione().equalsIgnoreCase(Voce_f_saldi_cdr_lineaBulk.TIPO_GESTIONE_SPESA)) {
if (!((elemento_voce.getFl_partita_giro() != null && elemento_voce.getFl_partita_giro().booleanValue()) || (elemento_voce.getFl_limite_ass_obblig() != null && !elemento_voce.getFl_limite_ass_obblig().booleanValue() && workpackage.getFl_limite_ass_obblig() != null && !workpackage.getFl_limite_ass_obblig().booleanValue()))) {
StringBuilder messaggio = new StringBuilder("Impossibile effettuare l'operazione !\n" + "Nell'esercizio " + esercizio.getEsercizio() + " e per il CdR " + cd_cdr + ", " + " Voce " + voce.getCd_voce() + " e GAE " + cd_linea_attivita + " lo stanziamento Residuo Improprio " + " diventerebbe negativo (" + new it.cnr.contab.util.EuroFormat().format(diff.abs()) + ")");
if (impVincolo.compareTo(BigDecimal.ZERO) > 0)
messaggio.append(" in conseguenza della presenza di vincoli di spesa per un importo di " + new it.cnr.contab.util.EuroFormat().format(impVincolo.abs()));
throw new ApplicationException(messaggio.toString());
}
}
}
saldoNew.setToBeUpdated();
updateBulk(userContext, saldoNew);
}
}
}
} catch (PersistencyException e) {
throw new ComponentException(e);
} catch (IntrospectionException e) {
throw new ComponentException(e);
}
}
Aggregations