diff --git a/pom.xml b/pom.xml
index e14cc6e04..e1d43ecda 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
4.0.0
br.com.rjconsultores
ventaboletosadm
- 1.0.66
+ 1.0.67
war
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java
index 2c6196a99..38d10b73c 100644
--- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java
@@ -1,14 +1,17 @@
package com.rjconsultores.ventaboletos.relatorios.impl;
+import java.lang.reflect.Array;
import java.math.BigDecimal;
import java.sql.Connection;
import java.sql.ResultSet;
-import java.sql.Timestamp;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
import java.util.Date;
import java.util.List;
import java.util.Map;
+import java.util.stream.Collectors;
import org.apache.log4j.Logger;
@@ -50,10 +53,18 @@ public class RelatorioLinhasHorario extends Relatorio {
parametros.put("LINHA_FILTRO", retornaFiltro(null, lsNumLinha));
Empresa empresa = (Empresa) parametros.get("EMPRESA");
+ String corridaIds = "", rutaIds = "";
GrupoRuta grupoRuta = (GrupoRuta) parametros.get("GRUPORUTA");
Integer tipoServico = (Integer) parametros.get("TIPOSERVICIO_ID");
Boolean isPorData = parametros.get("ISPORDATA") == null ? false : true;
- String sql = getSql(lsNumLinha, lsNumServico, empresa, tipoServico, grupoRuta, isPorData);
+ if (lsNumServico != null && !lsNumServico.isEmpty()) {
+ corridaIds = retornaFiltro(lsNumServico, null);
+ }
+ if (lsNumLinha != null && !lsNumLinha.isEmpty()) {
+ rutaIds = retornaFiltro(null, lsNumLinha);
+ }
+ String sql = getSql(corridaIds, rutaIds, empresa, tipoServico, grupoRuta, isPorData);
+
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
ResultSet rset = null;
@@ -75,14 +86,6 @@ public class RelatorioLinhasHorario extends Relatorio {
if (grupoRuta != null) {
stmt.setInt("GRUPORUTA_ID", grupoRuta.getGrupoRutaId());
}
- if (lsNumServico != null && !lsNumServico.isEmpty()) {
- String corridaIds = retornaFiltro(lsNumServico, null);
- stmt.setString("CORRIDA_ID", corridaIds);
- }
- if (lsNumLinha != null && !lsNumLinha.isEmpty()) {
- String rutaIds = retornaFiltro(null, lsNumLinha);
- stmt.setString("RUTA_ID", rutaIds);
- }
if (tipoServico > 0) {
stmt.setInt("TIPOSERVICIO_ID", tipoServico);
}
@@ -241,21 +244,21 @@ public class RelatorioLinhasHorario extends Relatorio {
if (lsNumServico != null && !lsNumServico.isEmpty()) {
for (Corrida corrida : lsNumServico) {
if (lsNumServico.indexOf(corrida) == 0) {
- filtro = "" + corrida.getId().getCorridaId();
+ filtro = "'" + corrida.getId().getCorridaId();
} else {
- filtro += ", " + corrida.getId().getCorridaId();
+ filtro += "','" + corrida.getId().getCorridaId();
}
}
- return filtro;
+ return filtro.concat("'");
} else if (lsNumLinha != null && !lsNumLinha.isEmpty()) {
for (Ruta ruta : lsNumLinha) {
if (lsNumLinha.indexOf(ruta) == 0) {
- filtro = "" + ruta.getRutaId();
+ filtro = "'" + ruta.getRutaId();
} else {
- filtro += ", " + ruta.getRutaId();
+ filtro += "','" + ruta.getRutaId();
}
}
- return filtro;
+ return filtro.concat("'");
} else {
return filtro;
}
@@ -376,7 +379,7 @@ public class RelatorioLinhasHorario extends Relatorio {
protected void processaParametros() throws Exception {
}
- private String getSql(ArrayList lsNumLinha, ArrayList lsNumServico, Empresa empresa, Integer tipoServico, GrupoRuta grupoRuta, Boolean isPorData) {
+ private String getSql(String corridaIds,String rutaIds, Empresa empresa, Integer tipoServico, GrupoRuta grupoRuta, Boolean isPorData) {
StringBuilder sql = new StringBuilder();
sql.append(" SELECT ");
@@ -510,7 +513,7 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" INNER JOIN TARIFA TF ON ( TR.TRAMO_ID=TF.TRAMO_ID AND TF.CLASESERVICIO_ID = C.CLASESERVICIO_ID AND TF.DESTINO_ID = C.DESTINO_ID AND TF.ORIGEN_ID = C.ORIGEN_ID AND TF.MARCA_ID = C.MARCA_ID AND TF.RUTA_ID = C.RUTA_ID AND R.ORGAOCONCEDENTE_ID= TF.ORGAOCONCEDENTE_ID AND TF.ACTIVO=1 AND ((TF.MONEDA_ID = B.MONEDA_ID) OR (B.MONEDA_ID IS NULL))) ");
sql.append(" INNER JOIN VIGENCIA_TARIFA VT ON (VT.VIGENCIATARIFA_ID = TF.VIGENCIATARIFA_ID AND C.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA ) ");
sql.append(" WHERE C.ACTIVO NOT IN (0,2) AND C.FECCORRIDA BETWEEN TO_TIMESTAMP(:DATA_INICIO, 'dd/mm/yyyy hh24:mi:ss') AND TO_TIMESTAMP(:DATA_FINAL, 'dd/mm/yyyy hh24:mi:ss') ");
- sql.append(lsNumServico.isEmpty() ? "" : " AND B.CORRIDA_ID IN ( :CORRIDA_ID ) ");
+ sql.append(corridaIds.isEmpty() ? "" : " AND B.CORRIDA_ID IN (" + corridaIds + ") ");
sql.append(" GROUP BY C.CORRIDA_ID,C.CORRIDA2_ID, c.ruta_id, C.ROLOPERATIVO_ID, ");
sql.append(" C.DESTINO_ID, C.ORIGEN_ID, TO_CHAR(C.FECHORSALIDA, 'HH24:MI'),NVL(TF.PRECIO, 0) ");
sql.append(" ) TB4 ON (TB4.CORRIDA_ID = C.CORRIDA_ID AND (TB4.CORRIDA2_ID=C.CORRIDA2_ID OR (TB4.CORRIDA2_ID IS NULL AND C.CORRIDA2_ID IS NULL)) and tb4.c_ruta_id = c.ruta_id ");
@@ -557,7 +560,7 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" AND BO.CATEGORIA_ID <> :CRIANCA_ID");
sql.append(" AND BO.FECCORRIDA BETWEEN TO_TIMESTAMP(:DATA_INICIO, 'dd/mm/yyyy hh24:mi:ss') AND TO_TIMESTAMP(:DATA_FINAL, 'dd/mm/yyyy hh24:mi:ss') ");
- sql.append(lsNumServico.isEmpty() ? "" : " AND BO.CORRIDA_ID IN ( :CORRIDA_ID ) ");
+ sql.append(corridaIds.isEmpty() ? "" : " AND BO.CORRIDA_ID IN (" + corridaIds + ") ");
sql.append(" GROUP BY CO.FECCORRIDA, CO.CORRIDA_ID, CO.CORRIDA2_ID, CO.ROLOPERATIVO_ID, ");
sql.append(" CO.RUTA_ID, CO.EMPRESACORRIDA_ID, BO.NUMKMVIAJE, BO.BOLETO_ID, T.CANTKMREAL, ");
sql.append(" NVL(BO.IMPORTESEGURO, 0), NVL(BO.IMPORTETAXAEMBARQUE, 0), ");
@@ -566,9 +569,10 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" AND CJ.RUTA_ID = C.RUTA_ID AND CJ.EMPRESACORRIDA_ID = C.EMPRESACORRIDA_ID AND CJ.TARIFA=TF.PRECIO ) ");
sql.append(" WHERE C.FECCORRIDA BETWEEN TO_TIMESTAMP(:DATA_INICIO, 'dd/mm/yyyy hh24:mi:ss') AND TO_TIMESTAMP(:DATA_FINAL, 'dd/mm/yyyy hh24:mi:ss') ");
- sql.append(lsNumServico.isEmpty() ? "" : " AND C.CORRIDA_ID IN ( :CORRIDA_ID ) ");
+ sql.append(corridaIds.isEmpty() ? "" : " AND C.CORRIDA_ID IN (" + corridaIds + ")");
+
sql.append(grupoRuta == null ? "" : " AND R.GRUPORUTA_ID IN ( :GRUPORUTA_ID ) ");
- sql.append(lsNumLinha.isEmpty() ? "" : " AND R.RUTA_ID IN ( :RUTA_ID ) ");
+ sql.append(rutaIds.isEmpty() ? "" : " AND R.RUTA_ID IN (" + rutaIds + ")");
sql.append(tipoServico == 0 ? "" : " AND C.TIPOSERVICIO_ID = :TIPOSERVICIO_ID" );
sql.append(" AND C.ACTIVO <> 0 AND ORIGEM.ACTIVO = 1 AND DESTINO.ACTIVO = 1 AND TB2.ORIGEM = ORIGEM.CVEPARADA AND TB2.DESTINO = DESTINO.CVEPARADA ");
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorarioSimplificado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorarioSimplificado.java
index ea3bac557..b9d7a7d5b 100644
--- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorarioSimplificado.java
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorarioSimplificado.java
@@ -53,10 +53,17 @@ public class RelatorioLinhasHorarioSimplificado extends Relatorio {
parametros.put("LINHA_FILTRO", retornaFiltro(null, lsNumLinha));
Empresa empresa = (Empresa) parametros.get("EMPRESA");
+ String corridaIds = "", rutaIds = "";
GrupoRuta grupoRuta = (GrupoRuta) parametros.get("GRUPORUTA");
Integer tipoServico = (Integer) parametros.get("TIPOSERVICIO_ID");
Boolean isPorData = parametros.get("ISPORDATA") == null ? false : true;
- String sql = getSql(lsNumLinha, lsNumServico, empresa, tipoServico, grupoRuta, (Boolean)parametros.get("ISSENTIDOIDA"), (Boolean)parametros.get("ISSENTIDOVOLTA"), isPorData);
+ if (lsNumServico != null && !lsNumServico.isEmpty()) {
+ corridaIds = retornaFiltro(lsNumServico, null);
+ }
+ if (lsNumLinha != null && !lsNumLinha.isEmpty()) {
+ rutaIds = retornaFiltro(null, lsNumLinha);
+ }
+ String sql = getSql(corridaIds, rutaIds, empresa, tipoServico, grupoRuta, (Boolean)parametros.get("ISSENTIDOIDA"), (Boolean)parametros.get("ISSENTIDOVOLTA"), isPorData);
NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql);
ResultSet rset = null;
@@ -82,14 +89,6 @@ public class RelatorioLinhasHorarioSimplificado extends Relatorio {
if (grupoRuta != null) {
stmt.setInt("GRUPORUTA_ID", grupoRuta.getGrupoRutaId());
}
- if (lsNumServico != null && !lsNumServico.isEmpty()) {
- String corridaIds = retornaFiltro(lsNumServico, null);
- stmt.setString("CORRIDA_ID", corridaIds);
- }
- if (lsNumLinha != null && !lsNumLinha.isEmpty()) {
- String rutaIds = retornaFiltro(null, lsNumLinha);
- stmt.setString("RUTA_ID", rutaIds);
- }
if (tipoServico > 0) {
stmt.setInt("TIPOSERVICIO_ID", tipoServico);
}
@@ -247,21 +246,21 @@ public class RelatorioLinhasHorarioSimplificado extends Relatorio {
if (lsNumServico != null && !lsNumServico.isEmpty()) {
for (Corrida corrida : lsNumServico) {
if (lsNumServico.indexOf(corrida) == 0) {
- filtro = "" + corrida.getId().getCorridaId();
+ filtro = "'" + corrida.getId().getCorridaId();
} else {
- filtro += ", " + corrida.getId().getCorridaId();
+ filtro += "','" + corrida.getId().getCorridaId();
}
}
- return filtro;
+ return filtro.concat("'");
} else if (lsNumLinha != null && !lsNumLinha.isEmpty()) {
for (Ruta ruta : lsNumLinha) {
if (lsNumLinha.indexOf(ruta) == 0) {
- filtro = "" + ruta.getRutaId();
+ filtro = "'" + ruta.getRutaId();
} else {
- filtro += ", " + ruta.getRutaId();
+ filtro += "','" + ruta.getRutaId();
}
}
- return filtro;
+ return filtro.concat("'");
} else {
return filtro;
}
@@ -439,7 +438,7 @@ public class RelatorioLinhasHorarioSimplificado extends Relatorio {
protected void processaParametros() throws Exception {
}
- private String getSql(ArrayList lsNumLinha, ArrayList lsNumServico, Empresa empresa, Integer tipoServico,
+ private String getSql(String corridaIds, String rutaIds, Empresa empresa, Integer tipoServico,
GrupoRuta grupoRuta, Boolean isSentidoIda, Boolean isSentidoVolta, Boolean isPorData) {
StringBuilder sql = new StringBuilder();
@@ -541,7 +540,7 @@ public class RelatorioLinhasHorarioSimplificado extends Relatorio {
sql.append(" WHERE C.ACTIVO NOT IN (0,2) ");
sql.append(" AND C.FECCORRIDA BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY hh24:mi:ss') ");
- sql.append(lsNumServico.isEmpty() ? "" : " AND B.CORRIDA_ID IN (:CORRIDA_ID) ");
+ sql.append(corridaIds.isEmpty() ? "" : " AND B.CORRIDA_ID IN ("+corridaIds+") ");
sql.append(" GROUP BY C.CORRIDA_ID, c.ruta_id, C.ROLOPERATIVO_ID, C.DESTINO_ID, C.ORIGEN_ID, TO_CHAR(C.FECHORSALIDA, 'HH24:MI') ");
sql.append(" ) TB4 ON ((TB4.CORRIDA_ID = C.CORRIDA_ID and tb4.c_ruta_id = c.ruta_id) ");
@@ -579,7 +578,7 @@ public class RelatorioLinhasHorarioSimplificado extends Relatorio {
sql.append(" AND BO.CATEGORIA_ID <> :CRIANCA_ID");
sql.append(" AND BO.FECCORRIDA BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YYYY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YYYY hh24:mi:ss') ");
- sql.append(lsNumServico.isEmpty() ? "" : " AND B.CORRIDA_ID IN (:CORRIDA_ID) ");
+ sql.append(corridaIds.isEmpty() ? "" : " AND BO.CORRIDA_ID IN ("+corridaIds+") ");
sql.append(" GROUP BY CO.FECCORRIDA, CO.CORRIDA_ID, CO.ROLOPERATIVO_ID, CO.RUTA_ID, CO.EMPRESACORRIDA_ID, BO.NUMKMVIAJE, BO.BOLETO_ID, T.CANTKMREAL, ");
sql.append(" NVL(BO.IMPORTESEGURO, 0), NVL(BO.IMPORTETAXAEMBARQUE, 0), NVL(BO.IMPORTEPEDAGIO, 0), NVL(BO.PRECIOPAGADO, 0) ");
@@ -610,9 +609,9 @@ public class RelatorioLinhasHorarioSimplificado extends Relatorio {
sql.append(" AND (TF.TARIFA_ID IS NULL OR (TF.TARIFA_ID IS NOT NULL AND C.FECCORRIDA BETWEEN VTF.FECINICIOVIGENCIA AND VTF.FECFINVIGENCIA )) ");
sql.append(" ");
- sql.append(lsNumServico.isEmpty() ? "" : " AND B.CORRIDA_ID IN (:CORRIDA_ID) ");
+ sql.append(corridaIds.isEmpty() ? "" : " AND C.CORRIDA_ID IN ("+corridaIds+") ");
sql.append(grupoRuta == null ? "" : " AND R.GRUPORUTA_ID IN (:GRUPORUTA_ID) ");
- sql.append(lsNumLinha.isEmpty() ? "" : " AND R.RUTA_ID IN (:RUTA_ID) ");
+ sql.append(rutaIds.isEmpty() ? "" : " AND R.RUTA_ID IN ("+rutaIds+") ");
sql.append(tipoServico == 0 ? "" : " AND C.TIPOSERVICIO_ID = :TIPOSERVICIO_ID" );
if(Boolean.TRUE.equals(isSentidoIda)) {