Search in sources :

Example 1 with Categoria_gruppo_inventBulk

use of it.cnr.contab.docamm00.tabrif.bulk.Categoria_gruppo_inventBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDCaricoBuonoAction method doCreaGruppi.

/**
 * Crea i raggruppamenti dei beni
 *
 *  E' stata generata la richiesta di creare un Buono di Carico da una Fattura Passiva.
 *	In questa fase ci si trova nel pannello che serve a creare, per ogni riga di Fattura ed
 *	in base alla quantità della riga stessa, dei gruppi che saranno poi le righe di dettaglio
 *	del Buono di Carico. L'utente ha richiesto di creare i gruppi relativi ad una riga di Fattura.
 *	Il sistema, esegue vari controlli sul numero di blocchi indicato dall'utente; dopodichè
 *	si passa alla creazione dei blocchi che saranno poi le righe di dettaglio del Buono di Carico:
 * si creano tante righe di dettaglio, (Buono_carico_detBulk), con i rispettivi beni, (Inventario_beniBulk),
 *	le cui proprietà, (Categoria_gruppo, valore_iniziale, tipo ISTITUZIONALE/COMMERCIALE, etc.) saranno
 *	ereditate dalla riga di Fattura.
 *
 * @param context il <code>ActionContext</code> che contiene le informazioni relative alla richiesta
 *
 * @return forward <code>Forward</code>
 */
public Forward doCreaGruppi(ActionContext context) {
    Buono_carico_scarico_dettBulk rigoInventario = new Buono_carico_scarico_dettBulk();
    Buono_carico_scarico_dettBulk nuovoRigoInventario;
    Inventario_beniBulk bene = new Inventario_beniBulk();
    Inventario_beniBulk nuovoBene;
    int gruppi = 0;
    Categoria_gruppo_inventBulk cat_gruppo;
    String cd_pubblicazioni = null;
    boolean isPubblicazione = false;
    CRUDCaricoInventarioBP bp = (CRUDCaricoInventarioBP) getBusinessProcess(context);
    Buono_carico_scaricoBulk buono_cs = (Buono_carico_scaricoBulk) ((CRUDCaricoInventarioBP) getBusinessProcess(context)).getModel();
    Fattura_passiva_rigaBulk riga_fattura = (Fattura_passiva_rigaBulk) bp.getDettagliFattura().getModel();
    PrimaryKeyHashtable h = buono_cs.getDettagliRigheHash();
    BulkList listaInventari = new BulkList();
    java.math.BigDecimal valore_unitario = new java.math.BigDecimal(0);
    try {
        // Non è stata indicata la riga di Fattura di riferimento
        if (riga_fattura == null) {
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: selezionare una Bene/Servizio");
        }
        // Non è stato indicato il numero di gruppi
        if (getGroups() == null) {
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: numero di blocchi non valido. Il numero dei blocchi non può essere nullo");
        } else {
            try {
                gruppi = Integer.parseInt(getGroups());
                bp.setIsNumGruppiErrato(false);
            } catch (NumberFormatException e) {
                bp.setIsNumGruppiErrato(true);
                return handleException(context, new it.cnr.jada.bulk.FillException("Errore di formattazione sul campo N. Gruppi", e));
            }
        }
        // Il numero di gruppi è minore di 0.
        if (gruppi < 0) {
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: numero di blocchi non valido. Il numero dei blocchi non può essere negativo");
        }
        // Il numero di gruppi è uguale a 0.
        if (gruppi == 0) {
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: numero di blocchi non valido. Il numero dei blocchi non può essere zero");
        }
        // Il numero di gruppi è superiore alla quantità indicata nella riga di Fattura
        if (gruppi > riga_fattura.getQuantita().intValue()) {
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: numero di blocchi non valido. Il numero dei blocchi non può essere superiore alla quantità del Bene");
        }
        // Valida i gruppi
        validaCreaGruppi(buono_cs, riga_fattura);
        // Cerca il Codice relativo alla Categoria PUBBLICAZIONI
        cd_pubblicazioni = ((it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRCONFIG00_EJB_Configurazione_cnrComponentSession", it.cnr.contab.config00.ejb.Configurazione_cnrComponentSession.class)).getVal01(context.getUserContext(), new Integer(0), "*", "CD_CATEGORIA_GRUPPO_SPECIALE", "PUBBLICAZIONI");
        if (cd_pubblicazioni != null)
            isPubblicazione = riga_fattura.getBene_servizio().getCategoria_gruppo().getCd_categoria_padre().equalsIgnoreCase(cd_pubblicazioni);
    } catch (Throwable t) {
        return handleException(context, t);
    }
    for (int i = 0; i < gruppi; i++) {
        nuovoRigoInventario = new Buono_carico_scarico_dettBulk();
        nuovoBene = new Inventario_beniBulk();
        nuovoRigoInventario.setToBeCreated();
        nuovoBene.setToBeCreated();
        if (gruppi == 1) {
            nuovoRigoInventario.setQuantita(riga_fattura.getQuantita().longValue());
            bp.setIsQuantitaEnabled(false);
        } else {
            bp.setIsQuantitaEnabled(true);
        }
        // Assegna il Prezzo unitario: il prezzo è diverso a seconda che il dettaglio della Fattura sia ISTITUZIONALE o COMMERCIALE
        if (riga_fattura.getTi_istituz_commerc().equals(TipoIVA.ISTITUZIONALE.value())) {
            valore_unitario = riga_fattura.getIm_imponibile().add(riga_fattura.getIm_iva());
            valore_unitario = valore_unitario.divide(riga_fattura.getQuantita(), 2, java.math.BigDecimal.ROUND_HALF_UP);
            nuovoRigoInventario.setValore_unitario(valore_unitario);
        } else {
            valore_unitario = riga_fattura.getIm_imponibile().divide(riga_fattura.getQuantita(), 2, java.math.BigDecimal.ROUND_HALF_UP);
            nuovoRigoInventario.setValore_unitario(valore_unitario);
        }
        nuovoBene.setDs_bene(riga_fattura.getDs_riga_fattura());
        nuovoBene.setValore_iniziale(nuovoRigoInventario.getValore_unitario());
        nuovoBene.setTi_commerciale_istituzionale(riga_fattura.getTi_istituz_commerc());
        nuovoBene.setUbicazione(new Ubicazione_beneBulk());
        nuovoBene.setAssegnatario(new it.cnr.contab.anagraf00.core.bulk.TerzoBulk());
        nuovoBene.setCd_cds(buono_cs.getCds_scrivania());
        nuovoBene.setCd_unita_organizzativa(buono_cs.getUo_scrivania());
        nuovoBene.setCategoria_Bene(riga_fattura.getBene_servizio().getCategoria_gruppo());
        nuovoBene.setInventario(buono_cs.getInventario());
        nuovoBene.setPg_inventario(buono_cs.getPg_inventario());
        nuovoBene.setFl_totalmente_scaricato(Boolean.FALSE);
        nuovoBene.setImponibile_ammortamento(nuovoRigoInventario.getValore_unitario());
        if (cd_pubblicazioni != null)
            nuovoBene.setPubblicazione(isPubblicazione);
        nuovoRigoInventario.setBuono_cs(buono_cs);
        nuovoRigoInventario.setBene(bene);
        nuovoRigoInventario.CalcolaTotaleBene();
        nuovoRigoInventario.setBene(nuovoBene);
        nuovoRigoInventario.setProgressivo(bp.incrementaProgressivo_beni().intValue());
        listaInventari.add(nuovoRigoInventario);
    }
    h.remove(riga_fattura);
    h.put(riga_fattura, listaInventari);
    buono_cs.getDettagliRigheHash().put(riga_fattura, listaInventari);
    return context.findDefaultForward();
}
Also used : Inventario_beniBulk(it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk) BigDecimal(java.math.BigDecimal) CRUDCaricoInventarioBP(it.cnr.contab.inventario01.bp.CRUDCaricoInventarioBP) BulkList(it.cnr.jada.bulk.BulkList) BigDecimal(java.math.BigDecimal) BigInteger(java.math.BigInteger) ApplicationException(it.cnr.jada.comp.ApplicationException) PrimaryKeyHashtable(it.cnr.jada.bulk.PrimaryKeyHashtable) it.cnr.contab.inventario00.tabrif.bulk(it.cnr.contab.inventario00.tabrif.bulk) it.cnr.contab.inventario01.bulk(it.cnr.contab.inventario01.bulk) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) Categoria_gruppo_inventBulk(it.cnr.contab.docamm00.tabrif.bulk.Categoria_gruppo_inventBulk)

Example 2 with Categoria_gruppo_inventBulk

use of it.cnr.contab.docamm00.tabrif.bulk.Categoria_gruppo_inventBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDCaricoBuonoAction method doCreaGruppiDoc.

public Forward doCreaGruppiDoc(ActionContext context) throws EJBException, SQLException, PersistencyException, ComponentException, RemoteException {
    Buono_carico_scarico_dettBulk nuovoRigoInventario;
    Inventario_beniBulk bene = new Inventario_beniBulk();
    Inventario_beniBulk nuovoBene;
    int gruppi = 0;
    String cd_pubblicazioni = null;
    boolean isPubblicazione = false;
    CRUDCaricoInventarioBP bp = (CRUDCaricoInventarioBP) getBusinessProcess(context);
    Buono_carico_scaricoBulk buono_cs = (Buono_carico_scaricoBulk) ((CRUDCaricoInventarioBP) getBusinessProcess(context)).getModel();
    Documento_generico_rigaBulk riga = (Documento_generico_rigaBulk) bp.getDettagliDocumento().getModel();
    PrimaryKeyHashtable h = buono_cs.getDettagliRigheDocHash();
    BulkList listaInventari = new BulkList();
    java.math.BigDecimal valore_unitario = new java.math.BigDecimal(0);
    try {
        // Non è stata indicata la riga di riferimento
        if (riga == null) {
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: selezionare una riga");
        }
        // Non è stato indicato il numero di gruppi
        if (getGroups() == null) {
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: numero di blocchi non valido. Il numero dei blocchi non può essere nullo");
        } else {
            try {
                gruppi = Integer.parseInt(getGroups());
                bp.setIsNumGruppiErrato(false);
            } catch (NumberFormatException e) {
                bp.setIsNumGruppiErrato(true);
                return handleException(context, new it.cnr.jada.bulk.FillException("Errore di formattazione sul campo N. Gruppi", e));
            }
        }
        // Il numero di gruppi è minore di 0.
        if (gruppi < 0) {
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: numero di blocchi non valido. Il numero dei blocchi non può essere negativo");
        }
        // Il numero di gruppi è uguale a 0.
        if (gruppi == 0) {
            throw new it.cnr.jada.comp.ApplicationException("Attenzione: numero di blocchi non valido. Il numero dei blocchi non può essere zero");
        }
        // Valida i gruppi
        validaCreaGruppiDoc(buono_cs, riga);
    } catch (Throwable t) {
        return handleException(context, t);
    }
    for (int i = 0; i < gruppi; i++) {
        nuovoRigoInventario = new Buono_carico_scarico_dettBulk();
        nuovoBene = new Inventario_beniBulk();
        nuovoRigoInventario.setToBeCreated();
        nuovoBene.setToBeCreated();
        if (gruppi == 1) {
            nuovoRigoInventario.setQuantita(new Long(1));
            bp.setIsQuantitaEnabled(false);
        } else {
            bp.setIsQuantitaEnabled(true);
        }
        // 
        nuovoRigoInventario.setValore_unitario(riga.getIm_riga().divide(new BigDecimal(gruppi), 2, BigDecimal.ROUND_HALF_UP));
        nuovoBene.setDs_bene(riga.getDs_riga());
        nuovoBene.setValore_iniziale(nuovoRigoInventario.getValore_unitario().divide(new BigDecimal(gruppi), 2, BigDecimal.ROUND_HALF_UP));
        nuovoBene.setTi_commerciale_istituzionale(riga.getDocumento_generico().getTi_istituz_commerc());
        nuovoBene.setUbicazione(new Ubicazione_beneBulk());
        nuovoBene.setAssegnatario(new it.cnr.contab.anagraf00.core.bulk.TerzoBulk());
        nuovoBene.setCd_cds(buono_cs.getCds_scrivania());
        nuovoBene.setCd_unita_organizzativa(buono_cs.getUo_scrivania());
        nuovoBene.setCategoria_Bene(new Categoria_gruppo_inventBulk());
        if ((riga.getDocumento_generico().getTi_entrate_spese() == Documento_genericoBulk.SPESE) && riga.getObbligazione_scadenziario() != null && riga.getObbligazione_scadenziario().getObbligazione() != null && riga.getObbligazione_scadenziario().getObbligazione().getElemento_voce() != null) {
            nuovoBene.getCategoria_Bene().setNodoPadre(new Categoria_gruppo_inventBulk());
            if (((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession", it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession.class)).findCategoria_gruppo_voceforvoce(context.getUserContext(), riga.getObbligazione_scadenziario().getObbligazione().getElemento_voce()) != null)
                nuovoRigoInventario.setCat_voce(((it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession) it.cnr.jada.util.ejb.EJBCommonServices.createEJB("CNRINVENTARIO01_EJB_BuonoCaricoScaricoComponentSession", it.cnr.contab.inventario01.ejb.BuonoCaricoScaricoComponentSession.class)).findCategoria_gruppo_voceforvoce(context.getUserContext(), riga.getObbligazione_scadenziario().getObbligazione().getElemento_voce()));
            else
                throw new it.cnr.jada.comp.ApplicationException("Non esiste nessuna Categoria inventariale associata al capitolo.");
        }
        nuovoBene.setInventario(buono_cs.getInventario());
        nuovoBene.setPg_inventario(buono_cs.getPg_inventario());
        nuovoBene.setFl_totalmente_scaricato(Boolean.FALSE);
        nuovoBene.setImponibile_ammortamento(nuovoRigoInventario.getValore_unitario());
        if (cd_pubblicazioni != null)
            nuovoBene.setPubblicazione(isPubblicazione);
        nuovoRigoInventario.setBuono_cs(buono_cs);
        nuovoRigoInventario.setBene(bene);
        nuovoRigoInventario.CalcolaTotaleBene();
        nuovoRigoInventario.setBene(nuovoBene);
        nuovoRigoInventario.setProgressivo(bp.incrementaProgressivo_beni().intValue());
        listaInventari.add(nuovoRigoInventario);
    }
    h.remove(riga);
    h.put(riga, listaInventari);
    buono_cs.getDettagliRigheDocHash().put(riga, listaInventari);
    return context.findDefaultForward();
}
Also used : Inventario_beniBulk(it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk) BigDecimal(java.math.BigDecimal) CRUDCaricoInventarioBP(it.cnr.contab.inventario01.bp.CRUDCaricoInventarioBP) ApplicationException(it.cnr.jada.comp.ApplicationException) BulkList(it.cnr.jada.bulk.BulkList) BigDecimal(java.math.BigDecimal) ApplicationException(it.cnr.jada.comp.ApplicationException) PrimaryKeyHashtable(it.cnr.jada.bulk.PrimaryKeyHashtable) it.cnr.contab.inventario00.tabrif.bulk(it.cnr.contab.inventario00.tabrif.bulk) it.cnr.contab.inventario01.bulk(it.cnr.contab.inventario01.bulk) it.cnr.contab.docamm00.docs.bulk(it.cnr.contab.docamm00.docs.bulk) Categoria_gruppo_inventBulk(it.cnr.contab.docamm00.tabrif.bulk.Categoria_gruppo_inventBulk)

Example 3 with Categoria_gruppo_inventBulk

use of it.cnr.contab.docamm00.tabrif.bulk.Categoria_gruppo_inventBulk in project sigla-main by consiglionazionaledellericerche.

the class Tipo_ammortamentoHome method makePersistentAssTiAmm_CatBeni.

/*
 * Permette di rendere persistenti le associazioni tra il Tipo Ammortamento e le 
 *	Categorie di beni ad esso associato.
*/
public void makePersistentAssTiAmm_CatBeni(it.cnr.jada.UserContext aUC, Tipo_ammortamentoBulk ti_ammort) throws PersistencyException, IntrospectionException {
    LoggableStatement ps = null;
    java.io.StringWriter sql = new java.io.StringWriter();
    java.io.PrintWriter pw = new java.io.PrintWriter(sql);
    SimpleBulkList cat_beni_associati = (SimpleBulkList) ti_ammort.getCatBeni();
    String colonne_associa = "CD_TIPO_AMMORTAMENTO,CD_CATEGORIA_GRUPPO,ESERCIZIO_INIZIO,ESERCIZIO_FINE";
    String colonne_utente = "DACR,DUVA,UTCR,UTUV,PG_VER_REC";
    String valori_associa = "?,?,?,?";
    String valori_utente = "sysdate,sysdate,?,?,1";
    try {
        for (java.util.Iterator i = cat_beni_associati.iterator(); i.hasNext(); ) {
            Categoria_gruppo_inventBulk cat_bene = (Categoria_gruppo_inventBulk) i.next();
            pw.write("INSERT INTO " + it.cnr.jada.util.ejb.EJBCommonServices.getDefaultSchema() + "ASS_TIPO_AMM_CAT_GRUP_INV (");
            pw.write(colonne_associa);
            pw.write(",");
            pw.write(colonne_utente);
            pw.write(") VALUES (");
            pw.write(valori_associa);
            pw.write(",");
            pw.write(valori_utente);
            pw.write(")");
            pw.flush();
            ps = new LoggableStatement(getConnection(), sql.toString(), true, this.getClass());
            pw.close();
            ps.setString(1, ti_ammort.getCd_tipo_ammortamento());
            ps.setString(2, cat_bene.getCd_proprio());
            ps.setInt(3, it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(aUC).intValue());
            ps.setInt(4, it.cnr.contab.utenze00.bp.CNRUserContext.getEsercizio(aUC).intValue());
            ps.setString(5, ti_ammort.getUtcr());
            ps.setString(6, ti_ammort.getUtuv());
            ps.execute();
        }
    } catch (java.sql.SQLException e) {
        throw new PersistencyException(e);
    } finally {
        if (ps != null)
            try {
                ps.close();
            } catch (java.sql.SQLException e) {
            }
        ;
    }
}
Also used : it.cnr.jada.persistency.sql(it.cnr.jada.persistency.sql) Categoria_gruppo_inventBulk(it.cnr.contab.docamm00.tabrif.bulk.Categoria_gruppo_inventBulk)

Example 4 with Categoria_gruppo_inventBulk

use of it.cnr.contab.docamm00.tabrif.bulk.Categoria_gruppo_inventBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDOrdineAcqAction method recuperoListaCapitoli.

protected java.util.List recuperoListaCapitoli(ActionContext context, java.util.Iterator selectedModels) throws ComponentException, PersistencyException, IntrospectionException, RemoteException, BusinessProcessException {
    if (selectedModels != null) {
        java.util.List titoliCapitoli = new ArrayList<>();
        java.util.Vector categorieGruppo = new java.util.Vector();
        int count = 0;
        while (selectedModels.hasNext()) {
            count += 1;
            OrdineAcqRigaBulk rigaSelected = (OrdineAcqRigaBulk) selectedModels.next();
            Bene_servizioBulk beneServizio = rigaSelected.getBeneServizio();
            if (beneServizio == null)
                throw new it.cnr.jada.comp.ApplicationException("Valorizzare il bene/servizio per il dettaglio " + ((rigaSelected.getRiga() == null) ? "" : "\"" + rigaSelected.getRiga() + "\"") + "! Operazione interrotta.");
            if (beneServizio.getCategoria_gruppo() == null)
                throw new it.cnr.jada.comp.ApplicationException("Il bene/servizio \"" + beneServizio.getDs_bene_servizio() + "\" non ha definito alcuna categoria di appartenenza! Operazione interrotta.");
            else if (categorieGruppo.isEmpty())
                categorieGruppo.add(beneServizio.getCategoria_gruppo());
            else
                for (java.util.Iterator i = ((java.util.Vector) categorieGruppo.clone()).iterator(); i.hasNext(); ) {
                    Categoria_gruppo_inventBulk cat = (Categoria_gruppo_inventBulk) i.next();
                    if (!it.cnr.jada.bulk.BulkCollections.containsByPrimaryKey(categorieGruppo, beneServizio.getCategoria_gruppo()))
                        categorieGruppo.add(beneServizio.getCategoria_gruppo());
                }
        }
        CategoriaGruppoInventComponentSession h = (CategoriaGruppoInventComponentSession) context.getBusinessProcess().createComponentSession("CNRDOCAMM00_EJB_CategoriaGruppoInventComponentSession", CategoriaGruppoInventComponentSession.class);
        for (java.util.Iterator i = ((java.util.Vector) categorieGruppo.clone()).iterator(); i.hasNext(); ) {
            Categoria_gruppo_inventBulk cat = (Categoria_gruppo_inventBulk) i.next();
            java.util.List titoliCapitoliCatGrp = h.findAssVoceFList(context.getUserContext(), cat);
            if (titoliCapitoliCatGrp == null)
                throw new it.cnr.jada.comp.ApplicationException("Alla categoria " + cat.getCd_categoria_gruppo() + "\" non è stato attribuita l'associazione al capitolo di spesa");
            if (titoliCapitoli.isEmpty()) {
                for (java.util.Iterator k = titoliCapitoliCatGrp.iterator(); k.hasNext(); ) {
                    Categoria_gruppo_voceBulk assVoce = (Categoria_gruppo_voceBulk) k.next();
                    titoliCapitoli.add(assVoce.getElemento_voce());
                }
            } else
                for (java.util.Iterator k = titoliCapitoliCatGrp.iterator(); k.hasNext(); ) {
                    Categoria_gruppo_voceBulk assVoce = (Categoria_gruppo_voceBulk) k.next();
                    if (!it.cnr.jada.bulk.BulkCollections.containsByPrimaryKey(titoliCapitoli, assVoce.getElemento_voce()))
                        titoliCapitoli.add(assVoce.getElemento_voce());
                }
        }
        if (titoliCapitoli != null && !titoliCapitoli.isEmpty())
            return titoliCapitoli;
    }
    return null;
}
Also used : ApplicationException(it.cnr.jada.comp.ApplicationException) Iterator(java.util.Iterator) Bene_servizioBulk(it.cnr.contab.docamm00.tabrif.bulk.Bene_servizioBulk) ArrayList(java.util.ArrayList) Categoria_gruppo_voceBulk(it.cnr.contab.docamm00.tabrif.bulk.Categoria_gruppo_voceBulk) List(java.util.List) OrdineAcqRigaBulk(it.cnr.contab.ordmag.ordini.bulk.OrdineAcqRigaBulk) Iterator(java.util.Iterator) Categoria_gruppo_inventBulk(it.cnr.contab.docamm00.tabrif.bulk.Categoria_gruppo_inventBulk) CategoriaGruppoInventComponentSession(it.cnr.contab.docamm00.ejb.CategoriaGruppoInventComponentSession)

Example 5 with Categoria_gruppo_inventBulk

use of it.cnr.contab.docamm00.tabrif.bulk.Categoria_gruppo_inventBulk in project sigla-main by consiglionazionaledellericerche.

the class CRUDFatturaPassivaAction method controllaSelezionePerTitoloCapitoloLista.

protected java.util.List controllaSelezionePerTitoloCapitoloLista(ActionContext context, java.util.Iterator selectedModels) throws ComponentException, PersistencyException, IntrospectionException, RemoteException, BusinessProcessException {
    if (selectedModels != null) {
        java.util.Vector soggettiAInventario = new java.util.Vector();
        java.util.List titoliCapitoli = null;
        java.util.Vector categorieGruppo = new java.util.Vector();
        int count = 0;
        while (selectedModels.hasNext()) {
            count += 1;
            Fattura_passiva_rigaBulk rigaSelected = (Fattura_passiva_rigaBulk) selectedModels.next();
            Bene_servizioBulk beneServizio = rigaSelected.getBene_servizio();
            if (beneServizio == null)
                throw new it.cnr.jada.comp.ApplicationException("Valorizzare il bene/servizio per il dettaglio " + ((rigaSelected.getDs_riga_fattura() == null) ? "" : "\"" + rigaSelected.getDs_riga_fattura() + "\"") + "! Operazione interrotta.");
            if (beneServizio.getFl_gestione_inventario() != null && beneServizio.getFl_gestione_inventario().booleanValue()) {
                soggettiAInventario.add(rigaSelected);
                if (beneServizio.getCategoria_gruppo() == null)
                    throw new it.cnr.jada.comp.ApplicationException("Il bene/servizio \"" + beneServizio.getDs_bene_servizio() + "\" non ha definito alcuna categoria di appartenenza! Operazione interrotta.");
                else if (categorieGruppo.isEmpty())
                    categorieGruppo.add(beneServizio.getCategoria_gruppo());
                else
                    for (java.util.Iterator i = ((java.util.Vector) categorieGruppo.clone()).iterator(); i.hasNext(); ) {
                        Categoria_gruppo_inventBulk cat = (Categoria_gruppo_inventBulk) i.next();
                        if (!it.cnr.jada.bulk.BulkCollections.containsByPrimaryKey(categorieGruppo, beneServizio.getCategoria_gruppo()))
                            categorieGruppo.add(beneServizio.getCategoria_gruppo());
                    }
                CategoriaGruppoInventComponentSession h = (CategoriaGruppoInventComponentSession) context.getBusinessProcess().createComponentSession("CNRDOCAMM00_EJB_CategoriaGruppoInventComponentSession", CategoriaGruppoInventComponentSession.class);
                titoliCapitoli = h.findAssVoceFList(context.getUserContext(), beneServizio.getCategoria_gruppo());
                if (titoliCapitoli == null)
                    throw new it.cnr.jada.comp.ApplicationException("Selezione non omogenea: il bene/servizio \"" + beneServizio.getDs_bene_servizio() + "\" non è stato attribuito ad alcuna categoria gruppo per l'inventario!");
            }
        }
        int size = soggettiAInventario.size();
        if (size != 0) {
            if (size != count)
                throw new it.cnr.jada.comp.ApplicationException("Selezione non omogenea: selezionare solo dettagli non inventariabili o solo dettagli inventariabili");
            else if (categorieGruppo.size() != 1)
                throw new it.cnr.jada.comp.ApplicationException("Selezione non omogenea: selezionare solo dettagli inventariabili con stesso titolo capitolo!");
        }
        if (titoliCapitoli != null && !titoliCapitoli.isEmpty())
            return titoliCapitoli;
    }
    return null;
}
Also used : ApplicationException(it.cnr.jada.comp.ApplicationException) Iterator(java.util.Iterator) Bene_servizioBulk(it.cnr.contab.docamm00.tabrif.bulk.Bene_servizioBulk) List(java.util.List) Vector(java.util.Vector) Fattura_passiva_rigaBulk(it.cnr.contab.docamm00.docs.bulk.Fattura_passiva_rigaBulk) ApplicationException(it.cnr.jada.comp.ApplicationException) Vector(java.util.Vector) Categoria_gruppo_inventBulk(it.cnr.contab.docamm00.tabrif.bulk.Categoria_gruppo_inventBulk) CategoriaGruppoInventComponentSession(it.cnr.contab.docamm00.ejb.CategoriaGruppoInventComponentSession)

Aggregations

Categoria_gruppo_inventBulk (it.cnr.contab.docamm00.tabrif.bulk.Categoria_gruppo_inventBulk)22 SQLBuilder (it.cnr.jada.persistency.sql.SQLBuilder)8 ApplicationException (it.cnr.jada.comp.ApplicationException)5 Bene_servizioBulk (it.cnr.contab.docamm00.tabrif.bulk.Bene_servizioBulk)4 PersistencyException (it.cnr.jada.persistency.PersistencyException)4 Inventario_beniBulk (it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk)3 it.cnr.contab.inventario00.tabrif.bulk (it.cnr.contab.inventario00.tabrif.bulk)3 BulkList (it.cnr.jada.bulk.BulkList)3 ComponentException (it.cnr.jada.comp.ComponentException)3 it.cnr.jada.persistency.sql (it.cnr.jada.persistency.sql)3 Iterator (java.util.Iterator)3 List (java.util.List)3 it.cnr.contab.docamm00.docs.bulk (it.cnr.contab.docamm00.docs.bulk)2 CategoriaGruppoInventComponentSession (it.cnr.contab.docamm00.ejb.CategoriaGruppoInventComponentSession)2 Tipo_carico_scaricoBulk (it.cnr.contab.inventario00.tabrif.bulk.Tipo_carico_scaricoBulk)2 CRUDCaricoInventarioBP (it.cnr.contab.inventario01.bp.CRUDCaricoInventarioBP)2 it.cnr.contab.inventario01.bulk (it.cnr.contab.inventario01.bulk)2 OggettoBulk (it.cnr.jada.bulk.OggettoBulk)2 PrimaryKeyHashtable (it.cnr.jada.bulk.PrimaryKeyHashtable)2 BigDecimal (java.math.BigDecimal)2