From b912535028e234900912ce379a9759a7225d1e7a Mon Sep 17 00:00:00 2001 From: "lucas.calixto" Date: Wed, 29 Mar 2017 12:15:07 +0000 Subject: [PATCH] fixes bug#8750 git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@67341 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioVendasPercurso.java | 120 +++++++++++ .../RelatorioVendasPercurso_es.properties | 24 +++ .../RelatorioVendasPercurso_pt_BR.properties | 24 +++ .../templates/RelatorioVendasPercurso.jasper | Bin 0 -> 30896 bytes .../templates/RelatorioVendasPercurso.jrxml | 188 ++++++++++++++++++ .../RelatorioVendasPercursoBean.java | 53 +++++ .../RelatorioVendasPercursoController.java | 136 +++++++++++++ .../ItemMenuRelatorioVendasPercurso.java | 25 +++ web/WEB-INF/i3-label_es_MX.label | 20 +- web/WEB-INF/i3-label_pt_BR.label | 20 +- .../filtroRelatorioVendasPercurso.zul | 102 ++++++++++ 11 files changed, 710 insertions(+), 2 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPercurso.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPercurso_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPercurso_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPercurso.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPercurso.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPercursoBean.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPercursoController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendasPercurso.java create mode 100644 web/gui/relatorios/filtroRelatorioVendasPercurso.zul diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPercurso.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPercurso.java new file mode 100644 index 000000000..c099e63ff --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioVendasPercurso.java @@ -0,0 +1,120 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.HashMap; +import java.util.List; + +import org.apache.commons.lang.StringUtils; + +import com.rjconsultores.ventaboletos.entidad.Estacion; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioVendasPercursoBean; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioVendasPercurso extends Relatorio { + + private List lsPuntoVenta; + private Date fecInicio; + private Date fecFinal; + private Estacion estacion; + private Integer corridaId; + + public RelatorioVendasPercurso(Connection conexao, List lsPuntoVenta, Date fecInicio, Date fecFinal, Estacion estacion, Integer corridaId) { + super(new HashMap(), conexao); + this.lsPuntoVenta = lsPuntoVenta; + this.fecInicio = fecInicio; + this.fecFinal = fecFinal; + this.estacion = estacion; + this.corridaId = corridaId; + } + + @Override + protected void processaParametros() throws Exception { + + NamedParameterStatement namedParameterStatement = new NamedParameterStatement(getConexao(), getSql()); + + List lsPuntoVentaId = new ArrayList(); + List lsNombPuntoVenta = new ArrayList(); + for (PuntoVenta puntoVenta : lsPuntoVenta) { + lsPuntoVentaId.add(puntoVenta.getPuntoventaId()); + lsNombPuntoVenta.add(puntoVenta.getNombpuntoventa()); + } + namedParameterStatement.setString("lsPuntoVentaId", StringUtils.join(lsPuntoVentaId.toArray(), ',')); + this.parametros.put("lsNombPuntoVenta", StringUtils.join(lsNombPuntoVenta.toArray(new String[0]), ", ")); + + namedParameterStatement.setInt("estacionId", estacion.getEstacionId()); + this.parametros.put("estacion", estacion.toString()); + + SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy"); + if (fecInicio != null) { + namedParameterStatement.setDate("fecInicio", new java.sql.Date(fecInicio.getTime())); + this.parametros.put("fecInicio", dateFormat.format(fecInicio)); + } + + if (fecFinal != null) { + namedParameterStatement.setDate("fecFinal", new java.sql.Date(fecFinal.getTime())); + this.parametros.put("fecFinal", dateFormat.format(fecFinal)); + } + + if (corridaId != null) { + namedParameterStatement.setString("corridaId", "%" + corridaId + "%"); + } + + ResultSet resultSet = namedParameterStatement.executeQuery(); + List resultBean = transformResultSet(resultSet); + setCollectionDataSource(new JRBeanCollectionDataSource(resultBean)); + + } + + private List transformResultSet(ResultSet resultSet) throws SQLException { + List resultBean = new ArrayList(); + while (resultSet.next()) { + RelatorioVendasPercursoBean bean = new RelatorioVendasPercursoBean(); + bean.setCorridaId(resultSet.getInt("CORRIDA_ID")); + bean.setNumFolioSistema(resultSet.getString("NUMFOLIOSISTEMA")); + bean.setOrigen(resultSet.getString("ORIGEN")); + bean.setDestino(resultSet.getString("DESTINO")); + bean.setValor(resultSet.getBigDecimal("VALOR")); + resultBean.add(bean); + } + return resultBean; + } + + private String getSql() { + + StringBuilder sql = new StringBuilder("SELECT C.CORRIDA_ID, C.NUMFOLIOSISTEMA, O.DESCPARADA ORIGEN, D.DESCPARADA DESTINO, " + + "(C.PRECIOPAGADO + C.IMPORTETAXAEMBARQUE + C.IMPORTESEGURO + C.IMPORTEPEDAGIO + C.IMPORTEOUTROS) AS VALOR " + + "FROM CAJA C " + + "JOIN PARADA O ON C.ORIGEN_ID = O.PARADA_ID " + + "JOIN PARADA D ON C.DESTINO_ID = D.PARADA_Id " + + "WHERE " + + "USUARIOREMOTO_ID IS NOT NULL " + + "AND INDREMOTOINVERSO = 1 " + + "AND C.PUNTOVENTA_ID IN(:lsPuntoVentaId) " + + "AND C.ESTACION_ID = :estacionId "); + + if (fecInicio != null) { + sql.append("AND C.FECHORVENTA >= :fecInicio "); + } + + if (fecFinal != null) { + sql.append("AND C.FECHORVENTA <= :fecFinal "); + } + + if (corridaId != null) { + sql.append("AND C.CORRIDA_ID LIKE :corridaId "); + } + + return sql.toString(); + + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPercurso_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPercurso_es.properties new file mode 100644 index 000000000..76a4c4965 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPercurso_es.properties @@ -0,0 +1,24 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +cabecalho.nome=Relatório Vendas para Comissão +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: +cabecalho.usuario=Usuário: + +label.puntoVenta=Punto de Venda +label.estacion=Estacion + +label.numCorrida=Número da Corrida +label.numFolio=Número da Passagem Digitada +label.origen=Origem +label.destino=Destino +label.valor=Valor da Passagem +label.total=Total \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPercurso_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPercurso_pt_BR.properties new file mode 100644 index 000000000..0f4cb3e72 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioVendasPercurso_pt_BR.properties @@ -0,0 +1,24 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + +#Labels cabeçalho +cabecalho.nome=Relatório de Vendas no Percurso +cabecalho.relatorio=Relatório: +cabecalho.periodo=Período: +cabecalho.periodoA=à +cabecalho.dataHora=Data/Hora: +cabecalho.impressorPor=Impressor por: +cabecalho.pagina=Página +cabecalho.de=de +cabecalho.filtros=Filtros: +cabecalho.usuario=Usuário: + +label.puntoVenta=Ponto de Venda +label.estacion=Estação + +label.numCorrida=Número da Corrida +label.numFolio=Número da Passagem Digitada +label.origen=Origem +label.destino=Destino +label.valor=Valor da Passagem +label.total=Total \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPercurso.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioVendasPercurso.jasper new file mode 100644 index 0000000000000000000000000000000000000000..f4c2af5f92a92fce43a5c292a18ac01309bd206e GIT binary patch literal 30896 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 + + + + + + + + + + + + + + + + + + + + + + + + <band height="97" splitType="Stretch"> + <textField> + <reportElement uuid="43b2c28d-4760-4890-b00d-25e931e79c74" x="0" y="0" width="620" height="20"/> + <textElement markup="none"> + <font size="14" isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[$R{cabecalho.nome}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy HH:mm"> + <reportElement uuid="4d1bcd65-c9a6-44b4-8dca-cc3c4c20c9a5" x="638" y="0" width="164" height="20"/> + <textElement textAlignment="Right"> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="96d6ce56-5bf3-460a-b3ba-a81890a2caed" x="0" y="42" width="104" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$R{label.puntoVenta}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="35e8e5cd-52e2-4f14-bbd7-e3a2233ad637" x="104" y="62" width="139" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{estacion}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="b75cac86-9c93-40ec-b667-afd66f26103d" x="104" y="42" width="139" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{lsNombPuntoVenta}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="4f5a4fd1-5164-4865-8b05-73fe7a5b64e1" x="0" y="62" width="104" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$R{label.estacion}]]></textFieldExpression> + </textField> + <textField> + <reportElement uuid="aef7159d-4131-49d3-85dd-75f63f92c5af" x="0" y="22" width="104" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$R{cabecalho.periodo}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="true"> + <reportElement uuid="62f02d34-2844-48b6-bb97-274de2247bd6" x="104" y="22" width="56" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{fecInicio}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="true"> + <reportElement uuid="e2bf6ff8-8d8e-4bab-bc3d-e1e690d707a0" x="181" y="22" width="56" height="20"/> + <textElement/> + <textFieldExpression><![CDATA[$P{fecFinal}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="true"> + <reportElement uuid="6a9e5919-6b5b-430a-88a6-856957e20dea" x="160" y="22" width="21" height="20"/> + <textElement textAlignment="Center"/> + <textFieldExpression><![CDATA[$R{cabecalho.periodoA}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPercursoBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPercursoBean.java new file mode 100644 index 000000000..bdbe0505c --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioVendasPercursoBean.java @@ -0,0 +1,53 @@ +package com.rjconsultores.ventaboletos.relatorios.utilitarios; + +import java.math.BigDecimal; + +public class RelatorioVendasPercursoBean { + + private Integer corridaId; + private String numFolioSistema; + private String origen; + private String destino; + private BigDecimal valor; + + public Integer getCorridaId() { + return corridaId; + } + + public void setCorridaId(Integer corridaId) { + this.corridaId = corridaId; + } + + public String getNumFolioSistema() { + return numFolioSistema; + } + + public void setNumFolioSistema(String numfoliosistema) { + this.numFolioSistema = numfoliosistema; + } + + public String getOrigen() { + return origen; + } + + public void setOrigen(String origen) { + this.origen = origen; + } + + public String getDestino() { + return destino; + } + + public void setDestino(String destino) { + this.destino = destino; + } + + public BigDecimal getValor() { + return valor; + } + + public void setValor(BigDecimal valor) { + this.valor = valor; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPercursoController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPercursoController.java new file mode 100644 index 000000000..30934a0d0 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioVendasPercursoController.java @@ -0,0 +1,136 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import javax.sql.DataSource; + +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.zkplus.databind.BindingListModelList; +import org.zkoss.zul.Combobox; +import org.zkoss.zul.Datebox; +import org.zkoss.zul.Intbox; +import org.zkoss.zul.Paging; + +import com.rjconsultores.ventaboletos.entidad.Estacion; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioVendasPercurso; +import com.rjconsultores.ventaboletos.service.EstacionService; +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; + +@Controller("relatorioVendasPercursoController") +@Scope("prototype") +public class RelatorioVendasPercursoController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 143203038399530349L; + + private MyTextbox txtNombrePuntoVenta; + private Paging pagingPuntoVenta; + private MyListbox puntoVentaList; + private MyListbox puntoVentaSelList; + + private Datebox fecInicio; + private Datebox fecFinal; + + private Combobox cmbEstacion; + private List lsEstacion; + + private Intbox txtIdCorrida; + + @Autowired + private DataSource dataSourceRead; + + @Autowired + private EstacionService estacionService; + + @Autowired + private transient PagedListWrapper plwPuntoVenta; + + @Override + public void doAfterCompose(Component comp) throws Exception { + lsEstacion = new ArrayList(); + super.doAfterCompose(comp); + } + + @SuppressWarnings("unchecked") + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + + Estacion estacion = (Estacion) cmbEstacion.getSelectedItem().getValue(); + List lsPuntoVenta = (List) (Object) puntoVentaSelList.getListData(); + Integer corridaId = txtIdCorrida.getValue(); + + RelatorioVendasPercurso relatorio = new RelatorioVendasPercurso(dataSourceRead.getConnection(), lsPuntoVenta, fecInicio.getValue(), fecFinal.getValue(), estacion, corridaId); + + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("indexController.mniRelatorioVendasComissao.label"), args, MODAL); + + } + + public void onClick$btnPesquisa(Event ev) { + HibernateSearchObject puntoVentaBusqueda = + new HibernateSearchObject(PuntoVenta.class, pagingPuntoVenta.getPageSize()); + + puntoVentaBusqueda.addFilterILike("nombpuntoventa", "%" + txtNombrePuntoVenta.getValue() + "%"); + puntoVentaBusqueda.addFilterEqual("activo", Boolean.TRUE); + + puntoVentaBusqueda.addSortAsc("nombpuntoventa"); + + puntoVentaBusqueda.addFilterEqual("activo", Boolean.TRUE); + + plwPuntoVenta.init(puntoVentaBusqueda, puntoVentaList, pagingPuntoVenta); + + if (puntoVentaList.getData().length == 0) { + try { + Messagebox.show(Labels.getLabel("MSG.ningunRegistro"), + Labels.getLabel("relatorioVendasPercursoController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + ex.printStackTrace(); + } + } + } + + public void onClick$btnLimpar(Event ev) { + puntoVentaList.setData(new ArrayList()); + txtNombrePuntoVenta.setText(""); + } + + public void onDoubleClick$puntoVentaSelList(Event ev) { + PuntoVenta puntoVenta = (PuntoVenta) puntoVentaSelList.getSelected(); + puntoVentaSelList.removeItem(puntoVenta); + updateLsEstacion(); + } + + public void onDoubleClick$puntoVentaList(Event ev) { + PuntoVenta puntoVenta = (PuntoVenta) puntoVentaList.getSelected(); + puntoVentaSelList.addItemNovo(puntoVenta); + updateLsEstacion(); + } + + @SuppressWarnings("unchecked") + public void updateLsEstacion() { + lsEstacion = estacionService.buscarEstaciones(puntoVentaSelList.getListData()); + cmbEstacion.setSelectedIndex(-1); + cmbEstacion.setModel(new BindingListModelList(lsEstacion, true)); + } + + public List getLsEstacion() { + return lsEstacion; + } + +} \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendasPercurso.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendasPercurso.java new file mode 100644 index 000000000..815751bf9 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioVendasPercurso.java @@ -0,0 +1,25 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios; + +import org.zkoss.util.resource.Labels; + +import com.rjconsultores.ventaboletos.web.utilerias.PantallaUtileria; +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class ItemMenuRelatorioVendasPercurso extends DefaultItemMenuSistema { + + public ItemMenuRelatorioVendasPercurso() { + super("indexController.mniRelatorioVendasPercurso.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIOVENDASPERCURSO"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioVendasPercurso.zul", + Labels.getLabel("relatorioVendasPercursoController.window.title"), getArgs(), desktop); + + } +} diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index bf3534ddb..8575cc089 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -6939,4 +6939,22 @@ auditoriaController.nombmaterno.label = Sobrenome Materno auditoriaController.perfil.label = Perfil auditoriaController.btnPesquisa.label = Pesquisa auditoriaController.empresa.label = Empresa -auditoriaController.puntoventa.label = Ponto de Venda(Agência) \ No newline at end of file +auditoriaController.puntoventa.label = Ponto de Venda(Agência) + +indexController.mniRelatorioVendasPercurso.label=Vendas no Percurso +relatorioVendasPercursoController.window.title=Relatório de Vendas no Percurso +relatorioVendasPercursoController.lbPuntoVenta.value=Punto de Venta +relatorioVendasPercursoController.btnPesquisa.label=Búsqueda +relatorioVendasPercursoController.btnLimpar.label=Limpiar +relatorioVendasPercursoController.lbEmpresa.value=Empresa +relatorioVendasPercursoController.lbNumero.value=Numero punto de venta +relatorioVendasPercursoController.dataInicial.value=Fecha Inicial +relatorioVendasPercursoController.dataFinal.value=Fecha Final +relatorioVendasPercursoController.estacion.label=Estación +relatorioVendasPercursoController.corridaId.label=Servicio + +indexController.mniRelatorioBaixasVendasInternet.label=Baixas Vendas Internet +relatorioBaixasVendasInternetControllerr.window.title=Relatório de Baixas Vendas Internet +relatorioBaixasVendasInternetController.lbFecInicio.value=Fecha Início +relatorioBaixasVendasInternetController.lbFecFinal.value=Fecha Final +relatorioBaixasVendasInternetController.lbPuntoVenta.value=Punto Venta \ No newline at end of file diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index db93ccd4e..79309d47f 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -7112,4 +7112,22 @@ auditoriaController.nombpaterno.label = Sobrenome Paterno auditoriaController.nombmaterno.label = Sobrenome Materno auditoriaController.btnPesquisa.label = Pesquisa auditoriaController.empresa.label = Empresa -auditoriaController.puntoventa.label = Ponto de Venda(Agência) \ No newline at end of file +auditoriaController.puntoventa.label = Ponto de Venda(Agência) + +indexController.mniRelatorioVendasPercurso.label=Vendas no Percurso +relatorioVendasPercursoController.window.title=Relatório de Vendas no Percurso +relatorioVendasPercursoController.lbPuntoVenta.value=Ponto de Venda +relatorioVendasPercursoController.btnPesquisa.label=Pesquisa +relatorioVendasPercursoController.btnLimpar.label=Limpar +relatorioVendasPercursoController.lbEmpresa.value=Empresa +relatorioVendasPercursoController.lbNumero.value=Número Ponto de Venda +relatorioVendasPercursoController.dataInicial.value=Data Inicial +relatorioVendasPercursoController.dataFinal.value=Data Final +relatorioVendasPercursoController.estacion.label=Estação +relatorioVendasPercursoController.corridaId.label=Serviço + +indexController.mniRelatorioBaixasVendasInternet.label=Baixas Vendas Internet +relatorioBaixasVendasInternetControllerr.window.title=Relatório de Baixas Vendas Internet +relatorioBaixasVendasInternetController.lbFecInicio.value=Data Início +relatorioBaixasVendasInternetController.lbFecFinal.value=Data Fim +relatorioBaixasVendasInternetController.lbPuntoVenta.value=Ponto de Venda \ No newline at end of file diff --git a/web/gui/relatorios/filtroRelatorioVendasPercurso.zul b/web/gui/relatorios/filtroRelatorioVendasPercurso.zul new file mode 100644 index 000000000..bad3d8a33 --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioVendasPercurso.zul @@ -0,0 +1,102 @@ + + + + + + + + + + + + + + + + + +