it.cnr.contab.inventario00.actions.CRUDAggiornamentoInventarioAction Maven / Gradle / Ivy
/*
* Copyright (C) 2019 Consiglio Nazionale delle Ricerche
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU Affero General Public License as
* published by the Free Software Foundation, either version 3 of the
* License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU Affero General Public License for more details.
*
* You should have received a copy of the GNU Affero General Public License
* along with this program. If not, see .
*/
package it.cnr.contab.inventario00.actions;
import it.cnr.contab.inventario00.bp.CRUDAggiornamentoInventarioBP;
import it.cnr.jada.action.ActionContext;
import it.cnr.jada.action.Forward;
import it.cnr.jada.action.HookForward;
import it.cnr.jada.bulk.SimpleBulkList;
import it.cnr.jada.util.action.RicercaLiberaBP;
import it.cnr.jada.util.action.SelezionatoreListaBP;
/**
* Insert the type's description here.
* @author: RPucciarelli
*/
public class CRUDAggiornamentoInventarioAction extends it.cnr.jada.util.action.CRUDAction {
public CRUDAggiornamentoInventarioAction() {
super();
}
/**
* Gestisce il risultato di una ricerca sull' Ubicazione di Destinazione:
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
* @param bulk il Aggiornamento_inventarioBulk il bulk che contiene le informazioni relative all'operazione di aggiornamento
* @param uo_dest la Ubicazione_beneBulk Ubicazione di destinazione selezionata dall'utente.
*
* @return forward Forward
**/
public Forward doBringBackSearchFindUbicazioneDestinazione(
ActionContext context,
it.cnr.contab.inventario00.docs.bulk.Aggiornamento_inventarioBulk bulk,
it.cnr.contab.inventario00.tabrif.bulk.Ubicazione_beneBulk ubicazione_dest) {
try {
fillModel(context);
if (ubicazione_dest != null){
it.cnr.jada.UserContext userContext = context.getUserContext();
CRUDAggiornamentoInventarioBP bp = (CRUDAggiornamentoInventarioBP)getBusinessProcess(context);
it.cnr.contab.inventario00.ejb.IdInventarioComponentSession h = (it.cnr.contab.inventario00.ejb.IdInventarioComponentSession)
it.cnr.jada.util.ejb.EJBCommonServices.createEJB(
"CNRINVENTARIO00_EJB_IdInventarioComponentSession",
it.cnr.contab.inventario00.ejb.IdInventarioComponentSession.class);
bulk.setUbicazione_destinazione(ubicazione_dest);
}
return context.findDefaultForward();
} catch(Throwable e) {
return handleException(context,e);
}
}
/**
* Gestisce l'aggiunta di un nuovo CDR Utilizzatore. Prima di permettere l'aggiunta
* di un Utilizzatore, va a fare il controllo di validità su quello attuale,
* e sulle linee di attività ad esso associate.
*
* @param context il ActionContext che contiene le informazioni relative alla richiesta
*
* @return forward Forward
**/
public Forward doAddToCRUDMain_VUtilizzatori(ActionContext context) {
try {
fillModel(context);
CRUDAggiornamentoInventarioBP bp = (CRUDAggiornamentoInventarioBP)getBusinessProcess(context);
it.cnr.contab.inventario00.docs.bulk.Aggiornamento_inventarioBulk agg = (it.cnr.contab.inventario00.docs.bulk.Aggiornamento_inventarioBulk)bp.getModel();
it.cnr.contab.inventario00.docs.bulk.Utilizzatore_CdrVBulk v_utitliz = (it.cnr.contab.inventario00.docs.bulk.Utilizzatore_CdrVBulk)bp.getVutilizzatori().getModel();
if (agg.getV_utilizzatoriColl().size()>0 && v_utitliz != null){
if (v_utitliz.getCdr()==null || v_utitliz.getCdr().getCd_centro_responsabilita()==null)
return handleException(context, new it.cnr.jada.bulk.ValidationException("Attenzione: specificare un CDR Utilizzatore"));
if (v_utitliz.getPercentuale_utilizzo_cdr().compareTo(new java.math.BigDecimal(0))==0)
return handleException(context, new it.cnr.jada.bulk.ValidationException("Attenzione: specificare una percentuale di utilizzo per il CDR Utilizzatore"));
if (v_utitliz.getBuono_cs_utilizzatoriColl().size()>0){
bp.validate_Percentuali_LA(context, v_utitliz);
}
else{
return handleException(context, new it.cnr.jada.bulk.ValidationException("Attenzione: specificare almeno un GAE con la relativa Percentuale di Utilizzo"));
}
}
int cont = 1;
for (java.util.Iterator i = agg.getV_utilizzatoriColl().iterator(); i.hasNext();){
it.cnr.contab.inventario00.docs.bulk.Utilizzatore_CdrVBulk v_utilizzatore = (it.cnr.contab.inventario00.docs.bulk.Utilizzatore_CdrVBulk)i.next();
if (v_utilizzatore.getCdr()==null || v_utilizzatore.getCdr().getCd_centro_responsabilita()==null)
return handleException(context, new it.cnr.jada.bulk.ValidationException("Attenzione: specificare un CDR per la riga " + cont));
if (v_utilizzatore.getPercentuale_utilizzo_cdr().compareTo(new java.math.BigDecimal(0))==0)
return handleException(context, new it.cnr.jada.bulk.ValidationException("Attenzione: specificare una percentuale di utilizzo per il CDR Utilizzatore alla riga " + cont));
if (v_utilizzatore.getBuono_cs_utilizzatoriColl().size()==0){
return handleException(context, new it.cnr.jada.bulk.ValidationException("Attenzione: specificare almeno un GAE " +
"con la relativa Percentuale di Utilizzo per ogni Utilizzatore.\n " +
"Specificare un GAE per la riga " + cont));
}
cont++;
}
getController(context,"main.VUtilizzatori").add(context);
return context.findDefaultForward();
} catch(Throwable e) {
return handleException(context,e);
}
}
/**
* Gestisce un cambiamento di pagina su un controllo tabbed {@link it.cnr.jada.util.jsp.JSPUtils.tabbed}
*/
public Forward doTab(ActionContext context,String tabName,String pageName) {
CRUDAggiornamentoInventarioBP bp = (CRUDAggiornamentoInventarioBP)getBusinessProcess(context);
it.cnr.contab.inventario00.docs.bulk.Aggiornamento_inventarioBulk agg=(it.cnr.contab.inventario00.docs.bulk.Aggiornamento_inventarioBulk)bp.getModel();
try {
fillModel( context );
//if ("tabAggiornamentoInventarioTestata".equalsIgnoreCase(bp.getTab(tabName))) {
// if (buonoT.getUbicazione_destinazione() == null ){
// throw new it.cnr.jada.comp.ApplicationException("Attenzione: indicare Ubicazione Destinazione.");
//}
// }
return super.doTab( context, tabName, pageName );
} catch(Throwable e) {
return handleException(context,e);
}
}
public Forward doAddToCRUDMain_dettaglioCRUDController(ActionContext context) {
try {
fillModel(context);
CRUDAggiornamentoInventarioBP bp = (CRUDAggiornamentoInventarioBP)getBusinessProcess(context);
((it.cnr.contab.inventario00.docs.bulk.Aggiornamento_inventarioBulk)bp.getModel()).setDettagli(new SimpleBulkList());
bp.getDettagliCRUDController().validate(context);
it.cnr.jada.util.RemoteIterator ri = ((it.cnr.contab.inventario00.ejb.Aggiornamento_inventarioComponentSession)bp.createComponentSession()).cercaBeniAggiornabili(context.getUserContext(),(it.cnr.contab.inventario00.docs.bulk.Aggiornamento_inventarioBulk)bp.getModel(),null);
ri = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context,ri);
int count = ri.countElements();
if (count == 0) {
bp.setMessage("Nessun Bene aggiornabile");
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, ri);
context.closeBusinessProcess();
} else {
RicercaLiberaBP rlbp = (RicercaLiberaBP)context.createBusinessProcess("RicercaLibera");
//rlbp.setCanPerformSearchWithoutClauses(true);
it.cnr.contab.inventario00.ejb.Inventario_beniComponentSession inventario_component = (it.cnr.contab.inventario00.ejb.Inventario_beniComponentSession)bp.createComponentSession("CNRINVENTARIO00_EJB_Inventario_beniComponentSession",it.cnr.contab.inventario00.ejb.Inventario_beniComponentSession.class);
it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk model_for_search = (it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk)inventario_component.inizializzaBulkPerInserimento(context.getUserContext(),new it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk());
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);
}
}
public Forward doBringBackAddBeni(ActionContext context) {
try {
HookForward fwd = (HookForward)context.getCaller();
CRUDAggiornamentoInventarioBP bp = (CRUDAggiornamentoInventarioBP)getBusinessProcess(context);
it.cnr.contab.inventario01.bulk.Buono_carico_scaricoBulk buonoS =(it.cnr.contab.inventario01.bulk.Buono_carico_scaricoBulk)bp.getModel();
it.cnr.jada.persistency.sql.CompoundFindClause clauses = (it.cnr.jada.persistency.sql.CompoundFindClause)fwd.getParameter("filter");
bp.setClauses(clauses);
it.cnr.jada.util.RemoteIterator iterator = bp.getListaBeniDaAggiornare(context.getUserContext(),buonoS.getBuono_carico_scarico_dettColl(), clauses);
iterator = it.cnr.jada.util.ejb.EJBCommonServices.openRemoteIterator(context,iterator);
int count = iterator.countElements();
if (count == 0) {
bp.setMessage("Nessun Bene associabile");
it.cnr.jada.util.ejb.EJBCommonServices.closeRemoteIterator(context, iterator);
} else{
SelezionatoreListaBP slbp = select(context,iterator,it.cnr.jada.bulk.BulkInfo.getBulkInfo(it.cnr.contab.inventario00.docs.bulk.Inventario_beniBulk.class),null,"doSelezionaBeni",null,bp);
slbp.setMultiSelection(true);
return slbp;
}
return context.findDefaultForward();
} catch(Throwable e) {
return handleException(context,e);
}
}
public Forward doSelezionaBeni(ActionContext context) {
try {
CRUDAggiornamentoInventarioBP bp = (CRUDAggiornamentoInventarioBP)context.getBusinessProcess();
bp.getDettagliCRUDController().reset(context);
return context.findDefaultForward();
} catch(Exception e) {
return handleException(context,e);
}
}
/**
* @param context L'ActionContext della richiesta
* * @return Il Forward alla pagina di risposta
*/
public Forward doSalva(ActionContext context) {
try {
fillModel(context);
CRUDAggiornamentoInventarioBP bp = (CRUDAggiornamentoInventarioBP)context.getBusinessProcess();
bp.aggiornamento_beni(context);
return context.findDefaultForward();
} catch(Throwable e) {
return super.handleException(context,e);
}
}
/**
* Gestisce il comando azzeramento di un searchtool
* Quando si azzera il searchTool per la ricerca del CdR Utilizzatore,
* azzera la Collection delle Linee di Attivita collegate
*/
public Forward doBlankSearchFind_cdr(ActionContext context,
it.cnr.contab.inventario00.docs.bulk.Utilizzatore_CdrVBulk cdr_utilizzatore)
throws java.rmi.RemoteException {
try {
CRUDAggiornamentoInventarioBP bp = (CRUDAggiornamentoInventarioBP)getBusinessProcess(context);
cdr_utilizzatore.getBuono_cs_utilizzatoriColl().clear();
cdr_utilizzatore.setBene(null);
cdr_utilizzatore.setCdr(new it.cnr.contab.config00.sto.bulk.CdrBulk());
cdr_utilizzatore.setDettaglio(null);
cdr_utilizzatore.setPercentuale_utilizzo_cdr(null);
bp.getUtilizzatori().reset(context);
return context.findDefaultForward();
} catch(Exception e) {
return handleException(context,e);
}
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy