package com.fp.frontend.controller.armas.parametros; import java.sql.Date; 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.event.SelectEvent; import com.fp.dto.Request; import com.fp.dto.Response; import com.fp.dto.query.DtoQuery; import com.fp.dto.query.Filter; import com.fp.dto.query.SubQuery; import com.fp.dto.save.DtoSave; import com.fp.frontend.controller.AbstractController; import com.fp.frontend.helper.MessageHelper; import com.fp.persistence.parmas.param.TarmTipoArmaExplosivo; import com.fp.persistence.parmas.param.TarmUnidadTipo; import com.fp.persistence.parmas.param.TarmUnidadTipoKey; import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail; /** * Clase controladora del bean TarmTipoArmaExplosivo. * * @author Christian Pazmino * @version 2.1 */ @SuppressWarnings("serial") @ManagedBean @ViewScoped public class TiposArmasExplosivosController extends AbstractController { /** * Variable que contiene el String (nombre de clase) del dialogo seleccionar * clase de la pantalla principal */ private String clase; /** * Variable que contiene el String (codigo de clase) del dialogo seleccionar * clase de la pantalla principal */ private String claseCodigo; /** * Variable que contiene el String (nombre de clase) del dialogo seleccionar * clase de la pantalla principal */ private String unidadMedidaPesoD; /** * Variable que contiene el String (codigo de clase) del dialogo seleccionar * clase de la pantalla principal */ private String unidadMedidaPesoCodigoD; /** * Variable que contiene el String (nombre de clase) del dialogo seleccionar * clase de la pantalla crear/editar */ private String claseD; /** * Variable que contiene el String (codigo de clase) del dialogo seleccionar * clase de la pantalla crear/editar */ private String claseCodigoD; /** * Variable que contiene el String (codigo de longitud) del dialogo * seleccionar longitud de la pantalla principal */ private String longitud; /** * Variable que contiene el String (codigo de longitud) del dialogo * seleccionar longitud de la pantalla crear/editar */ private String longitudD; /** * Variable de tipo boleano (TRUE o FALSE) que indica si la clase * seleccionada en la pantalla principal es un arma de fuego */ private Boolean isArmaFuego; /** * Variable de tipo boleano (TRUE o FALSE) que indica si la clase * seleccionada en la pantalla crear/editar es un arma de fuego */ private Boolean isArmaFuegoD; /** * Constante usada para referirse a la clase arma de fuego */ private final String CODIGOARMADEFUEGO = "0010000001"; @ManagedProperty(value = "#{unidadTipoController}") private UnidadTipoController unidadTipoController; /** * Map que contiene los criterios de busqueda de una tabla previos a los * criterios de creacion. */ private Map mfiltersBKP = new HashMap(); public TiposArmasExplosivosController() throws Exception { super(TarmTipoArmaExplosivo.class); } @PostConstruct private void postconstruct() { this.init(); isArmaFuego = false; isArmaFuegoD = false; super.startQuery(); } /** * Incializa el controlador, cuando se esta utilizando una pagina que utliza * el controlador. */ private void init() { try { recperpage = 15; // Cambiar al # reg a mirar. lrecord = new ArrayList<>(); beanalias = "TIPOARMAEXPLOSIVO"; } catch (Exception e) { MessageHelper.setMessageError(e); } } /** * Crea una instancia de TgeneTransactionProcess y marca el registro como * nuevo. * * @throws Exception */ @Override public void create() throws Exception { super.create(); super.addField("clasedescriptionD", null); super.addField("longituddescriptionD", null); super.addField("tipodescriptionD", null); super.addField("calibredescriptionD", null); super.addField("unidaddescriptionD", null); } @SuppressWarnings("unchecked") @Override protected void querydatabase() { try { DtoQuery dto = super.getDtoQuery(true); dto.setOrderby("t.pk"); // Subquery SubQuery subqueryClase = new SubQuery("TgeneCatalogDetail", "description", "nclase", "i.pk.catalog = t.clase and i.pk.catalogcode = t.clasecodigo"); dto.addSubQuery(subqueryClase); SubQuery subqueryLongitud = new SubQuery("TgeneCatalogDetail", "description", "nlongitud", "i.pk.catalog = t.longitud and i.pk.catalogcode = t.longitudcodigo"); dto.addSubQuery(subqueryLongitud); SubQuery subqueryTipoArmaExplosivo = new SubQuery( "TgeneCatalogDetail", "description", "ntipo", "i.pk.catalog = t.tipoarmaexplosivo and i.pk.catalogcode = t.tipoarmaexplosivocodigo"); dto.addSubQuery(subqueryTipoArmaExplosivo); SubQuery subqueryCalibre = new SubQuery("TgeneCatalogDetail", "description", "ncalibre", "i.pk.catalog = t.calibre and i.pk.catalogcode = t.calibrecodigo"); dto.addSubQuery(subqueryCalibre); SubQuery subqueryUnidad = new SubQuery("TgeneCatalogDetail", "description", "nunidadMedidaPeso", "i.pk.catalog = t.unidadmedidapeso and i.pk.catalogcode = t.unidadmedidapesocodigo"); dto.addSubQuery(subqueryUnidad); HashMap mtables = new HashMap(); mtables.put(beanalias, dto); // permite adicionar mas de una tabla. Request request = callerhelper.getRequest(); request.setQueryTables(mtables); Response resp = callerhelper.executeQuery(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) { lrecord = new ArrayList(); MessageHelper.setMessageError(resp); } else { lrecord = (List) resp.get(beanalias); super.postQuery(lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } /** * ? */ protected void queryDatbase(String longitud, String calibre) { try { DtoQuery dto = super.getDtoQuery(true); dto.setOrderby("t.pk"); // Subquery if (longitud == null && calibre == null) { Filter longitudFiltro = new Filter(); longitudFiltro .setSql("t.longitud is null and t.calibre is null"); dto.addFiltro(longitudFiltro); } else if (longitud == null) { Filter longitudFiltro = new Filter(); longitudFiltro.setSql("t.longitud is null"); dto.addFiltro(longitudFiltro); } else if (calibre == null) { Filter calibreFiltro = new Filter(); calibreFiltro.setSql("t.calibre is null"); dto.addFiltro(calibreFiltro); } SubQuery subqueryClase = new SubQuery("TgeneCatalogDetail", "description", "nclase", "i.pk.catalog = t.clase and i.pk.catalogcode = t.clasecodigo"); dto.addSubQuery(subqueryClase); SubQuery subqueryLongitud = new SubQuery("TgeneCatalogDetail", "description", "nlongitud", "i.pk.catalog = t.longitud and i.pk.catalogcode = t.longitudcodigo"); dto.addSubQuery(subqueryLongitud); SubQuery subqueryTipoArmaExplosivo = new SubQuery( "TgeneCatalogDetail", "description", "ntipo", "i.pk.catalog = t.tipoarmaexplosivo and i.pk.catalogcode = t.tipoarmaexplosivocodigo"); dto.addSubQuery(subqueryTipoArmaExplosivo); SubQuery subqueryCalibre = new SubQuery("TgeneCatalogDetail", "description", "ncalibre", "i.pk.catalog = t.calibre and i.pk.catalogcode = t.calibrecodigo"); dto.addSubQuery(subqueryCalibre); SubQuery subunidad = new SubQuery( "TgeneCatalogDetail", "description", "desunidad", "i.pk.catalog = t.pk.unidadmedidapeso and i.pk.catalogcode=t.pk.unidadmedidapesocodigo"); dto.addSubQuery(subunidad); SubQuery subunidadlegalcode = new SubQuery( "TgeneCatalogDetail", "legalcode", "deslegalcode", "i.pk.catalog = t.pk.unidadmedidapeso and i.pk.catalogcode=t.pk.unidadmedidapesocodigo"); dto.addSubQuery(subunidadlegalcode); HashMap mtables = new HashMap(); mtables.put(beanalias, dto); // permite adicionar mas de una tabla. Request request = callerhelper.getRequest(); request.setQueryTables(mtables); Response resp = callerhelper.executeQuery(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) { lrecord = new ArrayList(); MessageHelper.setMessageError(resp); } else { lrecord = (List) resp.get(beanalias); super.postQuery(lrecord); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } @Override public void save() { try { DtoSave dtosave = super.getDtoSave(); if (!dtosave.pendingProcess()) { return; } dtosave.setReturnpk(true); // Para que el core devuelva el pk de los registros nuevos. dtosave.setPosition(2); HashMap msave = new HashMap(); Request request = callerhelper.getRequest(); msave.put(beanalias, dtosave); // adicionar metadata de // mantenimiento para cada tabla. TarmUnidadTipo tipoUnidadSeleccionada= UnidadTipoController.findByClaseAndClasecode(record.getClase(), record.getClasecodigo(),record.getTipoarmaexplosivo(), record.getUnidadmedidapeso()); if(tipoUnidadSeleccionada==null){ TarmUnidadTipoKey tarmUnidadTipoKey = new TarmUnidadTipoKey(); tarmUnidadTipoKey.setClase(record.getClase()); tarmUnidadTipoKey.setClasecode(record.getClasecodigo()); tarmUnidadTipoKey.setTipoarmaexplosivo(record.getTipoarmaexplosivo()); tarmUnidadTipoKey.setTipoarmaexplosivocodigo(record.getTipoarmaexplosivocodigo()); tarmUnidadTipoKey.setUnidadmedidapeso(record.getUnidadmedidapeso()); tarmUnidadTipoKey.setUnidadmedidapesocodigo(record.getUnidadmedidapesocodigo()); tipoUnidadSeleccionada = new TarmUnidadTipo(); tipoUnidadSeleccionada.setPk(tarmUnidadTipoKey); tipoUnidadSeleccionada.setRecordversion(0); tipoUnidadSeleccionada.setIsnew(Boolean.TRUE); tipoUnidadSeleccionada.setFecharegistro(new Date(new java.util.Date().getTime())); unidadTipoController.update(tipoUnidadSeleccionada); } DtoSave dtosaveUnidadTipo = unidadTipoController.getDtoSave(true); dtosaveUnidadTipo.setPosition(1); msave.put(unidadTipoController.getBeanalias(), dtosaveUnidadTipo); request.setSaveTables(msave); Response resp = callerhelper.executeSave(request); if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) { this.postCommit(resp); this.unidadTipoController.postCommit(resp); MessageHelper.setMessageInfo(resp); } else { MessageHelper.setMessageError(resp); } } catch (Throwable e) { MessageHelper.setMessageError(e); } } @Override public void postCommit(Response response) throws Exception { super.postCommitGeneric(response, beanalias); } public String getClase() { return clase; } public void setClase(String clase) { this.clase = clase; } public String getClaseCodigo() { return claseCodigo; } public void setClaseCodigo(String claseCodigo) { this.claseCodigo = claseCodigo; } public String getLongitud() { return longitud; } public void setLongitud(String longitud) { this.longitud = longitud; } public Boolean getIsArmaFuego() { return isArmaFuego; } public Boolean getIsArmaFuegoD() { return isArmaFuegoD; } public void setIsArmaFuegoD(Boolean isArmaFuegoD) { this.isArmaFuegoD = isArmaFuegoD; } public String getClaseD() { return claseD; } public void setClaseD(String claseD) { this.claseD = claseD; } public String getClaseCodigoD() { return claseCodigoD; } public void setClaseCodigoD(String claseCodigoD) { this.claseCodigoD = claseCodigoD; } public String getLongitudD() { return longitudD; } public void setLongitudD(String longitudD) { this.longitudD = longitudD; } public Map getMfiltersBKP() { return mfiltersBKP; } public void setMfiltersBKP(Map mfiltersBKP) { this.mfiltersBKP = mfiltersBKP; } public UnidadTipoController getUnidadTipoController() { return unidadTipoController; } public void setUnidadTipoController(UnidadTipoController unidadTipoController) { this.unidadTipoController = unidadTipoController; } /** * Metodo utilizado para limpiar las variables que contienen las * descripciones de los dialogos de seleccion de la pantalla principal */ public void actualizarElementosBusqueda(String tipoBusqueda) { if (tipoBusqueda.equals("todo")) { super.addField("clasedescription", null); super.addField("longituddescription", null); super.addField("tipodescription", null); super.addField("calibredescription", null); super.getMfilters().remove("clase"); super.getMfilters().remove("clasecodigo"); super.getMfilters().remove("longitud"); super.getMfilters().remove("longitudcodigo"); super.getMfilters().remove("tipoarmaexplosivo"); super.getMfilters().remove("tipoarmaexplosivocodigo"); super.getMfilters().remove("calibre"); super.getMfilters().remove("calibrecodigo"); } else if (tipoBusqueda.equals("clase")) { super.addField("longituddescription", null); super.addField("tipodescription", null); super.addField("calibredescription", null); super.getMfilters().remove("longitud"); super.getMfilters().remove("longitudcodigo"); super.getMfilters().remove("tipoarmaexplosivo"); super.getMfilters().remove("tipoarmaexplosivocodigo"); super.getMfilters().remove("calibre"); super.getMfilters().remove("calibrecodigo"); } else if (tipoBusqueda.equals("longitud")) { super.addField("tipodescription", null); super.addField("calibredescription", null); super.getMfilters().remove("tipoarmaexplosivo"); super.getMfilters().remove("tipoarmaexplosivocodigo"); super.getMfilters().remove("calibre"); super.getMfilters().remove("calibrecodigo"); } else if (tipoBusqueda.equals("tipo")) { super.addField("calibredescription", null); super.getMfilters().remove("calibre"); super.getMfilters().remove("calibrecodigo"); } } /** * Metodo utilizado para limpiar las variables que contienen las * descripciones de los dialogos de seleccion de la pantalla crear/editar */ public void actualizarElementosBusquedaDialog(String tipoBusqueda) { if (tipoBusqueda.equals("clase")) { super.addField("longituddescriptionD", null); super.addField("tipodescriptionD", null); super.addField("calibredescriptionD", null); super.addField("unidaddescriptionD", null); } else if (tipoBusqueda.equals("longitud")) { super.addField("tipodescriptionD", null); super.addField("calibredescriptionD", null); super.addField("unidaddescriptionD", null); } else if (tipoBusqueda.equals("tipo")) { super.addField("calibredescriptionD", null); super.addField("unidaddescriptionD", null); } } /** * Metodo usado para abrir el dialogo seleccionar clase de la pantalla * principal y del dialogo crear/editar */ public void openClaseLov() { try { Map> params = new HashMap<>(); List lcat = new ArrayList<>(); lcat.add("CLASE"); params.put("catalogcode", lcat); //tITULO DEL LOV List ltituloLOV = new ArrayList<>(); ltituloLOV.add("lov_unidades"); params.put("tituloLOV", ltituloLOV); ClaseLovController.openLov(params); } catch (Exception e) { MessageHelper.setMessageError(e); } } /** * Metodo usado para abrir el dialogo seleccionar clase de la pantalla * principal y del dialogo crear/editar */ public void openUnidadLov() { try { Map> params = new HashMap<>(); // CATALOGCODE List lcatalogcode = new ArrayList<>(); lcatalogcode.add("UNIDADMEDIDA"); params.put("catalogcode", lcatalogcode); //tITULO DEL LOV List ltituloLOV = new ArrayList<>(); ltituloLOV.add("lov_unidades"); params.put("tituloLOV", ltituloLOV); ClaseLovController.openLov(params); } catch (Exception e) { MessageHelper.setMessageError(e); } } /** * Metodo usado para completar acciones al cerrar el dialogo seleccionar * clase de la pantalla principal */ public void onReturnClaseLov(SelectEvent event) throws Exception { TgeneCatalogDetail t = (TgeneCatalogDetail) event.getObject(); super.addFilter("clase", t.getPk().getCatalog()); super.addFilter("clasecodigo", t.getPk().getCatalogcode()); clase = t.getPk().getCatalog(); claseCodigo = t.getPk().getCatalogcode(); if (clase.equalsIgnoreCase(CODIGOARMADEFUEGO)) { isArmaFuego = true; } else { isArmaFuego = false; } super.addField("clasedescription", t.getDescription()); actualizarElementosBusqueda("clase"); this.query(); } /** * Metodo usado para completar acciones al cerrar el dialogo seleccionar * clase de la pantalla principal */ public void onReturnUnidadDialogLov(SelectEvent event) throws Exception { TgeneCatalogDetail t = (TgeneCatalogDetail) event.getObject(); super.addField("unidaddescriptionD", t.getDescription()); this.record.setUnidadmedidapeso(t.getPk().getCatalog()); this.record.setUnidadmedidapesocodigo(t.getPk().getCatalogcode()); unidadMedidaPesoD = t.getPk().getCatalog(); unidadMedidaPesoCodigoD = t.getPk().getCatalogcode(); this.record.put("nunidadMedidaPeso", t.getDescription()); } /** * Metodo usado para completar acciones al cerrar el dialogo seleccionar * clase de la pantalla crear/editar */ public void onReturnClaseDialogLov(SelectEvent event) throws Exception { TgeneCatalogDetail t = (TgeneCatalogDetail) event.getObject(); claseD = t.getPk().getCatalog(); claseCodigoD = t.getPk().getCatalogcode(); if (claseD.equalsIgnoreCase(CODIGOARMADEFUEGO)) { isArmaFuegoD = true; } else { isArmaFuegoD = false; } super.addField("clasedescriptionD", t.getDescription()); this.record.setClase(t.getPk().getCatalog()); ; this.record.setClasecodigo(t.getPk().getCatalogcode()); record.put("nclase", t.getDescription()); actualizarElementosBusquedaDialog("clase"); } /** * Metodo usado para abrir el dialogo seleccionar longitud de la pantalla * principal */ public void openLogitudLov() { if (clase != null && claseCodigo != null) { Map> params = new HashMap<>(); LongitudLovController.openLov(params); } else { MessageHelper .setMessageError("POR FAVOR SELECCIONE UNA CLASE DE ARMA O EXPLOSIVO"); } } /** * Metodo usado para abrir el dialogo seleccionar longitud de la pantalla * crear/editar */ public void openLogitudDialogLov() { if (claseD != null && claseCodigoD != null) { Map> params = new HashMap<>(); LongitudLovController.openLov(params); } else { MessageHelper .setMessageError("POR FAVOR SELECCIONE UNA CLASE DE ARMA O EXPLOSIVO"); } } /** * Metodo usado para completar acciones al cerrar el dialogo seleccionar * longitud de la pantalla principal */ public void onReturnLogitudLov(SelectEvent event) throws Exception { TgeneCatalogDetail t = (TgeneCatalogDetail) event.getObject(); super.addFilter("longitud", t.getPk().getCatalog()); super.addFilter("longitudcodigo", t.getPk().getCatalogcode()); longitud = t.getPk().getCatalog(); super.addField("longituddescription", t.getDescription()); actualizarElementosBusqueda("longitud"); this.query(); } /** * Metodo usado para completar acciones al cerrar el dialogo seleccionar * longitud de la pantalla crear/editar */ public void onReturnLogitudDialogLov(SelectEvent event) throws Exception { TgeneCatalogDetail t = (TgeneCatalogDetail) event.getObject(); longitudD = t.getPk().getCatalog(); super.addField("longituddescriptionD", t.getDescription()); this.record.setLongitud(longitudD); this.record.setLongitudcodigo(t.getPk().getCatalogcode()); record.put("nlongitud", t.getDescription()); actualizarElementosBusquedaDialog("longitudD"); } /** * Metodo usado para abrir el dialogo seleccionar tipo de arma o explosivo * de la pantalla principal */ public void openTipoLov() { if (clase != null && claseCodigo != null) { Map> params = new HashMap<>(); List valuesArmaFuego = new ArrayList(); valuesArmaFuego.add(isArmaFuego.toString()); params.put("isArmaFuego", valuesArmaFuego); if (isArmaFuego) { List valuesLongitud = new ArrayList(); valuesLongitud.add(longitud); params.put("longitud", valuesLongitud); } else { List valuesClase = new ArrayList(); valuesClase.add(clase); params.put("clase", valuesClase); } TipoArmaExpLovController.openLov(params); } else { MessageHelper .setMessageError("POR FAVOR SELECCIONE UNA CLASE DE ARMA O EXPLOSIVO"); } } /** * Metodo usado para abrir el dialogo seleccionar tipo de arma o explosivo * de la pantalla crear/editar */ public void openTipoDialogLov() { if (record.isnew) { if (claseD != null && claseCodigoD != null) { Map> params = new HashMap<>(); List valuesArmaFuego = new ArrayList(); valuesArmaFuego.add(isArmaFuegoD.toString()); params.put("isArmaFuego", valuesArmaFuego); if (isArmaFuegoD) { List valuesLongitud = new ArrayList(); valuesLongitud.add(longitudD); params.put("longitud", valuesLongitud); } else { List valuesClase = new ArrayList(); valuesClase.add(claseD); params.put("clase", valuesClase); } TipoArmaExpLovController.openLov(params); } else { MessageHelper .setMessageError("POR FAVOR SELECCIONE UNA CLASE DE ARMA O EXPLOSIVO"); } } else { Map> params = new HashMap<>(); List valuesArmaFuego = new ArrayList(); valuesArmaFuego.add(isArmaFuegoD.toString()); params.put("isArmaFuego", valuesArmaFuego); if (isArmaFuegoD) { List valuesLongitud = new ArrayList(); valuesLongitud.add(longitudD); params.put("longitud", valuesLongitud); } else { List valuesClase = new ArrayList(); valuesClase.add(claseD); params.put("clase", valuesClase); } TipoArmaExpLovController.openLov(params); } } /** * Metodo usado para completar acciones al cerrar el dialogo seleccionar * tipo de arma o explosivo de la pantalla principal */ public void onReturnTipoLov(SelectEvent event) throws Exception { TgeneCatalogDetail t = (TgeneCatalogDetail) event.getObject(); super.addFilter("tipoarmaexplosivo", t.getPk().getCatalog()); super.addFilter("tipoarmaexplosivocodigo", t.getPk().getCatalogcode()); super.addField("tipodescription", t.getDescription()); actualizarElementosBusqueda("tipo"); this.query(); } /** * Metodo usado para completar acciones al cerrar el dialogo seleccionar * tipo de arma o explosivo de la pantalla crear/editar */ public void onReturnTipoDialogLov(SelectEvent event) throws Exception { TgeneCatalogDetail t = (TgeneCatalogDetail) event.getObject(); super.addField("tipodescriptionD", t.getDescription()); this.record.setTipoarmaexplosivo(t.getPk().getCatalog()); ; this.record.setTipoarmaexplosivocodigo(t.getPk().getCatalogcode()); record.put("ntipo", t.getDescription()); actualizarElementosBusquedaDialog("tipo"); } /** * Metodo usado para abrir el dialogo seleccionar calibre de arma o * explosivo de la pantalla principal y del dialogo crear/editar */ public void openCalibreLov() { Map> params = new HashMap<>(); CalibreLovController.openLov(params); } /** * Metodo usado para completar acciones al cerrar el dialogo seleccionar * calibre de la pantalla principal */ public void onReturnCalibreLov(SelectEvent event) throws Exception { TgeneCatalogDetail t = (TgeneCatalogDetail) event.getObject(); super.addFilter("calibre", t.getPk().getCatalog()); super.addFilter("calibrecodigo", t.getPk().getCatalogcode()); super.addField("calibredescription", t.getDescription()); this.query(); } /** * Metodo usado para completar acciones al cerrar el dialogo seleccionar * calibre de la pantalla crear/editar */ public void onReturnCalibreDialogLov(SelectEvent event) throws Exception { TgeneCatalogDetail t = (TgeneCatalogDetail) event.getObject(); super.addField("calibredescriptionD", t.getDescription()); this.record.setCalibre(t.getPk().getCatalog()); this.record.setCalibrecodigo(t.getPk().getCatalogcode()); record.put("ncalibre", t.getDescription()); } /** * Metodo que actualiza las descripciones seleccionadas en el dialogo * crear/editar a la variable record y calcula valor de la variable * isArmaFuegoD */ public void actualizar() { super.addField("clasedescriptionD", record.get("nclase")); super.addField("longituddescriptionD", record.get("nlongitud")); super.addField("tipodescriptionD", record.get("ntipo")); super.addField("calibredescriptionD", record.get("ncalibre")); super.addField("unidaddescriptionD", record.get("nunidadMedidaPeso")); claseD = record.getClase(); claseCodigoD = record.getClasecodigo(); if (record.getClase().equalsIgnoreCase(CODIGOARMADEFUEGO)) { isArmaFuegoD = true; longitudD = record.getLongitud(); } else { isArmaFuegoD = false; } } @Override public void update() throws Exception { if (record.getClase() != null) { if (record.getClase().equalsIgnoreCase(CODIGOARMADEFUEGO)) { if (record.getLongitud() != null) { if (record.getTipoarmaexplosivo() != null) { if (record.getCalibre() != null) { if (record.getUnidadmedidapeso() != null) { super.update(); } else { MessageHelper.setMessageError("SELECCIONE UNA UNIDAD PARA EL ARMA O EXPLOSIVO"); } } else { MessageHelper .setMessageError("SELECCIONE UN CALIBRE PARA EL ARMA O EXPLOSIVO"); } } else { MessageHelper .setMessageError("SELECCIONE UN TIPO PARA EL ARMA O EXPLOSIVO"); } } else { MessageHelper .setMessageError("SELECCIONE UNA LONGITUD PARA EL ARMA O EXPLOSIVO"); } } else { if (record.getTipoarmaexplosivo() != null) { if (record.getUnidadmedidapeso() != null) { super.update(); } else { MessageHelper.setMessageError("SELECCIONE UNA UNIDAD PARA EL ARMA O EXPLOSIVO"); } } else { MessageHelper.setMessageError("SELECCIONE UN TIPO DE ARMA O EXPLOSIVO"); } } } else { MessageHelper.setMessageError("SELECCIONE UNA CLASE DE ARMA O EXPLOSIVO"); } } /** * Find para encontrar las caracteristicas del arma mediante el pk. * ctipo - tipo de arma o explosivo */ public static TarmTipoArmaExplosivo findarma(String ctipo) { try { if (ctipo == null) { return null; } TiposArmasExplosivosController cc = new TiposArmasExplosivosController(); cc.init(); cc.recperpage = 300; cc.addFilter("pk", ctipo); cc.querydatabase(); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord.get(0); } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } /** * Find para encontrar el pk del arma mediante las caracteristicas. Andres Cevallos */ public static TarmTipoArmaExplosivo findpk(String longitud, String calibre, String clase, String tipoarmaexplosivo) { try { TiposArmasExplosivosController cc = new TiposArmasExplosivosController(); cc.init(); cc.recperpage = 300; cc.addFilter("longitud", longitud); cc.addFilter("calibre", calibre); cc.addFilter("clase", clase); cc.addFilter("tipoarmaexplosivo", tipoarmaexplosivo); cc.queryDatbase(longitud, calibre); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord.get(0); } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } /** * Find para encontrar el pk del arma mediante las caracteristicas. Andres * Cevallos */ public static TarmTipoArmaExplosivo findByClaseLongitudCalibreTipoArma( String longitud, String calibre, String clase, String tipoarmaexplosivo, String unidadmedidapeso) { try { TiposArmasExplosivosController cc = new TiposArmasExplosivosController(); cc.init(); cc.recperpage = 300; cc.addFilter("longitud", longitud); cc.addFilter("calibre", calibre); cc.addFilter("clase", clase); cc.addFilter("tipoarmaexplosivo", tipoarmaexplosivo); cc.addFilter("unidadmedidapeso", unidadmedidapeso); cc.queryDatbase(longitud, calibre); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord.get(0); } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } /** * Find para encontrar el pk del arma mediante las caracteristicas. FPazmino * Cevallos */ public static TarmTipoArmaExplosivo findByClaseCalibreTipoArma(String clase, String calibre, String tipoarmaexplosivo, String unidadmedidapeso) { try { TiposArmasExplosivosController cc = new TiposArmasExplosivosController(); cc.init(); cc.recperpage = 300; cc.addFilter("clase", clase); cc.addFilter("calibre", calibre); cc.addFilter("tipoarmaexplosivo", tipoarmaexplosivo); cc.addFilter("unidadmedidapeso", unidadmedidapeso); cc.queryDatbase(null, calibre); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord.get(0); } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } /** * Metodo que busca una combinacion de tipo arma explosivo por la clase y el * tipo de arma pasados como parametro * * @param clase * @param tipoarmaexplosivo * @return */ public static TarmTipoArmaExplosivo findByClaseTipo(String clase, String tipoarmaexplosivo,String unidadmedidapeso) { try { TiposArmasExplosivosController cc = new TiposArmasExplosivosController(); cc.init(); cc.recperpage = 300; cc.addFilter("clase", clase); cc.addFilter("tipoarmaexplosivo", tipoarmaexplosivo); cc.addFilter("unidadmedidapeso", unidadmedidapeso); cc.querydatabase(); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord.get(0); } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } /** * Metodo que busca todas las combinaciones de tipos armas explosivos por la * clase y el tipo de arma pasados como parametro * * @param clase * @param tipoarmaexplosivo * @return */ public static List findByClaseTipoAll(String clase, String tipoarmaexplosivo) { try { TiposArmasExplosivosController cc = new TiposArmasExplosivosController(); cc.init(); cc.recperpage = 300; cc.addFilter("clase", clase); cc.addFilter("tipoarmaexplosivo", tipoarmaexplosivo); cc.querydatabase(); if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) { return cc.lrecord; } return null; } catch (Throwable e) { MessageHelper.setMessageError(e); return null; } } }