From 7791fee9676711a0586a7b7fae626b975b03aa9f Mon Sep 17 00:00:00 2001 From: julio Date: Tue, 7 Jun 2022 18:23:01 +0000 Subject: [PATCH] fixes bug#24582 dev: Valdir qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@112584 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../RelatorioW2ITaxaEmbarqueAnalitico.java | 143 +++++++ .../RelatorioW2ITaxaEmbarqueSintetico.java | 130 ++++++ ...oW2ITaxaEmbarqueAnalitico_pt_BR.properties | 13 + ...oW2ITaxaEmbarqueSintetico_pt_BR.properties | 13 + .../RelatorioW2ITaxaEmbarqueAnalitico.jasper | Bin 0 -> 43472 bytes .../RelatorioW2ITaxaEmbarqueAnalitico.jrxml | 387 ++++++++++++++++++ .../RelatorioW2ITaxaEmbarqueSintetico.jasper | Bin 0 -> 45135 bytes .../RelatorioW2ITaxaEmbarqueSintetico.jrxml | 361 ++++++++++++++++ .../RelatorioW2ITaxaEmbarqueController.java | 275 +++++++++++++ .../SubMenuRelatorioFinanceiroW2i.java | 16 + .../ItemMenuRelatorioTaxaEmbarqueW2I.java | 25 ++ .../utilerias/menu/menu_original.properties | 4 +- web/WEB-INF/i3-label_en.label | 7 +- web/WEB-INF/i3-label_es_MX.label | 5 +- web/WEB-INF/i3-label_pt_BR.label | 3 + .../filtroRelatorioTaxaEmbarqueW2I.zul | 156 +++++++ 16 files changed, 1534 insertions(+), 4 deletions(-) create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueAnalitico.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueSintetico.java create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioW2ITaxaEmbarqueAnalitico_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioW2ITaxaEmbarqueSintetico_pt_BR.properties create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioW2ITaxaEmbarqueAnalitico.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioW2ITaxaEmbarqueAnalitico.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioW2ITaxaEmbarqueSintetico.jasper create mode 100644 src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioW2ITaxaEmbarqueSintetico.jrxml create mode 100644 src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioW2ITaxaEmbarqueController.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/analitico/gerenciais/financeiro/SubMenuRelatorioFinanceiroW2i.java create mode 100644 src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioTaxaEmbarqueW2I.java create mode 100644 web/gui/relatorios/filtroRelatorioTaxaEmbarqueW2I.zul diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueAnalitico.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueAnalitico.java new file mode 100644 index 000000000..2f7c7da2e --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueAnalitico.java @@ -0,0 +1,143 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.math.BigDecimal; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioW2IBean; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio { + + private List lsDadosRelatorio; + + public RelatorioW2ITaxaEmbarqueAnalitico(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new DataSource(this) { + @Override + public void initDados() throws Exception { + + Connection conexao = this.relatorio.getConexao(); + Map parametros = this.relatorio.getParametros(); + String puntosVentaIds = (String) parametros.get("NUMPUNTOVENTA"); + puntosVentaIds = StringUtils.replace(puntosVentaIds, ",", "','"); + lsDadosRelatorio = new ArrayList(); + + String sql = getSql(puntosVentaIds); + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + + ResultSet rset = null; + + stmt.setInt("TIPO_DATA", (Integer) parametros.get("TIPO_DATA")); + stmt.setTimestamp("DATA_INICIAL", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime())); + stmt.setTimestamp("DATA_FINAL", new Timestamp(DateUtil.fimFecha((Date) parametros.get("DATA_FINAL")).getTime())); + + if (parametros.get("EMPRESA_ID") != null) + stmt.setInt("EMPRESA_ID", (Integer) parametros.get("EMPRESA_ID")); + else + stmt.setNull("EMPRESA_ID", java.sql.Types.INTEGER); + + if (parametros.get("ORIGEN_ID") != null && parametros.get("ORIGEN_ID") != "" && ((Integer) parametros.get("ORIGEN_ID") != -1)) + stmt.setInt("ORIGEN_ID", (Integer) parametros.get("ORIGEN_ID")); + else + stmt.setNull("ORIGEN_ID", java.sql.Types.INTEGER); + + if (parametros.get("DESTINO_ID") != null && parametros.get("DESTINO_ID") != "" && ((Integer) parametros.get("DESTINO_ID") != -1)) + stmt.setInt("DESTINO_ID", (Integer) parametros.get("DESTINO_ID")); + else + stmt.setNull("DESTINO_ID", java.sql.Types.INTEGER); + + rset = stmt.executeQuery(); + + RelatorioW2IBean relatorioW2IBean = null; + while (rset.next()) { + relatorioW2IBean = new RelatorioW2IBean(); + relatorioW2IBean.setEmpresaId(rset.getInt("empresaId")); + relatorioW2IBean.setEmpresa(rset.getString("empresa")); + relatorioW2IBean.setPuntoVentaId(rset.getInt("puntoVentaId")); + relatorioW2IBean.setAgencia(rset.getString("agencia")); + relatorioW2IBean.setNumBilhete(rset.getLong("numBilhete")); + relatorioW2IBean.setOrigem(rset.getString("origem")); + relatorioW2IBean.setDestino(rset.getString("destino")); + relatorioW2IBean.setDataVenda(rset.getDate("dataVenda")); + relatorioW2IBean.setDataViaje(rset.getDate("dataViaje")); + relatorioW2IBean.setPoltrona(rset.getString("poltrona")); + relatorioW2IBean.setStatus(rset.getString("status")); + relatorioW2IBean.setValorTaxa(rset.getBigDecimal("valorTaxa") == null ? BigDecimal.ZERO : rset.getBigDecimal("valorTaxa")); + + lsDadosRelatorio.add(relatorioW2IBean); + } + + if (lsDadosRelatorio.size() > 0) { + + setLsDadosRelatorio(lsDadosRelatorio); + } + } + + }); + } + + public void setLsDadosRelatorio(List lsDadosRelatorio) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + this.lsDadosRelatorio = lsDadosRelatorio; + } + + @Override + protected void processaParametros() throws Exception { + // TODO Auto-generated method stub + + } + + private String getSql(String puntosVentaIds) { + StringBuilder sql = new StringBuilder(); + sql.append("SELECT DISTINCT "); + sql.append("em.empresa_id AS empresaId, "); + sql.append("em.nombempresa AS empresa, "); + sql.append("pv.puntoventa_id AS puntoVentaId, "); + sql.append("pv.nombpuntoventa As agencia, "); + sql.append("b.numfoliosistema AS numBilhete, "); + sql.append("po.descparada AS origem, "); + sql.append("pd.descparada AS destino, "); + sql.append("b.fechorviaje dataViaje, "); + sql.append("b.fechorventa dataVenda, "); + sql.append("b.numasiento AS poltrona, "); + sql.append("sx.valortaxa AS valorTaxa, "); + sql.append("CASE WHEN sx.indcancelado =0 THEN 'V' ELSE 'C' END status "); + sql.append("FROM taxpolv sx "); + sql.append("INNER JOIN boleto b on b.boleto_id=sx.boleto_id "); + sql.append("INNER JOIN punto_venta pv ON pv.PUNTOVENTA_ID = b.PUNTOVENTA_ID "); + sql.append("INNER JOIN empresa em ON em.empresa_id=b.empresacorrida_id "); + sql.append("INNER JOIN parada po ON po.parada_id=b.origen_id "); + sql.append("INNER JOIN parada pd ON pd.parada_id=b.destino_id "); + sql.append("INNER JOIN CIUDAD co ON co.ciudad_id=po.ciudad_id "); + sql.append("INNER JOIN CIUDAD cd ON cd.ciudad_id=pd.ciudad_id "); + sql.append("WHERE DECODE(:TIPO_DATA, 1, b.FECHORVENTA, 2, b.FECCORRIDA) BETWEEN :DATA_INICIAL AND :DATA_FINAL "); + sql.append("AND sx.ACTIVO = 1 "); + sql.append("AND em.empresa_id = COALESCE(:EMPRESA_ID, em.empresa_id) "); + sql.append("AND po.parada_id = COALESCE(:ORIGEN_ID, po.parada_id) "); + sql.append("AND pd.parada_id = COALESCE(:DESTINO_ID, pd.parada_id) "); + + if (!puntosVentaIds.contains("-1")) { + sql.append(" AND pv.puntoventa_id IN ('" + puntosVentaIds + "') "); + } + + sql.append("ORDER BY b.fechorventa ASC "); + + return sql.toString(); + }; + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueSintetico.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueSintetico.java new file mode 100644 index 000000000..1583dbc07 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueSintetico.java @@ -0,0 +1,130 @@ +package com.rjconsultores.ventaboletos.relatorios.impl; + +import java.math.BigDecimal; +import java.sql.Connection; +import java.sql.ResultSet; +import java.sql.Timestamp; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.Map; + +import org.apache.commons.lang.StringUtils; + +import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioW2ISinteticoBean; +import com.rjconsultores.ventaboletos.utilerias.DateUtil; +import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; + +import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; + +public class RelatorioW2ITaxaEmbarqueSintetico extends Relatorio { + + private List lsDadosRelatorio; + + public RelatorioW2ITaxaEmbarqueSintetico(Map parametros, Connection conexao) throws Exception { + super(parametros, conexao); + + this.setCustomDataSource(new DataSource(this) { + @Override + public void initDados() throws Exception { + Connection conexao = this.relatorio.getConexao(); + Map parametros = this.relatorio.getParametros(); + + lsDadosRelatorio = new ArrayList(); + + String sql = getSql(parametros); + + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); + ResultSet rset = null; + + stmt.setInt("TIPO_DATA", (Integer) parametros.get("TIPO_DATA")); + stmt.setTimestamp("DATA_INICIAL", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime())); + stmt.setTimestamp("DATA_FINAL", new Timestamp(DateUtil.fimFecha((Date) parametros.get("DATA_FINAL")).getTime())); + + if (parametros.get("EMPRESA_ID") != null) + stmt.setInt("EMPRESA_ID", (Integer) parametros.get("EMPRESA_ID")); + + if (parametros.get("ORIGEN_ID") != null && parametros.get("ORIGEN_ID") != "" && ((Integer) parametros.get("ORIGEN_ID") != -1)) + stmt.setInt("ORIGEN_ID", (Integer) parametros.get("ORIGEN_ID")); + + if (parametros.get("DESTINO_ID") != null && parametros.get("DESTINO_ID") != "" && ((Integer) parametros.get("DESTINO_ID") != -1)) + stmt.setInt("DESTINO_ID", (Integer) parametros.get("DESTINO_ID")); + + rset = stmt.executeQuery(); + + RelatorioW2ISinteticoBean relatorioW2ISinteticoBean = null; + while (rset.next()) { + relatorioW2ISinteticoBean = new RelatorioW2ISinteticoBean(); + relatorioW2ISinteticoBean.setEmpresaId(rset.getInt("empresaId")); + relatorioW2ISinteticoBean.setEmpresa(rset.getString("empresa")); + relatorioW2ISinteticoBean.setPuntoVentaId(rset.getInt("puntoVentaId")); + relatorioW2ISinteticoBean.setAgencia(rset.getString("agencia")); + relatorioW2ISinteticoBean.setQtdSeguroOpcionalCancelado(rset.getBigDecimal("qtdSeguroOpcionalCancelado") == null ? BigDecimal.ZERO : rset.getBigDecimal("qtdSeguroOpcionalCancelado")); + relatorioW2ISinteticoBean.setTotalValorSeguroOpcionalCancelado(rset.getBigDecimal("totalValorSeguroOpcionalCancelado") == null ? BigDecimal.ZERO : rset.getBigDecimal("totalValorSeguroOpcionalCancelado")); + relatorioW2ISinteticoBean.setQtdSeguroOpcionalVendidos(rset.getBigDecimal("qtdSeguroOpcionalVendidos") == null ? BigDecimal.ZERO : rset.getBigDecimal("qtdSeguroOpcionalVendidos")); + relatorioW2ISinteticoBean.setTotalValorseguroOpcionalVendido(rset.getBigDecimal("totalValorSeguroOpcionalVendido") == null ? BigDecimal.ZERO : rset.getBigDecimal("totalValorSeguroOpcionalVendido")); + lsDadosRelatorio.add(relatorioW2ISinteticoBean); + + } + + if (lsDadosRelatorio.size() > 0) { + + setLsDadosRelatorio(lsDadosRelatorio); + } + } + + }); + } + + public void setLsDadosRelatorio(List lsDadosRelatorio) { + this.setCollectionDataSource(new JRBeanCollectionDataSource(lsDadosRelatorio)); + this.lsDadosRelatorio = lsDadosRelatorio; + } + + @Override + protected void processaParametros() throws Exception { + } + + private String getSql(Map parametros) { + String puntosVentaIds = (String) parametros.get("NUMPUNTOVENTA"); + puntosVentaIds = StringUtils.replace(puntosVentaIds, "," , "','"); + StringBuilder sql = new StringBuilder(); + sql.append("SELECT DISTINCT "); + sql.append("em.empresa_id AS empresaId, "); + sql.append("em.nombempresa AS empresa, "); + sql.append("pv.puntoventa_id AS puntoVentaId, "); + sql.append("pv.nombpuntoventa As agencia, "); + sql.append(" SUM( (case when sx.indcancelado =1 then 1 else 0.0 end)) qtdSeguroOpcionalCancelado, "); + sql.append(" SUM( (case when sx.indcancelado =1 then sx.valortaxa else 0.0 end )) totalValorSeguroOpcionalCancelado, "); + sql.append(" SUM( (case when sx.indcancelado =0 then 1 else 0.0 end )) qtdSeguroOpcionalVendidos, "); + sql.append(" SUM( (case when sx.indcancelado =0 then sx.valortaxa else 0.0 end )) totalValorSeguroOpcionalVendido "); + sql.append("FROM taxpolv sx "); + sql.append("INNER JOIN boleto b on b.boleto_id=sx.boleto_id "); + sql.append("INNER JOIN punto_venta pv ON pv.PUNTOVENTA_ID = b.PUNTOVENTA_ID "); + sql.append("INNER JOIN empresa em ON em.empresa_id=b.empresacorrida_id "); + sql.append("INNER JOIN parada po ON po.parada_id=b.origen_id "); + sql.append("INNER JOIN parada pd ON pd.parada_id=b.destino_id "); + sql.append("INNER JOIN CIUDAD co ON co.ciudad_id=po.ciudad_id "); + sql.append("INNER JOIN CIUDAD cd ON cd.ciudad_id=pd.ciudad_id "); + + sql.append("WHERE DECODE(:TIPO_DATA, 1, b.FECHORVENTA, 2, b.FECCORRIDA) BETWEEN :DATA_INICIAL AND :DATA_FINAL "); + if (parametros.get("EMPRESA_ID") != null) { + sql.append("AND em.empresa_id = COALESCE(:EMPRESA_ID, em.empresa_id) "); + } + if (parametros.get("ORIGEN_ID") != null && parametros.get("ORIGEN_ID") != "" && ((Integer) parametros.get("ORIGEN_ID") != -1)) { + sql.append("AND po.parada_id = COALESCE(:ORIGEN_ID, po.parada_id) "); + } + if (parametros.get("DESTINO_ID") != null && parametros.get("DESTINO_ID") != "" && ((Integer) parametros.get("DESTINO_ID") != -1)) { + sql.append("AND pd.parada_id = COALESCE(:DESTINO_ID, pd.parada_id) "); + } + if (!puntosVentaIds.contains("-1")) { + sql.append(" AND pv.puntoventa_id IN (").append(puntosVentaIds).append(") "); + } + sql.append("GROUP BY em.empresa_id, em.nombempresa,pv.puntoventa_id,pv.nombpuntoventa "); + + return sql.toString(); + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioW2ITaxaEmbarqueAnalitico_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioW2ITaxaEmbarqueAnalitico_pt_BR.properties new file mode 100644 index 000000000..01f6ecc2b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioW2ITaxaEmbarqueAnalitico_pt_BR.properties @@ -0,0 +1,13 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + + +#Labels cabeçalho +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: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioW2ITaxaEmbarqueSintetico_pt_BR.properties b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioW2ITaxaEmbarqueSintetico_pt_BR.properties new file mode 100644 index 000000000..01f6ecc2b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/internacionalizacao/RelatorioW2ITaxaEmbarqueSintetico_pt_BR.properties @@ -0,0 +1,13 @@ +#geral +msg.noData=Não foi possivel obter dados com os parâmetros informados. + + +#Labels cabeçalho +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: \ No newline at end of file diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioW2ITaxaEmbarqueAnalitico.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioW2ITaxaEmbarqueAnalitico.jasper new file mode 100644 index 0000000000000000000000000000000000000000..4b26cb76f8d381a9d4ea6e4911c8570514cd8ee3 GIT binary patch literal 43472 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioW2ITaxaEmbarqueSintetico.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioW2ITaxaEmbarqueSintetico.jasper new file mode 100644 index 0000000000000000000000000000000000000000..8361c5044e4fa9e9a5a5bf9581dde6635f3aebae GIT binary patch literal 45135 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 literal 0 HcmV?d00001 diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioW2ITaxaEmbarqueSintetico.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioW2ITaxaEmbarqueSintetico.jrxml new file mode 100644 index 000000000..f39f05b0b --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioW2ITaxaEmbarqueSintetico.jrxml @@ -0,0 +1,361 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioW2ITaxaEmbarqueController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioW2ITaxaEmbarqueController.java new file mode 100644 index 000000000..bcf62d796 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioW2ITaxaEmbarqueController.java @@ -0,0 +1,275 @@ +package com.rjconsultores.ventaboletos.web.gui.controladores.relatorios; + +import java.sql.Connection; +import java.util.ArrayList; +import java.util.Arrays; +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.zul.Bandbox; +import org.zkoss.zul.Comboitem; +import org.zkoss.zul.ComboitemRenderer; +import org.zkoss.zul.Paging; +import org.zkoss.zul.Radiogroup; + +import com.rjconsultores.ventaboletos.entidad.Empresa; +import com.rjconsultores.ventaboletos.entidad.Parada; +import com.rjconsultores.ventaboletos.entidad.PuntoVenta; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioW2ITaxaEmbarqueAnalitico; +import com.rjconsultores.ventaboletos.relatorios.impl.RelatorioW2ITaxaEmbarqueSintetico; +import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; +import com.rjconsultores.ventaboletos.service.EmpresaService; +import com.rjconsultores.ventaboletos.utilerias.UsuarioLogado; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParada; +import com.rjconsultores.ventaboletos.web.utilerias.MyComboboxParadaCve; +import com.rjconsultores.ventaboletos.web.utilerias.MyDatebox; +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; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderRelatorioTaxasLinhaPuntoVenta; +import com.rjconsultores.ventaboletos.web.utilerias.render.RenderRelatorioTaxasLinhaPuntoVentaSelecionados; + +@Controller("relatorioW2ITaxaEmbarqueController") +@Scope("prototype") +public class RelatorioW2ITaxaEmbarqueController extends MyGenericForwardComposer { + + private static final long serialVersionUID = 1L; + @Autowired + private transient PagedListWrapper plwPuntoVenta; + @Autowired + private DataSource dataSourceRead; + @Autowired + private EmpresaService empresaService; + private List lsEmpresa; + private MyComboboxParada cmbParadaOrigem; + private MyComboboxParadaCve cmbParadaOrigemCve; + private MyComboboxParada cmbParadaDestino; + private MyComboboxParadaCve cmbParadaDestinoCve; + private MyDatebox datInicial; + private MyDatebox datFinal; + private MyTextbox txtNombrePuntoVenta; + private Radiogroup rdGroupTipoData; + private Radiogroup rdGroupTipoRelatorio; + private MyComboboxEstandar cmbEmpresa; + private Bandbox bbPesquisaPuntoVenta; + private MyListbox puntoVentaList; + private MyListbox puntoVentaSelList; + private Paging pagingPuntoVenta; + + @Override + public void doAfterCompose(Component comp) throws Exception { + lsEmpresa = empresaService.obtenerTodos(); + + super.doAfterCompose(comp); + + cmbParadaOrigemCve.setItemRenderer(new ComboitemRenderer() { + @Override + public void render(Comboitem cmbtm, Object o) throws Exception { + Parada parada = (Parada) o; + + cmbtm.setLabel(parada.getCveparada()); + cmbtm.setValue(parada); + } + }); + + cmbParadaDestinoCve.setItemRenderer(new ComboitemRenderer() { + @Override + public void render(Comboitem cmbtm, Object o) throws Exception { + Parada parada = (Parada) o; + + cmbtm.setLabel(parada.getCveparada()); + cmbtm.setValue(parada); + } + }); + + puntoVentaList.setItemRenderer(new RenderRelatorioTaxasLinhaPuntoVenta()); + puntoVentaSelList.setItemRenderer(new RenderRelatorioTaxasLinhaPuntoVentaSelecionados()); + } + + private void executarPesquisa() { + 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("relatorioW2IController.window.title"), + Messagebox.OK, Messagebox.INFORMATION); + } catch (InterruptedException ex) { + } + } + } + + public void onClick$btnPesquisa(Event ev) { + executarPesquisa(); + } + + public void onDoubleClick$puntoVentaSelList(Event ev) { + PuntoVenta puntoVenta = (PuntoVenta) puntoVentaSelList.getSelected(); + puntoVentaSelList.removeItem(puntoVenta); + } + + public void onDoubleClick$puntoVentaList(Event ev) { + PuntoVenta puntoVenta = (PuntoVenta) puntoVentaList.getSelected(); + puntoVentaSelList.addItemNovo(puntoVenta); + } + + public void onClick$btnLimpar(Event ev) { + puntoVentaList.setData(new ArrayList()); + + bbPesquisaPuntoVenta.setText(""); + } + + public void onClick$btnExecutarRelatorio(Event ev) throws Exception { + executarRelatorio(); + } + + @SuppressWarnings({ "rawtypes", "unchecked" }) + private void executarRelatorio() throws Exception { + Relatorio relatorio; + Map parametros = new HashMap(); + StringBuilder filtro = new StringBuilder(); + + filtro.append("Agência: "); + String puntoVentaIds = ""; + String puntoVentas = ""; + List lsPuntoVentaSelecionados = new ArrayList(Arrays.asList(puntoVentaSelList.getData())); + if (lsPuntoVentaSelecionados.isEmpty()) { + puntoVentas = "Todas"; + puntoVentaIds = "-1"; + } else { + for (int i = 0; i < lsPuntoVentaSelecionados.size(); i++) { + PuntoVenta puntoVenta = lsPuntoVentaSelecionados.get(i); + puntoVentas = puntoVentas + puntoVenta.getNombpuntoventa() + ","; + + puntoVentaIds = puntoVentaIds + puntoVenta.getPuntoventaId() + ","; + } + + // removendo ultima virgula + puntoVentaIds = puntoVentaIds.substring(0, puntoVentaIds.length() - 1); + puntoVentas = puntoVentas.substring(0, puntoVentas.length() - 1); + } + filtro.append(puntoVentas).append(";"); + + parametros.put("DATA_INICIAL", (java.util.Date) this.datInicial.getValue()); + parametros.put("DATA_FINAL", (java.util.Date) this.datFinal.getValue()); + parametros.put("NOME_RELATORIO", Labels.getLabel("indexController.mniRelatorioTxEmbW2I.label")); + parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString()); + parametros.put("TIPO_DATA", Integer.parseInt(rdGroupTipoData.getSelectedItem().getValue())); + parametros.put("NUMPUNTOVENTA", puntoVentaIds); + filtro.append(" Tipo de Data: " + (rdGroupTipoData.getSelectedItem().getValue().equals(1) ? " Origem;" : "Destino;")); + filtro.append(" Empresa: "); + + Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); + if (itemEmpresa != null) { + Empresa empresa = (Empresa) itemEmpresa.getValue(); + parametros.put("EMPRESA_ID", empresa.getEmpresaId()); + parametros.put("EMPRESA", empresa.getNombempresa()); + filtro.append(empresa.getNombempresa() + ";"); + } else { + filtro.append("Todas;"); + } + + filtro.append(" Origem: "); + Comboitem cbiOrigem = cmbParadaOrigem.getSelectedItem(); + if (cbiOrigem != null) { + Parada origem = (Parada) cbiOrigem.getValue(); + parametros.put("ORIGEN_ID", origem.getParadaId()); + filtro.append(origem.getCveparada() + ";"); + } else { + filtro.append("Todas;"); + } + + filtro.append(" Destino: "); + Comboitem cbiDestino = cmbParadaDestino.getSelectedItem(); + if (cbiDestino != null) { + Parada destino = (Parada) cbiDestino.getValue(); + parametros.put("DESTINO_ID", destino.getParadaId()); + filtro.append(destino.getCveparada() + ";"); + } else { + filtro.append("Todos;"); + } + + Connection connection = dataSourceRead.getConnection(); + try { + + parametros.put("FILTROS", filtro.toString()); + if (Integer.parseInt(rdGroupTipoRelatorio.getSelectedItem().getValue()) == 1) { + relatorio = new RelatorioW2ITaxaEmbarqueAnalitico(parametros, connection); + } else { + relatorio = new RelatorioW2ITaxaEmbarqueSintetico(parametros, connection); + } + + Map args = new HashMap(); + args.put("relatorio", relatorio); + + openWindow("/component/reportView.zul", + Labels.getLabel("indexController.mniRelatorioTxEmbW2I.label"), args, MODAL); + } finally { + if ((connection != null) && !connection.isClosed()) { + connection.close(); + } + } + } + + public void onSelect$cmbParadaOrigemCve(Event ev) { + if (cmbParadaOrigemCve.getSelectedItem() != null) { + cmbParadaOrigem.setComboItemByParada((Parada) cmbParadaOrigemCve.getSelectedItem().getValue()); + } + } + + public void onSelect$cmbParadaOrigem(Event ev) { + if (cmbParadaOrigem.getSelectedItem() != null) + cmbParadaOrigemCve.setComboItemByParada((Parada) cmbParadaOrigem.getSelectedItem().getValue()); + } + + public void onSelect$cmbParadaDestinoCve(Event ev) { + if (cmbParadaDestinoCve.getSelectedItem() != null) { + cmbParadaDestino.setComboItemByParada((Parada) cmbParadaDestinoCve.getSelectedItem().getValue()); + } + } + + public void onSelect$cmbParadaDestino(Event ev) { + if (cmbParadaDestino.getSelectedItem() != null) { + cmbParadaDestinoCve.setComboItemByParada((Parada) cmbParadaDestino.getSelectedItem().getValue()); + } + } + + public List getLsEmpresa() { + return lsEmpresa; + } + + public void setLsEmpresa(List lsEmpresa) { + this.lsEmpresa = lsEmpresa; + } + + public Radiogroup getRdGroupTipoRelatorio() { + return rdGroupTipoRelatorio; + } + + public void setRdGroupTipoRelatorio(Radiogroup rdGroupTipoRelatorio) { + this.rdGroupTipoRelatorio = rdGroupTipoRelatorio; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/analitico/gerenciais/financeiro/SubMenuRelatorioFinanceiroW2i.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/analitico/gerenciais/financeiro/SubMenuRelatorioFinanceiroW2i.java new file mode 100644 index 000000000..c57ec21ff --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/analitico/gerenciais/financeiro/SubMenuRelatorioFinanceiroW2i.java @@ -0,0 +1,16 @@ +package com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.financeiro; + +import com.rjconsultores.ventaboletos.web.utilerias.menu.DefaultItemMenuSistema; + +public class SubMenuRelatorioFinanceiroW2i extends DefaultItemMenuSistema { + + public SubMenuRelatorioFinanceiroW2i() { + super("indexController.mniRelatoriosFinanceiroW2i.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS"; + } + +} diff --git a/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioTaxaEmbarqueW2I.java b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioTaxaEmbarqueW2I.java new file mode 100644 index 000000000..a74aa88f2 --- /dev/null +++ b/src/java/com/rjconsultores/ventaboletos/web/utilerias/menu/item/relatorios/ItemMenuRelatorioTaxaEmbarqueW2I.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 ItemMenuRelatorioTaxaEmbarqueW2I extends DefaultItemMenuSistema { + + public ItemMenuRelatorioTaxaEmbarqueW2I() { + super("indexController.mniRelatorioTxEmbW2I.label"); + } + + @Override + public String getClaveMenu() { + return "COM.RJCONSULTORES.ADMINISTRACION.GUI.RELATORIOS.MENU.RELATORIOW2I"; + } + + @Override + public void ejecutar() { + PantallaUtileria.openWindow("/gui/relatorios/filtroRelatorioTaxaEmbarqueW2I.zul", + Labels.getLabel("indexController.mniRelatorioTxEmbW2I.label"), getArgs() ,desktop); + } +} \ No newline at end of file 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 b25a71576..420b0861c 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 @@ -163,6 +163,9 @@ analitico.gerenciais.tabPreco=com.rjconsultores.ventaboletos.web.utilerias.menu. analitico.gerenciais.trip=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemRelatorioTripulacao analitico.gerenciais.relatorioImpressaoPosterior=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioImpressaoPosterior analitico.gerenciais.relatorioHistoricoCompras=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioPosicaoVendaBilheteIdoso +analitico.gerenciais.w2i=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.financeiro.SubMenuRelatorioFinanceiroW2i +analitico.gerenciais.w2i.relatorioW2I=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioFinanceiroW2I +analitico.gerenciais.w2i.relatorioTxEmbW2I=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioTaxaEmbarqueW2I analitico.gerenciais.relatoriobpe=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.bpe.SubMenuRelatorioBpe analitico.gerenciais.relatoriobpe.relatorioBPe=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioBPe analitico.gerenciais.relatoriobpe.BPeSubstituido=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioBPeSubstituido @@ -234,7 +237,6 @@ analitico.gerenciais.financeiro.vendasRequisicao=com.rjconsultores.ventaboletos. analitico.gerenciais.financeiro.aproveitamentoFinanceiro=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioAproveitamentoFinanceiro analitico.gerenciais.financeiro.relatorioOperacionalFinanceiro=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioCaixaOrgaoConcedente analitico.gerenciais.financeiro.relatorioResumoVendaOrgaoConcedente=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioResumoVendaOrgaoConcedente -analitico.gerenciais.financeiro.relatorioW2I=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioFinanceiroW2I analitico.gerenciais.financeiro.relatorioVendasConexaoRuta=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioVendasConexaoRuta analitico.gerenciais.pacote=com.rjconsultores.ventaboletos.web.utilerias.menu.item.analitico.gerenciais.pacote.SubMenuRelatorioPacote analitico.gerenciais.pacote.boletos=com.rjconsultores.ventaboletos.web.utilerias.menu.item.relatorios.ItemMenuRelatorioVendasPacotesBoletos diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label index deb26ffa3..06c771bcd 100644 --- a/web/WEB-INF/i3-label_en.label +++ b/web/WEB-INF/i3-label_en.label @@ -287,7 +287,9 @@ indexController.mniRelatorioEmbarqueLocalidade.label=Boarding by Places indexController.mniIntegracion.cashmonitor.label=Cash Monitor indexController.mniIntegracion.cashmonitor.relatoriovendacartaocashmonitor=Card Sale indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label=Passenger Demonstration Board - + +indexController.mniRelatoriosFinanceiroW2i.label = Reports W2i + indexController.mniRelatorios.label=Reports indexController.mniRelatorioAproveitamento.label=Utilizationi indexController.mniRelatorioArquivoBGM.label=Arquivo BGM @@ -373,7 +375,8 @@ indexController.mniRelatorioHistoricoCompras.label=Relatório Histórico de indexController.mniRelatorioPosicaoVendaBilheteIdoso.label=Relatório Posição de Venda do Bilhete Idoso indexController.mniRelatorioVendaEmbarcada.label=Onboard Sales indexController.mniRelatorioCaixaOrgaoConcedente.label = Relatório Caixa por Órgão Concedente -indexController.mniRelatorioW2I.label = Relatório W2I +indexController.mniRelatorioW2I.label = Relatório Seguro W2I +indexController.mniRelatorioTxEmbW2I.label = Relatório Taxa Embarque W2I indexController.mnSubMenuImpressaoFiscal.label=Impressão Fiscal indexController.mnSubMenuRelatorioImpressaoFiscal.label=Importação Fiscal diff --git a/web/WEB-INF/i3-label_es_MX.label b/web/WEB-INF/i3-label_es_MX.label index d0831e270..c893c0210 100644 --- a/web/WEB-INF/i3-label_es_MX.label +++ b/web/WEB-INF/i3-label_es_MX.label @@ -296,6 +296,8 @@ indexController.mniIntegracion.cashmonitor.label = Cash Monitor indexController.mniIntegracion.cashmonitor.relatoriovendacartaocashmonitor = Venda de cartão indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label = Quadro Demonstrativo Movimento Passageiros +indexController.mniRelatoriosFinanceiroW2i.label = Reportes W2i + indexController.mniRelatorios.label = Reportes indexController.mniRelatorioAproveitamento.label = Aprovechamiento indexController.mniRelatorioArquivoBGM.label = Arquivo BGM @@ -378,7 +380,8 @@ indexController.mniRelatorioVendaEmbarcada.label = Venda Embarcada indexController.mniRelatorioRemessaCNAB.label = Remessa de Lote (CNAB 400) indexController.mniRelatorioCaixaOrgaoConcedente.label = Relatório Caixa por Órgão Concedente indexController.mniRelatorioVendaConexaoLinha.label = Relatório Vendas de Conexão por Linha -indexController.mniRelatorioW2I.label = Relatório W2I +indexController.mniRelatorioW2I.label = Relatório Seguro W2I +indexController.mniRelatorioTxEmbW2I.label = Relatório Taxa Embarque W2I indexController.mnSubMenuImpressaoFiscal.label=Impresión fiscal indexController.mnSubMenuRelatorioImpressaoFiscal.label=Importación fiscal diff --git a/web/WEB-INF/i3-label_pt_BR.label b/web/WEB-INF/i3-label_pt_BR.label index 461900f8f..65fb6b979 100644 --- a/web/WEB-INF/i3-label_pt_BR.label +++ b/web/WEB-INF/i3-label_pt_BR.label @@ -309,6 +309,8 @@ indexController.mniIntegracion.cashmonitor.label = Cash Monitor indexController.mniIntegracion.cashmonitor.relatoriovendacartaocashmonitor = Venda de cartão indexController.mniRelatorioQuadroDemonstrativoMovimentoPassageiros.label = Quadro Demonstrativo Movimento Passageiros +indexController.mniRelatoriosFinanceiroW2i.label = Relatórios W2i + indexController.mniRelatorios.label = Relatórios indexController.mniRelatorioAproveitamento.label = Aproveitamento indexController.mniRelatorioArquivoBGM.label = Arquivo BGM @@ -402,6 +404,7 @@ indexController.mniRelatorioPosicaoVendaBilheteIdoso.label = Relatório Posiçã indexController.mniRelatorioVendaEmbarcada.label = Venda Embarcada indexController.mniRelatorioCaixaOrgaoConcedente.label = Relatório Caixa por Órgão Concedente indexController.mniRelatorioW2I.label = Relatório Seguro W2I +indexController.mniRelatorioTxEmbW2I.label = Relatório Taxa Embarque W2I indexController.mnSubMenuImpressaoFiscal.label=Impressão Fiscal indexController.mnSubMenuRelatorioImpressaoFiscal.label=Importação Fiscal diff --git a/web/gui/relatorios/filtroRelatorioTaxaEmbarqueW2I.zul b/web/gui/relatorios/filtroRelatorioTaxaEmbarqueW2I.zul new file mode 100644 index 000000000..b1fd13b6c --- /dev/null +++ b/web/gui/relatorios/filtroRelatorioTaxaEmbarqueW2I.zul @@ -0,0 +1,156 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +