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();
}
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();
}
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) {
}
;
}
}
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;
}
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;
}
Aggregations