Search in sources :

Example 1 with BuonoCaricoScaricoComponentSession

use of it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession in project sigla-main by consiglionazionaledellericerche.

the class CRUDFatturaPassivaBP method sdoppiaDettaglioInAutomatico.

public void sdoppiaDettaglioInAutomatico(ActionContext context) throws ValidationException, BusinessProcessException {
    try {
        it.cnr.contab.doccont00.ejb.ObbligazioneAbstractComponentSession h = it.cnr.contab.doccont00.bp.CRUDVirtualObbligazioneBP.getVirtualComponentSession(context, true);
        FatturaPassivaComponentSession session = (FatturaPassivaComponentSession) createComponentSession();
        Fattura_passivaBulk documento = (Fattura_passivaBulk) getModel();
        Fattura_passiva_rigaIBulk dettaglioSelezionato = (Fattura_passiva_rigaIBulk) getDettaglio().getModel();
        Obbligazione_scadenzarioBulk scadenzaNuova = null;
        if (dettaglioSelezionato == null)
            return;
        if (documento.getStato_cofi() != null && documento.getStato_cofi().equals(documento.STATO_PAGATO))
            setMessage("Non è possibile sdoppiare righe in un documento pagato.");
        if (dettaglioSelezionato.getIm_riga_sdoppia() == null || dettaglioSelezionato.getIm_riga_sdoppia().equals(Utility.ZERO) || dettaglioSelezionato.getIm_riga_sdoppia().compareTo(dettaglioSelezionato.getSaldo()) != -1) {
            setMessage("Il nuovo importo della riga da sdoppiare deve essere positivo ed inferiore " + "al saldo originario.");
            return;
        }
        Obbligazione_scadenzarioBulk scadenzaVecchia = dettaglioSelezionato.getObbligazione_scadenziario();
        BigDecimal newImportoRigaVecchia = dettaglioSelezionato.getIm_riga_sdoppia().add(dettaglioSelezionato.getIm_diponibile_nc().subtract(dettaglioSelezionato.getSaldo()));
        BigDecimal newImportoRigaNuova = dettaglioSelezionato.getSaldo().subtract(dettaglioSelezionato.getIm_riga_sdoppia());
        BigDecimal newPrezzoRigaVecchia = newImportoRigaVecchia.divide(documento.getCambio(), 2, BigDecimal.ROUND_HALF_UP).divide(dettaglioSelezionato.getQuantita().multiply(dettaglioSelezionato.getVoce_iva().getPercentuale().divide(new BigDecimal(100)).add(new java.math.BigDecimal(1))), 2, BigDecimal.ROUND_HALF_UP);
        BigDecimal newPrezzoRigaNuova = dettaglioSelezionato.getPrezzo_unitario().subtract(newPrezzoRigaVecchia);
        BigDecimal oldImportoIvaVecchia = BigDecimal.ZERO;
        BigDecimal tot_imp = BigDecimal.ZERO;
        if (dettaglioSelezionato.getVoce_iva().getFl_autofattura() || documento.quadraturaInDeroga()) {
            oldImportoIvaVecchia = dettaglioSelezionato.getIm_iva();
            tot_imp = newPrezzoRigaVecchia.multiply(documento.getCambio()).multiply(dettaglioSelezionato.getQuantita()).setScale(2, BigDecimal.ROUND_HALF_UP);
        } else
            tot_imp = dettaglioSelezionato.getIm_riga_sdoppia();
        if (dettaglioSelezionato.getObbligazione_scadenziario() != null) {
            scadenzaNuova = (Obbligazione_scadenzarioBulk) h.sdoppiaScadenzaInAutomatico(context.getUserContext(), scadenzaVecchia, scadenzaVecchia.getIm_scadenza().subtract(dettaglioSelezionato.getSaldo().subtract(oldImportoIvaVecchia)).add(tot_imp));
            // ricarico obbligazione e recupero i riferimenti alle scadenze
            ObbligazioneBulk obbligazione = (ObbligazioneBulk) h.inizializzaBulkPerModifica(context.getUserContext(), scadenzaNuova.getObbligazione());
            if (!obbligazione.getObbligazione_scadenzarioColl().containsByPrimaryKey(scadenzaVecchia) || !obbligazione.getObbligazione_scadenzarioColl().containsByPrimaryKey(scadenzaNuova))
                throw new ValidationException("Errore nello sdoppiamento della scadenza dell'impegno.");
            scadenzaVecchia = (Obbligazione_scadenzarioBulk) obbligazione.getObbligazione_scadenzarioColl().get(obbligazione.getObbligazione_scadenzarioColl().indexOfByPrimaryKey(scadenzaVecchia));
            scadenzaNuova = (Obbligazione_scadenzarioBulk) obbligazione.getObbligazione_scadenzarioColl().get(obbligazione.getObbligazione_scadenzarioColl().indexOfByPrimaryKey(scadenzaNuova));
        }
        // creo la nuova riga di dettaglio e la associo al documento
        Fattura_passiva_rigaIBulk nuovoDettaglio = new Fattura_passiva_rigaIBulk();
        getDettaglio().addDetail(nuovoDettaglio);
        nuovoDettaglio = copyByRigaDocumento(context, nuovoDettaglio, dettaglioSelezionato);
        nuovoDettaglio.setQuantita(dettaglioSelezionato.getQuantita());
        nuovoDettaglio.setPrezzo_unitario(newPrezzoRigaNuova);
        nuovoDettaglio.calcolaCampiDiRiga();
        // setto im_diponibile prime per la verifica e dopo
        nuovoDettaglio.setIm_diponibile_nc(nuovoDettaglio.getSaldo());
        if (nuovoDettaglio.getIm_diponibile_nc().compareTo(newImportoRigaNuova) != 0) {
            nuovoDettaglio.setIm_iva(nuovoDettaglio.getIm_iva().add(newImportoRigaNuova.subtract(nuovoDettaglio.getIm_diponibile_nc())));
            nuovoDettaglio.setIm_totale_divisa(newImportoRigaNuova.subtract(nuovoDettaglio.getIm_iva()));
            nuovoDettaglio.setFl_iva_forzata(Boolean.TRUE);
            nuovoDettaglio.calcolaCampiDiRiga();
        }
        nuovoDettaglio.setIm_diponibile_nc(nuovoDettaglio.getSaldo());
        // Aggiorno la vecchia riga di dettaglio ed in particolare l'importo
        // della riga da sdoppiare
        // del doc amministrativo
        BigDecimal oldImpTotaleDivisa = dettaglioSelezionato.getIm_totale_divisa();
        dettaglioSelezionato.setPrezzo_unitario(newPrezzoRigaVecchia);
        dettaglioSelezionato.calcolaCampiDiRiga();
        // setto im_diponibile prime per la verifica e dopo
        dettaglioSelezionato.setIm_diponibile_nc(dettaglioSelezionato.getSaldo());
        if (dettaglioSelezionato.getIm_diponibile_nc().compareTo(newImportoRigaVecchia) != 0) {
            dettaglioSelezionato.setIm_iva(dettaglioSelezionato.getIm_iva().add(newImportoRigaVecchia.subtract(dettaglioSelezionato.getIm_diponibile_nc())));
            dettaglioSelezionato.setIm_totale_divisa(newImportoRigaVecchia.subtract(dettaglioSelezionato.getIm_iva()));
            dettaglioSelezionato.setFl_iva_forzata(Boolean.TRUE);
            dettaglioSelezionato.calcolaCampiDiRiga();
        }
        dettaglioSelezionato.setIm_diponibile_nc(dettaglioSelezionato.getSaldo());
        dettaglioSelezionato.setToBeUpdated();
        if (scadenzaVecchia != null) {
            for (Iterator i = documento.getFattura_passiva_dettColl().iterator(); i.hasNext(); ) {
                Fattura_passiva_rigaIBulk riga = (Fattura_passiva_rigaIBulk) i.next();
                if (riga.getObbligazione_scadenziario() != null && riga.getObbligazione_scadenziario().equalsByPrimaryKey(scadenzaVecchia)) {
                    riga.setObbligazione_scadenziario(scadenzaVecchia);
                    documento.addToDefferredSaldi(scadenzaVecchia.getObbligazione(), scadenzaVecchia.getObbligazione().getSaldiInfo());
                }
            }
        }
        if (scadenzaNuova != null) {
            BulkList selectedModels = new BulkList();
            selectedModels.add(nuovoDettaglio);
            documento = session.contabilizzaDettagliSelezionati(context.getUserContext(), documento, selectedModels, scadenzaNuova);
            documento.addToFattura_passiva_obbligazioniHash(scadenzaNuova, nuovoDettaglio);
            documento.addToDefferredSaldi(scadenzaNuova.getObbligazione(), scadenzaNuova.getObbligazione().getSaldiInfo());
            // Sdoppia associazione inventario in automatico
            if (nuovoDettaglio.isInventariato()) {
                // r.p. Prendo il progressivo dalla fattura_passivaBulk
                // perchè viene aggiornato
                BuonoCaricoScaricoComponentSession r = (it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession", it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession.class);
                Ass_inv_bene_fatturaBulk newAss = r.sdoppiaAssociazioneFor(context.getUserContext(), (Fattura_passiva_rigaBulk) dettaglioSelezionato, (Fattura_passiva_rigaBulk) nuovoDettaglio);
                documento.addToAssociazioniInventarioHash(newAss, nuovoDettaglio);
            }
        }
        documento = (Fattura_passivaBulk) session.rebuildDocumento(context.getUserContext(), documento);
        getObbligazioniController().getSelection().clear();
        getObbligazioniController().setModelIndex(context, -1);
        getObbligazioniController().setModelIndex(context, it.cnr.jada.bulk.BulkCollections.indexOfByPrimaryKey(getObbligazioniController().getDetails(), dettaglioSelezionato));
        documento.setDetailDoubled(true);
        setModel(context, documento);
    } catch (Exception e) {
        throw handleException(e);
    }
}
Also used : ValidationException(it.cnr.jada.bulk.ValidationException) BulkList(it.cnr.jada.bulk.BulkList) Ass_inv_bene_fatturaBulk(it.cnr.contab.inventario00.docs.bulk.Ass_inv_bene_fatturaBulk) BuonoCaricoScaricoComponentSession(it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) FatturaPassivaComponentSession(it.cnr.contab.docamm00.ejb.FatturaPassivaComponentSession) BigDecimal(java.math.BigDecimal) ServletException(javax.servlet.ServletException) ValidationException(it.cnr.jada.bulk.ValidationException) RemoteException(java.rmi.RemoteException) BusinessProcessException(it.cnr.jada.action.BusinessProcessException) DetailedRuntimeException(it.cnr.jada.DetailedRuntimeException) TransformerException(javax.xml.transform.TransformerException) ApplicationException(it.cnr.jada.comp.ApplicationException) PersistencyException(it.cnr.jada.persistency.PersistencyException) IOException(java.io.IOException) ComponentException(it.cnr.jada.comp.ComponentException) BigDecimal(java.math.BigDecimal) ObbligazioneBulk(it.cnr.contab.doccont00.core.bulk.ObbligazioneBulk) Iterator(java.util.Iterator) Obbligazione_scadenzarioBulk(it.cnr.contab.doccont00.core.bulk.Obbligazione_scadenzarioBulk)

Example 2 with BuonoCaricoScaricoComponentSession

use of it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession in project sigla-main by consiglionazionaledellericerche.

the class CRUDScaricoBuonoAction method doAddToCRUDMain_DettagliFattura_RigheInventarioDaFattura.

/**
 *  Gestisce l'aggiunta di un nuovo bene nel Buono di Scarico generato da Fattura Attiva.
 *	L'utente sta creando un Buono di Scarico partendo dalla creazione di una Fattura Attiva.
 *	Prima di tutto, il metodo controlla che sia stata selezionata una riga dalla finestra
 *	dei dettagli della Fattura; in seguito, costruisce un iteratore sui beni che hanno i requisiti
 *	per essere associati ad una riga di fattura e scaricati, (metodo BuonoScaricoComponent.cercaBeniAssociabili).
 * Infine viene proposta all'utente una finestra di ricerca guidata sui beni disponibili.
 *
 * @param context il <code>ActionContext</code> che contiene le informazioni relative alla richiesta
 *
 * @return forward <code>Forward</code>
 */
public Forward doAddToCRUDMain_DettagliFattura_RigheInventarioDaFattura(ActionContext context) {
    try {
        fillModel(context);
        CRUDScaricoInventarioBP bp_scarico = (CRUDScaricoInventarioBP) getBusinessProcess(context);
        if (bp_scarico.getModel() != null && ((Buono_carico_scaricoBulk) bp_scarico.getModel()).getData_registrazione() == null)
            return handleException(context, new it.cnr.jada.bulk.ValidationException("Attenzione: specificare la data scarico"));
        List fatture = bp_scarico.getDettagliFattura().getSelectedModels(context);
        Fattura_attiva_rigaIBulk riga_fattura = null;
        Nota_di_credito_rigaBulk nota = null;
        if (fatture.size() == 0 || bp_scarico.getDettagliFattura().getModel() == null)
            throw new it.cnr.jada.bulk.ValidationException("Attenzione: selezionare una riga di Fattura");
        else if (fatture.size() > 1)
            throw new it.cnr.jada.bulk.ValidationException("Attenzione: selezionare una riga di Fattura per volta");
        if (bp_scarico.getDettagliFattura().getModel().getClass().equals(Fattura_attiva_rigaIBulk.class))
            riga_fattura = (Fattura_attiva_rigaIBulk) bp_scarico.getDettagliFattura().getModel();
        else
            nota = (Nota_di_credito_rigaBulk) bp_scarico.getDettagliFattura().getModel();
        /* Nessuna riga di Fattura selezionata */
        if (riga_fattura == null && nota == null) {
            throw new it.cnr.jada.bulk.ValidationException("Attenzione: selezionare una riga di Fattura");
        }
        it.cnr.jada.util.RemoteIterator ri = null;
        if (riga_fattura != null) {
            ri = ((BuonoCaricoScaricoComponentSession) bp_scarico.createComponentSession()).cercaBeniAssociabili(context.getUserContext(), (Buono_carico_scaricoBulk) bp_scarico.getModel(), riga_fattura, null);
        } else {
            ri = ((BuonoCaricoScaricoComponentSession) bp_scarico.createComponentSession()).cercaBeniAssociabili(context.getUserContext(), (Buono_carico_scaricoBulk) bp_scarico.getModel(), nota, null);
        }
        ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context, ri);
        int count = ri.countElements();
        /* Non ci sono beni disponibili ad essere associati */
        if (count == 0) {
            bp_scarico.setMessage("Nessun Bene associabile");
            it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, ri);
        } else {
            // SelezionatoreListaBP slbp = select(context,ri,it.cnr.jada.bulk.BulkInfo.getBulkInfo(Inventario_beniBulk.class),null,"doSelezionaBeniScaricati",null,bp_scarico);
            // slbp.setMultiSelection(true);
            /* Crea BP di ricerca guidata */
            RicercaLiberaBP rlbp = (RicercaLiberaBP) context.createBusinessProcess("RicercaLibera");
            rlbp.setCanPerformSearchWithoutClauses(false);
            // rlbp.setSearchProvider(bp_scarico.getBeneSearchProvider(context));
            it.cnr.contab.inventario00.ejb.Inventario_beniComponentSession inventario_component = (it.cnr.contab.inventario00.ejb.Inventario_beniComponentSession) bp_scarico.createComponentSession("CNRINVENTARIO00_EJB_Inventario_beniComponentSession", Inventario_beniBulk.class);
            Inventario_beniBulk model_for_search = (Inventario_beniBulk) inventario_component.inizializzaBulkPerInserimento(context.getUserContext(), new Inventario_beniBulk());
            rlbp.setFreeSearchSet("freeSearchWithoutProgressivoSet");
            rlbp.setPrototype(model_for_search);
            // rlbp.setMultiSelection(true);
            rlbp.setShowSearchResult(false);
            context.addHookForward("searchResult", this, "doBringBackAddBeni");
            context.addHookForward("filter", this, "doBringBackAddBeni");
            return context.addBusinessProcess(rlbp);
        }
        return context.findDefaultForward();
    } catch (Throwable e) {
        return handleException(context, e);
    }
}
Also used : CRUDScaricoInventarioBP(it.cnr.contab.inventario01.bp.CRUDScaricoInventarioBP) Inventario_beniBulk(it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk) Nota_di_credito_rigaBulk(it.cnr.contab.docamm00.docs.bulk.Nota_di_credito_rigaBulk) Fattura_attiva_rigaIBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_attiva_rigaIBulk) SimpleBulkList(it.cnr.jada.bulk.SimpleBulkList) List(java.util.List) it.cnr.contab.inventario01.bulk(it.cnr.contab.inventario01.bulk)

Example 3 with BuonoCaricoScaricoComponentSession

use of it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession in project sigla-main by consiglionazionaledellericerche.

the class CRUDCaricoScaricoInventarioBP method initializeModelForEdit.

public OggettoBulk initializeModelForEdit(ActionContext context, OggettoBulk bulk) throws BusinessProcessException {
    try {
        BuonoCaricoScaricoComponentSession session = (BuonoCaricoScaricoComponentSession) createComponentSession("CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession", BuonoCaricoScaricoComponentSession.class);
        setAmministratore(UtenteBulk.isAmministratoreInventario(context.getUserContext()));
    } catch (ComponentException e1) {
        throw handleException(e1);
    } catch (RemoteException e1) {
        throw handleException(e1);
    }
    bulk = super.initializeModelForEdit(context, bulk);
    return bulk;
}
Also used : ComponentException(it.cnr.jada.comp.ComponentException) BuonoCaricoScaricoComponentSession(it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) RemoteException(java.rmi.RemoteException)

Example 4 with BuonoCaricoScaricoComponentSession

use of it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession in project sigla-main by consiglionazionaledellericerche.

the class CRUDScaricoInventarioBP method selectBeniAssociatiDocbyClause.

private it.cnr.jada.util.RemoteIterator selectBeniAssociatiDocbyClause(ActionContext context) throws BusinessProcessException {
    try {
        it.cnr.jada.persistency.sql.CompoundFindClause clauses = ((RemoteDetailCRUDController) getRigheInventarioDaDocumento()).getFilter();
        it.cnr.jada.UserContext userContext = context.getUserContext();
        Buono_carico_scaricoBulk buonoS = (Buono_carico_scaricoBulk) getModel();
        Class bulkClass = Inventario_beniBulk.class;
        return ((BuonoCaricoScaricoComponentSession) createComponentSession()).selectBeniAssociatiByClause(userContext, buonoS, getDettagliDocumento().getModel(), bulkClass, clauses);
    } catch (it.cnr.jada.comp.ComponentException e) {
        throw handleException(e);
    } catch (java.rmi.RemoteException e) {
        throw handleException(e);
    }
}
Also used : Inventario_beniBulk(it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk) BuonoCaricoScaricoComponentSession(it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) RemoteException(java.rmi.RemoteException) Buono_carico_scaricoBulk(it.cnr.contab.inventario01.bulk.Buono_carico_scaricoBulk) RemoteDetailCRUDController(it.cnr.jada.util.action.RemoteDetailCRUDController) ComponentException(it.cnr.jada.comp.ComponentException)

Example 5 with BuonoCaricoScaricoComponentSession

use of it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession in project sigla-main by consiglionazionaledellericerche.

the class CRUDScaricoInventarioBP method selectDettagliScaricobyClause.

/**
 * Cerca tutti i beni del Buono di Scarico.
 *	E' stata generata la richiesta di visualizzare i beni del Buono di Scarico.
 *	Invoca il metodo <code>BuonoScaricoComponent.selectBeniAssociatiByClause</code>
 *
 * @param userContext lo <code>UserContext</code> che ha generato la richiesta.
 *
 * @return <code>RemoteIterator</code> l'Iteratore sui beni.
 */
private it.cnr.jada.util.RemoteIterator selectDettagliScaricobyClause(ActionContext context) throws BusinessProcessException {
    try {
        it.cnr.jada.persistency.sql.CompoundFindClause clauses = ((RemoteDetailCRUDController) getRigheInventarioDaFattura()).getFilter();
        it.cnr.jada.UserContext userContext = context.getUserContext();
        Buono_carico_scaricoBulk buonoS = (Buono_carico_scaricoBulk) getModel();
        Fattura_attiva_rigaIBulk rigaFattura = (Fattura_attiva_rigaIBulk) getDettagliFattura().getModel();
        Class bulkClass = Inventario_beniBulk.class;
        return ((BuonoCaricoScaricoComponentSession) createComponentSession()).selectBeniAssociatiByClause(userContext, buonoS, rigaFattura, bulkClass, clauses);
    } catch (it.cnr.jada.comp.ComponentException e) {
        throw handleException(e);
    } catch (java.rmi.RemoteException e) {
        throw handleException(e);
    }
}
Also used : Inventario_beniBulk(it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk) BuonoCaricoScaricoComponentSession(it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) RemoteException(java.rmi.RemoteException) Buono_carico_scaricoBulk(it.cnr.contab.inventario01.bulk.Buono_carico_scaricoBulk) Fattura_attiva_rigaIBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_attiva_rigaIBulk) RemoteDetailCRUDController(it.cnr.jada.util.action.RemoteDetailCRUDController) ComponentException(it.cnr.jada.comp.ComponentException)

Aggregations

BuonoCaricoScaricoComponentSession (it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession)25 ComponentException (it.cnr.jada.comp.ComponentException)16 RemoteException (java.rmi.RemoteException)14 Ass_inv_bene_fatturaBulk (it.cnr.contab.inventario00.docs.bulk.Ass_inv_bene_fatturaBulk)12 Buono_carico_scaricoBulk (it.cnr.contab.inventario01.bulk.Buono_carico_scaricoBulk)11 BusinessProcessException (it.cnr.jada.action.BusinessProcessException)10 Inventario_beniBulk (it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk)7 Iterator (java.util.Iterator)7 HookForward (it.cnr.jada.action.HookForward)6 Nota_di_credito_rigaBulk (it.cnr.contab.docamm00.docs.bulk.Nota_di_credito_rigaBulk)5 ValidationException (it.cnr.jada.bulk.ValidationException)5 ApplicationException (it.cnr.jada.comp.ApplicationException)5 PersistencyException (it.cnr.jada.persistency.PersistencyException)5 List (java.util.List)5 Fattura_attiva_rigaIBulk (it.cnr.contab.docamm00.docs.bulk.Fattura_attiva_rigaIBulk)4 DetailedRuntimeException (it.cnr.jada.DetailedRuntimeException)4 IntrospectionException (it.cnr.jada.persistency.IntrospectionException)4 CompoundFindClause (it.cnr.jada.persistency.sql.CompoundFindClause)4 RemoteDetailCRUDController (it.cnr.jada.util.action.RemoteDetailCRUDController)4 EJBException (javax.ejb.EJBException)4