From 85c3d2aa20611f673dcf542505d99a0ee7e3cd5e Mon Sep 17 00:00:00 2001 From: "igor.rodrigo" Date: Mon, 4 Jul 2016 21:23:37 +0000 Subject: [PATCH] fixes bug 7583 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@57555 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../tarifas/BusquedaTarifaController.java | 138 +++++++++++++++--- web/WEB-INF/i3-label_es_MX.label | 4 + web/WEB-INF/i3-label_pt_BR.label | 4 + web/gui/tarifas/busquedaTarifas.zul | 4 +- 4 files changed, 129 insertions(+), 21 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/BusquedaTarifaController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/BusquedaTarifaController.java index 47a5e978d..155ed0190 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/BusquedaTarifaController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/tarifas/BusquedaTarifaController.java @@ -19,22 +19,23 @@ import org.zkoss.zhtml.Messagebox; import org.zkoss.zk.ui.Component; import org.zkoss.zk.ui.event.Event; import org.zkoss.zk.ui.event.EventListener; -import org.zkoss.zkplus.databind.BindingListModel; import org.zkoss.zkplus.databind.BindingListModelList; +import org.zkoss.zul.Button; import org.zkoss.zul.Combobox; -import org.zkoss.zul.ListModel; import org.zkoss.zul.Paging; -import org.zkoss.zul.event.ListDataListener; import com.rjconsultores.ventaboletos.entidad.Categoria; import com.rjconsultores.ventaboletos.entidad.ClaseServicio; import com.rjconsultores.ventaboletos.entidad.Marca; import com.rjconsultores.ventaboletos.entidad.Moneda; import com.rjconsultores.ventaboletos.entidad.Parada; +import com.rjconsultores.ventaboletos.entidad.PerfilFuncion; import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.entidad.Tarifa; import com.rjconsultores.ventaboletos.entidad.TipoPuntoVenta; import com.rjconsultores.ventaboletos.entidad.Tramo; +import com.rjconsultores.ventaboletos.entidad.Usuario; +import com.rjconsultores.ventaboletos.entidad.UsuarioPerfil; import com.rjconsultores.ventaboletos.entidad.Via; import com.rjconsultores.ventaboletos.entidad.VigenciaTarifa; import com.rjconsultores.ventaboletos.service.CategoriaService; @@ -42,7 +43,9 @@ import com.rjconsultores.ventaboletos.service.ClaseServicioService; import com.rjconsultores.ventaboletos.service.MarcaService; import com.rjconsultores.ventaboletos.service.MonedaService; import com.rjconsultores.ventaboletos.service.RutaService; +import com.rjconsultores.ventaboletos.service.TarifaService; import com.rjconsultores.ventaboletos.service.TipoPuntoVentaService; +import com.rjconsultores.ventaboletos.service.UsuarioService; import com.rjconsultores.ventaboletos.service.ViaService; import com.rjconsultores.ventaboletos.service.VigenciaTarifaService; import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; @@ -60,6 +63,12 @@ import com.trg.search.Filter; @Controller("busquedaTarifaController") @Scope("prototype") public class BusquedaTarifaController extends MyGenericForwardComposer { + + @Autowired + private TarifaService tarifaService; + + @Autowired + private UsuarioService usuarioService; @Autowired private transient PagedListWrapper plwTarifa; @@ -101,7 +110,20 @@ public class BusquedaTarifaController extends MyGenericForwardComposer { private Combobox cmbTipoPontoVenta; private Combobox cmbRuta; private Combobox cmbVia; - + private Button btnExcluirTodos; + private Moneda moneda; + private Marca marca; + private ClaseServicio claseServicio; + private VigenciaTarifa vigenciaTarifa; + private Categoria categoria; + private TipoPuntoVenta tipoPuntoVenta; + private Parada origem; + private Parada destino; + private Ruta ruta; + private Via via; + + private final String PERMISSAO_EXCLUIR_TODAS_PESQUISA = "COM.RJCONSULTORES.VENTABOLETOS.GUI.ADM.PRECO.EXCLUIR.TODAS.PESQUISA"; + private static final Logger log = Logger.getLogger(BusquedaTarifaController.class); public List getLsVigencias() { @@ -249,11 +271,59 @@ public class BusquedaTarifaController extends MyGenericForwardComposer { } public void onClick$btnPesquisa(Event ev) throws InterruptedException { - refreshLista(); + refreshLista(true); + } + + private boolean temPermissao(String permissao){ + Usuario usuario = usuarioService.obtenerID(UsuarioLogado.getUsuarioLogado().getUsuarioId()); + + for (UsuarioPerfil up : usuario.getUsuarioPerfilList()){ + List listPerfilFuncion = up.getPerfil().getPerfilFuncionList(); + for (PerfilFuncion pf : listPerfilFuncion) { + if (pf.getFuncionSistema().getDescruta().equals(permissao)){ + return true; + } + } + } + return false; + } + + public void onClick$btnExcluirTodos(Event ev) throws InterruptedException { + try { + + if (moneda == null && marca == null && claseServicio == null && vigenciaTarifa == null && categoria == null + && tipoPuntoVenta == null && origem == null && destino == null && ruta == null && via == null ){ + + Messagebox.show( + Labels.getLabel("editarTarifaController.btnFechar.MSG.pesquisaobrigatoria"), + Labels.getLabel("editarTarifaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + + return; + } + + int opcao = Messagebox.show( + Labels.getLabel("editarTarifaController.btnFechar.MSG.Deseja.BorrarEmLote"), + Labels.getLabel("editarTarifaController.window.title"), + Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + + if (opcao == Messagebox.YES) { + tarifaService.excluirTodasTarifas(moneda, marca, claseServicio, vigenciaTarifa, origem, destino, categoria, tipoPuntoVenta, ruta, via); + + Messagebox.show( + Labels.getLabel("editarTarifaController.btnFechar.MSG.borrarEmLoteOK"), + Labels.getLabel("editarTarifaController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } + + } catch (Exception ex) { + log.error(ex); + } + refreshLista(false); } public void onClick$btnRefresh(Event ev) throws InterruptedException { - refreshLista(); + refreshLista(true); } public void onClick$btnNovo(Event ev) { @@ -279,7 +349,9 @@ public class BusquedaTarifaController extends MyGenericForwardComposer { lsRuta.addAll(rutaService.obtenerTodos()); } + refreshLista(true); cmbRuta.setModel(new BindingListModelList(lsRuta, true)); + } }); @@ -317,8 +389,12 @@ public class BusquedaTarifaController extends MyGenericForwardComposer { lsVia = new ArrayList(); lsVia.add(null); lsVia.addAll(viaService.obtenerTodos()); - - refreshLista(); + + if(!temPermissao(PERMISSAO_EXCLUIR_TODAS_PESQUISA)){ + btnExcluirTodos.setDisabled(true); + } + + refreshLista(true); } private void verTarifa(Tarifa t) { @@ -338,19 +414,27 @@ public class BusquedaTarifaController extends MyGenericForwardComposer { private T getIfSelected(Combobox cb) { return (T) (cb.getSelectedItem() != null ? cb.getSelectedItem().getValue() : null); } + + public Button getBtnExcluirTodos() { + return btnExcluirTodos; + } - private void refreshLista() throws InterruptedException { - Moneda moneda = getIfSelected(cmbMoneda); - Marca marca = getIfSelected(cmbMarca); - ClaseServicio claseServicio = getIfSelected(cmbClaseServicio); - VigenciaTarifa vigenciaTarifa = getIfSelected(cmbVigenciaTarifa); - Categoria categoria = getIfSelected(cmbCategoria); - TipoPuntoVenta tipoPuntoVenta = getIfSelected(cmbTipoPontoVenta); - Parada origem = getIfSelected(cmbOrigem); - Parada destino = getIfSelected(cmbDestino); - Ruta ruta = getIfSelected(cmbRuta); - Via via = getIfSelected(cmbVia); + public void setBtnExcluirTodos(Button btnExcluirTodos) { + this.btnExcluirTodos = btnExcluirTodos; + } + private void refreshLista(Boolean exibirMsgNenhumRegistro) throws InterruptedException { + moneda = getIfSelected(cmbMoneda); + marca = getIfSelected(cmbMarca); + claseServicio = getIfSelected(cmbClaseServicio); + vigenciaTarifa = getIfSelected(cmbVigenciaTarifa); + categoria = getIfSelected(cmbCategoria); + tipoPuntoVenta = getIfSelected(cmbTipoPontoVenta); + origem = getIfSelected(cmbOrigem); + destino = getIfSelected(cmbDestino); + ruta = getIfSelected(cmbRuta); + via = getIfSelected(cmbVia); + if ((moneda == null) && (!cmbMoneda.getText().isEmpty())) { Messagebox.show(Labels.getLabel("MSG.SELECCIONE.VALOR.CORRECTO") + " Moneda.", @@ -467,7 +551,7 @@ public class BusquedaTarifaController extends MyGenericForwardComposer { } plwTarifa.init(tarifaBusqueda, tarifaList, pagingTarifa); - if (tarifaList.getData().length == 0) { + if (tarifaList.getData().length == 0 && exibirMsgNenhumRegistro) { try { Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), Labels.getLabel("editarTarifaController.window.title"), @@ -476,6 +560,20 @@ public class BusquedaTarifaController extends MyGenericForwardComposer { catch (InterruptedException ex) { } } + + HabilitarBotaoExcluirTodos(); + } + + private void HabilitarBotaoExcluirTodos() { + if (moneda != null || marca != null || claseServicio != null || vigenciaTarifa != null || categoria != null + || tipoPuntoVenta != null || origem != null || destino != null || ruta != null || via != null ){ + Boolean selecionouAoMenosUmCampoPesquisa = true; + if(selecionouAoMenosUmCampoPesquisa && tarifaList.getSize() > 0 && temPermissao(PERMISSAO_EXCLUIR_TODAS_PESQUISA)){ + btnExcluirTodos.setDisabled(false); + }else{ + btnExcluirTodos.setDisabled(true); + } + } } } diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 0da014f1c..2370c70d3 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -2182,6 +2182,7 @@ busquedaTarifaController.lhTaxa.label = Tasa de abordaje busquedaTarifaController.lhSeguro.label = Seguro busquedaTarifaController.lhOutros.label = Otros busquedaTarifaController.btnPesquisa.label = Búsqueda +busquedaTarifaController.btnExcluir.label = Excluir Todos busquedaTarifaController.lhVigencia.label = Vigencia busquedaTarifaController.lhStatusTarifa.label = Status tarifa busquedaTarifaController.lhprecioredabierto.label = Tarifa de regreso abierto @@ -2205,7 +2206,10 @@ busquedaTarifaController.lhTodos.label = Todos editarTarifaController.window.title = Tarifa editarTarifaController.btnFechar.MSG.SuscbrirOK = Tarifa se registró exitosamente editarTarifaController.btnFechar.MSG.Deseja.Borrar = Deseas eliminar la tarifa ? +editarTarifaController.btnFechar.MSG.Deseja.BorrarEmLote = Tarifa Deseja Eliminar Todas as tarifas pesquisadas? editarTarifaController.btnFechar.MSG.borrarOK = Tarifa se eliminó exitosamente +editarTarifaController.btnFechar.MSG.borrarEmLoteOK = Tarifas Excluidas com Sucesso. +editarTarifaController.btnFechar.MSG.pesquisaobrigatoria = Selecione pelo menos um filtro e faça a pesquisa. editarTarifaController.btnApagar.tooltiptext = Eliminar tarifa editarTarifaController.btnSalvar.tooltiptext = Guardar editarTarifaController.btnFechar.tooltiptext = Cerrar diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index f015ee397..6c7b5ee5b 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -2237,6 +2237,7 @@ busquedaTarifaController.lhTaxa.label = Taxa de Embarque busquedaTarifaController.lhSeguro.label = Seguro busquedaTarifaController.lhOutros.label = Outros busquedaTarifaController.btnPesquisa.label = Pesquisa +busquedaTarifaController.btnExcluir.label = Excluir Todos busquedaTarifaController.lhVigencia.label = Vigência busquedaTarifaController.lhStatusTarifa.label = Status Tarifa busquedaTarifaController.lhprecioredabierto.label = Tarifa volta em aberto @@ -2260,7 +2261,10 @@ busquedaTarifaController.lhTodos.label = Todos editarTarifaController.window.title = Tarifa editarTarifaController.btnFechar.MSG.SuscbrirOK = Tarifa Registrada com Sucesso. editarTarifaController.btnFechar.MSG.Deseja.Borrar = Tarifa Deseja Eliminar? +editarTarifaController.btnFechar.MSG.Deseja.BorrarEmLote = Tarifa Deseja Eliminar Todas as tarifas pesquisadas? editarTarifaController.btnFechar.MSG.borrarOK = Tarifa Excluida com Sucesso. +editarTarifaController.btnFechar.MSG.borrarEmLoteOK = Tarifas Excluidas com Sucesso. +editarTarifaController.btnFechar.MSG.pesquisaobrigatoria = Selecione pelo menos um filtro e faça a pesquisa. editarTarifaController.btnApagar.tooltiptext = Eliminar tarifa editarTarifaController.btnSalvar.tooltiptext = Salvar editarTarifaController.btnFechar.tooltiptext = Fechar diff --git a/web/gui/tarifas/busquedaTarifas.zul b/web/gui/tarifas/busquedaTarifas.zul index 891cbc941..f16d33176 100644 --- a/web/gui/tarifas/busquedaTarifas.zul +++ b/web/gui/tarifas/busquedaTarifas.zul @@ -84,7 +84,9 @@