Search in sources :

Example 11 with BusinessProcessException

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);
    }
}
Also used : BusinessProcessException(it.cnr.jada.action.BusinessProcessException) FatturaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession)

Example 12 with BusinessProcessException

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();
}
Also used : FattureRicevuteType(it.gov.fatturapa.sdi.monitoraggio.v1.FattureRicevuteType) MonitoraggioFlussiType(it.gov.fatturapa.sdi.monitoraggio.v1.MonitoraggioFlussiType) StreamSource(javax.xml.transform.stream.StreamSource) ArrayList(java.util.ArrayList) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) UploadedFile(it.cnr.jada.util.upload.UploadedFile) CaricaFatturaElettronicaBP(it.cnr.contab.docamm00.bp.CaricaFatturaElettronicaBP) FatturaElettronicaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaElettronicaPassivaComponentSession) ComponentException(it.cnr.jada.comp.ComponentException) FatturazioneElettronicaClient(it.cnr.contab.pdd.ws.client.FatturazioneElettronicaClient) HttpActionContext(it.cnr.jada.action.HttpActionContext) XmlMappingException(org.springframework.oxm.XmlMappingException)

Example 13 with BusinessProcessException

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();
}
Also used : Filtro_ricerca_doc_amm_fatturazione_elettronicaVBulk(it.cnr.contab.docamm00.docs.bulk.Filtro_ricerca_doc_amm_fatturazione_elettronicaVBulk) Fattura_attivaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_attivaBulk) FatturaAttivaSingolaComponentSession(it.cnr.contab.docamm00.ejb.FatturaAttivaSingolaComponentSession) IDocumentoAmministrativoBulk(it.cnr.contab.docamm00.docs.bulk.IDocumentoAmministrativoBulk) IDocumentoAmministrativoBP(it.cnr.contab.docamm00.bp.IDocumentoAmministrativoBP) DocumentiAmministrativiFatturazioneElettronicaBP(it.cnr.contab.docamm00.bp.DocumentiAmministrativiFatturazioneElettronicaBP) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException)

Example 14 with BusinessProcessException

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);
    }
}
Also used : CompoundFindClause(it.cnr.jada.persistency.sql.CompoundFindClause) Filtro_ricerca_doc_amm_ristampabileVBulk(it.cnr.contab.docamm00.docs.bulk.Filtro_ricerca_doc_amm_ristampabileVBulk) IGenericSearchDocAmmBP(it.cnr.contab.docamm00.bp.IGenericSearchDocAmmBP) Unita_organizzativaBulk(it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk) DocumentiAmministrativiRistampabiliBP(it.cnr.contab.docamm00.bp.DocumentiAmministrativiRistampabiliBP) IDocumentoAmministrativoBP(it.cnr.contab.docamm00.bp.IDocumentoAmministrativoBP) OggettoBulk(it.cnr.jada.bulk.OggettoBulk) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) BulkInfo(it.cnr.jada.bulk.BulkInfo) FatturaAttivaSingolaComponentSession(it.cnr.contab.docamm00.ejb.FatturaAttivaSingolaComponentSession) SelezionatoreListaBP(it.cnr.jada.util.action.SelezionatoreListaBP)

Example 15 with BusinessProcessException

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);
    }
}
Also used : ValidationException(it.cnr.jada.bulk.ValidationException) Accertamento_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Accertamento_scadenzarioBulk) AccertamentoBulk(it.cnr.contab.doccont00.core.bulk.AccertamentoBulk) BulkList(it.cnr.jada.bulk.BulkList) ValidationException(it.cnr.jada.bulk.ValidationException) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) EJBException(javax.ejb.EJBException) ComponentException(it.cnr.jada.comp.ComponentException) DocumentoGenericoComponentSession(it.cnr.contab.docamm00.ejb.DocumentoGenericoComponentSession)

Aggregations

BusinessProcessException (it.cnr.jada.action.BusinessProcessException)461 ComponentException (it.cnr.jada.comp.ComponentException)155 RemoteException (java.rmi.RemoteException)155 CompoundFindClause (it.cnr.jada.persistency.sql.CompoundFindClause)88 ValidationException (it.cnr.jada.bulk.ValidationException)87 ApplicationException (it.cnr.jada.comp.ApplicationException)69 Iterator (java.util.Iterator)64 RemoteIterator (it.cnr.jada.util.RemoteIterator)63 OggettoBulk (it.cnr.jada.bulk.OggettoBulk)48 DetailedRuntimeException (it.cnr.jada.DetailedRuntimeException)41 ActionContext (it.cnr.jada.action.ActionContext)34 ServletException (javax.servlet.ServletException)34 BigDecimal (java.math.BigDecimal)32 Parametri_cnrBulk (it.cnr.contab.config00.bulk.Parametri_cnrBulk)31 EJBException (javax.ejb.EJBException)29 FillException (it.cnr.jada.bulk.FillException)28 PersistencyException (it.cnr.jada.persistency.PersistencyException)26 Unita_organizzativaBulk (it.cnr.contab.config00.sto.bulk.Unita_organizzativaBulk)24 BulkList (it.cnr.jada.bulk.BulkList)23 IOException (java.io.IOException)23