From 1d3bf13f0aaf49dc3f5b1cab428da22dd5fceba6 Mon Sep 17 00:00:00 2001 From: Fernando Abimael Alvarez Uc Date: Fri, 16 Aug 2024 12:44:08 -0600 Subject: [PATCH] Fixes bug#AL-4554 --- .../expressos/LogExpresosController.java | 168 ++++++++++++++++++ .../menu/item/expressos/ItemMenuLog.java | 25 +++ .../render/RenderLogAuditoriaExpresos.java | 39 ++++ web/gui/expressos/log.zul | 92 ++++++++++ 4 files changed, 324 insertions(+) create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/expressos/LogExpresosController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/expressos/ItemMenuLog.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderLogAuditoriaExpresos.java create mode 100644 web/gui/expressos/log.zul diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/expressos/LogExpresosController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/expressos/LogExpresosController.java new file mode 100644 index 000000000..cf5faaef6 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/expressos/LogExpresosController.java @@ -0,0 +1,168 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.expressos; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Map; +import java.util.Map.Entry; + +import org.apache.commons.lang.StringUtils; +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +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.zul.Datebox; +import org.zkoss.zul.Paging; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.LogAuditoria; +import com.rjconsultores.ventaboletos.service.LogAuditoriaService; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; +import com.rjconsultores.ventaboletos.web.utilerias.MyTextbox; +import com.rjconsultores.ventaboletos.web.utilerias.paginacion.HibernateSearchObject; +import com.rjconsultores.ventaboletos.web.utilerias.paginacion.PagedListWrapper; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderLogAuditoria; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderLogAuditoriaExpresos; +import com.trg.search.Filter; + +import br.com.rjconsultores.auditador.enums.AuditadorTipoAlteracao; + +@Controller("logExpresosController") +@Scope("prototype") +public class LogExpresosController extends MyGenericForwardComposer{ + private static final long serialVersionUID = 1L; + + @Autowired + private LogAuditoriaService logAuditoriaService; + + @Autowired + private transient PagedListWrapper plwLogAuditoria; + + private static Logger log = LogManager.getLogger(LogExpresosController.class); + + private MyComboboxEstandar cmbTipoAlteracao; + private MyListbox logAuditoriaList; + private Paging pagingLogAuditoria; + + private Datebox dtInicio; + private Datebox dtFim; + + private MyTextbox txtCampoAlterado; + private MyTextbox txtCveUsuario; + private MyTextbox txtValorNovo; + private MyTextbox txtValorAnterior; + private MyTextbox txtIdAuditado; + + private Map nomeTelas; + private List lsTela; + + @Override + public void doAfterCompose(Component comp) throws Exception { + lsTela = recuperarChavesClasse(logAuditoriaService.listarTodasAsTelas()); + + super.doAfterCompose(comp); + + logAuditoriaList.setItemRenderer(new RenderLogAuditoriaExpresos()); + } + + private void refreshLista(boolean isGerarRelatorio) throws Exception { + HibernateSearchObject sistemaBusqueda = new HibernateSearchObject(LogAuditoria.class, pagingLogAuditoria.getPageSize()); + + Date dataInicio = dtInicio.getValue(); + Date dataFim = dtFim.getValue(); + + sistemaBusqueda.addFilterGreaterOrEqual("fecmodif", DateUtil.inicioFecha(dataInicio)); + sistemaBusqueda.addFilterLessOrEqual("fecmodif", DateUtil.fimFecha(dataFim)); + + String campoAlterado = txtCampoAlterado.getText(); + if (StringUtils.isNotBlank(campoAlterado)) { + sistemaBusqueda.addFilterLike("campoAlterado", "%" + campoAlterado.trim().concat("%")); + } + + String valorNovo = txtValorNovo.getText(); + if (StringUtils.isNotBlank(valorNovo)) { + sistemaBusqueda.addFilterLike("valorNovo", "%" + valorNovo.trim().concat("%")); + } + + String valorAnterior = txtValorAnterior.getText(); + if (StringUtils.isNotBlank(valorAnterior)) { + sistemaBusqueda.addFilterLike("valorAnterior", "%" + valorAnterior.trim().concat("%")); + } + + String idAuditado = txtIdAuditado.getValue(); + if (StringUtils.isNotBlank(idAuditado)) { + sistemaBusqueda.addFilterLike("idAuditado", idAuditado + "%"); + } + + String cveUsuario = txtCveUsuario.getText(); + if (StringUtils.isNotBlank(cveUsuario)) { + sistemaBusqueda.addFilterLike("usuario.claveUsuario", "%" + cveUsuario.trim().concat("%")); + } + + //sistemaBusqueda.addFilterEqual("tela", recuperarChaveNomeTela("auditarClasse.SolicitudExpreso")); + sistemaBusqueda.addFilterEqual("tela", "auditarClasse.SolicitudExpreso"); + + AuditadorTipoAlteracao tipoAlteracao = cmbTipoAlteracao.getSelectedItem() != null ? (AuditadorTipoAlteracao) cmbTipoAlteracao.getSelectedItem().getValue() : null; + if(tipoAlteracao != null) { + sistemaBusqueda.addFilterEqual("tipoAlteracao", tipoAlteracao.toString()); + } + + sistemaBusqueda.addSortAsc("fecmodif"); + sistemaBusqueda.addFilterEqual("activo", Boolean.TRUE); + + plwLogAuditoria.init(sistemaBusqueda, logAuditoriaList, pagingLogAuditoria); + + if (logAuditoriaList.getData().length == 0) { + if(isGerarRelatorio){ + throw new Exception(Labels.getLabel("MSG.ningunRegistroRelatorio")); + }else{ + try { + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"),Labels.getLabel("busquedaLogAuditoriaController.window.title"), Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + log.error("", ex); + } + } + }else { + //configurarNomesTelas(); + } + } + + private List recuperarChavesClasse(List lsTela) { + + nomeTelas = new HashMap(); + List lsTelasAux = new ArrayList(); + + for (String tela : lsTela) { + lsTelasAux.add(Labels.getLabel(tela, tela)); + nomeTelas.put(tela, Labels.getLabel(tela, tela)); + } + Collections.sort(lsTelasAux); + return lsTelasAux; + } + + private String recuperarChaveNomeTela(String tela) { + + String chave = null; + for (Entry entry : nomeTelas.entrySet()) { + if (entry.getValue().equals(tela)) { + chave = entry.getKey(); + } + } + return chave; + } + + public void onClick$btnPesquisa(Event ev) throws Exception { + refreshLista(false); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/expressos/ItemMenuLog.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/expressos/ItemMenuLog.java new file mode 100644 index 000000000..2bcfa3b33 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/expressos/ItemMenuLog.java @@ -0,0 +1,25 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.expressos; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuLog extends DefaultItemMenuSistema { + public ItemMenuLog() { + super("indexController.mniExpressosLog.label"); + } + + @Override + public String getClaveMenu() { + return null; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/expressos/log.zul", + Labels.getLabel("indexController.mniExpressosLog.label"), + getArgs(), desktop); + + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderLogAuditoriaExpresos.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderLogAuditoriaExpresos.java new file mode 100644 index 000000000..44bd1b06e --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderLogAuditoriaExpresos.java @@ -0,0 +1,39 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.LogAuditoria; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; + +public class RenderLogAuditoriaExpresos implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + LogAuditoria logAuditoria = (LogAuditoria) o; + + Listcell lc = new Listcell(DateUtil.getStringDate(logAuditoria.getFecmodif(), "dd/MM/yyyy HH:mm")); + lc.setParent(lstm); + + lc = new Listcell(logAuditoria.getIdAuditado() != null ? logAuditoria.getIdAuditado().toString() : ""); + lc.setParent(lstm); + + lc = new Listcell(String.format("%s - %s", logAuditoria.getUsuario().getClaveUsuario(), logAuditoria.getUsuario().getNombusuario())); + lc.setParent(lstm); + + lc = new Listcell(logAuditoria.getTipoAlteracao()); + lc.setParent(lstm); + + lc = new Listcell(logAuditoria.getCampoAlterado()); + lc.setParent(lstm); + + lc = new Listcell(logAuditoria.getValorNovo()); + lc.setParent(lstm); + + lc = new Listcell(logAuditoria.getValorAnterior()); + lc.setParent(lstm); + + lstm.setAttribute("data", logAuditoria); + } + +} diff --git a/web/gui/expressos/log.zul b/web/gui/expressos/log.zul new file mode 100644 index 000000000..efd910751 --- /dev/null +++ b/web/gui/expressos/log.zul @@ -0,0 +1,92 @@ + + + + + + + + + +