From dddb8850b59b528ef3a122da71cbd8b06a396c36 Mon Sep 17 00:00:00 2001 From: "wallace.henrique" Date: Thu, 17 Oct 2024 15:55:44 -0300 Subject: [PATCH] fixes bug#AL-4327 --- pom.xml | 4 +- ...atorioMovimentoMensalPassageiroCeturb.java | 234 ++++++++++++ ...imentoMensalPassageiroCeturb_es.properties | 4 + ...ntoMensalPassageiroCeturb_pt_BR.properties | 4 + ...orioMovimentoMensalPassageiroCeturb.jasper | Bin 0 -> 38408 bytes ...torioMovimentoMensalPassageiroCeturb.jrxml | 360 ++++++++++++++++++ ...mentoMensalPassageiroCeturbController.java | 188 +++++++++ .../ceturb/SubMenuRelatorioCeturb.java | 17 + ...nuRelatorioMovimentoMensalPassageiros.java | 24 ++ .../utilerias/menu/menu_original.properties | 2 + web/WEB-INF/i3-label_en.label | 2 + web/WEB-INF/i3-label_es_MX.label | 3 + web/WEB-INF/i3-label_fr_FR.label | 2 + web/WEB-INF/i3-label_pt_BR.label | 2 + ...latorioMovimentoMensalPassageiroCeturb.zul | 58 +++ 15 files changed, 902 insertions(+), 2 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentoMensalPassageiroCeturb.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoMensalPassageiroCeturb.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoMensalPassageiroCeturb.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMovimentoMensalPassageiroCeturbController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/analitico/gerenciais/ceturb/SubMenuRelatorioCeturb.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMovimentoMensalPassageiros.java create mode 100644 web/gui/relatorios/filtroRelatorioMovimentoMensalPassageiroCeturb.zul diff --git a/pom.xml b/pom.xml index 5733c4bf1..7173d9628 100644 --- a/pom.xml +++ b/pom.xml @@ -4,12 +4,12 @@ 4.0.0 br.com.rjconsultores ventaboletosadm - 1.158.1 + 1.159.0 war 1.119.0 - 1.100.1 + 1.101.0 UTF-8 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentoMensalPassageiroCeturb.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentoMensalPassageiroCeturb.java new file mode 100644 index 000000000..04cd0b394 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioMovimentoMensalPassageiroCeturb.java @@ -0,0 +1,234 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.math.BigDecimal; +import java.sql.Connection; +import java.sql.ResultSet; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.utilerias.MoneyHelper; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +public class RelatorioMovimentoMensalPassageiroCeturb extends Relatorio { + + public RelatorioMovimentoMensalPassageiroCeturb(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new ArrayDataSource(this) { + + @SuppressWarnings("rawtypes") + public void initDados() throws Exception { + Connection conexao = this.relatorio.getConexao(); + Map parametros = this.relatorio.getParametros(); + String dataDe = (String) parametros.get("DATA_DE"), dataAte = (String) parametros.get("DATA_ATE"), linhasIds = null; + Boolean isLinhas = false; + Integer empresaId = null; + List> dadosOrdenados = new ArrayList>(); + + if (parametros.get("LINHAS") != null) { + linhasIds = (String) parametros.get("LINHAS"); + isLinhas = true; + } + if (parametros.get("EMPRESA_IDS") != null) { + empresaId = Integer.parseInt((String) parametros.get("EMPRESA_IDS")); + } + String sql = getSql(isLinhas); + + NamedParameterStatement ps = new NamedParameterStatement(conexao, sql.toString()); + SimpleDateFormat sdf = new SimpleDateFormat("dd/MM/yyyy"); + + ps.setInt("empresa_id", empresaId); + if (isLinhas) { + ps.setString("linhas_id", linhasIds); + } + ps.setTimestamp("dataIni", new java.sql.Timestamp(sdf.parse(dataDe).getTime())); + ps.setTimestamp("dataFim", new java.sql.Timestamp(sdf.parse(dataAte).getTime())); + ResultSet rset = ps.executeQuery(); + BigDecimal valorTotalKMLinha = BigDecimal.ZERO; + long qtdViagens = 0; + + + while (rset.next()) { + boolean agrupar = false; + Map dataResult = new HashMap(); + + dataResult.put("tarifa", rset.getBigDecimal("tarifa")); + 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")); + dataResult.put("totalReceita", rset.getBigDecimal("totalReceita")); + dataResult.put("numRuta", rset.getString("numRuta")); + qtdViagens = qtdViagens + (Long)dataResult.get("totalida") + (Long)dataResult.get("totalvolta"); + + for (Iterator iterator = dadosOrdenados.iterator(); iterator.hasNext();) { + + @SuppressWarnings("unchecked") + Map map = (Map) iterator.next(); + String origem = map.get("origem").toString(); + String destino = map.get("destino").toString(); + String numRuta = map.get("numRuta").toString(); + BigDecimal tarifa = (BigDecimal) map.get("tarifa"); + + Long ida = (Long) map.get("totalida"); + Long volta = (Long) map.get("totalvolta"); + BigDecimal total = (BigDecimal) map.get("totalReceita"); + + if (origem.equals(rset.getString("destino")) + && destino.equals(rset.getString("origem")) + && numRuta.equals(rset.getString("numRuta")) && (tarifa != null && MoneyHelper.isIgual(tarifa, rset.getBigDecimal("tarifa")))) { + agrupar = true; + if (ida == 0) { + map.put("totalida", rset.getLong("totalida")); + total = total.add(limpaNulo(rset.getBigDecimal("totalReceita"))); + map.put("totalReceita", total); + } + else { + map.put("totalvolta", rset.getLong("totalvolta") + volta); + total = total.add(limpaNulo(rset.getBigDecimal("totalReceita"))); + map.put("totalReceita", total); + } + + } + } + + if (!agrupar) { + dadosOrdenados.add(dataResult); + } + valorTotalKMLinha = valorTotalKMLinha.add(limpaNulo(rset.getBigDecimal("km"))); + } + parametros.put("KM_TOTAL", valorTotalKMLinha); + parametros.put("QTD_VIAGENS", qtdViagens); + this.dados.addAll(ordenaListMap(dadosOrdenados)); + this.resultSet = rset; + } + }); + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql(Boolean linhasIds) { + StringBuilder sql = new StringBuilder(); + + sql.append(" SELECT DISTINCT "); + sql.append(" sum(b.preciopagado + b.importepedagio) AS totalReceita, "); + sql.append(" tar.precio AS tarifa, "); + sql.append(" e.nombempresa AS empresa, "); + sql.append(" r.descruta AS linha, "); + sql.append(" r.NUMRUTA, "); + sql.append(" ori.descparada AS origem, "); + sql.append(" des.descparada AS destino, "); + sql.append(" MAX(tr.CANTKMREAL) AS km, "); + sql.append(" COUNT( DISTINCT "); + sql.append(" CASE "); + sql.append(" WHEN(r.indsentidoida = 1) THEN b.boleto_id "); + sql.append(" ELSE NULL "); + sql.append(" END "); + sql.append(" ) AS totalida, "); + sql.append(" COUNT( DISTINCT "); + sql.append(" CASE "); + sql.append(" WHEN(r.indsentidoida = 0) THEN b.boleto_id "); + sql.append(" ELSE NULL "); + sql.append(" END "); + sql.append(" ) AS totalvolta, "); + sql.append(" rc.rutacombinacion_id AS rutaCombinacionId, "); + sql.append(" tri.numsecuencia, "); + sql.append(" r.indsentidoida "); + + sql.append(" FROM "); + sql.append(" boleto b "); + sql.append(" JOIN empresa e ON ( e.empresa_id = b.empresacorrida_id ) "); + sql.append(" JOIN marca m ON ( m.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(" JOIN RUTA_COMBINACION rc ON ( rc.ruta_id = r.ruta_id and rc.activo = 1 ) "); + sql.append(" INNER JOIN tramo tr ON ( tr.TRAMO_ID = rc.TRAMO_ID "); + sql.append(" AND tr.ORIGEN_ID = ori.PARADA_ID "); + sql.append(" AND tr.DESTINO_ID = des.PARADA_ID "); + sql.append(" AND tr.ACTIVO = 1 ) "); + sql.append(" JOIN clase_servicio cs ON ( b.claseservicio_id = cs.claseservicio_id ) "); + sql.append(" INNER JOIN vigencia_tarifa vt ON ( b.fechorventa BETWEEN vt.feciniciovigencia "); + sql.append(" AND vt.fecfinvigencia "); + sql.append(" AND vt.activo = 1 ) "); + sql.append(" INNER JOIN tarifa tar ON ( tar.ruta_id = b.ruta_id "); + sql.append(" AND tar.marca_id = m.marca_id "); + sql.append(" AND tar.claseservicio_id = b.claseservicio_id "); + sql.append(" AND tar.vigenciatarifa_id = vt.vigenciatarifa_id "); + sql.append(" AND tar.origen_id = b.origen_id "); + sql.append(" AND tar.destino_id = b.destino_id "); + sql.append(" AND tar.TRAMO_ID = tr.TRAMO_ID "); + sql.append(" AND tar.activo = 1 ) "); + sql.append(" LEFT JOIN corrida_tramo tri ON ( b.corrida_id = tri.corrida_id "); + sql.append(" AND tri.origen_id = b.origen_id "); + sql.append(" AND b.feccorrida = tri.feccorrida "); + sql.append(" AND tri.activo = 1 ) "); + + sql.append(" WHERE b.empresacorrida_id IN :empresa_id "); + + sql.append(" AND b.motivocancelacion_id is null "); + + if (linhasIds) { + sql.append(" AND r.NUMRUTA = :linhas_id "); + } + + sql.append(" AND b.feccorrida BETWEEN :dataIni AND :dataFim "); + + sql.append(" GROUP BY "); + sql.append(" tar.precio, "); + sql.append(" e.nombempresa, "); + sql.append(" r.descruta, "); + sql.append(" r.numruta, "); + sql.append(" ori.descparada, "); + sql.append(" des.descparada, "); + sql.append(" rc.rutacombinacion_id, "); + sql.append(" tri.numsecuencia,"); + sql.append(" r.indsentidoida "); + sql.append(" ORDER BY "); + sql.append(" r.indsentidoida DESC, "); + sql.append(" tri.numsecuencia, "); + sql.append(" r.descruta, "); + sql.append(" rc.rutacombinacion_id "); + + return sql.toString(); + } + + public List> ordenaListMap(List> dadosOrdenados) { + + List> semelhancas = new ArrayList>(); + for ( Map p : dadosOrdenados ) { + String origem = p.get("origem").toString(); + + for (Map dado : dadosOrdenados) { + @SuppressWarnings("unchecked") + Map map = (Map) dado; + + if (origem.equals(map.get("origem").toString()) && !semelhancas.contains(map) ) { + semelhancas.add(map); + } + + } + + } + return semelhancas; + } + + private BigDecimal limpaNulo( BigDecimal val ) { + if( val == null ) { + return BigDecimal.ZERO; + }else { + return val; + } + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_es.properties new file mode 100644 index 000000000..125edd53a --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_es.properties @@ -0,0 +1,4 @@ +#geral +msg.noData=No se pudo obtener datos con los parámetros reportados. +msg.a=a +linhas=Linhas \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_pt_BR.properties new file mode 100644 index 000000000..5c2212a2d --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioMovimentoMensalPassageiroCeturb_pt_BR.properties @@ -0,0 +1,4 @@ +#geral +msg.noData=No se pudo obtener datos con los parametros reportados. +msg.a=a +linhas=Linhas \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoMensalPassageiroCeturb.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoMensalPassageiroCeturb.jasper new file mode 100644 index 0000000000000000000000000000000000000000..dfee9b8b1a79f235d6c9f7d7a2fb71acf4a15def GIT binary patch literal 38408 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 literal 0 HcmV?d00001 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoMensalPassageiroCeturb.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoMensalPassageiroCeturb.jrxml new file mode 100644 index 000000000..8e0cdab30 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioMovimentoMensalPassageiroCeturb.jrxml @@ -0,0 +1,360 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="176" splitType="Stretch"> + <staticText> + <reportElement mode="Transparent" x="0" y="0" width="555" height="41" forecolor="#000000" backcolor="#FFFFFF" uuid="48387206-d35a-46c3-92bc-7337730b5b29"/> + <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[MOVIMENTO MENSAL DE PASSAGEIROS]]></text> + </staticText> + <textField pattern="dd/MM/yyyy HH:mm" isBlankWhenNull="false"> + <reportElement mode="Transparent" x="654" y="0" width="95" height="25" forecolor="#000000" backcolor="#FFFFFF" uuid="08f1d92b-4dee-433a-b066-f1b568988bce"/> + <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="555" y="25" width="99" height="16" forecolor="#000000" backcolor="#FFFFFF" uuid="98b19fb9-fbbf-4a0d-972d-4984bfba62b0"/> + <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="0ef26664-c3c7-4239-b964-4dd4c07dc70e"/> + </line> + <line> + <reportElement positionType="Float" x="-1" y="160" width="750" height="1" uuid="75af562f-9dac-46dc-8b06-1e50896893d0"/> + </line> + <staticText> + <reportElement x="-1" y="49" width="78" height="22" uuid="8816e3ed-08fc-44c4-9b5c-90065a97ea1f"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[Empresa:]]></text> + </staticText> + <textField> + <reportElement x="77" y="49" width="229" height="22" uuid="e4dcbf34-9a95-47d4-9d85-ef9c75ed8270"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{EMPRESA}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="71" width="306" height="20" uuid="bbfa56eb-b0e4-4ce8-95ec-03fa5fecdaa5"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA["Período: " + $P{DATA_DE} + " a " + $P{DATA_ATE}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="0" y="133" width="50" height="20" uuid="09cdf961-cdc2-4062-94e2-241e21a728b5"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[Linha:]]></text> + </staticText> + <textField> + <reportElement x="150" y="133" width="405" height="20" uuid="70f366bb-2104-429a-8899-66f853c0f260"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{DESC_LINHAS_SELECIONADAS}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="0" y="91" width="77" height="20" uuid="2284285a-4769-4bc9-b48d-ea18d3a2b726"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[Tipo de Classe:]]></text> + </staticText> + <staticText> + <reportElement x="0" y="111" width="77" height="20" uuid="251da91e-5f8e-452d-9ed9-4414e4d88cc5"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[Lugar Ofer:]]></text> + </staticText> + <textField isBlankWhenNull="true"> + <reportElement x="77" y="113" width="478" height="20" uuid="c023bf07-8aa7-4848-a922-a556dd64c576"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{CANTASIENTOS}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="true"> + <reportElement x="50" y="133" width="100" height="20" uuid="379fb4cf-7160-4ed9-b230-c5613786e420"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{LINHAS}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="true"> + <reportElement x="77" y="91" width="478" height="20" uuid="e73e6e9d-1589-46b9-bb5f-29ed3a57755e"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{CLASE_SERVICIO}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="306" y="49" width="108" height="22" uuid="dd6b3fe7-8afe-42ed-b0b0-f6e9a8e7ad2d"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[KM TOTAL:]]></text> + </staticText> + <textField> + <reportElement x="414" y="49" width="141" height="22" uuid="70bea6a5-b7ee-4b75-abec-6ba940a8ae1c"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{KM_TOTAL}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="306" y="69" width="108" height="22" uuid="34731b1b-fd03-450e-9bd1-17d328d65b2b"/> + <textElement> + <font isBold="true"/> + <paragraph lineSpacing="Single"/> + </textElement> + <text><![CDATA[Quantidade Viagens: TOTAL:]]></text> + </staticText> + <textField> + <reportElement x="414" y="69" width="141" height="22" uuid="d4d454d7-d5b7-4471-9ec7-7e2e0c3078e4"/> + <textElement> + <paragraph lineSpacing="Single"/> + </textElement> + <textFieldExpression><![CDATA[$P{QTD_VIAGENS}]]></textFieldExpression> + </textField> + </band> + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMovimentoMensalPassageiroCeturbController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMovimentoMensalPassageiroCeturbController.java new file mode 100644 index 000000000..95cfd5827 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioMovimentoMensalPassageiroCeturbController.java @@ -0,0 +1,188 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.sql.SQLException; +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.RelatorioMovimentoMensalPassageiroCeturb; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioQuadroDemonstrativoMovimentoPassageiros; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.service.OrgaoConcedenteService; +import com.rjconsultores.ventaboletos.service.RutaService; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyGenericForwardComposer; + +@Controller("relatorioMovimentoMensalPassageiroCeturbController") +@Scope("prototype") +public class RelatorioMovimentoMensalPassageiroCeturbController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + @Autowired + private DataSource dataSourceRead; + @Autowired + private EmpresaService empresaService; + @Autowired + private RutaService rutaService; + @Autowired + private OrgaoConcedenteService orgaoConcedenteService; + 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.buscarRutasPorEmpresaOrgaoConcedente(null, orgaoConcedenteService.obtenerID(10)); + super.doAfterCompose(comp); + } + + public void onClick$btnExecutarRelatorio(Event ev) throws InterruptedException, Exception { + executarRelatorio(1); + } + public void onClick$btnExecutarRelatorioNovoLayout(Event ev) throws InterruptedException, Exception { + executarRelatorio(2); + } + + private void executarRelatorio(int tipo) throws SQLException, 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) { + Ruta ruta = (Ruta) cmbLinha.getSelectedItem().getValue(); + if (!ruta.getRutaId().equals(-1)) { + ruta = ((Ruta) cmbLinha.getSelectedItem().getValue()); + parametros.put("LINHAS", (ruta.getNumRuta())); + parametros.put("DESC_LINHAS_SELECIONADAS", (ruta.getDescruta())); + parametros.put("CANTASIENTOS", (ruta.getCantAsientos() != null ? ruta.getCantAsientos().toString() : "")); + parametros.put("CLASE_SERVICIO", (ruta.getClaseServicio().getDescclase())); + }else { + parametros.put("DESC_LINHAS_SELECIONADAS", "Todas"); + } + } + + 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 = null; + Map args = new HashMap(); + + relatorio = new RelatorioMovimentoMensalPassageiroCeturb(parametros, dataSourceRead.getConnection()); + args.put("relatorio", relatorio); + openWindow("/component/reportView.zul", Labels.getLabel("indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label"), 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/analitico/gerenciais/ceturb/SubMenuRelatorioCeturb.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/analitico/gerenciais/ceturb/SubMenuRelatorioCeturb.java new file mode 100644 index 000000000..c6cc8fa10 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/analitico/gerenciais/ceturb/SubMenuRelatorioCeturb.java @@ -0,0 +1,17 @@ + +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.ceturb; + +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class SubMenuRelatorioCeturb extends DefaultItemMenuSistema { + + public SubMenuRelatorioCeturb() { + super("indexController.mniRelatorioCeturb.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS"; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMovimentoMensalPassageiros.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMovimentoMensalPassageiros.java new file mode 100644 index 000000000..4b04fa3b3 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioMovimentoMensalPassageiros.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 ItemMenuRelatorioMovimentoMensalPassageiros extends DefaultItemMenuSistema { + + public ItemMenuRelatorioMovimentoMensalPassageiros() { + super("indexController.mniRelatorioMovimentoMensalPassageirosCeturb.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.MOVIMENTOMENSALPASSAGEIROCETURB"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioMovimentoMensalPassageiroCeturb.zul", + Labels.getLabel("indexController.mniRelatorioMovimentoMensalPassageirosCeturb.label"), 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 632259caf..f5c89ceb1 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 @@ -282,6 +282,8 @@ analitico.gerenciais.pacote.boletos=com.rjconsultores.ventaboletos.web.utilerias analitico.gerenciais.pacote.detalhado=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioVendasPacotesDetalhado analitico.gerenciais.pacote.resumido=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioVendasPacotesResumido analitico.gerenciais.relatorioRemessaCNAB=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioRemessaCNAB +analitico.gerenciais.ceturb=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.ceturb.SubMenuRelatorioCeturb +analitico.gerenciais.ceturb.RelatorioMovimentoMensalPassageiros=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioMovimentoMensalPassageiros analitico.integracion=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.integracion.SubMenuIntegracion analitico.integracion.sisdap=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioSisdap analitico.integracion.sie=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioSie diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label index 2940daf92..78a061021 100644 --- a/web/WEB-INF/i3-label_en.label +++ b/web/WEB-INF/i3-label_en.label @@ -8053,6 +8053,7 @@ indexController.mniRelatorioPosicaoVendaBilheteIdoso.label = Senior Ticket Sales indexController.mniRelatorioPrecosPraticados.label = Price Report indexController.mniRelatorioPricingEspecifico.label = Specific Pricing Report indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label = Passenger Movement Demonstration Table +indexController.mniRelatorioMovimentoMensalPassageirosCeturb.label = Monthly Passenger Movement # Relatório Recarga Rvhub indexController.mniRelatorioRecargaRvhub.label = Rvhub Recharge indexController.mniRelatorioReceitaDiariaAgencia.label = Daily Revenue per Agency @@ -8127,6 +8128,7 @@ indexController.mniTarifasMinimas.label = Minimum Rates indexController.mniTarifasOficial.label = Official Price / Rate Change indexController.mniTarifasOficialExcel.label = Official Excel Rate indexController.mniTarjetaCredito.label = Credit Card +indexController.mniRelatorioCeturb.label = Report Ceturb #Tela de contigencia indexController.mniTelaContingencia.label = Contingency indexController.mniTipoCambioCiudad.label = Parity Type diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index b9176728d..b789b15ca 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -8060,6 +8060,8 @@ indexController.mniRelatorioPosicaoVendaBilheteIdoso.label = Reporte Posición d indexController.mniRelatorioPrecosPraticados.label = Relatório de Preços Praticados indexController.mniRelatorioPricingEspecifico.label = Relatório Pricing Específico indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label = Quadro Demonstrativo Movimento Passageiros +indexController.mniRelatorioMovimentoMensalPassageirosCeturb.label = Movimiento mensual de pasajeros + # Relatório Recarga Rvhub indexController.mniRelatorioRecargaRvhub.label = Recarga Rvhub indexController.mniRelatorioReceitaDiariaAgencia.label = Ingreso diário por punto de venta @@ -8135,6 +8137,7 @@ indexController.mniTarifasMinimas.label = Tarifas mínimas indexController.mniTarifasOficial.label = Cambio de precio / Tarifa oficial indexController.mniTarifasOficialExcel.label = Tarifa oficial excel indexController.mniTarjetaCredito.label = Tarjeta de crédito +indexController.mniRelatorioCeturb.label = Report Ceturb #Tela de contigencia indexController.mniTelaContingencia.label = Contigência indexController.mniTipoCambioCiudad.label = Tipo paridad diff --git a/web/WEB-INF/i3-label_fr_FR.label b/web/WEB-INF/i3-label_fr_FR.label index bc97b06ab..940a1183d 100644 --- a/web/WEB-INF/i3-label_fr_FR.label +++ b/web/WEB-INF/i3-label_fr_FR.label @@ -8052,6 +8052,7 @@ indexController.mniRelatorioPosicaoVendaBilheteIdoso.label = Rapport sur la posi indexController.mniRelatorioPrecosPraticados.label = Rapport de prix indexController.mniRelatorioPricingEspecifico.label = Rapport de tarification spécifique indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label = Tableau de démonstration des mouvements des passagers +indexController.mniRelatorioMovimentoMensalPassageirosCeturb.label = Mouvement mensuel des passagers # Relatório Recarga Rvhub indexController.mniRelatorioRecargaRvhub.label = Recharge Rvhub indexController.mniRelatorioReceitaDiariaAgencia.label = Revenu quotidien par agence @@ -8126,6 +8127,7 @@ indexController.mniTarifasMinimas.label = Tarifs minimaux indexController.mniTarifasOficial.label = Changement de Prix / Tarif Officiel indexController.mniTarifasOficialExcel.label = Taux Excel officiel indexController.mniTarjetaCredito.label = Carte de crédit +indexController.mniRelatorioCeturb.label = Rapport Ceturb #Tela de contigencia indexController.mniTelaContingencia.label = Contingence indexController.mniTipoCambioCiudad.label = Type de parité diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index e7f7cca3f..fb13e9ae0 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -8038,6 +8038,7 @@ indexController.mniRelatorioPosicaoVendaBilheteIdoso.label = Relatório Posiçã indexController.mniRelatorioPrecosPraticados.label = Relatório de Preços Praticados indexController.mniRelatorioPricingEspecifico.label = Relatório Pricing Específico indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label = Quadro Demonstrativo Movimento Passageiros +indexController.mniRelatorioMovimentoMensalPassageirosCeturb.label = Movimento Mensal de Passageiros # Relatório Recarga Rvhub indexController.mniRelatorioRecargaRvhub.label = Recarga Rvhub indexController.mniRelatorioReceitaDiariaAgencia.label = Receita Diária por Agência @@ -8112,6 +8113,7 @@ indexController.mniTarifasMinimas.label = Tarifas Mínimas indexController.mniTarifasOficial.label = Alteração de Preço / Tarifa Oficial indexController.mniTarifasOficialExcel.label = Tarifa Oficial Excel indexController.mniTarjetaCredito.label = Cartão de Crédito +indexController.mniRelatorioCeturb.label = Relatório Ceturb #Tela de contigencia indexController.mniTelaContingencia.label = Contigência indexController.mniTipoCambioCiudad.label = Tipo Paridade diff --git a/web/gui/relatorios/filtroRelatorioMovimentoMensalPassageiroCeturb.zul b/web/gui/relatorios/filtroRelatorioMovimentoMensalPassageiroCeturb.zul new file mode 100644 index 000000000..1509d21a3 --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioMovimentoMensalPassageiroCeturb.zul @@ -0,0 +1,58 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +