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
master
julio 2022-06-30 18:41:24 +00:00
parent 34fa91dfc5
commit 63f35442dc
9 changed files with 253 additions and 130 deletions

View File

@ -3,14 +3,12 @@ package com.rjconsultores.ventaboletos.relatorios.impl;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Connection; import java.sql.Connection;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
@ -22,7 +20,6 @@ import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
public class RelatorioW2IAnalitico extends Relatorio { public class RelatorioW2IAnalitico extends Relatorio {
private static Logger log = Logger.getLogger(RelatorioW2IAnalitico.class);
private List<RelatorioW2IBean> lsDadosRelatorio; private List<RelatorioW2IBean> lsDadosRelatorio;
public RelatorioW2IAnalitico(Map<String, Object> parametros, Connection conexao) throws Exception { public RelatorioW2IAnalitico(Map<String, Object> parametros, Connection conexao) throws Exception {
@ -35,7 +32,7 @@ public class RelatorioW2IAnalitico extends Relatorio {
Connection conexao = this.relatorio.getConexao(); Connection conexao = this.relatorio.getConexao();
Map<String, Object> parametros = this.relatorio.getParametros(); Map<String, Object> parametros = this.relatorio.getParametros();
String puntosVentaIds = (String) parametros.get("NUMPUNTOVENTA"); String puntosVentaIds = (String) parametros.get("NUMPUNTOVENTA");
puntosVentaIds = StringUtils.replace(puntosVentaIds, "," , "','"); puntosVentaIds = StringUtils.replace(puntosVentaIds, ",", "','");
lsDadosRelatorio = new ArrayList<RelatorioW2IBean>(); lsDadosRelatorio = new ArrayList<RelatorioW2IBean>();
String sql = getSql(puntosVentaIds); String sql = getSql(puntosVentaIds);
@ -44,9 +41,8 @@ public class RelatorioW2IAnalitico extends Relatorio {
ResultSet rset = null; ResultSet rset = null;
stmt.setInt("TIPO_DATA", (Integer) parametros.get("TIPO_DATA")); stmt.setString("DATA_INICIAL", DateUtil.getStringDate((Date) parametros.get("DATA_INICIAL"), "yyMMdd"));
stmt.setTimestamp("DATA_INICIAL", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime())); stmt.setString("DATA_FINAL", DateUtil.getStringDate((Date) parametros.get("DATA_FINAL"), "yyMMdd"));
stmt.setTimestamp("DATA_FINAL", new Timestamp(DateUtil.fimFecha((Date) parametros.get("DATA_FINAL")).getTime()));
if (parametros.get("EMPRESA_ID") != null) if (parametros.get("EMPRESA_ID") != null)
stmt.setInt("EMPRESA_ID", (Integer) parametros.get("EMPRESA_ID")); stmt.setInt("EMPRESA_ID", (Integer) parametros.get("EMPRESA_ID"));
@ -100,8 +96,6 @@ public class RelatorioW2IAnalitico extends Relatorio {
@Override @Override
protected void processaParametros() throws Exception { protected void processaParametros() throws Exception {
// TODO Auto-generated method stub
} }
private String getSql(String puntosVentaIds) { private String getSql(String puntosVentaIds) {
@ -118,28 +112,57 @@ public class RelatorioW2IAnalitico extends Relatorio {
sql.append("b.fechorventa dataVenda, "); sql.append("b.fechorventa dataVenda, ");
sql.append("b.numasiento AS poltrona, "); sql.append("b.numasiento AS poltrona, ");
sql.append("sx.valor AS valorTaxa, "); 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("FROM segpolv sx ");
sql.append("LEFT JOIN boleto b on b.boleto_id=sx.boleto_id ");
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 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 empresa em ON em.empresa_id=sx.empresa ");
sql.append("INNER JOIN parada po ON po.parada_id=b.origen_id "); sql.append("INNER JOIN parada po ON po.parada_id=sx.origen_id ");
sql.append("INNER JOIN parada pd ON pd.parada_id=b.destino_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 co ON co.ciudad_id=po.ciudad_id ");
sql.append("INNER JOIN CIUDAD cd ON cd.ciudad_id=pd.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("WHERE DECODE(:TIPO_DATA, 1, b.FECHORVENTA, 2, b.FECCORRIDA) BETWEEN :DATA_INICIAL AND :DATA_FINAL ");
sql.append("AND em.empresa_id = COALESCE(:EMPRESA_ID, em.empresa_id) "); 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 po.parada_id = COALESCE(:ORIGEN_ID, po.parada_id) ");
sql.append("AND pd.parada_id = COALESCE(:DESTINO_ID, pd.parada_id) "); sql.append("AND pd.parada_id = COALESCE(:DESTINO_ID, pd.parada_id) ");
if (!puntosVentaIds.contains("-1")) { 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(); return sql.toString();
}; };

View File

@ -3,14 +3,12 @@ package com.rjconsultores.ventaboletos.relatorios.impl;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Connection; import java.sql.Connection;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
import org.apache.commons.lang.StringUtils; import org.apache.commons.lang.StringUtils;
import org.apache.log4j.Logger;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource;
import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio;
@ -22,7 +20,6 @@ import net.sf.jasperreports.engine.data.JRBeanCollectionDataSource;
public class RelatorioW2ISintetico extends Relatorio { public class RelatorioW2ISintetico extends Relatorio {
private static Logger log = Logger.getLogger(RelatorioW2ISintetico.class);
private List<RelatorioW2ISinteticoBean> lsDadosRelatorio; private List<RelatorioW2ISinteticoBean> lsDadosRelatorio;
public RelatorioW2ISintetico(Map<String, Object> parametros, Connection conexao) throws Exception { public RelatorioW2ISintetico(Map<String, Object> parametros, Connection conexao) throws Exception {
@ -41,18 +38,23 @@ public class RelatorioW2ISintetico extends Relatorio {
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
ResultSet rset = null; ResultSet rset = null;
stmt.setInt("TIPO_DATA", (Integer) parametros.get("TIPO_DATA")); stmt.setString("DATA_INICIAL", DateUtil.getStringDate((Date) parametros.get("DATA_INICIAL"), "yyMMdd"));
stmt.setTimestamp("DATA_INICIAL", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime())); stmt.setString("DATA_FINAL", DateUtil.getStringDate((Date) parametros.get("DATA_FINAL"), "yyMMdd"));
stmt.setTimestamp("DATA_FINAL", new Timestamp(DateUtil.fimFecha((Date) parametros.get("DATA_FINAL")).getTime()));
if (parametros.get("EMPRESA_ID") != null) if (parametros.get("EMPRESA_ID") != null)
stmt.setInt("EMPRESA_ID", (Integer) parametros.get("EMPRESA_ID")); 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)) 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")); 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)) 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")); stmt.setInt("DESTINO_ID", (Integer) parametros.get("DESTINO_ID"));
else
stmt.setNull("DESTINO_ID", java.sql.Types.INTEGER);
rset = stmt.executeQuery(); rset = stmt.executeQuery();
@ -87,47 +89,88 @@ public class RelatorioW2ISintetico extends Relatorio {
@Override @Override
protected void processaParametros() throws Exception { protected void processaParametros() throws Exception {
// TODO Auto-generated method stub
} }
private String getSql(Map<String, Object> parametros) { private String getSql(Map<String, Object> parametros) {
String puntosVentaIds = (String) parametros.get("NUMPUNTOVENTA"); String puntosVentaIds = (String) parametros.get("NUMPUNTOVENTA");
puntosVentaIds = StringUtils.replace(puntosVentaIds, "," , "','"); puntosVentaIds = StringUtils.replace(puntosVentaIds, ",", "','");
StringBuilder sql = new StringBuilder(); 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(" SELECT DISTINCT ");
sql.append("INNER JOIN punto_venta pv ON pv.PUNTOVENTA_ID = b.PUNTOVENTA_ID "); sql.append(" tx.empresaId, ");
sql.append("INNER JOIN empresa em ON em.empresa_id=b.empresacorrida_id "); sql.append(" tx.empresa, ");
sql.append("INNER JOIN parada po ON po.parada_id=b.origen_id "); sql.append(" tx.puntoventaid, ");
sql.append("INNER JOIN parada pd ON pd.parada_id=b.destino_id "); sql.append(" tx.agencia, ");
sql.append("INNER JOIN CIUDAD co ON co.ciudad_id=po.ciudad_id "); sql.append(" SUM( (case when tx.status ='C' then 1 else 0 end)) qtdSeguroOpcionalCancelado, ");
sql.append("INNER JOIN CIUDAD cd ON cd.ciudad_id=pd.ciudad_id "); 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")) { 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(); return sql.toString();
} }

View File

@ -3,7 +3,6 @@ package com.rjconsultores.ventaboletos.relatorios.impl;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Connection; import java.sql.Connection;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -42,9 +41,11 @@ public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio {
ResultSet rset = null; ResultSet rset = null;
stmt.setInt("TIPO_DATA", (Integer) parametros.get("TIPO_DATA")); stmt.setString("DATA_INICIAL", DateUtil.getStringDate((Date) parametros.get("DATA_INICIAL"), "ddMMyyyy"));
stmt.setTimestamp("DATA_INICIAL", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime())); stmt.setString("DATA_FINAL", DateUtil.getStringDate((Date) parametros.get("DATA_FINAL"), "ddMMyyyy"));
stmt.setTimestamp("DATA_FINAL", new Timestamp(DateUtil.fimFecha((Date) parametros.get("DATA_FINAL")).getTime()));
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) if (parametros.get("EMPRESA_ID") != null)
stmt.setInt("EMPRESA_ID", (Integer) parametros.get("EMPRESA_ID")); stmt.setInt("EMPRESA_ID", (Integer) parametros.get("EMPRESA_ID"));
@ -98,8 +99,6 @@ public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio {
@Override @Override
protected void processaParametros() throws Exception { protected void processaParametros() throws Exception {
// TODO Auto-generated method stub
} }
private String getSql(String puntosVentaIds) { private String getSql(String puntosVentaIds) {
@ -116,7 +115,7 @@ public class RelatorioW2ITaxaEmbarqueAnalitico extends Relatorio {
sql.append("b.fechorventa dataVenda, "); sql.append("b.fechorventa dataVenda, ");
sql.append("b.numasiento AS poltrona, "); sql.append("b.numasiento AS poltrona, ");
sql.append("sx.valortaxa AS valorTaxa, "); 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("FROM taxpolv sx ");
sql.append("INNER JOIN boleto b on b.boleto_id=sx.boleto_id "); 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 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 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 co ON co.ciudad_id=po.ciudad_id ");
sql.append("INNER JOIN CIUDAD cd ON cd.ciudad_id=pd.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 sx.ACTIVO = 1 ");
sql.append("AND em.empresa_id = COALESCE(:EMPRESA_ID, em.empresa_id) "); 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 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(" 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(); return sql.toString();
}; };

View File

@ -3,7 +3,6 @@ package com.rjconsultores.ventaboletos.relatorios.impl;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.sql.Connection; import java.sql.Connection;
import java.sql.ResultSet; import java.sql.ResultSet;
import java.sql.Timestamp;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
@ -39,18 +38,26 @@ public class RelatorioW2ITaxaEmbarqueSintetico extends Relatorio {
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
ResultSet rset = null; ResultSet rset = null;
stmt.setInt("TIPO_DATA", (Integer) parametros.get("TIPO_DATA")); stmt.setString("DATA_INICIAL", DateUtil.getStringDate((Date) parametros.get("DATA_INICIAL"), "ddMMyyyy"));
stmt.setTimestamp("DATA_INICIAL", new Timestamp(DateUtil.inicioFecha((Date) parametros.get("DATA_INICIAL")).getTime())); stmt.setString("DATA_FINAL", DateUtil.getStringDate((Date) parametros.get("DATA_FINAL"), "ddMMyyyy"));
stmt.setTimestamp("DATA_FINAL", new Timestamp(DateUtil.fimFecha((Date) parametros.get("DATA_FINAL")).getTime()));
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) if (parametros.get("EMPRESA_ID") != null)
stmt.setInt("EMPRESA_ID", (Integer) parametros.get("EMPRESA_ID")); 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)) 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")); 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)) 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")); stmt.setInt("DESTINO_ID", (Integer) parametros.get("DESTINO_ID"));
else
stmt.setNull("DESTINO_ID", java.sql.Types.INTEGER);
rset = stmt.executeQuery(); rset = stmt.executeQuery();
@ -89,41 +96,84 @@ public class RelatorioW2ITaxaEmbarqueSintetico extends Relatorio {
private String getSql(Map<String, Object> parametros) { private String getSql(Map<String, Object> parametros) {
String puntosVentaIds = (String) parametros.get("NUMPUNTOVENTA"); String puntosVentaIds = (String) parametros.get("NUMPUNTOVENTA");
puntosVentaIds = StringUtils.replace(puntosVentaIds, "," , "','"); puntosVentaIds = StringUtils.replace(puntosVentaIds, ",", "','");
StringBuilder sql = new StringBuilder(); 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 "); sql.append(" SELECT DISTINCT ");
if (parametros.get("EMPRESA_ID") != null) { sql.append(" tx.empresaId, ");
sql.append("AND em.empresa_id = COALESCE(:EMPRESA_ID, em.empresa_id) "); sql.append(" tx.empresa, ");
} sql.append(" tx.puntoventaid, ");
if (parametros.get("ORIGEN_ID") != null && parametros.get("ORIGEN_ID") != "" && ((Integer) parametros.get("ORIGEN_ID") != -1)) { sql.append(" tx.agencia, ");
sql.append("AND po.parada_id = COALESCE(:ORIGEN_ID, po.parada_id) "); 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, ");
if (parametros.get("DESTINO_ID") != null && parametros.get("DESTINO_ID") != "" && ((Integer) parametros.get("DESTINO_ID") != -1)) { sql.append(" SUM( (case when tx.status ='V' then 1 else 0.0 end )) qtdSeguroOpcionalVendidos, ");
sql.append("AND pd.parada_id = COALESCE(:DESTINO_ID, pd.parada_id) "); 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")) { 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(); return sql.toString();
} }

View File

@ -64,7 +64,6 @@ public class RelatorioW2IController extends MyGenericForwardComposer {
private MyDatebox datInicial; private MyDatebox datInicial;
private MyDatebox datFinal; private MyDatebox datFinal;
private MyTextbox txtNombrePuntoVenta; private MyTextbox txtNombrePuntoVenta;
private Radiogroup rdGroupTipoData;
private Radiogroup rdGroupTipoRelatorio; private Radiogroup rdGroupTipoRelatorio;
private MyComboboxEstandar cmbEmpresa; private MyComboboxEstandar cmbEmpresa;
private Bandbox bbPesquisaPuntoVenta; private Bandbox bbPesquisaPuntoVenta;
@ -179,9 +178,7 @@ public class RelatorioW2IController extends MyGenericForwardComposer {
parametros.put("DATA_FINAL", (java.util.Date) this.datFinal.getValue()); parametros.put("DATA_FINAL", (java.util.Date) this.datFinal.getValue());
parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioW2IController.window.title")); parametros.put("NOME_RELATORIO", Labels.getLabel("relatorioW2IController.window.title"));
parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString()); parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString());
parametros.put("TIPO_DATA", Integer.parseInt(rdGroupTipoData.getSelectedItem().getValue()));
parametros.put("NUMPUNTOVENTA", puntoVentaIds); parametros.put("NUMPUNTOVENTA", puntoVentaIds);
filtro.append(" Tipo de Data: " + (rdGroupTipoData.getSelectedItem().getValue().equals(1) ? " Origem;" : "Destino;"));
filtro.append(" Empresa: "); filtro.append(" Empresa: ");
Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); Comboitem itemEmpresa = cmbEmpresa.getSelectedItem();

View File

@ -61,7 +61,6 @@ public class RelatorioW2ITaxaEmbarqueController extends MyGenericForwardComposer
private MyDatebox datInicial; private MyDatebox datInicial;
private MyDatebox datFinal; private MyDatebox datFinal;
private MyTextbox txtNombrePuntoVenta; private MyTextbox txtNombrePuntoVenta;
private Radiogroup rdGroupTipoData;
private Radiogroup rdGroupTipoRelatorio; private Radiogroup rdGroupTipoRelatorio;
private MyComboboxEstandar cmbEmpresa; private MyComboboxEstandar cmbEmpresa;
private Bandbox bbPesquisaPuntoVenta; private Bandbox bbPesquisaPuntoVenta;
@ -176,9 +175,8 @@ public class RelatorioW2ITaxaEmbarqueController extends MyGenericForwardComposer
parametros.put("DATA_FINAL", (java.util.Date) this.datFinal.getValue()); parametros.put("DATA_FINAL", (java.util.Date) this.datFinal.getValue());
parametros.put("NOME_RELATORIO", Labels.getLabel("indexController.mniRelatorioTxEmbW2I.label")); parametros.put("NOME_RELATORIO", Labels.getLabel("indexController.mniRelatorioTxEmbW2I.label"));
parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString()); parametros.put("USUARIO", UsuarioLogado.getUsuarioLogado().getUsuarioId().toString());
parametros.put("TIPO_DATA", Integer.parseInt(rdGroupTipoData.getSelectedItem().getValue()));
parametros.put("NUMPUNTOVENTA", puntoVentaIds); parametros.put("NUMPUNTOVENTA", puntoVentaIds);
filtro.append(" Tipo de Data: " + (rdGroupTipoData.getSelectedItem().getValue().equals(1) ? " Origem;" : "Destino;"));
filtro.append(" Empresa: "); filtro.append(" Empresa: ");
Comboitem itemEmpresa = cmbEmpresa.getSelectedItem(); Comboitem itemEmpresa = cmbEmpresa.getSelectedItem();

View File

@ -803,8 +803,8 @@ relatorioW2IController.window.title = Relatório W2I
relatorioW2IController.lbEmpresa.value = Empresa relatorioW2IController.lbEmpresa.value = Empresa
relatorioW2IController.lbNumero.value = Número Agência relatorioW2IController.lbNumero.value = Número Agência
relatorioW2IController.lbAte.value = até relatorioW2IController.lbAte.value = até
relatorioW2IController.lbDatInicial.value = Data Inicial relatorioW2IController.lbDatInicial.value = Data Inicial Venda
relatorioW2IController.lbDatFinal.value = Data Final relatorioW2IController.lbDatFinal.value = Data Final Venda
relatorioW2IController.lbTipoData.value = Tipo de Data relatorioW2IController.lbTipoData.value = Tipo de Data
relatorioW2IController.lbTipoData.venda.value = Data Venda relatorioW2IController.lbTipoData.venda.value = Data Venda
relatorioW2IController.lbTipoData.servico.value = Data Serviço relatorioW2IController.lbTipoData.servico.value = Data Serviço

View File

@ -62,16 +62,6 @@
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar" use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar"
model="@{winFiltroRelatorioW2I$composer.lsEmpresa}" width="95%" /> model="@{winFiltroRelatorioW2I$composer.lsEmpresa}" width="95%" />
</cell> </cell>
<hbox>
<radiogroup id="rdGroupTipoData">
<radio radiogroup="rdGroupTipoData"
value="1" checked="true"
label="${c:l('relatorioW2IController.lbTipoData.venda.value')}" />
<radio radiogroup="rdGroupTipoData"
value="2"
label="${c:l('relatorioW2IController.lbTipoData.servico.value')}" />
</radiogroup>
</hbox>
</row> </row>
<row spans="1,1,2"> <row spans="1,1,2">
<cell colspan="2" align="center"> <cell colspan="2" align="center">

View File

@ -62,16 +62,6 @@
use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar" use="com.rjconsultores.ventaboletos.web.utilerias.MyComboboxEstandar"
model="@{winFiltroRelatorioW2I$composer.lsEmpresa}" width="95%" /> model="@{winFiltroRelatorioW2I$composer.lsEmpresa}" width="95%" />
</cell> </cell>
<hbox>
<radiogroup id="rdGroupTipoData">
<radio radiogroup="rdGroupTipoData"
value="1" checked="true"
label="${c:l('relatorioW2IController.lbTipoData.venda.value')}" />
<radio radiogroup="rdGroupTipoData"
value="2"
label="${c:l('relatorioW2IController.lbTipoData.servico.value')}" />
</radiogroup>
</hbox>
</row> </row>
<row spans="1,1,2"> <row spans="1,1,2">
<cell colspan="2" align="center"> <cell colspan="2" align="center">