From 1f87db2a6b5378f963f86346f2311650356c41dc Mon Sep 17 00:00:00 2001 From: "lucas.taia" Date: Thu, 2 May 2019 20:53:42 +0000 Subject: [PATCH] fixes bug#13945 dev:lucas qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@92764 d1611594-4594-4d17-8e1d-87c2c4800839 --- ...adroDemonstrativoMovimentoPassageiros.java | 116 +++++++++ ...roDemonstrativoMovimentoPassageiros.jasper | Bin 0 -> 33111 bytes ...droDemonstrativoMovimentoPassageiros.jrxml | 246 ++++++++++++++++++ ...trativoMovimentoPassageirosController.java | 174 +++++++++++++ ...adroDemonstrativoMovimentoPassageiros.java | 24 ++ ...adroDemonstrativoMovimentoPassageiros.java | 24 ++ .../utilerias/menu/menu_original.properties | 1 + web/WEB-INF/i3-label_es_MX.label | 2 + web/WEB-INF/i3-label_pt_BR.label | 2 + ...adroDemonstrativoDoMovimentoPassageiro.zul | 58 +++++ 10 files changed, 647 insertions(+) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioQuadroDemonstrativoMovimentoPassageiros.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioQuadroDemonstrativoMovimentoPassageiros.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioQuadroDemonstrativoMovimentoPassageiros.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioQuadroDemonstrativoMovimentoPassageirosController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuQuadroDemonstrativoMovimentoPassageiros.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioQuadroDemonstrativoMovimentoPassageiros.java create mode 100644 web/gui/relatorios/filtroQuadroDemonstrativoDoMovimentoPassageiro.zul diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioQuadroDemonstrativoMovimentoPassageiros.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioQuadroDemonstrativoMovimentoPassageiros.java new file mode 100644 index 000000000..93bc14245 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioQuadroDemonstrativoMovimentoPassageiros.java @@ -0,0 +1,116 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.util.HashMap; +import java.util.Map; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; + +public class RelatorioQuadroDemonstrativoMovimentoPassageiros extends Relatorio { + + public RelatorioQuadroDemonstrativoMovimentoPassageiros(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new ArrayDataSource(this) { + + public void initDados() throws Exception { + Connection conexao = this.relatorio.getConexao(); + Map parametros = this.relatorio.getParametros(); + + String dataDe = (String) parametros.get("DATA_DE"); + dataDe = dataDe + " 00:00:00"; + String dataAte = (String) parametros.get("DATA_ATE"); + dataAte = dataAte + " 23:59:59"; + + String linhasIds = (String) parametros.get("LINHAS"); + String empresaId = (String) parametros.get("EMPRESA_IDS"); + + String sql = getSql(dataDe, dataAte, linhasIds, empresaId); + + PreparedStatement ps = conexao.prepareStatement(sql.toString()); + + ResultSet rset = ps.executeQuery(); + + while (rset.next()) { + Map dataResult = new HashMap(); + + dataResult.put("origem", rset.getString("origem")); + dataResult.put("destino", rset.getString("destino")); + dataResult.put("km", rset.getFloat("km")); + dataResult.put("totalida", rset.getLong("totalida")); + dataResult.put("totalvolta", rset.getLong("totalvolta")); + + this.dados.add(dataResult); + } + + this.resultSet = rset; + } + }); + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql(String dataDe, String dataAte, String linhasIds, + String empresaId) { + StringBuilder sql = new StringBuilder(); + + sql.append(" SELECT "); + sql.append(" r.cantasientos, "); + sql.append(" e.nombempresa empresa, "); + sql.append(" r.descruta linha, "); + sql.append(" ori.descparada AS origem, "); + sql.append(" des.descparada AS destino, "); + sql.append(" SUM(nvl(tr.cantkmreal,0) ) AS km, "); + sql.append(" SUM( "); + sql.append(" CASE "); + sql.append(" WHEN(r.indsentidoida = 1) THEN 1 "); + sql.append(" ELSE 0 "); + sql.append(" END "); + sql.append(" ) AS totalida, "); + sql.append(" SUM( "); + sql.append(" CASE "); + sql.append(" WHEN(r.indsentidoida = 0) THEN 1 "); + sql.append(" ELSE 0 "); + sql.append(" END "); + sql.append(" ) AS totalvolta "); + sql.append(" FROM "); + sql.append(" boleto b "); + sql.append(" JOIN empresa e ON e.empresa_id = b.empresacorrida_id "); + sql.append(" JOIN categoria ca ON b.categoria_id = ca.categoria_id "); + sql.append(" JOIN parada ori ON ori.parada_id = b.origen_id "); + sql.append(" JOIN parada des ON des.parada_id = b.destino_id "); + sql.append(" JOIN ruta r ON r.ruta_id = b.ruta_id "); + sql.append(" INNER JOIN corrida_tramo ct ON ct.feccorrida = b.feccorrida "); + sql.append(" AND ct.corrida_id = b.corrida_id "); + sql.append(" INNER JOIN tramo tr ON tr.tramo_id = ct.tramo_id "); + sql.append(" WHERE b.empresacorrida_id IN (").append(empresaId).append(") "); + + sql.append(" AND b.indstatusboleto <> 'C' "); + + if (!linhasIds.equals("0")) { + sql.append(" AND r.ruta_id IN (").append(linhasIds).append(") "); + } + + sql.append(" AND b.feccorrida BETWEEN To_date('").append(dataDe).append("', 'dd/mm/yyyy HH24:mi:ss') "); + sql.append(" AND To_date('").append(dataAte).append("', 'dd/mm/yyyy HH24:mi:ss') "); + + sql.append(" GROUP BY "); + sql.append(" r.cantasientos, "); + sql.append(" e.nombempresa, "); + sql.append(" r.numruta, "); + sql.append(" r.descruta, "); + sql.append(" ori.descparada, "); + sql.append(" des.descparada "); + sql.append(" ORDER BY "); + sql.append(" r.descruta, "); + sql.append(" origem, "); + sql.append(" destino "); + + return sql.toString(); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioQuadroDemonstrativoMovimentoPassageiros.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioQuadroDemonstrativoMovimentoPassageiros.jasper new file mode 100644 index 0000000000000000000000000000000000000000..d34b867ea0fdb1d6dfe288615e67e0f1d00f1fd3 GIT binary patch literal 33111 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 literal 0 HcmV?d00001 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioQuadroDemonstrativoMovimentoPassageiros.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioQuadroDemonstrativoMovimentoPassageiros.jrxml new file mode 100644 index 000000000..b77d45c68 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioQuadroDemonstrativoMovimentoPassageiros.jrxml @@ -0,0 +1,246 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="176" splitType="Stretch"> + <staticText> + <reportElement mode="Transparent" x="0" y="0" width="459" height="41" forecolor="#000000" backcolor="#FFFFFF" uuid="65b24124-38c3-43b7-8586-bdd577662ef7"/> + <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="16" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[QUADRO DEMONSTRATIVO DO MOVIMENTO DE PASSAGEIROS]]></text> + </staticText> + <textField evaluationTime="Report" pattern="" isBlankWhenNull="false"> + <reportElement mode="Transparent" x="728" y="25" width="21" height="16" forecolor="#000000" backcolor="#FFFFFF" uuid="2f4f1314-9363-4e6d-822f-c85c1890998b"/> + <textElement textAlignment="Center" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$V{PAGE_NUMBER}]]></textFieldExpression> + </textField> + <textField pattern="dd/MM/yyyy HH:mm" isBlankWhenNull="false"> + <reportElement mode="Transparent" x="645" y="0" width="104" height="25" forecolor="#000000" backcolor="#FFFFFF" uuid="ad4bbfb8-582d-4aa2-904d-8dfe60e54442"/> + <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <textField pattern="" isBlankWhenNull="false"> + <reportElement mode="Transparent" x="460" y="25" width="267" height="16" forecolor="#000000" backcolor="#FFFFFF" uuid="8601bf20-f5f8-4fed-9445-7adfe580d236"/> + <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA["Página " + $V{PAGE_NUMBER}+ " de " + $V{PAGE_NUMBER}]]></textFieldExpression> + </textField> + <line> + <reportElement x="-1" y="48" width="750" height="1" uuid="3c577f75-c6d6-4c11-a846-bfe71a8a1b42"/> + </line> + <line> + <reportElement positionType="Float" x="-1" y="160" width="750" height="1" uuid="84641d2c-21a5-47f0-b4a8-afe7bf700cb6"/> + </line> + <staticText> + <reportElement x="4" y="54" width="58" height="20" uuid="f7af9b8b-6be6-404b-84d3-e99f167d7ac7"/> + <textElement> + <font isBold="true"/> + </textElement> + <text><![CDATA[Empresa:]]></text> + </staticText> + <textField> + <reportElement x="62" y="54" width="509" height="20" uuid="d7298e04-4d17-4960-b5c0-fcc5cc40eab2"/> + <textFieldExpression><![CDATA[$P{EMPRESA}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="4" y="71" width="247" height="20" uuid="6c1d1900-e316-47a2-8456-1127388074c8"/> + <textElement> + <font isBold="true"/> + </textElement> + <textFieldExpression><![CDATA["Período: " + $P{DATA_DE} + " a " + $P{DATA_ATE}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="4" y="133" width="46" height="20" uuid="60219e34-b23c-466a-9a4b-f6ceaa94b040"/> + <textElement> + <font isBold="true"/> + </textElement> + <text><![CDATA[Linha:]]></text> + </staticText> + <textField> + <reportElement x="50" y="133" width="509" height="20" uuid="cfb9d8c8-7731-479f-9449-df31087da23a"/> + <textFieldExpression><![CDATA[$P{DESC_LINHAS_SELECIONADAS}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="4" y="91" width="73" height="20" uuid="6ccd1b99-e792-4636-9ec2-5be200b4d512"/> + <textElement> + <font isBold="true"/> + </textElement> + <text><![CDATA[Tipo de Data:]]></text> + </staticText> + <staticText> + <reportElement x="77" y="91" width="73" height="20" uuid="87e23006-8496-4b03-af91-dec91dd19723"/> + <textElement> + <font isBold="false"/> + </textElement> + <text><![CDATA[SERVIÇO]]></text> + </staticText> + <staticText> + <reportElement x="4" y="111" width="73" height="20" uuid="a5eab335-6bbc-4235-b503-a6dafbf0cb70"/> + <textElement> + <font isBold="true"/> + </textElement> + <text><![CDATA[Lugar Ofer:]]></text> + </staticText> + <textField> + <reportElement x="77" y="113" width="509" height="20" uuid="4302c386-53e8-473d-99da-4f26c1d8bc38"/> + <textFieldExpression><![CDATA[$P{CANTASIENTOS}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioQuadroDemonstrativoMovimentoPassageirosController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioQuadroDemonstrativoMovimentoPassageirosController.java new file mode 100644 index 000000000..72b050a32 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioQuadroDemonstrativoMovimentoPassageirosController.java @@ -0,0 +1,174 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.text.SimpleDateFormat; +import java.util.Date; +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.zk.ui.Component; +import org.zkoss.zk.ui.event.Event; +import org.zkoss.zul.Combobox; +import org.zkoss.zul.Comboitem; +import org.zkoss.zul.Datebox; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Ruta; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioQuadroDemonstrativoMovimentoPassageiros; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.service.RutaService; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +@Controller("relatorioQuadroDemonstrativoMovimentoPassageirosController") +@Scope("prototype") +public class RelatorioQuadroDemonstrativoMovimentoPassageirosController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + @Autowired + private DataSource dataSourceRead; + @Autowired + private EmpresaService empresaService; + @Autowired + private RutaService rutaService; + private List lsEmpresa; + private List lsLinhas; + private Datebox datInicial; + private Datebox datFinal; + + private MyComboboxEstandar cmbLinha; + private Combobox cmbEmpresa; + + @Override + public void doAfterCompose(Component comp) throws Exception { + lsEmpresa = empresaService.obtenerTodos(); + lsLinhas = rutaService.obtenerTodos(); + super.doAfterCompose(comp); + } + + @SuppressWarnings({ "unchecked", "rawtypes" }) + public void onClick$btnExecutarRelatorio(Event ev) throws InterruptedException, Exception { + + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + Date dataDe = datInicial.getValue(); + Date dataAte = datFinal.getValue(); + + Map parametros = new HashMap(); + parametros.put("DATA_DE", sdf.format(dataDe)); + parametros.put("DATA_ATE", sdf.format(dataAte)); + + if (cmbLinha.getSelectedItem() != null) { + if (!cmbLinha.getSelectedItem().getValue().equals("-1")) { + Ruta ruta = ((Ruta) cmbLinha.getSelectedItem().getValue()); + parametros.put("LINHAS", (ruta.getRutaId().toString())); + parametros.put("DESC_LINHAS_SELECIONADAS", (ruta.getDescruta())); + parametros.put("CANTASIENTOS", (ruta.getCantAsientos() != null ? ruta.getCantAsientos().toString() : "")); + } + } + + Comboitem cbiEmpresa = cmbEmpresa.getSelectedItem(); + String empresaId; + String empresaDesc = ""; + if (cbiEmpresa != null) { + Empresa empresa = (Empresa) cbiEmpresa.getValue(); + empresaId = empresa.getEmpresaId().toString(); + empresaDesc = empresa.getNombempresa(); + } else { + empresaId = "0"; + for (int i = 0; i < lsEmpresa.size(); i++) { + Empresa empresa = lsEmpresa.get(i); + empresaId = empresaId + "," + empresa.getEmpresaId(); + } + } + parametros.put("EMPRESA", empresaDesc); + parametros.put("EMPRESA_IDS", empresaId); + + Relatorio relatorio = new RelatorioQuadroDemonstrativoMovimentoPassageiros(parametros, dataSourceRead.getConnection()); + + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("relatorioLinhaOperacionalController.window.title"), args, MODAL); + } + + public DataSource getDataSourceRead() { + return dataSourceRead; + } + + public void setDataSourceRead(DataSource dataSourceRead) { + this.dataSourceRead = dataSourceRead; + } + + public EmpresaService getEmpresaService() { + return empresaService; + } + + public void setEmpresaService(EmpresaService empresaService) { + this.empresaService = empresaService; + } + + public RutaService getRutaService() { + return rutaService; + } + + public void setRutaService(RutaService rutaService) { + this.rutaService = rutaService; + } + + public List getLsEmpresa() { + return lsEmpresa; + } + + public void setLsEmpresa(List lsEmpresa) { + this.lsEmpresa = lsEmpresa; + } + + public List getLsLinhas() { + return lsLinhas; + } + + public void setLsLinhas(List lsLinhas) { + this.lsLinhas = lsLinhas; + } + + public Datebox getDatInicial() { + return datInicial; + } + + public void setDatInicial(Datebox datInicial) { + this.datInicial = datInicial; + } + + public Datebox getDatFinal() { + return datFinal; + } + + public void setDatFinal(Datebox datFinal) { + this.datFinal = datFinal; + } + + public MyComboboxEstandar getCmbLinha() { + return cmbLinha; + } + + public void setCmbLinha(MyComboboxEstandar cmbLinha) { + this.cmbLinha = cmbLinha; + } + + public Combobox getCmbEmpresa() { + return cmbEmpresa; + } + + public void setCmbEmpresa(Combobox cmbEmpresa) { + this.cmbEmpresa = cmbEmpresa; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuQuadroDemonstrativoMovimentoPassageiros.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuQuadroDemonstrativoMovimentoPassageiros.java new file mode 100644 index 000000000..76aa6a8c5 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuQuadroDemonstrativoMovimentoPassageiros.java @@ -0,0 +1,24 @@ +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 ItemMenuQuadroDemonstrativoMovimentoPassageiros extends DefaultItemMenuSistema { + + public ItemMenuQuadroDemonstrativoMovimentoPassageiros() { + super("indexController.mniRelatorioLinhaOperacional.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIOLINHAOPERACIONAL"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroQuadroDemonstrativoDoMovimentoPassageiro.zul", + Labels.getLabel("relatorioLinhaOperacionalController.window.title"), getArgs() ,desktop); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioQuadroDemonstrativoMovimentoPassageiros.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioQuadroDemonstrativoMovimentoPassageiros.java new file mode 100644 index 000000000..c6a637461 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioQuadroDemonstrativoMovimentoPassageiros.java @@ -0,0 +1,24 @@ +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 ItemMenuRelatorioQuadroDemonstrativoMovimentoPassageiros extends DefaultItemMenuSistema { + + public ItemMenuRelatorioQuadroDemonstrativoMovimentoPassageiros() { + super("indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIOLINHAOPERACIONAL"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroQuadroDemonstrativoDoMovimentoPassageiro.zul", + Labels.getLabel("relatorioLinhaOperacionalController.window.title"), getArgs() ,desktop); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties index a008e322b..c6b8fe659 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/menu_original.properties @@ -156,6 +156,7 @@ analitico.gerenciais.operacionais.demandas=com.rjconsultores.ventaboletos.web.ut analitico.gerenciais.operacionais.embarqueLocalidade=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioEmbarqueLocalidade analitico.gerenciais.operacionais.remarcacaoTransferencia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioRemarcacaoPassagensTransferencia analitico.gerenciais.estatisticos=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.estatisticos.SubMenuRelatorioEstatisticos +analitico.gerenciais.estatisticos.quadroDemonstrativoPassageiro=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioQuadroDemonstrativoMovimentoPassageiros analitico.gerenciais.estatisticos.receitaLinhaOperacional=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioLinhaOperacional analitico.gerenciais.estatisticos.trechoAgencia=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioTrechoVendido analitico.gerenciais.estatisticos.passageirosViajar=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioPassageirosViajar diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index f3d18668e..bbd30af42 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -258,6 +258,8 @@ indexController.mniRelatoriosPacote.label = Reportes paquetes indexController.mniIntegracion.bgm.label = BGM indexController.mniRelatorioEmbarqueLocalidade.label=Relatório Embarque por Localidade +indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label = Quadro Demonstrativo Movimento Passageiros + indexController.mniRelatorios.label = Reportes indexController.mniRelatorioAproveitamento.label = Aprovechamiento indexController.mniRelatorioArquivoBGM.label = Arquivo BGM diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index c59f05303..f8f6c27a0 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -263,6 +263,8 @@ indexController.mniRelatoriosPacote.label = Relatórios Pacote indexController.mniIntegracion.bgm.label = BGM indexController.mniRelatorioEmbarqueLocalidade.label=Relatório Embarque por Localidade +indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label = Quadro Demonstrativo Movimento Passageiros + indexController.mniRelatorios.label = Relatórios indexController.mniRelatorioAproveitamento.label = Aproveitamento indexController.mniRelatorioArquivoBGM.label = Arquivo BGM diff --git a/web/gui/relatorios/filtroQuadroDemonstrativoDoMovimentoPassageiro.zul b/web/gui/relatorios/filtroQuadroDemonstrativoDoMovimentoPassageiro.zul new file mode 100644 index 000000000..aa5c2d2e8 --- /dev/null +++ b/web/gui/relatorios/filtroQuadroDemonstrativoDoMovimentoPassageiro.zul @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +