diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/BusquedaUsuarioSesionController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/BusquedaUsuarioSesionController.java new file mode 100644 index 000000000..5df69d3f6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/seguridad/BusquedaUsuarioSesionController.java @@ -0,0 +1,268 @@ +/* + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.gui.controladores.seguridad; + +import java.util.ArrayList; +import java.util.List; + +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.context.annotation.Scope; +import org.springframework.stereotype.Controller; +import org.zkoss.util.resource.Labels; +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.zul.Combobox; +import org.zkoss.zul.Comboitem; +import org.zkoss.zul.Paging; +import org.zkoss.zul.Radio; +import org.zkoss.zul.Textbox; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.UsuarioSesion; +import com.rjconsultores.ventaboletos.service.UsuarioSesionService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject; +import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderUsuarioSesion; +import com.trg.search.Filter; + +/** + * + * @author RJ Consultores + */ +@Controller("busquedaUsuarioSesionController") +@Scope("prototype") +public class BusquedaUsuarioSesionController extends MyGenericForwardComposer { + + @Autowired + private transient PagedListWrapper plwFormaPago; + @Autowired + private UsuarioSesionService usuarioSesionService; + private MyListbox usuarioSesionList; + private Paging pagingUsuarioSesion; + private Textbox txtNombUsuario; + private Textbox txtNombPaterno; + private Textbox txtNombMaterno; + private Textbox txtCveUsuario; + private Textbox txtCveEmpleado; + private Radio radFirmadoSi; + private Radio radFirmadoNo; + + private Combobox cmbEmpresa; + private List lsEmpresas; + + @Override + public void doAfterCompose(Component comp) throws Exception { + + lsEmpresas = UsuarioLogado.getUsuarioLogado().getEmpresa(); + + super.doAfterCompose(comp); + + usuarioSesionList.setItemRenderer(new RenderUsuarioSesion()); + + Boolean isReadOnly = Boolean.FALSE; + + if(arg.get("isReadOnly") != null){ + isReadOnly = (Boolean) arg.get("isReadOnly"); + } + + if (!isReadOnly) { + usuarioSesionList.addEventListener("onDoubleClick", new EventListener() { + + @Override + public void onEvent(Event event) throws Exception { + UsuarioSesion s = (UsuarioSesion) usuarioSesionList.getSelected(); + verUsuario(s); + } + }); + } + + refreshLista(); + } + + private void verUsuario(UsuarioSesion u) { + if (u == null) { + return; + } + + try { + if (u.getIndFirmado()) { + int resp = Messagebox.show( + Labels.getLabel("busquedaUsuarioSesionController.MSG.gerarPergunta", + new Object[] { u.getUsuario().getClaveUsuario() }), + Labels.getLabel("busquedaUsuarioSesionController.window.title"), Messagebox.YES | Messagebox.NO, Messagebox.QUESTION); + + if (resp == Messagebox.YES) { + + u.setIndFirmado(Boolean.FALSE); + usuarioSesionService.actualizacion(u); + + Messagebox.show(Labels.getLabel("busquedaUsuarioSesionController.MSG.ok"), + Labels.getLabel("busquedaUsuarioSesionController.window.title"), Messagebox.OK, Messagebox.INFORMATION); + + refreshLista(); + } + }else{ + Messagebox.show(Labels.getLabel("busquedaUsuarioSesionController.MSG.informa"), + Labels.getLabel("busquedaUsuarioSesionController.window.title"), Messagebox.OK, Messagebox.INFORMATION); + } + } catch (Exception e) { + try { + Messagebox.show(Labels.getLabel("MSG.Error"), Labels.getLabel("busquedaUsuarioSesionController.window.title"), + Messagebox.OK, Messagebox.ERROR); + } catch (InterruptedException e1) { + } + } + + } + + @SuppressWarnings("static-access") + private void refreshLista() { + HibernateSearchObject sistemaBusqueda = + new HibernateSearchObject(UsuarioSesion.class, + pagingUsuarioSesion.getPageSize()); + + String nombUsuario = txtNombUsuario.getText(); + if (!nombUsuario.equals("")) { + sistemaBusqueda.addFilterLike("usuario.nombusuario", "%" + nombUsuario.trim().concat("%")); + } + + String nombPaterno = txtNombPaterno.getText(); + if (!nombPaterno.equals("")) { + sistemaBusqueda.addFilterLike("usuario.nombpaterno", "%" + nombPaterno.trim().concat("%")); + } + + String nombMaterno = txtNombMaterno.getText(); + if (!nombMaterno.equals("")) { + sistemaBusqueda.addFilterLike("usuario.nombmaterno", "%" + nombMaterno.trim().concat("%")); + } + + String cveUsuario = txtCveUsuario.getText(); + if (cveUsuario != null) { + sistemaBusqueda.addFilterLike("usuario.claveUsuario", "%" + cveUsuario.trim().concat("%")); + } + + List lsEmpresaTmp =null; + + Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); + if (itemEmpresa != null) { + Empresa empresa = (Empresa) itemEmpresa.getValue(); + lsEmpresaTmp = new ArrayList(); + lsEmpresaTmp.add(empresa); + + sistemaBusqueda.addFilter( + Filter.and(Filter.in("empresa", lsEmpresaTmp), + Filter.equal("activo", true) + )); + }else{ + lsEmpresaTmp = lsEmpresas; + } + + if(radFirmadoSi.isChecked()){ + sistemaBusqueda.addFilterEqual("indFirmado", Boolean.TRUE); + }else if(radFirmadoNo.isChecked()){ + sistemaBusqueda.addFilterEqual("indFirmado", Boolean.FALSE); + } + + sistemaBusqueda.addFilterEqual("activo", Boolean.TRUE); + + plwFormaPago.init(sistemaBusqueda, usuarioSesionList, pagingUsuarioSesion); + + if (usuarioSesionList.getData().length == 0) { + try { + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), + Labels.getLabel("busquedaUsuarioController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + } + } + } + + public void onClick$btnPesquisa(Event ev) { + refreshLista(); + } + + public void onClick$btnRefresh(Event ev) { + refreshLista(); + } + + public Combobox getCmbEmpresa() { + return cmbEmpresa; + } + + public void setCmbEmpresa(Combobox cmbEmpresa) { + this.cmbEmpresa = cmbEmpresa; + } + + public List getLsEmpresas() { + return lsEmpresas; + } + + public void setLsEmpresas(List lsEmpresas) { + this.lsEmpresas = lsEmpresas; + } + + public Textbox getTxtCveUsuario() { + return txtCveUsuario; + } + + public void setTxtCveUsuario(Textbox txtCveUsuario) { + this.txtCveUsuario = txtCveUsuario; + } + + + public Paging getPagingUsuario() { + return pagingUsuarioSesion; + } + + public void setPagingUsuario(Paging pagingUsuario) { + this.pagingUsuarioSesion = pagingUsuario; + } + + + public Textbox getTxtNombMaterno() { + return txtNombMaterno; + } + + public void setTxtNombMaterno(Textbox txtNombMaterno) { + this.txtNombMaterno = txtNombMaterno; + } + + public Textbox getTxtNombPaterno() { + return txtNombPaterno; + } + + public void setTxtNombPaterno(Textbox txtNombPaterno) { + this.txtNombPaterno = txtNombPaterno; + } + + public Textbox getTxtNombUsuario() { + return txtNombUsuario; + } + + public void setTxtNombUsuario(Textbox txtNombUsuario) { + this.txtNombUsuario = txtNombUsuario; + } + + public MyListbox getUsuarioList() { + return usuarioSesionList; + } + + public void setUsuarioList(MyListbox usuarioList) { + this.usuarioSesionList = usuarioList; + } + + public Textbox getTxtCveEmpleado() { + return txtCveEmpleado; + } + + public void setTxtCveEmpleado(Textbox txtCveEmpleado) { + this.txtCveEmpleado = txtCveEmpleado; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/seguridad/ItemMenuUsuarioSesion.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/seguridad/ItemMenuUsuarioSesion.java new file mode 100644 index 000000000..6fa5b6a23 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/seguridad/ItemMenuUsuarioSesion.java @@ -0,0 +1,26 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.seguridad; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuUsuarioSesion extends DefaultItemMenuSistema { + + public ItemMenuUsuarioSesion() { + super("busquedaUsuarioSesionController.window.title"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.SEGURIDAD.MENU.USUARIOSESION"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/seguridad/busquedaUsuarioSesion.zul", + Labels.getLabel("busquedaUsuarioSesionController.window.title"), getArgs(), desktop); + + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderUsuarioSesion.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderUsuarioSesion.java new file mode 100644 index 000000000..ceb720810 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderUsuarioSesion.java @@ -0,0 +1,52 @@ +/* + * To change this template, choose Tools | Templates + * and open the template in the editor. + */ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Checkbox; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.UsuarioSesion; + +/** + * + * @author RJ Consultores + */ +public class RenderUsuarioSesion implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + UsuarioSesion usuarioSesion = (UsuarioSesion) o; + + Listcell lc = new Listcell(usuarioSesion.getUsuario().getClaveUsuario()); + lc.setParent(lstm); + + lc = new Listcell(usuarioSesion.getUsuario().getNombusuario()); + lc.setParent(lstm); + + lc = new Listcell(usuarioSesion.getUsuario().getNombpaterno()); + lc.setParent(lstm); + + lc = new Listcell(usuarioSesion.getUsuario().getNombmaterno()); + lc.setParent(lstm); + + lc = new Listcell(usuarioSesion.getEmpresa() == null ? "" : usuarioSesion.getEmpresa().getNombempresa() ); + lc.setParent(lstm); + + lc = new Listcell(); + + Checkbox chkFirmado = new Checkbox(); + chkFirmado.setDisabled(Boolean.TRUE); + + if (usuarioSesion.getIndFirmado()) { + chkFirmado.setChecked(Boolean.TRUE); + } + lc.appendChild(chkFirmado); + + lc.setParent(lstm); + + lstm.setAttribute("data", usuarioSesion); + } +} diff --git a/src/java/spring-config.xml b/src/java/spring-config.xml index fe8f402d6..b1cb1e286 100644 --- a/src/java/spring-config.xml +++ b/src/java/spring-config.xml @@ -322,6 +322,7 @@ com.rjconsultores.ventaboletos.entidad.UsuarioEmpresa com.rjconsultores.ventaboletos.entidad.UsuarioPerfil + com.rjconsultores.ventaboletos.entidad.UsuarioSesion com.rjconsultores.ventaboletos.entidad.UsuarioUbicacion com.rjconsultores.ventaboletos.entidad.Via diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index 34bae9186..87efc1368 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -2453,6 +2453,12 @@ busquedaUsuarioController.nombmaterno.label = Apellido materno busquedaUsuarioController.perfil.label = Perfil busquedaUsuarioController.btnPesquisa.label = Búsqueda +busquedaUsuarioSesionController.window.title = Sesion Usuário +busquedaUsuarioSesionController.firmado.label = Firmado +busquedaUsuarioSesionController.MSG.informa = Usuário não está logado +busquedaUsuarioSesionController.MSG.gerarPergunta = Deseja liberar a sessão do usuário {0} ? +busquedaUsuarioSesionController.MSG.ok = Sessão liberada com Sucesso. + # Editar Usuário editarUsuarioController.window.title = Usuário editarUsuarioController.tabel.ubicacion = Ubicación diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 0fe9c9edb..fb618b9b5 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -156,8 +156,8 @@ indexController.mniPerfil.label = Perfil indexController.mniPermisos.label = Permissão indexController.mniMenus.label = Menu indexController.mniSistema.label = Sistema -indexController.mniUsuario.label = Usuário indexController.mniFiscalImpressora.label = Impressora Fiscal +indexController.mniUsuario.label = Usuário indexController.mniUbicacionUsuario.label = Localização do Usuário indexController.mniTipoParadas.label = Tipo Localidade indexController.mniAutobus.label = Veículos @@ -2502,6 +2502,12 @@ busquedaUsuarioController.btnPesquisa.label = Pesquisa busquedaUsuarioController.empresa.label = Empresa busquedaUsuarioController.puntoventa.label = Ponto de Venda(Agência) +busquedaUsuarioSesionController.window.title = Sessão Usuário +busquedaUsuarioSesionController.firmado.label = Logado +busquedaUsuarioSesionController.MSG.informa = Usuário não está logado +busquedaUsuarioSesionController.MSG.gerarPergunta = Deseja liberar a sessão do usuário {0} ? +busquedaUsuarioSesionController.MSG.ok = Sessão liberada com Sucesso. + # Editar Usuário editarUsuarioController.window.title = Usuário editarUsuarioController.tabel.ubicacion = Localização diff --git a/web/gui/seguridad/busquedaUsuarioSesion.zul b/web/gui/seguridad/busquedaUsuarioSesion.zul new file mode 100644 index 000000000..25043c1fc --- /dev/null +++ b/web/gui/seguridad/busquedaUsuarioSesion.zul @@ -0,0 +1,84 @@ + + + + + + + + + + +