use of it.cnr.jada.action.BusinessProcessException in project sigla-main by consiglionazionaledellericerche.
the class CRUDFatturaPassivaBP method initializeModelForEdit.
public OggettoBulk initializeModelForEdit(ActionContext context, OggettoBulk bulk) throws BusinessProcessException {
try {
if (bulk != null) {
Fattura_passivaBulk fp = (Fattura_passivaBulk) bulk;
fp.setDettagliCancellati(new java.util.Vector());
fp.setDocumentiContabiliCancellati(new java.util.Vector());
}
FatturaPassivaComponentSession h = (FatturaPassivaComponentSession) createComponentSession();
if (isEditing()) {
if (h.hasFatturaPassivaARowNotInventoried(context.getUserContext(), (Fattura_passivaBulk) getModel())) {
setErrorMessage("Attenzione: sebbene il salvataggio sia stato effettuato correttamente, si ricorda che alcuni beni devono ancora essere inventariati!");
} else if (getDettaglio().isInventoriedChildDeleted()) {
getDettaglio().setInventoriedChildDeleted(false);
setErrorMessage("Attenzione: sebbene il salvataggio sia stato effettuato correttamente, si ricorda che sono stati eliminati beni inventariati. Provvedere all'aggiornamento dell'inventario!");
}
}
return super.initializeModelForEdit(context, bulk);
} catch (Throwable e) {
throw new it.cnr.jada.action.BusinessProcessException(e);
}
}
use of it.cnr.jada.action.BusinessProcessException in project sigla-main by consiglionazionaledellericerche.
the class CaricaFatturaPassivaElettronicaAction method doControllaFatture.
@SuppressWarnings("unchecked")
public Forward doControllaFatture(ActionContext actioncontext) throws java.rmi.RemoteException {
CaricaFatturaElettronicaBP caricaPassivaElettronicaBP = (CaricaFatturaElettronicaBP) actioncontext.getBusinessProcess();
FatturazioneElettronicaClient client = SpringUtil.getBean("fatturazioneElettronicaClient", FatturazioneElettronicaClient.class);
UploadedFile fileFattureRicevute = ((it.cnr.jada.action.HttpActionContext) actioncontext).getMultipartParameter("main.fileFattureRicevute");
if (fileFattureRicevute.getFile() == null) {
caricaPassivaElettronicaBP.setMessage("Valorizzare il file!");
return actioncontext.findDefaultForward();
}
try {
FatturaElettronicaPassivaComponentSession fatturaElettronicaPassivaComponentSession = (FatturaElettronicaPassivaComponentSession) caricaPassivaElettronicaBP.createComponentSession("CNRDOCAMM00_EJB_FatturaElettronicaPassivaComponentSession");
List<FattureRicevuteType.Flusso> results = new ArrayList<FattureRicevuteType.Flusso>();
JAXBElement<MonitoraggioFlussiType> fattureRicevuteType = ((JAXBElement<MonitoraggioFlussiType>) client.getUnmarshaller().unmarshal(new StreamSource(fileFattureRicevute.getFile())));
for (FattureRicevuteType.Flusso flusso : fattureRicevuteType.getValue().getFattureRicevute().getFlusso()) {
if (!flusso.getStato().equalsIgnoreCase("SF00")) {
if (!fatturaElettronicaPassivaComponentSession.existsIdentificativo(actioncontext.getUserContext(), Long.valueOf(flusso.getIdSdI()))) {
results.add(flusso);
}
}
}
if (results.isEmpty()) {
caricaPassivaElettronicaBP.setMessage("Non ci sono anomalie.");
} else {
caricaPassivaElettronicaBP.setAnomalie(results);
caricaPassivaElettronicaBP.setMessage("Non sono presenti " + results.size() + " fatture, controllare il dettaglio!");
}
} catch (XmlMappingException e) {
return handleException(actioncontext, e);
} catch (IOException e) {
return handleException(actioncontext, e);
} catch (BusinessProcessException e) {
return handleException(actioncontext, e);
} catch (ComponentException e) {
return handleException(actioncontext, e);
}
return actioncontext.findDefaultForward();
}
use of it.cnr.jada.action.BusinessProcessException in project sigla-main by consiglionazionaledellericerche.
the class DocumentiAmministrativiFatturazioneElettronicaAction method doRiportaSelezione.
/**
* Gestisce la selezione dopo una richiesta di ricerca.
* <p>
* L'implementazione di default utilizza il metodo astratto <code>read</code>
* di <code>CRUDBusinessProcess</code>.
* Se la ricerca fornisce più di un risultato viene creato un
* nuovo <code>SelezionatoreListaBP</code> per la selezione di un elemento.
* Al business process viene anche chiesto l'elenco delle colonne da
* visualizzare.
*/
public Forward doRiportaSelezione(ActionContext context) {
DocumentiAmministrativiFatturazioneElettronicaBP bp = (DocumentiAmministrativiFatturazioneElettronicaBP) context.getBusinessProcess();
try {
Filtro_ricerca_doc_amm_fatturazione_elettronicaVBulk filtro = (Filtro_ricerca_doc_amm_fatturazione_elettronicaVBulk) bp.getModel();
IDocumentoAmministrativoBulk docAmm = (IDocumentoAmministrativoBulk) filtro.getInstance();
if (docAmm instanceof Fattura_attivaBulk) {
Fattura_attivaBulk fa = (Fattura_attivaBulk) docAmm;
IDocumentoAmministrativoBP docAmmBP = getBusinessProcessForDocAmm(context, docAmm);
FatturaAttivaSingolaComponentSession session = (FatturaAttivaSingolaComponentSession) docAmmBP.createComponentSession();
} else
throw new it.cnr.jada.comp.ApplicationException("Documento amministrativo selezionato NON valido!");
} catch (Exception e) {
try {
((BusinessProcess) bp).rollbackUserTransaction();
} catch (BusinessProcessException ex) {
return handleException(context, ex);
}
return handleException(context, e);
}
return context.findDefaultForward();
}
use of it.cnr.jada.action.BusinessProcessException in project sigla-main by consiglionazionaledellericerche.
the class DocumentiAmministrativiRistampabiliAction method doCerca.
/**
* Gestisce una richiesta di ricerca.
*
* L'implementazione di default utilizza il metodo astratto <code>read</code>
* di <code>CRUDBusinessProcess</code>.
* Se la ricerca fornisce più di un risultato viene creato un
* nuovo <code>SelezionatoreListaBP</code> per la selezione di un elemento.
* Al business process viene anche chiesto l'elenco delle colonne da
* visualizzare.
*/
public Forward doCerca(ActionContext context) throws java.rmi.RemoteException, InstantiationException, javax.ejb.RemoveException {
DocumentiAmministrativiRistampabiliBP bp = (DocumentiAmministrativiRistampabiliBP) context.getBusinessProcess();
try {
fillModel(context);
completaSoggetto(context);
Filtro_ricerca_doc_amm_ristampabileVBulk filtro = (Filtro_ricerca_doc_amm_ristampabileVBulk) bp.getModel();
filtro.setPgStampa(null);
try {
filtro.validateClauses();
} catch (it.cnr.jada.bulk.ValidationException e) {
return handleException(context, e);
}
OggettoBulk instance = (OggettoBulk) filtro.getInstance();
Unita_organizzativaBulk unita_organizzativa = CNRUserInfo.getUnita_organizzativa(context);
CompoundFindClause clauses = new CompoundFindClause();
clauses.addClause("AND", "cd_cds_origine", SQLBuilder.EQUALS, unita_organizzativa.getUnita_padre().getCd_unita_organizzativa());
clauses.addClause("AND", "cd_uo_origine", SQLBuilder.EQUALS, unita_organizzativa.getCd_unita_organizzativa());
if (filtro.isProtocolliClause()) {
clauses.addClause("AND", "cd_tipo_sezionale", SQLBuilder.EQUALS, filtro.getTipo_sezionale().getCd_tipo_sezionale());
clauses.addClause("AND", "protocollo_iva", SQLBuilder.GREATER_EQUALS, filtro.getDa_protocollo_iva());
clauses.addClause("AND", "protocollo_iva", SQLBuilder.LESS_EQUALS, filtro.getA_protocollo_iva());
} else if (filtro.isProtocolliGeneraleClause()) {
clauses.addClause("AND", "cd_tipo_sezionale", SQLBuilder.EQUALS, filtro.getTipo_sezionale().getCd_tipo_sezionale());
clauses.addClause("AND", "protocollo_iva_generale", SQLBuilder.GREATER_EQUALS, filtro.getDa_protocollo_iva_generale());
clauses.addClause("AND", "protocollo_iva_generale", SQLBuilder.LESS_EQUALS, filtro.getA_protocollo_iva_generale());
} else {
clauses.addClause("AND", "protocollo_iva", SQLBuilder.ISNOTNULL, null);
clauses.addClause("AND", "protocollo_iva_generale", SQLBuilder.ISNOTNULL, null);
clauses.addClause("AND", "dt_emissione", SQLBuilder.GREATER_EQUALS, filtro.getDt_da_stampa());
clauses.addClause("AND", "dt_emissione", SQLBuilder.LESS_EQUALS, filtro.getDt_a_stampa());
}
clauses.addClause("AND", "stato_cofi", SQLBuilder.NOT_EQUALS, Fattura_attivaBulk.STATO_ANNULLATO);
filtro.setSQLClauses(clauses);
it.cnr.jada.util.RemoteIterator ri = bp.find(context, clauses, instance);
if (ri == null || ri.countElements() == 0) {
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, ri);
bp.setMessage("La ricerca non ha fornito alcun risultato.");
return context.findDefaultForward();
} else {
bp.setModel(context, filtro);
IDocumentoAmministrativoBP docAmmBP = getBusinessProcessForDocAmm(context, (IDocumentoAmministrativoBulk) instance);
SelezionatoreListaBP nbp = (SelezionatoreListaBP) context.createBusinessProcess("Selezionatore", new Object[] { "Th" });
nbp.setMultiSelection(true);
nbp.setSelectionListener(context, getSelectionListener(context, (it.cnr.contab.docamm00.bp.CRUDFatturaAttivaBP) docAmmBP, (FatturaAttivaSingolaComponentSession) docAmmBP.createComponentSession(), filtro));
nbp.setIterator(context, ri);
BulkInfo bulkInfo = BulkInfo.getBulkInfo(filtro.getInstance().getClass());
nbp.setBulkInfo(bulkInfo);
docAmmBP = getBusinessProcessForDocAmm(context, filtro.getInstance());
if (docAmmBP instanceof IGenericSearchDocAmmBP) {
String columnsetName = ((IGenericSearchDocAmmBP) docAmmBP).getColumnsetForGenericSearch();
if (columnsetName != null)
nbp.setColumns(bulkInfo.getColumnFieldPropertyDictionary(columnsetName));
}
context.addHookForward("seleziona", this, "doRiportaSelezione");
return context.addBusinessProcess(nbp);
}
} catch (Throwable e) {
try {
((BusinessProcess) bp).rollbackUserTransaction();
} catch (BusinessProcessException ex) {
return handleException(context, ex);
}
return handleException(context, e);
}
}
use of it.cnr.jada.action.BusinessProcessException in project sigla-main by consiglionazionaledellericerche.
the class CRUDDocumentoGenericoAttivoBP method sdoppiaDettaglioInAutomatico.
public void sdoppiaDettaglioInAutomatico(ActionContext context) throws ValidationException, BusinessProcessException {
try {
it.cnr.contab.doccont00.ejb.AccertamentoAbstractComponentSession h = it.cnr.contab.doccont00.bp.CRUDVirtualAccertamentoBP.getVirtualComponentSession(context, true);
DocumentoGenericoComponentSession session = (DocumentoGenericoComponentSession) createComponentSession();
Documento_genericoBulk documento = (Documento_genericoBulk) getModel();
Documento_generico_rigaBulk dettaglioSelezionato = (Documento_generico_rigaBulk) getDettaglio().getModel();
Accertamento_scadenzarioBulk scadenzaNuova = null;
if (dettaglioSelezionato == null)
return;
if (documento.getStato_cofi() != null && documento.getStato_cofi().equals(Documento_genericoBulk.STATO_PAGATO))
setMessage("Non è possibile sdoppiare righe in un documento pagato");
if (dettaglioSelezionato.getIm_riga() == null) {
setMessage("Non è possibile sdoppiare righe in cui l'importo di origine non è valorizzato");
return;
}
if (dettaglioSelezionato.getIm_riga_sdoppia() == null || dettaglioSelezionato.getIm_riga_sdoppia().equals(Utility.ZERO) || dettaglioSelezionato.getIm_riga_sdoppia().compareTo(dettaglioSelezionato.getIm_riga()) != -1) {
setMessage("L'importo nuovo della riga da sdoppiare deve essere positivo ed inferiore " + "all'importo originario del riga stessa");
return;
}
Accertamento_scadenzarioBulk scadenzaVecchia = dettaglioSelezionato.getAccertamento_scadenziario();
java.math.BigDecimal newImportoRigaVecchia = dettaglioSelezionato.getIm_riga_sdoppia();
java.math.BigDecimal newImportoRigaNuova = dettaglioSelezionato.getIm_riga().subtract(dettaglioSelezionato.getIm_riga_sdoppia());
if (dettaglioSelezionato.getAccertamento_scadenziario() != null) {
/*
* L'importo della scadenza vecchia sarà pari al valore iniziale diminuito del valore originario del
* dettaglio e aumentato del valore nuovo.
* Ciò al fine di gestire il caso di utenti che collegano più dettagli di documento alla stessa scadenza
*/
scadenzaNuova = (Accertamento_scadenzarioBulk) h.sdoppiaScadenzaInAutomatico(context.getUserContext(), scadenzaVecchia, scadenzaVecchia.getIm_scadenza().subtract(Utility.nvl(dettaglioSelezionato.getIm_riga())).add(Utility.nvl(dettaglioSelezionato.getIm_riga_sdoppia())));
// ricarico l'accertamento e recupero i riferimenti alle scadenze
AccertamentoBulk accertamento = (AccertamentoBulk) h.inizializzaBulkPerModifica(context.getUserContext(), scadenzaNuova.getAccertamento());
if (!accertamento.getAccertamento_scadenzarioColl().containsByPrimaryKey(scadenzaVecchia) || !accertamento.getAccertamento_scadenzarioColl().containsByPrimaryKey(scadenzaNuova))
throw new ValidationException("Errore nello sdoppiamento della scadenza dell'accertamento.");
scadenzaVecchia = accertamento.getAccertamento_scadenzarioColl().get(accertamento.getAccertamento_scadenzarioColl().indexOfByPrimaryKey(scadenzaVecchia));
scadenzaNuova = accertamento.getAccertamento_scadenzarioColl().get(accertamento.getAccertamento_scadenzarioColl().indexOfByPrimaryKey(scadenzaNuova));
}
// creo la nuova riga di dettaglio e la associo al documento
Documento_generico_rigaBulk nuovoDettaglio = new Documento_generico_rigaBulk();
getDettaglio().addDetail(nuovoDettaglio);
nuovoDettaglio = copyByRigaDocumento(context, nuovoDettaglio, dettaglioSelezionato);
// Aggiorno la vecchia riga di dettaglio ed in particolare l'importo della riga da sdoppiare
// del doc amministrativo
dettaglioSelezionato.setIm_riga(newImportoRigaVecchia);
dettaglioSelezionato.setIm_riga_divisa(newImportoRigaVecchia);
dettaglioSelezionato.setToBeUpdated();
if (scadenzaVecchia != null) {
dettaglioSelezionato.setAccertamento_scadenziario(scadenzaVecchia);
documento.addToDefferredSaldi(scadenzaVecchia.getAccertamento(), scadenzaVecchia.getAccertamento().getSaldiInfo());
}
if (scadenzaNuova != null) {
BulkList selectedModels = new BulkList();
selectedModels.add(nuovoDettaglio);
documento = session.contabilizzaDettagliSelezionati(context.getUserContext(), documento, selectedModels, scadenzaNuova);
documento.addToDefferredSaldi(scadenzaNuova.getAccertamento(), scadenzaNuova.getAccertamento().getSaldiInfo());
}
documento = session.rebuildDocumento(context.getUserContext(), documento);
getAccertamentiController().getSelection().clear();
getAccertamentiController().setModelIndex(context, -1);
getAccertamentiController().setModelIndex(context, it.cnr.jada.bulk.BulkCollections.indexOfByPrimaryKey(getAccertamentiController().getDetails(), dettaglioSelezionato));
documento.setDetailDoubled(true);
setModel(context, documento);
} catch (Exception e) {
throw handleException(e);
}
}
Aggregations