maia_modificado/.svn/pristine/78/78ebfe31b9e7162017f134b6443...

455 lines
14 KiB
Plaintext
Executable File

package com.fp.frontend.controller.armas.parametros;
import java.util.ArrayList;
import java.util.Date;
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.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.SubQuery;
import com.fp.dto.save.DtoSave;
import com.fp.frontend.controller.AbstractController;
import com.fp.frontend.controller.pgeneral.gene.CatalogDetailController;
import com.fp.frontend.helper.MessageHelper;
import com.fp.frontend.utility.MsgControlArmas;
import com.fp.persistence.parmas.param.TarmUnidadTipo;
import com.fp.persistence.pgeneral.gene.TgeneCatalogDetail;
/**
* Clase controladora del bean TarmUnidTipo.
*
* @author C.P.
* @version 2
*/
@SuppressWarnings("serial")
@ManagedBean
@ViewScoped
public class UnidadTipoController extends AbstractController<TarmUnidadTipo> {
/**
* catalogo de las unidades
*/
private List<TgeneCatalogDetail> lunidades;
/**
* atributo para la descripcion de la clase del arma
*/
private String descripcionClase;
/**
* atributo para la descripcion del tipo del arma
*/
private String descripcionTipoArma;
public UnidadTipoController() throws Exception {
super(TarmUnidadTipo.class);
}
@PostConstruct
private void postconstruct() {
this.init();
lunidades=CatalogDetailController.find("UNIDADMEDIDA");
// Inicializa autoconsulta
super.startQuery();
}
/**
* Incializa el controlador, cuando se esta utilizando una pagina que utliza
* el controlador.
*/
private void init() {
try {
this.recperpage = 15; // Cambiar al # reg a mirar.
this.lrecord = new ArrayList<>();
this.beanalias = "UNIDTIPO";
} catch (Exception e) {
MessageHelper.setMessageError(e);
}
}
@SuppressWarnings("unchecked")
@Override
protected void querydatabase() {
try {
DtoQuery dto = super.getDtoQuery(true);
// dto.setOrderby("t.description");
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<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
mtables.put(this.beanalias, dto);
Request request = this.callerhelper.getRequest();
request.setQueryTables(mtables);
Response resp = this.callerhelper.executeQuery(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
this.lrecord = new ArrayList<TarmUnidadTipo>();
MessageHelper.setMessageError(resp);
} else {
this.lrecord = (List<TarmUnidadTipo>) resp
.get(this.beanalias);
super.postQuery(this.lrecord);
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
@SuppressWarnings("unchecked")
protected void querydatabaseSimple() {
try {
DtoQuery dto = super.getDtoQuery(true);
HashMap<String, DtoQuery> mtables = new HashMap<String, DtoQuery>();
mtables.put(this.beanalias, dto);
Request request = this.callerhelper.getRequest();
request.setQueryTables(mtables);
Response resp = this.callerhelper.executeQuery(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) != 0) {
this.lrecord = new ArrayList<TarmUnidadTipo>();
MessageHelper.setMessageError(resp);
} else {
this.lrecord = (List<TarmUnidadTipo>) resp
.get(this.beanalias);
super.postQuery(this.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.
HashMap<String, DtoSave> msave = new HashMap<String, DtoSave>();
Request request = this.callerhelper.getRequest();
msave.put(this.beanalias, dtosave); // adicionar metadata de
// mantenimiento para cada
// tabla.
request.setSaveTables(msave);
Response resp = this.callerhelper.executeSave(request);
if (resp.getResponseCode().compareTo(Response.RESPONSE_OK) == 0) {
this.postCommit(resp);
MessageHelper.setMessageInfo(resp);
} else {
MessageHelper.setMessageError(resp);
}
} catch (Throwable e) {
MessageHelper.setMessageError(e);
}
}
/**
* Crea una instancia del registro como nuevo.
*
* @throws Exception
*/
@Override
public void create() throws Exception {
super.create();
}
@Override
public void update() throws Exception {
if(record.getModifiedData().get("desclasearma")==null || record.getModifiedData().get("desclasearma").toString().trim().length()==0){
MessageHelper.setMessageError("SELECCIONE LA CLASE");
return;
}
if(record.getModifiedData().get("destipoarma")==null || record.getModifiedData().get("destipoarma").toString().trim().length()==0){
MessageHelper.setMessageError("SELECCIONE EL TIPO DE ARMA");
return;
}
this.record.getPk().setUnidadmedidapesocodigo("UNIDADMEDIDA");
record.setFecharegistro(new java.sql.Date(new Date().getTime()));
catalogos(lunidades, record.getPk().getUnidadmedidapeso(), "desunidad");
super.update();
}
public void update(TarmUnidadTipo bean) throws Exception {
record=bean;
super.update();
}
/**
* Metodo para recorreer los combos y setear las descripciones de lo q se escoge
* para la vista
* @param list
* @param codigo
* @param pk
*/
public void catalogos(List<TgeneCatalogDetail>list, String codigo,String pk){
for(TgeneCatalogDetail item:list){
if(codigo.equals(item.getPk().getCatalog())){
record.modifiedData.put(pk, item.getDescription());
break;
}
}
}
public void openClaseLov() {
Map<String, List<String>> params = new HashMap<>();
List<String> lcat = new ArrayList<>();
lcat.add("CLASE");
params.put("catalogcode", lcat);
List<String> ldescripcion = new ArrayList<>();
ldescripcion.add(MsgControlArmas.getProperty("lvh_clase"));
params.put("tituloLOV", ldescripcion);
ClaseLovController.openLov(params);
}
private String codigoClase;
public void openTipoArmaLov() {
if(codigoClase==null || codigoClase.trim().length()==0){
MessageHelper.setMessageError("SELECCIONE LA CLASE");
return;
}
Map<String, List<String>> params = new HashMap<>();
String codigoslonguitud="";
String codigoslonguitud2="";
List<TgeneCatalogDetail>lista=CatalogDetailController.find("LONGITUD", codigoClase);
if(lista!=null){
for(TgeneCatalogDetail catalogo:lista){
if(codigoslonguitud==null || codigoslonguitud.length()==0){
codigoslonguitud+= catalogo.getPk().getCatalog();
}else if(codigoslonguitud2==null || codigoslonguitud2.length()==0){
codigoslonguitud2+=" legalcode= '"+catalogo.getPk().getCatalog()+"'";
}else{
codigoslonguitud2+=" or t.legalcode= '"+catalogo.getPk().getCatalog()+"'";
}
}
}
List<String> l = new ArrayList<>();
if(codigoslonguitud!=null && codigoslonguitud.length()>0){
l.add(codigoslonguitud);
}else{
l.add(codigoClase);
}
params.put("legalcode", l);
List<String> l2 = new ArrayList<>();
if(codigoslonguitud2!=null && codigoslonguitud2.length()>0){
l2.add(codigoslonguitud2);
}
params.put("legalcode2", l2);
List<String> lcat = new ArrayList<>();
lcat.add("TIPOARMAEXPLOSIVO");
params.put("catalogcode", lcat);
List<String> ldescripcion = new ArrayList<>();
ldescripcion.add(MsgControlArmas.getProperty("lvh_tipoarma"));
params.put("tituloLOV", ldescripcion);
ClaseLovController.openLov(params);
}
private String codigoClaseD;
public void openTipoArmaDialogLov() {
if(codigoClaseD==null || codigoClaseD.trim().length()==0){
MessageHelper.setMessageError("SELECCIONE LA CLASE");
return;
}
Map<String, List<String>> params = new HashMap<>();
String codigoslonguitud="";
String codigoslonguitud2="";
List<TgeneCatalogDetail>lista=CatalogDetailController.find("LONGITUD", codigoClaseD);
if(lista!=null){
for(TgeneCatalogDetail catalogo:lista){
if(codigoslonguitud==null || codigoslonguitud.length()==0){
codigoslonguitud+= catalogo.getPk().getCatalog();
}else if(codigoslonguitud2==null || codigoslonguitud2.length()==0){
codigoslonguitud2+=" legalcode= '"+catalogo.getPk().getCatalog()+"'";
}else{
codigoslonguitud2+=" or t.legalcode= '"+catalogo.getPk().getCatalog()+"'";
}
}
}
List<String> l = new ArrayList<>();
if(codigoslonguitud!=null && codigoslonguitud.length()>0){
l.add(codigoslonguitud);
}else{
l.add(codigoClaseD);
}
params.put("legalcode", l);
List<String> l2 = new ArrayList<>();
if(codigoslonguitud2!=null && codigoslonguitud2.length()>0){
l2.add(codigoslonguitud2);
}
params.put("legalcode2", l2);
List<String> lcat = new ArrayList<>();
lcat.add("TIPOARMAEXPLOSIVO");
params.put("catalogcode", lcat);
List<String> ldescripcion = new ArrayList<>();
ldescripcion.add(MsgControlArmas.getProperty("lvh_tipoarma"));
params.put("tituloLOV", ldescripcion);
ClaseLovController.openLov(params);
}
public void onReturnClaseLov(SelectEvent event) throws Exception {
TgeneCatalogDetail t = (TgeneCatalogDetail) event.getObject();
super.getMfilters().put("pk.clase", t.getPk().getCatalog());
descripcionClase=t.getDescription();
codigoClase=t.getPk().getCatalog();
//encero
super.getMfilters().put("pk.tipoarmaexplosivo", null);
descripcionTipoArma=null;
}
public void onReturnTipoArmaLov(SelectEvent event) throws Exception {
TgeneCatalogDetail t = (TgeneCatalogDetail) event.getObject();
super.getMfilters().put("pk.tipoarmaexplosivo", t.getPk().getCatalog());
descripcionTipoArma=t.getDescription();
}
public void onReturnClaseDialogLov(SelectEvent event) throws Exception {
TgeneCatalogDetail t = (TgeneCatalogDetail) event.getObject();
record.getPk().setClase(t.getPk().getCatalog());
record.getPk().setClasecode(t.getPk().getCatalogcode());
record.getModifiedData().put("desclasearma", t.getDescription());
codigoClaseD=t.getPk().getCatalog();
//encero
record.getPk().setTipoarmaexplosivo(null);
record.getPk().setTipoarmaexplosivocodigo(null);
record.getModifiedData().put("destipoarma", null);
}
public void onReturnTipoArmaDialogLov(SelectEvent event) throws Exception {
TgeneCatalogDetail t = (TgeneCatalogDetail) event.getObject();
record.getPk().setTipoarmaexplosivo(t.getPk().getCatalog());
record.getPk().setTipoarmaexplosivocodigo(t.getPk().getCatalogcode());
record.getModifiedData().put("destipoarma", t.getDescription());
// codigoClase=t.getPk().getCatalog();
}
/**
* Entrega una lista de objetos TgeneCatalogDetail
*
* @param catalogcode
* C&oacute de cat&aacute;logo
* @return lrecord Lista de objetos TgeneCatalogDetail
*/
public static List<TarmUnidadTipo> find(String catalogcode) {
try {
UnidadTipoController cc = new UnidadTipoController();
cc.init();
cc.recperpage = 300;
cc.addFilter("pk", catalogcode);
cc.querydatabase();
if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) {
return cc.lrecord;
}
return null;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return null;
}
}
/**
* Obtiene un tipo de unidad por la clase y el codigo de clase
*/
public static TarmUnidadTipo findByClaseAndClasecode(String clase,String clasecode, String tipoArmaExplosivo, String unidadMedida) {
try {
UnidadTipoController cc = new UnidadTipoController();
cc.init();
cc.recperpage = 300;
cc.addFilter("pk.clase", clase);
cc.addFilter("pk.clasecode", clasecode);
cc.addFilter("pk.tipoarmaexplosivo", tipoArmaExplosivo);
cc.addFilter("pk.unidadmedidapeso",unidadMedida);
cc.querydatabaseSimple();
if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) {
return cc.lrecord.get(0);
}
return null;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return null;
}
}
public static TarmUnidadTipo find(String clase, String tipoarmaexplosivo) {
try {
UnidadTipoController cc = new UnidadTipoController();
cc.init();
cc.recperpage = 300;
cc.addFilter("pk.clase", clase);
cc.addFilter("pk.tipoarmaexplosivo", tipoarmaexplosivo);
cc.querydatabase();
if ((cc.lrecord != null) && !cc.lrecord.isEmpty()) {
return cc.lrecord.get(0);
}
return null;
} catch (Throwable e) {
MessageHelper.setMessageError(e);
return null;
}
}
public List<TgeneCatalogDetail> getLunidades() {
return lunidades;
}
public void setLunidades(List<TgeneCatalogDetail> lunidades) {
this.lunidades = lunidades;
}
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;
}
}