From 63f35442dcf84613f8d9b2b8f92c348577e7b5c2 Mon Sep 17 00:00:00 2001 From: julio Date: Thu, 30 Jun 2022 18:41:24 +0000 Subject: [PATCH] fixes bug#24693 dev: Valdevir qua: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@113074 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioW2IAnalitico.java | 65 ++++++---- .../impl/RelatorioW2ISintetico.java | 119 ++++++++++++------ .../RelatorioW2ITaxaEmbarqueAnalitico.java | 50 ++++++-- .../RelatorioW2ITaxaEmbarqueSintetico.java | 118 ++++++++++++----- .../relatorios/RelatorioW2IController.java | 3 - .../RelatorioW2ITaxaEmbarqueController.java | 4 +- web/WEB-INF/i3-label_en.label | 4 +- .../filtroRelatorioTaxaEmbarqueW2I.zul | 10 -- web/gui/relatorios/filtroRelatorioW2I.zul | 10 -- 9 files changed, 253 insertions(+), 130 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2IAnalitico.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2IAnalitico.java index 5e695aac7..70ad9790c 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2IAnalitico.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2IAnalitico.java @@ -3,14 +3,12 @@ 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 org.apache.log4j.Logger; import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; @@ -22,7 +20,6 @@ import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; public class RelatorioW2IAnalitico extends Relatorio { - private static Logger log = Logger.getLogger(RelatorioW2IAnalitico.class); private List lsDadosRelatorio; public RelatorioW2IAnalitico(Map parametros, Connection conexao) throws Exception { @@ -35,7 +32,7 @@ public class RelatorioW2IAnalitico extends Relatorio { Connection conexao = this.relatorio.getConexao(); Map parametros = this.relatorio.getParametros(); String puntosVentaIds = (String) parametros.get("NUMPUNTOVENTA"); - puntosVentaIds = StringUtils.replace(puntosVentaIds, "," , "','"); + puntosVentaIds = StringUtils.replace(puntosVentaIds, ",", "','"); lsDadosRelatorio = new ArrayList(); String sql = getSql(puntosVentaIds); @@ -44,10 +41,9 @@ public class RelatorioW2IAnalitico extends Relatorio { 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())); - + stmt.setString("DATA_INICIAL", DateUtil.getStringDate((Date) parametros.get("DATA_INICIAL"), "yyMMdd")); + stmt.setString("DATA_FINAL", DateUtil.getStringDate((Date) parametros.get("DATA_FINAL"), "yyMMdd")); + if (parametros.get("EMPRESA_ID") != null) stmt.setInt("EMPRESA_ID", (Integer) parametros.get("EMPRESA_ID")); else @@ -100,8 +96,6 @@ public class RelatorioW2IAnalitico extends Relatorio { @Override protected void processaParametros() throws Exception { - // TODO Auto-generated method stub - } private String getSql(String puntosVentaIds) { @@ -118,28 +112,57 @@ public class RelatorioW2IAnalitico extends Relatorio { sql.append("b.fechorventa dataVenda, "); sql.append("b.numasiento AS poltrona, "); sql.append("sx.valor AS valorTaxa, "); - sql.append("CASE WHEN sx.status=0 THEN 'C' ELSE 'V' END status "); - + sql.append("'V' AS status "); sql.append("FROM segpolv sx "); - - sql.append("INNER JOIN boleto b on b.boleto_id=sx.boleto_id "); + sql.append("LEFT 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 empresa em ON em.empresa_id=sx.empresa "); + sql.append("INNER JOIN parada po ON po.parada_id=sx.origen_id "); + sql.append("INNER JOIN parada pd ON pd.parada_id=sx.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("WHERE sx.datavenda BETWEEN :DATA_INICIAL AND :DATA_FINAL "); 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(" AND pv.puntoventa_id IN ('" + puntosVentaIds + "') "); } - sql.append("ORDER BY b.fechorventa ASC "); + sql.append(" UNION "); + + 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("(COALESCE(sx.valor, 0) * -1) AS valorTaxa, "); + sql.append("'C' AS status "); + sql.append("FROM segpolv sx "); + sql.append("LEFT 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=sx.empresa "); + sql.append("INNER JOIN parada po ON po.parada_id=sx.origen_id "); + sql.append("INNER JOIN parada pd ON pd.parada_id=sx.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 sx.datacancelamento BETWEEN :DATA_INICIAL AND :DATA_FINAL "); + 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 dataVenda ASC "); return sql.toString(); }; diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ISintetico.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ISintetico.java index 62e6c70f0..9409f6286 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ISintetico.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ISintetico.java @@ -3,14 +3,12 @@ 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 org.apache.log4j.Logger; import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; @@ -22,7 +20,6 @@ import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource; public class RelatorioW2ISintetico extends Relatorio { - private static Logger log = Logger.getLogger(RelatorioW2ISintetico.class); private List lsDadosRelatorio; public RelatorioW2ISintetico(Map parametros, Connection conexao) throws Exception { @@ -41,18 +38,23 @@ public class RelatorioW2ISintetico extends Relatorio { 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())); + stmt.setString("DATA_INICIAL", DateUtil.getStringDate((Date) parametros.get("DATA_INICIAL"), "yyMMdd")); + stmt.setString("DATA_FINAL", DateUtil.getStringDate((Date) parametros.get("DATA_FINAL"), "yyMMdd")); 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(); @@ -87,47 +89,88 @@ public class RelatorioW2ISintetico extends Relatorio { @Override protected void processaParametros() throws Exception { - // TODO Auto-generated method stub - } private String getSql(Map parametros) { String puntosVentaIds = (String) parametros.get("NUMPUNTOVENTA"); - puntosVentaIds = StringUtils.replace(puntosVentaIds, "," , "','"); + 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.status =0 then 1 else 0.0 end)) qtdSeguroOpcionalCancelado, "); - sql.append(" SUM( (case when sx.status =0 then sx.valor else 0.0 end )) totalValorSeguroOpcionalCancelado, "); - sql.append(" SUM( (case when sx.status >0 then 1 else 0.0 end )) qtdSeguroOpcionalVendidos, "); - sql.append(" SUM( (case when sx.status >0 then sx.valor else 0.0 end )) totalValorSeguroOpcionalVendido "); - sql.append("FROM segpolv 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(" SELECT DISTINCT "); + sql.append(" tx.empresaId, "); + sql.append(" tx.empresa, "); + sql.append(" tx.puntoventaid, "); + sql.append(" tx.agencia, "); + sql.append(" SUM( (case when tx.status ='C' then 1 else 0 end)) qtdSeguroOpcionalCancelado, "); + sql.append(" SUM( (case when tx.status ='C' then tx.valorTaxa else 0.0 end )) totalValorSeguroOpcionalCancelado, "); + sql.append(" SUM( (case when tx.status ='V' then 1 else 0.0 end )) qtdSeguroOpcionalVendidos, "); + sql.append(" SUM( (case when tx.status ='V' then tx.valorTaxa else 0.0 end )) totalValorSeguroOpcionalVendido "); + sql.append(" FROM ( "); + + 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.valor AS valorTaxa, "); + sql.append(" 'V' AS status "); + sql.append(" FROM segpolv sx "); + sql.append(" LEFT 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=sx.empresa "); + sql.append(" INNER JOIN parada po ON po.parada_id=sx.origen_id "); + sql.append(" INNER JOIN parada pd ON pd.parada_id=sx.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 sx.datavenda BETWEEN :DATA_INICIAL AND :DATA_FINAL "); + 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) "); - 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(" AND pv.puntoventa_id IN ('" + puntosVentaIds + "') "); } - sql.append("GROUP BY em.empresa_id, em.nombempresa,pv.puntoventa_id,pv.nombpuntoventa "); + + sql.append(" UNION "); + + 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(" (COALESCE(sx.valor, 0) * -1) AS valorTaxa, "); + sql.append(" 'C' AS status "); + sql.append(" FROM segpolv sx "); + sql.append(" LEFT 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=sx.empresa "); + sql.append(" INNER JOIN parada po ON po.parada_id=sx.origen_id "); + sql.append(" INNER JOIN parada pd ON pd.parada_id=sx.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 sx.datacancelamento BETWEEN :DATA_INICIAL AND :DATA_FINAL "); + 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 dataVenda ASC ) tx "); + sql.append(" GROUP BY tx.empresaId, tx.empresa, tx.puntoventaid, tx.agencia "); return sql.toString(); } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueAnalitico.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueAnalitico.java index 2f7c7da2e..c62312381 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueAnalitico.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueAnalitico.java @@ -3,7 +3,6 @@ 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; @@ -42,9 +41,11 @@ public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio { 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())); + stmt.setString("DATA_INICIAL", DateUtil.getStringDate((Date) parametros.get("DATA_INICIAL"), "ddMMyyyy")); + stmt.setString("DATA_FINAL", DateUtil.getStringDate((Date) parametros.get("DATA_FINAL"), "ddMMyyyy")); + + stmt.setString("DATA_INICIAL_CANCEL", DateUtil.getStringDate((Date) parametros.get("DATA_INICIAL"), "ddMMyy")); + stmt.setString("DATA_FINAL_CANCEL", DateUtil.getStringDate((Date) parametros.get("DATA_FINAL"), "ddMMyy")); if (parametros.get("EMPRESA_ID") != null) stmt.setInt("EMPRESA_ID", (Integer) parametros.get("EMPRESA_ID")); @@ -98,8 +99,6 @@ public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio { @Override protected void processaParametros() throws Exception { - // TODO Auto-generated method stub - } private String getSql(String puntosVentaIds) { @@ -116,7 +115,7 @@ public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio { 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("'V' AS 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 "); @@ -125,7 +124,7 @@ public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio { 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("WHERE sx.DATAVENDA 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) "); @@ -135,7 +134,40 @@ public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio { sql.append(" AND pv.puntoventa_id IN ('" + puntosVentaIds + "') "); } - sql.append("ORDER BY b.fechorventa ASC "); + sql.append(" UNION "); + + 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("(COALESCE(sx.valortaxa, 0) * -1) AS valorTaxa, "); + sql.append("'C' AS 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 sx.DATACANCELAMENTO BETWEEN :DATA_INICIAL_CANCEL AND :DATA_FINAL_CANCEL "); + 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 dataVenda 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 index 1583dbc07..dd48e0227 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueSintetico.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioW2ITaxaEmbarqueSintetico.java @@ -3,7 +3,6 @@ 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; @@ -39,18 +38,26 @@ public class RelatorioW2ITaxaEmbarqueSintetico extends Relatorio { 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())); + stmt.setString("DATA_INICIAL", DateUtil.getStringDate((Date) parametros.get("DATA_INICIAL"), "ddMMyyyy")); + stmt.setString("DATA_FINAL", DateUtil.getStringDate((Date) parametros.get("DATA_FINAL"), "ddMMyyyy")); + + stmt.setString("DATA_INICIAL_CANCEL", DateUtil.getStringDate((Date) parametros.get("DATA_INICIAL"), "ddMMyy")); + stmt.setString("DATA_FINAL_CANCEL", DateUtil.getStringDate((Date) parametros.get("DATA_FINAL"), "ddMMyy")); 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(); @@ -89,41 +96,84 @@ public class RelatorioW2ITaxaEmbarqueSintetico extends Relatorio { private String getSql(Map parametros) { String puntosVentaIds = (String) parametros.get("NUMPUNTOVENTA"); - puntosVentaIds = StringUtils.replace(puntosVentaIds, "," , "','"); + 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) "); - } + sql.append(" SELECT DISTINCT "); + sql.append(" tx.empresaId, "); + sql.append(" tx.empresa, "); + sql.append(" tx.puntoventaid, "); + sql.append(" tx.agencia, "); + sql.append(" SUM( (case when tx.status ='C' then 1 else 0 end)) qtdSeguroOpcionalCancelado, "); + sql.append(" SUM( (case when tx.status ='C' then tx.valorTaxa else 0.0 end )) totalValorSeguroOpcionalCancelado, "); + sql.append(" SUM( (case when tx.status ='V' then 1 else 0.0 end )) qtdSeguroOpcionalVendidos, "); + sql.append(" SUM( (case when tx.status ='V' then tx.valorTaxa else 0.0 end )) totalValorSeguroOpcionalVendido "); + sql.append(" FROM ( "); + 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(" 'V' AS 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 sx.DATAVENDA 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 (").append(puntosVentaIds).append(") "); + sql.append(" AND pv.puntoventa_id IN ('" + puntosVentaIds + "') "); } - sql.append("GROUP BY em.empresa_id, em.nombempresa,pv.puntoventa_id,pv.nombpuntoventa "); + sql.append(" UNION "); + 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(" 'C' AS 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 sx.DATACANCELAMENTO BETWEEN :DATA_INICIAL_CANCEL AND :DATA_FINAL_CANCEL "); + 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 dataVenda ASC ) tx "); + sql.append(" GROUP BY tx.empresaId, tx.empresa, tx.puntoventaid, tx.agencia "); return sql.toString(); } diff --git a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioW2IController.java b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioW2IController.java index 6614377b6..32e003ee5 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioW2IController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioW2IController.java @@ -64,7 +64,6 @@ public class RelatorioW2IController extends MyGenericForwardComposer { private MyDatebox datInicial; private MyDatebox datFinal; private MyTextbox txtNombrePuntoVenta; - private Radiogroup rdGroupTipoData; private Radiogroup rdGroupTipoRelatorio; private MyComboboxEstandar cmbEmpresa; private Bandbox bbPesquisaPuntoVenta; @@ -179,9 +178,7 @@ public class RelatorioW2IController extends MyGenericForwardComposer { parametros.put("DATA_FINAL", (java.util.Date) this.datFinal.getValue()); parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioW2IController.window.title")); 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(); 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 index bcf62d796..3562613b5 100644 --- a/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioW2ITaxaEmbarqueController.java +++ b/src/java/com/rjconsultores/ventaboletos/web/gui/controladores/relatorios/RelatorioW2ITaxaEmbarqueController.java @@ -61,7 +61,6 @@ public class RelatorioW2ITaxaEmbarqueController extends MyGenericForwardComposer private MyDatebox datInicial; private MyDatebox datFinal; private MyTextbox txtNombrePuntoVenta; - private Radiogroup rdGroupTipoData; private Radiogroup rdGroupTipoRelatorio; private MyComboboxEstandar cmbEmpresa; private Bandbox bbPesquisaPuntoVenta; @@ -176,9 +175,8 @@ public class RelatorioW2ITaxaEmbarqueController extends MyGenericForwardComposer 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(); diff --git a/web/WEB-INF/i3-label_en.label b/web/WEB-INF/i3-label_en.label index 578357fa6..782e130c8 100644 --- a/web/WEB-INF/i3-label_en.label +++ b/web/WEB-INF/i3-label_en.label @@ -803,8 +803,8 @@ relatorioW2IController.window.title = Relatório W2I relatorioW2IController.lbEmpresa.value = Empresa relatorioW2IController.lbNumero.value = Número Agência relatorioW2IController.lbAte.value = até -relatorioW2IController.lbDatInicial.value = Data Inicial -relatorioW2IController.lbDatFinal.value = Data Final +relatorioW2IController.lbDatInicial.value = Data Inicial Venda +relatorioW2IController.lbDatFinal.value = Data Final Venda relatorioW2IController.lbTipoData.value = Tipo de Data relatorioW2IController.lbTipoData.venda.value = Data Venda relatorioW2IController.lbTipoData.servico.value = Data Serviço diff --git a/web/gui/relatorios/filtroRelatorioTaxaEmbarqueW2I.zul b/web/gui/relatorios/filtroRelatorioTaxaEmbarqueW2I.zul index b1fd13b6c..9e7324f26 100644 --- a/web/gui/relatorios/filtroRelatorioTaxaEmbarqueW2I.zul +++ b/web/gui/relatorios/filtroRelatorioTaxaEmbarqueW2I.zul @@ -62,16 +62,6 @@ use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar" model="@{winFiltroRelatorioW2I$composer.lsEmpresa}" width="95%" /> - - - - - - diff --git a/web/gui/relatorios/filtroRelatorioW2I.zul b/web/gui/relatorios/filtroRelatorioW2I.zul index 9ef62fdf6..cb960662e 100644 --- a/web/gui/relatorios/filtroRelatorioW2I.zul +++ b/web/gui/relatorios/filtroRelatorioW2I.zul @@ -62,16 +62,6 @@ use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar" model="@{winFiltroRelatorioW2I$composer.lsEmpresa}" width="95%" /> - - - - - -