997 lines
32 KiB
Plaintext
Executable File
997 lines
32 KiB
Plaintext
Executable File
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<TarmTipoArmaExplosivo> {
|
|
|
|
/**
|
|
* 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<String, String> mfiltersBKP = new HashMap<String, String>();
|
|
|
|
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<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
|
|
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<TarmTipoArmaExplosivo>();
|
|
MessageHelper.setMessageError(resp);
|
|
} else {
|
|
lrecord = (List<TarmTipoArmaExplosivo>) 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<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
|
|
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<TarmTipoArmaExplosivo>();
|
|
MessageHelper.setMessageError(resp);
|
|
} else {
|
|
lrecord = (List<TarmTipoArmaExplosivo>) 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<String, DtoSave> msave = new HashMap<String, DtoSave>();
|
|
|
|
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<String, String> getMfiltersBKP() {
|
|
return mfiltersBKP;
|
|
}
|
|
|
|
public void setMfiltersBKP(Map<String, String> 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<String, List<String>> params = new HashMap<>();
|
|
List<String> lcat = new ArrayList<>();
|
|
lcat.add("CLASE");
|
|
params.put("catalogcode", lcat);
|
|
//tITULO DEL LOV
|
|
List<String> 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<String, List<String>> params = new HashMap<>();
|
|
// CATALOGCODE
|
|
List<String> lcatalogcode = new ArrayList<>();
|
|
lcatalogcode.add("UNIDADMEDIDA");
|
|
params.put("catalogcode", lcatalogcode);
|
|
//tITULO DEL LOV
|
|
List<String> 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<String, List<String>> 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<String, List<String>> 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<String, List<String>> params = new HashMap<>();
|
|
List<String> valuesArmaFuego = new ArrayList<String>();
|
|
valuesArmaFuego.add(isArmaFuego.toString());
|
|
params.put("isArmaFuego", valuesArmaFuego);
|
|
if (isArmaFuego) {
|
|
List<String> valuesLongitud = new ArrayList<String>();
|
|
valuesLongitud.add(longitud);
|
|
params.put("longitud", valuesLongitud);
|
|
} else {
|
|
List<String> valuesClase = new ArrayList<String>();
|
|
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<String, List<String>> params = new HashMap<>();
|
|
List<String> valuesArmaFuego = new ArrayList<String>();
|
|
valuesArmaFuego.add(isArmaFuegoD.toString());
|
|
params.put("isArmaFuego", valuesArmaFuego);
|
|
if (isArmaFuegoD) {
|
|
List<String> valuesLongitud = new ArrayList<String>();
|
|
valuesLongitud.add(longitudD);
|
|
params.put("longitud", valuesLongitud);
|
|
} else {
|
|
List<String> valuesClase = new ArrayList<String>();
|
|
valuesClase.add(claseD);
|
|
params.put("clase", valuesClase);
|
|
}
|
|
TipoArmaExpLovController.openLov(params);
|
|
} else {
|
|
MessageHelper
|
|
.setMessageError("POR FAVOR SELECCIONE UNA CLASE DE ARMA O EXPLOSIVO");
|
|
}
|
|
} else {
|
|
Map<String, List<String>> params = new HashMap<>();
|
|
List<String> valuesArmaFuego = new ArrayList<String>();
|
|
valuesArmaFuego.add(isArmaFuegoD.toString());
|
|
params.put("isArmaFuego", valuesArmaFuego);
|
|
if (isArmaFuegoD) {
|
|
List<String> valuesLongitud = new ArrayList<String>();
|
|
valuesLongitud.add(longitudD);
|
|
params.put("longitud", valuesLongitud);
|
|
} else {
|
|
List<String> valuesClase = new ArrayList<String>();
|
|
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<String, List<String>> 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<TarmTipoArmaExplosivo> 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;
|
|
}
|
|
}
|
|
|
|
}
|