From 63529372d75f086fa7db0f16dc9dbc5f6c1a415c Mon Sep 17 00:00:00 2001 From: "daniel.zauli" Date: Mon, 21 Dec 2015 20:17:33 +0000 Subject: [PATCH] FIXES BUG #06960 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@51452 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../relatorios/impl/RelatorioCheckin.java | 61 ++++++++---- .../RelatorioCheckin_es.properties | 3 +- .../RelatorioCheckin_pt_BR.properties | 3 +- .../templates/RelatorioCheckin.jasper | Bin 27760 -> 28803 bytes .../templates/RelatorioCheckin.jrxml | 57 +++++++---- .../relatorios/utilitarios/Checkin.java | 9 ++ .../RelatorioCheckinController.java | 94 +++++++++++++++++- .../render/RenderRelatorioCheckinUsuario.java | 51 ++++++++++ ...rRelatorioCheckinUsuariosSelecionados.java | 46 +++++++++ web/WEB-INF/i3-label_es_MX.label | 6 +- web/WEB-INF/i3-label_pt_BR.label | 4 + web/gui/relatorios/filtroRelatorioCheckin.zul | 59 ++++++++++- 12 files changed, 344 insertions(+), 49 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioCheckinUsuario.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioCheckinUsuariosSelecionados.java diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCheckin.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCheckin.java index 876bdf95d..a56b73bfe 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCheckin.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioCheckin.java @@ -1,6 +1,7 @@ package com.rjconsultores.ventaboletos.relatorios.impl; import java.sql.Connection; +import java.sql.PreparedStatement; import java.sql.ResultSet; import java.util.ArrayList; import java.util.Date; @@ -13,44 +14,57 @@ import org.apache.commons.lang.StringUtils; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Checkin; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; -import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; public class RelatorioCheckin extends Relatorio { public RelatorioCheckin(Map parametros, Connection conexao) { super(parametros, conexao); } + + List lsInt; @Override protected void processaParametros() throws Exception { Integer corridaId = (Integer) getParametros().get("CORRIDA_ID"); Integer origenId = (Integer) getParametros().get("ORIGEN_ID"); - String nomeBilheteiro = (String) getParametros().get("NOME_BILHETEIRO"); + String idsBilheteiros = (String) getParametros().get("IDS_BILHETEIROS"); Date fecInicio = (Date) getParametros().get("DATA_INICIAL"); Date fecFinal = (Date) getParametros().get("DATA_FINAL"); + + if (StringUtils.isNotBlank(idsBilheteiros)) { + String []ls = idsBilheteiros.split(","); + lsInt = new ArrayList(); + for(String i : ls){ + lsInt.add(new Integer(Integer.parseInt(i.trim()))); + } + } - String sql = getSql(corridaId, origenId, nomeBilheteiro); + String sql = getSql(corridaId, origenId, idsBilheteiros); - NamedParameterStatement stmt = new NamedParameterStatement(getConexao(), sql); - stmt.setTimestamp("fecInicio", new java.sql.Timestamp(fecInicio.getTime())); - stmt.setTimestamp("fecFinal", new java.sql.Timestamp(fecFinal.getTime())); + PreparedStatement pstmt = getConexao().prepareStatement(sql); + + int index = 1; + pstmt.setTimestamp(index++, new java.sql.Timestamp(fecInicio.getTime())); + pstmt.setTimestamp(index++, new java.sql.Timestamp(fecFinal.getTime())); if (corridaId != null) { - stmt.setInt("corridaId", corridaId); + pstmt.setInt(index++, corridaId); } if (origenId != null) { - stmt.setInt("origenId", origenId); + pstmt.setInt(index++, origenId); } - - if (StringUtils.isNotBlank(nomeBilheteiro)) { - stmt.setString("nomeBilheteiro", nomeBilheteiro); + + if (StringUtils.isNotBlank(idsBilheteiros)) { + for(int i = 0 ; i < lsInt.size() ; i++){ + pstmt.setInt(index++, lsInt.get(i));//Object("idsBilheteiros", lsInt.toArray()); + } } List checkins = new ArrayList(); - ResultSet rset = stmt.executeQuery(); + ResultSet rset = pstmt.executeQuery(); while (rset.next()) { Checkin checkin = new Checkin(); @@ -63,6 +77,7 @@ public class RelatorioCheckin extends Relatorio { checkin.setDataCancelado(rset.getTimestamp("datacancelado")); checkin.setDataRemarcacao(rset.getTimestamp("dataremarcacao")); checkin.setNombUsuario(rset.getString("nombusuario")); + checkin.setCveusuario(rset.getString("cveusuario")); checkins.add(checkin); } @@ -74,24 +89,34 @@ public class RelatorioCheckin extends Relatorio { this.setCollectionDataSource(new JRBeanCollectionDataSource(checkins)); } - private String getSql(Integer corridaId, Integer origenId, String nomeBilheteiro) { + private String getSql(Integer corridaId, Integer origenId, String idsBilheteiros) { StringBuffer sql = new StringBuffer(); sql.append("select b.boleto_id, o.descparada, b.corrida_id, "); sql.append("case when b.numfoliosistema is not null "); sql.append(" then b.numfoliosistema else b.numoperacion end numoperacion, "); - sql.append("b.feccorrida, bc.datavenda, bc.datacancelado, bc.dataremarcacao, u.nombusuario "); + sql.append("b.feccorrida, bc.datavenda, bc.datacancelado, bc.dataremarcacao, u.nombusuario, u.cveusuario "); sql.append("from boleto b "); sql.append("inner join boleto_checkin bc on b.boletooriginal_id = bc.boletooriginal_id "); sql.append("inner join parada o on b.origen_id = o.parada_id "); sql.append("inner join usuario u on b.usuario_id = u.usuario_id "); sql.append(" where b.activo = 1 "); - sql.append("and b.feccorrida between :fecInicio and :fecFinal "); - sql.append(corridaId == null ? "" : " and b.corrida_id = :corridaId "); - sql.append(origenId == null ? "" : " and b.origen_id = :origenId "); - sql.append(StringUtils.isBlank(nomeBilheteiro) ? "" : " and u.nombusuario like :nomeBilheteiro "); + sql.append("and b.feccorrida between ? and ? "); + sql.append(corridaId == null ? "" : " and b.corrida_id = ? "); + sql.append(origenId == null ? "" : " and b.origen_id = ? "); + sql.append((lsInt == null || lsInt.size() == 0) ? "" : " and u.USUARIO_ID in ( "+ createIn(lsInt.size()) + ") "); return sql.toString(); } + + public String createIn(int n) { + if(n > 0){ + String str = StringUtils.repeat(" ? ,", n); + return str.substring(0, str.length()-1); + }else{ + return ""; + } + + } } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_es.properties index 303d6a50e..ff33acdc6 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_es.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_es.properties @@ -18,4 +18,5 @@ datail.servicio=Servi datail.data.servicio=Data do Serviço datail.data.checkin=Data Checkin datail.bilheteiro=Bilheteiro -datail.data.remarcada=Data Remarcada \ No newline at end of file +datail.data.remarcada=Data Remarcada +datail.cveusuario=Login \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_pt_BR.properties index 303d6a50e..ff33acdc6 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_pt_BR.properties +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioCheckin_pt_BR.properties @@ -18,4 +18,5 @@ datail.servicio=Servi datail.data.servicio=Data do Serviço datail.data.checkin=Data Checkin datail.bilheteiro=Bilheteiro -datail.data.remarcada=Data Remarcada \ No newline at end of file +datail.data.remarcada=Data Remarcada +datail.cveusuario=Login \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jasper index d845c6211536886f4346bfea1771690c8b80fde5..360c65b9c34331f3c9d445975b80e61e22229836 100644 GIT binary patch delta 8591 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 Nbof{HcK3J#{{yq~aT5Rl delta 8189 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 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jrxml index 506dd40c6..15a2699bf 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioCheckin.jrxml @@ -1,14 +1,14 @@ - + - + - + @@ -21,13 +21,14 @@ + <band height="21" splitType="Stretch"> <textField pattern="" isBlankWhenNull="false"> - <reportElement mode="Transparent" x="0" y="0" width="338" height="20" forecolor="#000000" backcolor="#FFFFFF" uuid="5ee43799-932b-4ce1-8056-df380a9050a8"/> + <reportElement uuid="5ee43799-932b-4ce1-8056-df380a9050a8" mode="Transparent" x="0" y="0" width="338" height="20" forecolor="#000000" backcolor="#FFFFFF"/> <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none"> <font fontName="SansSerif" size="12" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> <paragraph lineSpacing="Single"/> @@ -35,7 +36,7 @@ <textFieldExpression><![CDATA[$P{NOME_RELATORIO}]]></textFieldExpression> </textField> <line> - <reportElement x="0" y="20" width="555" height="1" uuid="b28df970-c219-4853-afeb-6821e0a44f04"/> + <reportElement uuid="b28df970-c219-4853-afeb-6821e0a44f04" x="0" y="20" width="619" height="1"/> </line> </band> @@ -45,110 +46,124 @@ - + - + - + - + - + - + - + - + + + + + + + + - + - + - + - + - + - + - + + + + + + + + @@ -163,7 +178,7 @@ - + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Checkin.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Checkin.java index 2c6c0f550..f54d7c878 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Checkin.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/Checkin.java @@ -13,6 +13,7 @@ public class Checkin { private Date dataCancelado; private Date dataRemarcacao; private String nombUsuario; + private String cveusuario; public Long getBoletoId() { return boletoId; @@ -86,4 +87,12 @@ public class Checkin { this.nombUsuario = nombUsuario; } + public String getCveusuario() { + return cveusuario; + } + + public void setCveusuario(String cveusuario) { + this.cveusuario = cveusuario; + } + } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCheckinController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCheckinController.java index fda65eb79..ba5362ed6 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCheckinController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioCheckinController.java @@ -1,6 +1,9 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; +import java.util.ArrayList; +import java.util.Arrays; import java.util.HashMap; +import java.util.List; import java.util.Map; import javax.sql.DataSource; @@ -12,18 +15,26 @@ 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.Bandbox; import org.zkoss.zul.Comboitem; import org.zkoss.zul.ComboitemRenderer; import org.zkoss.zul.Datebox; import org.zkoss.zul.Intbox; +import org.zkoss.zul.Paging; import org.zkoss.zul.Textbox; import com.rjconsultores.ventaboletos.entidad.Parada; +import com.rjconsultores.ventaboletos.entidad.Usuario; import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioCheckin; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada; import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParadaCve; 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.RenderRelatorioCheckinUsuario; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderRelatorioCheckinUsuariosSelecionados; @Controller("relatorioCheckinController") @Scope("prototype") @@ -34,7 +45,13 @@ public class RelatorioCheckinController extends MyGenericForwardComposer { private Datebox datInicial; private Datebox datFinal; private Intbox txtCorridaId; - private Textbox txtBilheteiro; + private Bandbox bbPesquisaBilhetero; + private Paging pagingUsuario; + private Textbox txtPalavraPesquisa; + @Autowired + private transient PagedListWrapper plwUsuario; + private MyListbox usuarioList; + private MyListbox usuarioSelList; private MyComboboxParada cmbParadaOrigem; private MyComboboxParadaCve cmbParadaOrigemCve; @@ -56,10 +73,47 @@ public class RelatorioCheckinController extends MyGenericForwardComposer { cmbtm.setValue(parada); } }); + + usuarioList.setItemRenderer(new RenderRelatorioCheckinUsuario()); + usuarioSelList.setItemRenderer(new RenderRelatorioCheckinUsuariosSelecionados()); + + } + + public void onClick$btnPesquisa(Event ev) { + executarPesquisa(); + } + + public void onDoubleClick$usuarioList(Event ev) { + Usuario usuario = (Usuario) usuarioList.getSelected(); + usuarioSelList.addItemNovo(usuario); + } + + private void executarPesquisa() { + HibernateSearchObject usuarioBusqueda = + new HibernateSearchObject(Usuario.class, pagingUsuario.getPageSize()); + + usuarioBusqueda.addFilterLike("nombusuario", "%" + txtPalavraPesquisa.getValue() + "%"); + + usuarioBusqueda.addSortAsc("nombusuario"); + + usuarioBusqueda.addFilterEqual("activo", Boolean.TRUE); + + plwUsuario.init(usuarioBusqueda, usuarioList, pagingUsuario); + + if (usuarioList.getData().length == 0) { + try { + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), + Labels.getLabel("indexController.mniRelatorioCheckin.label"), + Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + } + } } public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + List lsUsuariosSelecionados = new ArrayList(Arrays.asList(usuarioSelList.getData())); + Integer origenId = cmbParadaOrigemCve.getSelectedItem() == null ? null : ((Parada) cmbParadaOrigemCve.getSelectedItem().getValue()).getParadaId(); String origen = cmbParadaOrigemCve.getSelectedItem() == null ? null @@ -75,12 +129,24 @@ public class RelatorioCheckinController extends MyGenericForwardComposer { Map parametros = new HashMap(); parametros.put("CORRIDA_ID", txtCorridaId.getValue()); - parametros.put("NOME_BILHETEIRO", txtBilheteiro.getValue()); parametros.put("DATA_INICIAL", datInicial.getValue()); parametros.put("DATA_FINAL", datFinal.getValue()); parametros.put("ORIGEN_ID", origenId); parametros.put("ORIGEN", origen); parametros.put("NOME_RELATORIO", Labels.getLabel("indexController.mniRelatorioCheckin.label")); + + String usuariosIds = ""; + for (int i = 0; i < lsUsuariosSelecionados.size(); i++) { + Usuario usuario = lsUsuariosSelecionados.get(i); + if(i == 0){ + usuariosIds = usuariosIds + " " + usuario.getUsuarioId(); + }else{ + usuariosIds = usuariosIds + "," + usuario.getUsuarioId(); + } + + } + parametros.put("IDS_BILHETEIROS", usuariosIds); + Relatorio relatorio = new RelatorioCheckin(parametros, dataSourceRead.getConnection()); @@ -101,5 +167,29 @@ public class RelatorioCheckinController extends MyGenericForwardComposer { if (cmbParadaOrigem.getSelectedItem() != null) cmbParadaOrigemCve.setComboItemByParada((Parada) cmbParadaOrigem.getSelectedItem().getValue()); } + + public void onClick$btnLimpar(Event ev) { + limparPesquisa(); + } + + private void limparPesquisa() { + usuarioList.setData(new ArrayList()); + + bbPesquisaBilhetero.setText(getDescBilheteirosSelecionados()); + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + private String getDescBilheteirosSelecionados() { + List lsUsuariosSelecionados = new ArrayList(Arrays.asList(usuarioSelList.getData())); + StringBuilder selecionados = new StringBuilder(""); + if (!lsUsuariosSelecionados.isEmpty()) { + for (Usuario usuario : lsUsuariosSelecionados) { + selecionados.append(usuario.getNombusuario()).append(", "); + } + } + + txtPalavraPesquisa.setText(""); + return selecionados.toString(); + } } diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioCheckinUsuario.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioCheckinUsuario.java new file mode 100644 index 000000000..6ff5e31da --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioCheckinUsuario.java @@ -0,0 +1,51 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zul.Button; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.entidad.Usuario; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; + +public class RenderRelatorioCheckinUsuario implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + Usuario usuario = (Usuario) o; + + Listcell lc = new Listcell(usuario.getUsuarioId().toString()); + lc.setParent(lstm); + + lc = new Listcell(usuario.getClaveUsuario()); + lc.setParent(lstm); + + lc = new Listcell(usuario.getNombusuario()); + lc.setParent(lstm); + + Button btn = new Button(); + + lc = new Listcell(); + lc.setParent(lstm); + + btn.setWidth("16"); + btn.setHeight("16"); + btn.setImage("/gui/img/remove.png"); + + btn.addEventListener("onClick", new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + MyListbox listBox = (MyListbox) event.getTarget().getParent().getParent().getParent(); + Listitem listItem = (Listitem) event.getTarget().getParent().getParent(); + listBox.removeItem((Ruta) listItem.getAttribute("data")); + } + }); + + lc.appendChild(btn); + + lstm.setAttribute("data", usuario); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioCheckinUsuariosSelecionados.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioCheckinUsuariosSelecionados.java new file mode 100644 index 000000000..6bf08fc37 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/render/RenderRelatorioCheckinUsuariosSelecionados.java @@ -0,0 +1,46 @@ +package com.rjconsultores.ventaboletos.web.utilerias.render; + +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zk.ui.event.EventListener; +import org.zkoss.zul.Button; +import org.zkoss.zul.Listcell; +import org.zkoss.zul.Listitem; +import org.zkoss.zul.ListitemRenderer; + +import com.rjconsultores.ventaboletos.entidad.Usuario; +import com.rjconsultores.ventaboletos.web.utilerias.MyListbox; + +public class RenderRelatorioCheckinUsuariosSelecionados implements ListitemRenderer { + + public void render(Listitem lstm, Object o) throws Exception { + Usuario usuario = (Usuario) o; + + Listcell lc = new Listcell(usuario.getClaveUsuario().toString()); + lc.setParent(lstm); + + lc = new Listcell(usuario.getNombusuario()); + lc.setParent(lstm); + + Button btn = new Button(); + + lc = new Listcell(); + lc.setParent(lstm); + + btn.setWidth("16"); + btn.setHeight("16"); + btn.setImage("/gui/img/remove.png"); + + btn.addEventListener("onClick", new EventListener() { + @Override + public void onEvent(Event event) throws Exception { + MyListbox listBox = (MyListbox) event.getTarget().getParent().getParent().getParent(); + Listitem listItem = (Listitem) event.getTarget().getParent().getParent(); + listBox.removeItem((Usuario) listItem.getAttribute("data")); + } + }); + + lc.appendChild(btn); + lstm.setAttribute("data", usuario); + } +} + diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index fcf49a139..12fca0f95 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -5397,7 +5397,11 @@ relatorioOrigemDestinoController.MSG.trechoSemMovimento = Para exibir tramos sin # Relatorio Checkin relatorioCheckinController.lbBilheteiro.label = Asesor -relatorioCheckinController.MSG.erroPeriodo = Los campos Fecha de inicio y Fecha de finalización deben ser completado +relatorioCheckinController.MSG.erroPeriodo = Los campos Fecha de inicio y Fecha de finalización deben ser completado +relatorioCheckinController.btnPesquisa.label = Buscar +relatorioCheckinController.btnLimpar.label = Limpiar +relatorioCheckinController.usuarioCVE.label = CVE +relatorioCheckinController.usuarioNome.label = Nome # Editar Conexion #busquedaConexionController.btnNovo.tooltiptext = Nuevo diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index debfc2221..e41683438 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -5474,6 +5474,10 @@ relatorioOrigemDestinoController.MSG.trechoSemMovimento = Para exibir trechos se # Relatorio Checkin relatorioCheckinController.lbBilheteiro.label = Bilheteiro relatorioCheckinController.MSG.erroPeriodo = Os campos Data Inicial e Data Final devem ser preenchidos +relatorioCheckinController.btnPesquisa.label = Buscar +relatorioCheckinController.btnLimpar.label = Limpar +relatorioCheckinController.usuarioCVE.label = CVE +relatorioCheckinController.usuarioNome.label = Nome # Editar Conexion #busquedaConexionController.btnNovo.tooltiptext = Novo diff --git a/web/gui/relatorios/filtroRelatorioCheckin.zul b/web/gui/relatorios/filtroRelatorioCheckin.zul index 0ca57afcf..0f15579ad 100644 --- a/web/gui/relatorios/filtroRelatorioCheckin.zul +++ b/web/gui/relatorios/filtroRelatorioCheckin.zul @@ -56,11 +56,60 @@ -