From 3818b692e797497dc63fc016f0baeef23b414a0c Mon Sep 17 00:00:00 2001 From: walace Date: Tue, 1 Jun 2021 19:52:53 +0000 Subject: [PATCH] fixes bug#21770 qua: dev: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@107009 d1611594-4594-4d17-8e1d-87c2c4800839 --- ...trativoMovimentoPassageirosNovoLayout.java | 245 +++++++++++++++ ...vimentoPassageirosNovoLayout_es.properties | 4 + ...entoPassageirosNovoLayout_pt_BR.properties | 4 + ...ativoMovimentoPassageirosNovoLayout.jasper | Bin 0 -> 36011 bytes ...rativoMovimentoPassageirosNovoLayout.jrxml | 291 ++++++++++++++++++ ...trativoMovimentoPassageirosController.java | 32 +- ...adroDemonstrativoDoMovimentoPassageiro.zul | 2 + 7 files changed, 569 insertions(+), 9 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout_es.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout.jrxml diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout.java new file mode 100644 index 000000000..e43abb66e --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout.java @@ -0,0 +1,245 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.math.BigDecimal; +import java.sql.Connection; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.ArrayDataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; + +public class RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout extends Relatorio { + + public RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout(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"); + + String dataAte = (String) parametros.get("DATA_ATE"); + + + 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(); + BigDecimal lugaresOfertados = BigDecimal.ZERO; + + + 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")); + + for (Iterator iterator = dados.iterator(); iterator.hasNext();) { + + Map map = (Map) iterator.next(); + String origem = map.get("origem").toString(); + String destino = map.get("destino").toString(); + Long ida = (Long) map.get("totalida"); + Long volta = (Long) map.get("totalvolta"); + + + if (origem.equals(rset.getString("destino")) && destino.equals(rset.getString("origem"))) { + agrupar = true; + if (ida == 0) { + map.put("totalida", rset.getLong("totalida")); + } + if (volta == 0) { + map.put("totalvolta", rset.getLong("totalvolta")); + } + + } + + } + + if (!agrupar) { + this.dados.add(dataResult); + } + + } + + this.resultSet = rset; + } + + private void ordenarTrechosSentidoIda(List> dados, String linhasIds) { + + List listOrigemDestino = this.buscarSequenciaOrigemDestinoIda(linhasIds); + + if (listOrigemDestino.isEmpty()){ + return; + } + + + List> dadosOrdenados = new ArrayList>(); + + + for(Map dado : dados){ + + Map dataResult = new HashMap(); + + String origemAtual = dado.get("origemId").toString(); + String destinoAtual = dado.get("destinoId").toString(); + + String trecho = origemAtual.concat("|").concat(destinoAtual); + + if (!listOrigemDestino.contains(trecho) ){ + origemAtual = dado.get("destino").toString(); + destinoAtual = dado.get("origem").toString(); + } + + dataResult.put("origem", origemAtual); + dataResult.put("destino", destinoAtual); + dataResult.put("km", dado.get("km")); + dataResult.put("totalida", dado.get("totalida")); + dataResult.put("totalvolta", dado.get("totalvolta")); + + dadosOrdenados.add(dataResult); + } + + dados.clear(); + dados.addAll(dadosOrdenados); + + + } + + private List buscarSequenciaOrigemDestinoIda(String linhasIds) { + StringBuilder query = new StringBuilder(); + query.append("SELECT "); + query.append("ori.parada_id || '|' || des.parada_id AS trecho "); + query.append("FROM "); + query.append("ruta r "); + query.append("JOIN RUTA_combinacion rc ON rc.ruta_id = r.ruta_id "); + query.append("JOIN RUTA_secuencia rs ON rs.ruta_id = r.ruta_id "); + query.append("INNER JOIN tramo tr ON tr.TRAMO_ID =rc.TRAMO_ID AND tr.ACTIVO = 1 "); + query.append("JOIN parada ori ON\tori.parada_id = tr.origen_id "); + query.append("JOIN parada des ON\tdes.parada_id = tr.destino_id "); + query.append(" "); + query.append("WHERE "); + query.append(" r.NUMRUTA = '").append(linhasIds).append("' "); + query.append("AND r.INDSENTIDOIDA =1 "); + query.append("AND rc.ACTIVO =1 and rs.ACTIVO =1"); + query.append("AND r.ACTIVO =1 "); + query.append("ORDER BY Rs.numsecuencia "); + + List listOrigemDestino = new ArrayList(); + + try { + + Connection conexao = this.relatorio.getConexao(); + PreparedStatement ps= conexao.prepareStatement(query.toString()); + + ResultSet rset = ps.executeQuery(); + + while (rset.next()) { + listOrigemDestino.add(rset.getString("trecho")); + } + + rset.close(); + ps.close(); + + } catch (SQLException e) { + throw new RuntimeException("Erro ao buscar sequencia da linha",e); + } + return listOrigemDestino; + } + }); + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql(String dataDe, String dataAte, String linhasIds, + String empresaId) { + 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 empresa, "); + sql.append(" r.descruta linha, "); + 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 rutaCombinacionId "); + 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 AND tr.ORIGEN_ID = ori.PARADA_ID AND tr.DESTINO_ID = des.PARADA_ID 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 AND vt.fecfinvigencia 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.activo = 1 ) "); + sql.append(" WHERE b.empresacorrida_id IN (").append(empresaId).append(") "); + + sql.append(" AND b.motivocancelacion_id is null "); + + if (!StringUtils.isBlank(linhasIds)) { + sql.append(" AND r.NUMRUTA = '").append(linhasIds).append("' "); + } + + sql.append(" AND b.feccorrida BETWEEN To_date('").append(dataDe).append("', 'dd/mm/yyyy') "); + sql.append(" AND To_date('").append(dataAte).append("', 'dd/mm/yyyy') "); + + sql.append(" GROUP BY "); + sql.append(" tar.precio, "); + sql.append(" e.nombempresa, "); + sql.append(" r.numruta, "); + sql.append(" r.descruta, "); + sql.append(" ori.descparada, "); + sql.append(" des.descparada, rc.rutacombinacion_id "); + sql.append(" ORDER BY "); + sql.append(" r.descruta, "); + sql.append(" rc.rutacombinacion_id "); + + return sql.toString(); + } +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout_es.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout_es.properties new file mode 100644 index 000000000..730b33d62 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout_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/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout_pt_BR.properties new file mode 100644 index 000000000..730b33d62 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout_pt_BR.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/templates/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout.jasper new file mode 100644 index 0000000000000000000000000000000000000000..b131a64e3dfed830905cbeae7863476c4e43b5e3 GIT binary patch literal 36011 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + <band height="176" splitType="Stretch"> + <staticText> + <reportElement mode="Transparent" x="0" y="0" width="570" height="41" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" lineSpacing="Single" markup="none"> + <font fontName="SansSerif" size="16" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + </textElement> + <text><![CDATA[QUADRO DEMONSTRATIVO DO MOVIMENTO 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"/> + <textElement textAlignment="Left" verticalAlignment="Top" rotation="None" lineSpacing="Single" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA[new java.util.Date()]]></textFieldExpression> + </textField> + <textField pattern="" isBlankWhenNull="false"> + <reportElement mode="Transparent" x="570" y="25" width="84" height="16" forecolor="#000000" backcolor="#FFFFFF"/> + <textElement textAlignment="Right" verticalAlignment="Top" rotation="None" lineSpacing="Single" markup="none"> + <font fontName="SansSerif" size="9" isBold="true" isItalic="false" isUnderline="false" isStrikeThrough="false" pdfEncoding="Cp1252" isPdfEmbedded="false"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA["Página " + $V{PAGE_NUMBER}+ " de " + $V{PAGE_NUMBER}]]></textFieldExpression> + </textField> + <line> + <reportElement x="-1" y="48" width="750" height="1"/> + </line> + <line> + <reportElement positionType="Float" x="-1" y="160" width="750" height="1"/> + </line> + <staticText> + <reportElement x="-1" y="49" width="63" height="22"/> + <textElement lineSpacing="Single"> + <font isBold="true"/> + </textElement> + <text><![CDATA[Empresa:]]></text> + </staticText> + <textField> + <reportElement x="62" y="49" width="509" height="22"/> + <textElement lineSpacing="Single"/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{EMPRESA}]]></textFieldExpression> + </textField> + <textField> + <reportElement x="0" y="71" width="251" height="20"/> + <textElement lineSpacing="Single"> + <font isBold="true"/> + </textElement> + <textFieldExpression class="java.lang.String"><![CDATA["Período: " + $P{DATA_DE} + " a " + $P{DATA_ATE}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="0" y="133" width="50" height="20"/> + <textElement lineSpacing="Single"> + <font isBold="true"/> + </textElement> + <text><![CDATA[Linha:]]></text> + </staticText> + <textField> + <reportElement x="150" y="133" width="425" height="20"/> + <textElement lineSpacing="Single"/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{DESC_LINHAS_SELECIONADAS}]]></textFieldExpression> + </textField> + <staticText> + <reportElement x="0" y="91" width="77" height="20"/> + <textElement lineSpacing="Single"> + <font isBold="true"/> + </textElement> + <text><![CDATA[Tipo de Data:]]></text> + </staticText> + <staticText> + <reportElement x="77" y="91" width="73" height="20"/> + <textElement lineSpacing="Single"> + <font isBold="false"/> + </textElement> + <text><![CDATA[SERVIÇO]]></text> + </staticText> + <staticText> + <reportElement x="0" y="111" width="77" height="20"/> + <textElement lineSpacing="Single"> + <font isBold="true"/> + </textElement> + <text><![CDATA[Lugar Ofer:]]></text> + </staticText> + <textField isBlankWhenNull="true"> + <reportElement x="77" y="113" width="498" height="20"/> + <textElement lineSpacing="Single"/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{CANTASIENTOS}]]></textFieldExpression> + </textField> + <textField isBlankWhenNull="true"> + <reportElement x="50" y="133" width="100" height="20"/> + <textElement lineSpacing="Single"/> + <textFieldExpression class="java.lang.String"><![CDATA[$P{LINHAS}]]></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 index 390ab1da7..0ce7a659b 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioQuadroDemonstrativoMovimentoPassageirosController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioQuadroDemonstrativoMovimentoPassageirosController.java @@ -1,5 +1,6 @@ package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; +import java.sql.SQLException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.HashMap; @@ -21,6 +22,7 @@ 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.impl.RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.service.EmpresaService; import com.rjconsultores.ventaboletos.service.RutaService; @@ -53,9 +55,15 @@ public class RelatorioQuadroDemonstrativoMovimentoPassageirosController extends super.doAfterCompose(comp); } - @SuppressWarnings({ "unchecked", "rawtypes" }) 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(); @@ -71,6 +79,8 @@ public class RelatorioQuadroDemonstrativoMovimentoPassageirosController extends parametros.put("LINHAS", (ruta.getNumRuta())); parametros.put("DESC_LINHAS_SELECIONADAS", (ruta.getDescruta())); parametros.put("CANTASIENTOS", (ruta.getCantAsientos() != null ? ruta.getCantAsientos().toString() : "")); + }else { + parametros.put("DESC_LINHAS_SELECIONADAS", "Todas"); } } @@ -90,14 +100,18 @@ public class RelatorioQuadroDemonstrativoMovimentoPassageirosController extends } parametros.put("EMPRESA", empresaDesc); parametros.put("EMPRESA_IDS", empresaId); - - Relatorio relatorio = new RelatorioQuadroDemonstrativoMovimentoPassageiros(parametros, dataSourceRead.getConnection()); - + Relatorio relatorio = null; Map args = new HashMap(); - args.put("relatorio", relatorio); - - openWindow("/component/reportView.zul", - Labels.getLabel("indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label"), args, MODAL); + + if(tipo == 1) { + relatorio = new RelatorioQuadroDemonstrativoMovimentoPassageiros(parametros, dataSourceRead.getConnection()); + args.put("relatorio", relatorio); + openWindow("/component/reportView.zul", Labels.getLabel("indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label"), args, MODAL); + }else { + relatorio = new RelatorioQuadroDemonstrativoMovimentoPassageirosNovoLayout(parametros, dataSourceRead.getConnection()); + args.put("relatorio", relatorio); + openWindow("/component/reportView.zul", Labels.getLabel("indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label"), args, MODAL); + } } public DataSource getDataSourceRead() { diff --git a/web/gui/relatorios/filtroQuadroDemonstrativoDoMovimentoPassageiro.zul b/web/gui/relatorios/filtroQuadroDemonstrativoDoMovimentoPassageiro.zul index 1e07bd2ad..eff6e0dfb 100644 --- a/web/gui/relatorios/filtroQuadroDemonstrativoDoMovimentoPassageiro.zul +++ b/web/gui/relatorios/filtroQuadroDemonstrativoDoMovimentoPassageiro.zul @@ -52,6 +52,8 @@