maia_modificado/.svn/pristine/23/23f9b469f610a69f051cf387953...

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;
}
}
}