package com.fp.frontend.controller.armas.lov; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import javax.annotation.PostConstruct; import javax.faces.bean.ManagedBean; import javax.faces.bean.ManagedProperty; import javax.faces.bean.ViewScoped; import org.primefaces.context.RequestContext; import org.primefaces.event.SelectEvent; import com.fp.dto.Request; import com.fp.dto.Response; import com.fp.dto.query.DtoQuery; import com.fp.dto.query.SubQuery; import com.fp.frontend.controller.AbstractController; import com.fp.frontend.controller.armas.parametros.ClaseLovController; import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController; import com.fp.frontend.enums.EnumLovOption; import com.fp.frontend.helper.CallerHelper; import com.fp.frontend.helper.MessageHelper; import com.fp.persistence.parmas.param.TarmUnidadTipo; import com.fp.persistence.pgeneral.gene.TgeneCatalog; import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail; /** * Clase controladora del lov asociado al bean TarmUnidTipo. * * @author C.P. * @version 2.1 */ /** * @author User * */ @ManagedBean @ViewScoped public class UnidadTipoLovController extends AbstractController { private static final long serialVersionUID = 1L; private String descripcionClase; private String descripcionTipoArma; private String codigoClase; private String btnAcctivar; @ManagedProperty(value = "#{claseLovController}") private ClaseLovController claseLovController; public UnidadTipoLovController() throws Exception { super(TarmUnidadTipo.class); } @PostConstruct private void postconstruct() { this.init(); // Inicializa autoconsulta super.startQuery(); } /** * Incializa el controlador, cuando se esta utilizando una pagina que utliza el controlador. */ private void init() { try { this.recperpage = 15; this.lrecord = new ArrayList<>(); this.beanalias = "UNIDADTIPO"; } catch (Exception e) { MessageHelper.setMessageError(e); } } @SuppressWarnings("unchecked") @Override protected void querydatabase() { try { Request request = this.callerhelper.getRequest(); DtoQuery dto = super.getDtoQuery(true); //dto.setOrderby("t.pk"); SubQuery sclasearma= new SubQuery ("TgeneCatalogDetail", "description", "desclasearma", "i.pk.catalog = t.pk.clase and i.pk.catalogcode=t.pk.clasecode"); SubQuery stipoarma= new SubQuery ("TgeneCatalogDetail", "description", "destipoarma", "i.pk.catalog = t.pk.tipoarmaexplosivo and i.pk.catalogcode=t.pk.tipoarmaexplosivocodigo"); SubQuery sunidad= new SubQuery ("TgeneCatalogDetail", "description", "desunidad", "i.pk.catalog = t.pk.unidadmedidapeso and i.pk.catalogcode=t.pk.unidadmedidapesocodigo"); dto.addSubQuery(stipoarma); dto.addSubQuery(sclasearma); dto.addSubQuery(sunidad); HashMap mtables = new HashMap(); mtables.put(this.beanalias, dto); // permite adicionar mas de una tabla. request.setQueryTables(mtables); Response resp = this.callerhelper.executeQuery(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) { this.lrecord = new ArrayList(); MessageHelper.setMessageError(resp); } else { this.lrecord = (List) resp.get(this.beanalias); super.postQuery(this.lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } //busquedas desde en un dialogo public void openClaseLov() { try { btnAcctivar="clase"; claseLovController.setLrecord(new ArrayList()); claseLovController.getMfilters().clear(); claseLovController.getMfilters().put("pk.catalogcode", "CLASE"); claseLovController.query(); } catch (Exception e) { MessageHelper.setMessageError(e); } } //del catalogo para la clase private TgeneCatalogDetail sel; public void setcatalogDialog(TgeneCatalogDetail tgeneCatalog) { sel = tgeneCatalog; super.getMfilters().put("pk.clase", sel.getPk().getCatalog()); descripcionClase=sel.getDescription(); codigoClase=sel.getPk().getCatalog(); claseLovController.setLrecord(new ArrayList()); claseLovController.getMfilters().clear(); super.getMfilters().put("pk.tipoarmaexplosivo", null); descripcionTipoArma=null; } //busquedas desde en un dialogo public void openTipoArmaDialog() { try { if(codigoClase==null || codigoClase.trim().length()==0){ MessageHelper.setMessageError("SELECCIONE LA CLASE"); return; } claseLovController.setLrecord(new ArrayList()); claseLovController.getMfilters().clear(); btnAcctivar="tipoArma"; String legalcode=""; String legalcode2 =""; Listlista=CatalogDetailController.find("LONGITUD", codigoClase); if(lista!=null){ for(TgeneCatalogDetail catalogo:lista){ if(legalcode==null || legalcode.length()==0){ legalcode+= catalogo.getPk().getCatalog(); }else if(legalcode2==null || legalcode2.length()==0){ legalcode2+=" legalcode= '"+catalogo.getPk().getCatalog()+"'"; }else{ legalcode2+=" or t.legalcode= '"+catalogo.getPk().getCatalog()+"'"; } } }else{ legalcode=codigoClase; } claseLovController.getMfilters().put("pk.catalogcode", "TIPOARMAEXPLOSIVO"); if (legalcode != null && legalcode.trim().length()>0) { if (legalcode2 != null && legalcode2.trim().length()>0) { claseLovController.getMfilters().put(legalcode2+" or t.legalcode", legalcode); }else{ claseLovController.getMfilters().put("legalcode", legalcode); } } claseLovController.query(); } catch (Exception e) { MessageHelper.setMessageError(e); } } //del catalogo para la clase public void setDialogTipoArma(TgeneCatalogDetail tgeneCatalog) { sel = tgeneCatalog; super.getMfilters().put("pk.tipoarmaexplosivo", sel.getPk().getCatalog()); descripcionTipoArma=sel.getDescription(); claseLovController.setLrecord(new ArrayList()); claseLovController.getMfilters().clear(); } public static void openLov(Map> params) { Map options = new HashMap(); options.put(EnumLovOption.MODAL.getLabel(), true); options.put(EnumLovOption.HEIGHT.getLabel(), 450); options.put(EnumLovOption.WIDTH.getLabel(), 700); options.put(EnumLovOption.RESIZABLE.getLabel(), false); RequestContext.getCurrentInstance().openDialog("/pages/armas/lov/unidadTipoLov.xhtml", options, params); } public void setunidTipo() { // se utiliza en la pagina del lov. RequestContext.getCurrentInstance().closeDialog(this.record); } public void setunidTipo(TarmUnidadTipo tarmUnidadTipo) { // se utiliza en la pagina del lov. RequestContext.getCurrentInstance().closeDialog(tarmUnidadTipo); } public String getDescripcionClase() { return descripcionClase; } public void setDescripcionClase(String descripcionClase) { this.descripcionClase = descripcionClase; } public String getDescripcionTipoArma() { return descripcionTipoArma; } public void setDescripcionTipoArma(String descripcionTipoArma) { this.descripcionTipoArma = descripcionTipoArma; } public TgeneCatalogDetail getSel() { return sel; } public void setSel(TgeneCatalogDetail sel) { this.sel = sel; } public ClaseLovController getClaseLovController() { return claseLovController; } public void setClaseLovController(ClaseLovController claseLovController) { this.claseLovController = claseLovController; } public String getBtnAcctivar() { return btnAcctivar; } public void setBtnAcctivar(String btnAcctivar) { this.btnAcctivar = btnAcctivar; } public String getCodigoClase() { return codigoClase; } public void setCodigoClase(String codigoClase) { this.codigoClase = codigoClase; } }