diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java index e739d1106..9973de8b6 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java @@ -16,7 +16,6 @@ import com.rjconsultores.ventaboletos.entidad.Empresa; import com.rjconsultores.ventaboletos.entidad.GrupoRuta; import com.rjconsultores.ventaboletos.entidad.Ruta; import com.rjconsultores.ventaboletos.relatorios.utilitarios.DataSource; -import com.rjconsultores.ventaboletos.relatorios.utilitarios.IndStatusCorrida; import com.rjconsultores.ventaboletos.relatorios.utilitarios.Relatorio; import com.rjconsultores.ventaboletos.relatorios.utilitarios.RelatorioLinhasHorarioBean; import com.rjconsultores.ventaboletos.web.utilerias.NamedParameterStatement; @@ -76,6 +75,8 @@ public class RelatorioLinhasHorario extends Relatorio { Integer tipoServico = (Integer) parametros.get("TIPOSERVICIO_ID"); String sql = getSql(lsNumLinha, lsNumServico, empresa, tipoServico, grupoRuta); + System.out.println(sql); + NamedParameterStatement stmt = new NamedParameterStatement(conexao, sql); ResultSet rset = null; @@ -421,13 +422,13 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" COUNT(CASE WHEN C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); sql.append(" AND C.TIPOSERVICIO_ID = 1 THEN 1 ELSE NULL END) AS ORD "); sql.append(" FROM CORRIDA C "); - sql.append(" WHERE C.ACTIVO = 1 "); + sql.append(" WHERE C.ACTIVO <> 0 "); sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB2, "); sql.append(" (SELECT C.CORRIDA_ID, C.ROLOPERATIVO_ID, "); sql.append(" COUNT(CASE WHEN C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); sql.append(" AND C.TIPOSERVICIO_ID = 2 THEN 1 ELSE NULL END) AS EXTRA "); sql.append(" FROM CORRIDA C "); - sql.append(" WHERE C.ACTIVO = 1 "); + sql.append(" WHERE C.ACTIVO <> 0 "); sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB3, "); sql.append(" (SELECT C.CORRIDA_ID, C.ROLOPERATIVO_ID, "); sql.append(" COUNT(CASE WHEN C.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); @@ -435,7 +436,7 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" FROM CORRIDA C "); sql.append(" LEFT JOIN BOLETO B "); sql.append(" ON ( B.CORRIDA_ID = C.CORRIDA_ID AND B.FECCORRIDA = C.FECCORRIDA ) "); - sql.append(" WHERE C.ACTIVO = 1 AND B.ACTIVO = 1 "); + sql.append(" WHERE C.ACTIVO <> 0 AND B.ACTIVO = 1 "); sql.append(" AND B.MOTIVOCANCELACION_ID IS NULL "); sql.append(" GROUP BY C.CORRIDA_ID, C.ROLOPERATIVO_ID) TB4, "); sql.append(" CORRIDA C "); @@ -543,7 +544,7 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" AND C.TIPOSERVICIO_ID = " + tipoServico + " "); } - sql.append(" AND C.ACTIVO = 1 "); + sql.append(" AND C.ACTIVO <> 0 "); sql.append(" AND ORIGEM.ACTIVO = 1 "); sql.append(" AND DESTINO.ACTIVO = 1 "); sql.append(" AND R.ACTIVO = 1 "); diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java index 611874838..c9560d87e 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java @@ -32,6 +32,8 @@ public class RelatorioOrigemDestino extends Relatorio { String sql = getSQL(empresaIds, corridasIds, dataDe, dataAte, bilhetesGratuitos, trechosSemMovimento); + System.out.println(sql); + List lsPesoOperacionalRelatorio = getPesoOperacional(corridasIds, dataDe, dataAte, bilhetesGratuitos, empresaIds, trechosSemMovimento); getParametros().put("lsPesoOperacionalRelatorio", lsPesoOperacionalRelatorio); getParametros().put("SQL", sql); @@ -257,177 +259,177 @@ public class RelatorioOrigemDestino extends Relatorio { private String getSQL(String empresaIds, String corridasIds, String dataDe, String dataAte, Boolean bilhetesGratuitos, Boolean trechosSemMovimento) { - String sql = "" - + " SELECT * " - + " FROM (SELECT RESULTADO_2.nombempresa, " - + " RESULTADO_2.corrida_id CORRIDA_1, " - + " RESULTADO_2.fechorsalida, " - + " RESULTADO_2.origem, " - + " RESULTADO_2.destino, " - + " RESULTADO_2.km_tramo, " - + " RESULTADO_2.ruta_id, " - + " RESULTADO_2.descruta, " - + " RESULTADO_2.indsentidoida, " - + " RESULTADO_2.absolutos, " - + " RESULTADO_2.receita, " - + " RESULTADO_2.preciobase, " - + " RESULTADO_2.viagens, " - + " RESULTADO_2.km_corrida, " - + " RESULTADO_2.disponibilidade, " - + " RESULTADO_2.absoluto_total_corrida " - + " FROM (SELECT RESULTADO.*, " - + " (SELECT Count(*) " - + " FROM corrida CO " - + " WHERE CO.corrida_id = RESULTADO.corrida_id " - + " AND CO.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') " - + " ) VIAGENS, " - + " Sum(TR.cantkmreal) " - + " KM_CORRIDA, " - + " (SELECT Max(DA.cantasientos) " - + " FROM corrida CO " - + " INNER JOIN rol_operativo ROL ON ROL.roloperativo_id = CO.roloperativo_id " - + " INNER JOIN diagrama_autobus DA ON DA.diagramaautobus_id = ROL.diagramaautobus_id " - + " WHERE CO.corrida_id = RESULTADO.corrida_id " - + " AND CO.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') " - + " GROUP BY CO.corrida_id) " - + " DISPONIBILIDADE, " - + " (SELECT Count(*) " - + " FROM boleto CA " - + " INNER JOIN corrida CO ON ( CO.corrida_id = CA.corrida_id AND CO.feccorrida = CA.feccorrida ) " - + " WHERE CA.activo = 1 " - + (" AND CO.EMPRESACORRIDA_ID IN (") + empresaIds + ") " - + " AND CA.corrida_id = RESULTADO.corrida_id " - + " AND CA.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') " - + " AND CA.motivocancelacion_id IS NULL " - + " AND CA.preciobase IS NOT NULL " - + (bilhetesGratuitos ? " AND CA.PRECIOBASE >= 0 ) " : " AND CA.PRECIOBASE > 0 ) ") - + " ABSOLUTO_TOTAL_CORRIDA " - + " FROM (SELECT EM.nombempresa, " - + " CO.corrida_id CORRIDA_ID, " - + " Max(CO.fechorsalida) FECHORSALIDA, " - + " ORI.cveparada ORIGEM, " - + " DES.cveparada DESTINO, " - + " CA.numkmviaje KM_TRAMO, " - + " RU.ruta_id, " - + " RU.descruta, " - + " RU.indsentidoida, " - + " Count(*) ABSOLUTOS, " - + " Sum(CA.preciopagado) RECEITA, " - + " CA.preciobase " - + " FROM boleto CA " - + " INNER JOIN parada ORI ON ORI.parada_id = CA.origen_id " - + " INNER JOIN parada DES ON DES.parada_id = CA.destino_id " - + " INNER JOIN corrida CO ON ( CO.corrida_id = CA.corrida_id AND CO.feccorrida = CA.feccorrida ) " - + " INNER JOIN empresa EM ON EM.empresa_id = CO.empresacorrida_id " - + " INNER JOIN ruta RU ON RU.ruta_id = CO.ruta_id " - + " WHERE CA.activo = 1 AND RU.activo = 1 AND EM.activo = 1 AND ORI.activo = 1 AND DES.activo = 1 " - + (!corridasIds.equals("Todas") ? " AND CA.CORRIDA_ID IN (" + corridasIds + ") " : " ") - + (" AND CO.EMPRESACORRIDA_ID IN (") + empresaIds + ") " - + " AND CA.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') " - + " AND CA.motivocancelacion_id IS NULL " - + " AND CA.preciobase IS NOT NULL " - + (bilhetesGratuitos ? " AND CA.PRECIOBASE >= 0 " : " AND CA.PRECIOBASE > 0 ") - + " GROUP BY RU.ruta_id, " - + " EM.nombempresa, " - + " ORI.cveparada, " - + " DES.cveparada, " - + " CA.numkmviaje, " - + " CO.corrida_id, " - + " RU.descruta, " - + " RU.indsentidoida, " - + " CA.preciobase) RESULTADO " - + " INNER JOIN ruta_secuencia RS ON RS.ruta_id = RESULTADO.ruta_id " - + " INNER JOIN tramo TR ON TR.tramo_id = RS.tramo_id " - + " WHERE RS.activo = 1 AND TR.activo = 1 " - + " GROUP BY RESULTADO.nombempresa, " - + " RESULTADO.corrida_id, " - + " RESULTADO.fechorsalida, " - + " RESULTADO.origem, " - + " RESULTADO.destino, " - + " RESULTADO.km_tramo, " - + " RESULTADO.ruta_id, " - + " RESULTADO.descruta, " - + " RESULTADO.indsentidoida, " - + " RESULTADO.absolutos, " - + " RESULTADO.receita, " - + " RESULTADO.preciobase) RESULTADO_2 " - + " GROUP BY RESULTADO_2.nombempresa, " - + " RESULTADO_2.corrida_id, " - + " RESULTADO_2.fechorsalida, " - + " RESULTADO_2.origem, " - + " RESULTADO_2.destino, " - + " RESULTADO_2.km_tramo, " - + " RESULTADO_2.ruta_id, " - + " RESULTADO_2.descruta, " - + " RESULTADO_2.indsentidoida, " - + " RESULTADO_2.absolutos, " - + " RESULTADO_2.receita, " - + " RESULTADO_2.preciobase, " - + " RESULTADO_2.viagens, " - + " RESULTADO_2.km_corrida, " - + " RESULTADO_2.disponibilidade, " - + " RESULTADO_2.absoluto_total_corrida " - + " ORDER BY RESULTADO_2.corrida_id) T1 " - + " INNER JOIN (SELECT RESULTADO_2.corrida_id CORRIDA_2, " - + " Sum(RESULTADO_2.equivalente) EQUIVALENTE_TOTAL_CORRIDA " - + " FROM (SELECT RESULTADO.*, " - + " ( RESULTADO.km_tramo / Sum(TR.cantkmreal) ) * ( " - + " SELECT Count(*) " - + " FROM boleto CA " - + " INNER JOIN corrida CO ON ( CO.corrida_id = CA.corrida_id AND CO.feccorrida = CA.feccorrida ) " - + " INNER JOIN parada PO ON CA.origen_id = PO.parada_id " - + " INNER JOIN parada PD ON CA.destino_id = PD.parada_id " - + " WHERE CA.activo = 1 " - + (" AND CO.EMPRESACORRIDA_ID IN (") + empresaIds + ") " - + " AND CA.corrida_id = RESULTADO.corrida_id " - + " AND CA.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') " - + " AND CA.motivocancelacion_id IS NULL " - + " AND CA.preciobase IS NOT NULL " - + " AND CA.preciobase = RESULTADO.preciobase " - + " AND PO.cveparada = RESULTADO.origem " - + " AND PD.cveparada = RESULTADO.destino) " - + " EQUIVALENTE " - + " FROM (SELECT CO.corrida_id CORRIDA_ID, " - + " ORI.cveparada ORIGEM, " - + " DES.cveparada DESTINO, " - + " CA.numkmviaje KM_TRAMO, " - + " RU.ruta_id, " - + " CA.preciobase " - + " FROM boleto CA " - + " INNER JOIN parada ORI ON ORI.parada_id = CA.origen_id " - + " INNER JOIN parada DES ON DES.parada_id = CA.destino_id " - + " INNER JOIN corrida CO ON ( CO.corrida_id = CA.corrida_id AND CO.feccorrida = CA.feccorrida ) " - + " INNER JOIN empresa EM ON EM.empresa_id = CO.empresacorrida_id " - + " INNER JOIN ruta RU ON RU.ruta_id = CO.ruta_id " - + " WHERE CA.activo = 1 AND RU.activo = 1 AND EM.activo = 1 AND ORI.activo = 1 AND DES.activo = 1 " - + (" AND CO.EMPRESACORRIDA_ID IN (") + empresaIds + ") " - + " AND CA.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') " - + " AND CA.motivocancelacion_id IS NULL " - + " AND CA.preciobase IS NOT NULL " - + (bilhetesGratuitos ? " AND CA.PRECIOBASE >= 0 " : " AND CA.PRECIOBASE > 0 ") - + " GROUP BY RU.ruta_id, " - + " EM.nombempresa, " - + " ORI.cveparada, " - + " DES.cveparada, " - + " CA.numkmviaje, " - + " CO.corrida_id, " - + " RU.descruta, " - + " RU.indsentidoida, " - + " CA.preciobase) RESULTADO " - + " INNER JOIN ruta_secuencia RS ON RS.ruta_id = RESULTADO.ruta_id " - + " INNER JOIN tramo TR ON TR.tramo_id = RS.tramo_id " - + " WHERE RS.activo = 1 AND TR.activo = 1 " - + " GROUP BY RESULTADO.corrida_id, " - + " RESULTADO.origem, " - + " RESULTADO.destino, " - + " RESULTADO.km_tramo, " - + " RESULTADO.ruta_id, " - + " RESULTADO.preciobase) RESULTADO_2 " - + " GROUP BY RESULTADO_2.corrida_id " - + " ORDER BY RESULTADO_2.corrida_id)T2 " - + " ON T1.corrida_1 = T2.corrida_2 "; + StringBuilder sql = new StringBuilder(); + sql.append(" SELECT * "); + sql.append(" FROM (SELECT RESULTADO_2.nombempresa, "); + sql.append(" RESULTADO_2.corrida_id CORRIDA_1, "); + sql.append(" RESULTADO_2.fechorsalida, "); + sql.append(" RESULTADO_2.origem, "); + sql.append(" RESULTADO_2.destino, "); + sql.append(" RESULTADO_2.km_tramo, "); + sql.append(" RESULTADO_2.ruta_id, "); + sql.append(" RESULTADO_2.descruta, "); + sql.append(" RESULTADO_2.indsentidoida, "); + sql.append(" RESULTADO_2.absolutos, "); + sql.append(" RESULTADO_2.receita, "); + sql.append(" RESULTADO_2.preciobase, "); + sql.append(" RESULTADO_2.viagens, "); + sql.append(" RESULTADO_2.km_corrida, "); + sql.append(" RESULTADO_2.disponibilidade, "); + sql.append(" RESULTADO_2.absoluto_total_corrida "); + sql.append(" FROM (SELECT RESULTADO.*, "); + sql.append(" (SELECT Count(*) "); + sql.append(" FROM corrida CO "); + sql.append(" WHERE CO.corrida_id = RESULTADO.corrida_id "); + sql.append(" AND CO.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') "); + sql.append(" ) VIAGENS, "); + sql.append(" Sum(TR.cantkmreal) "); + sql.append(" KM_CORRIDA, "); + sql.append(" (SELECT AVG(DA.cantasientos) "); + sql.append(" FROM corrida CO "); + sql.append(" INNER JOIN rol_operativo ROL ON ROL.roloperativo_id = CO.roloperativo_id "); + sql.append(" INNER JOIN diagrama_autobus DA ON DA.diagramaautobus_id = ROL.diagramaautobus_id "); + sql.append(" WHERE CO.corrida_id = RESULTADO.corrida_id "); + sql.append(" AND CO.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') "); + sql.append(" GROUP BY CO.corrida_id) "); + sql.append(" DISPONIBILIDADE, "); + sql.append(" (SELECT Count(*) "); + sql.append(" FROM boleto CA "); + sql.append(" INNER JOIN corrida CO ON ( CO.corrida_id = CA.corrida_id AND CO.feccorrida = CA.feccorrida ) "); + sql.append(" WHERE CA.activo = 1 "); + sql.append((" AND CO.EMPRESACORRIDA_ID IN (") + empresaIds + ") "); + sql.append(" AND CA.corrida_id = RESULTADO.corrida_id "); + sql.append(" AND CA.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') "); + sql.append(" AND CA.motivocancelacion_id IS NULL "); + sql.append(" AND CA.preciobase IS NOT NULL "); + sql.append((bilhetesGratuitos ? " AND CA.PRECIOBASE >= 0 ) " : " AND CA.PRECIOBASE > 0 ) ")); + sql.append(" ABSOLUTO_TOTAL_CORRIDA "); + sql.append(" FROM (SELECT EM.nombempresa, "); + sql.append(" CO.corrida_id CORRIDA_ID, "); + sql.append(" Max(CO.fechorsalida) FECHORSALIDA, "); + sql.append(" ORI.cveparada ORIGEM, "); + sql.append(" DES.cveparada DESTINO, "); + sql.append(" CA.numkmviaje KM_TRAMO, "); + sql.append(" RU.ruta_id, "); + sql.append(" RU.descruta, "); + sql.append(" RU.indsentidoida, "); + sql.append(" Count(*) ABSOLUTOS, "); + sql.append(" Sum(CA.preciopagado) RECEITA, "); + sql.append(" CA.preciobase "); + sql.append(" FROM boleto CA "); + sql.append(" INNER JOIN parada ORI ON ORI.parada_id = CA.origen_id "); + sql.append(" INNER JOIN parada DES ON DES.parada_id = CA.destino_id "); + sql.append(" INNER JOIN corrida CO ON ( CO.corrida_id = CA.corrida_id AND CO.feccorrida = CA.feccorrida ) "); + sql.append(" INNER JOIN empresa EM ON EM.empresa_id = CO.empresacorrida_id "); + sql.append(" INNER JOIN ruta RU ON RU.ruta_id = CO.ruta_id "); + sql.append(" WHERE CA.activo = 1 AND RU.activo = 1 AND EM.activo = 1 AND ORI.activo = 1 AND DES.activo = 1 "); + sql.append((!corridasIds.equals("Todas") ? " AND CA.CORRIDA_ID IN (" + corridasIds + ") " : " ")); + sql.append((" AND CO.EMPRESACORRIDA_ID IN (") + empresaIds + ") "); + sql.append(" AND CA.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') "); + sql.append(" AND CA.motivocancelacion_id IS NULL "); + sql.append(" AND CA.preciobase IS NOT NULL "); + sql.append((bilhetesGratuitos ? " AND CA.PRECIOBASE >= 0 " : " AND CA.PRECIOBASE > 0 ")); + sql.append(" GROUP BY RU.ruta_id, "); + sql.append(" EM.nombempresa, "); + sql.append(" ORI.cveparada, "); + sql.append(" DES.cveparada, "); + sql.append(" CA.numkmviaje, "); + sql.append(" CO.corrida_id, "); + sql.append(" RU.descruta, "); + sql.append(" RU.indsentidoida, "); + sql.append(" CA.preciobase) RESULTADO "); + sql.append(" INNER JOIN ruta_secuencia RS ON RS.ruta_id = RESULTADO.ruta_id "); + sql.append(" INNER JOIN tramo TR ON TR.tramo_id = RS.tramo_id "); + sql.append(" WHERE RS.activo = 1 AND TR.activo = 1 "); + sql.append(" GROUP BY RESULTADO.nombempresa, "); + sql.append(" RESULTADO.corrida_id, "); + sql.append(" RESULTADO.fechorsalida, "); + sql.append(" RESULTADO.origem, "); + sql.append(" RESULTADO.destino, "); + sql.append(" RESULTADO.km_tramo, "); + sql.append(" RESULTADO.ruta_id, "); + sql.append(" RESULTADO.descruta, "); + sql.append(" RESULTADO.indsentidoida, "); + sql.append(" RESULTADO.absolutos, "); + sql.append(" RESULTADO.receita, "); + sql.append(" RESULTADO.preciobase) RESULTADO_2 "); + sql.append(" GROUP BY RESULTADO_2.nombempresa, "); + sql.append(" RESULTADO_2.corrida_id, "); + sql.append(" RESULTADO_2.fechorsalida, "); + sql.append(" RESULTADO_2.origem, "); + sql.append(" RESULTADO_2.destino, "); + sql.append(" RESULTADO_2.km_tramo, "); + sql.append(" RESULTADO_2.ruta_id, "); + sql.append(" RESULTADO_2.descruta, "); + sql.append(" RESULTADO_2.indsentidoida, "); + sql.append(" RESULTADO_2.absolutos, "); + sql.append(" RESULTADO_2.receita, "); + sql.append(" RESULTADO_2.preciobase, "); + sql.append(" RESULTADO_2.viagens, "); + sql.append(" RESULTADO_2.km_corrida, "); + sql.append(" RESULTADO_2.disponibilidade, "); + sql.append(" RESULTADO_2.absoluto_total_corrida "); + sql.append(" ORDER BY RESULTADO_2.corrida_id) T1 "); + sql.append(" INNER JOIN (SELECT RESULTADO_2.corrida_id CORRIDA_2, "); + sql.append(" Sum(RESULTADO_2.equivalente) EQUIVALENTE_TOTAL_CORRIDA "); + sql.append(" FROM (SELECT RESULTADO.*, "); + sql.append(" ( RESULTADO.km_tramo / Sum(TR.cantkmreal) ) * ( "); + sql.append(" SELECT Count(*) "); + sql.append(" FROM boleto CA "); + sql.append(" INNER JOIN corrida CO ON ( CO.corrida_id = CA.corrida_id AND CO.feccorrida = CA.feccorrida ) "); + sql.append(" INNER JOIN parada PO ON CA.origen_id = PO.parada_id "); + sql.append(" INNER JOIN parada PD ON CA.destino_id = PD.parada_id "); + sql.append(" WHERE CA.activo = 1 "); + sql.append((" AND CO.EMPRESACORRIDA_ID IN (") + empresaIds + ") "); + sql.append(" AND CA.corrida_id = RESULTADO.corrida_id "); + sql.append(" AND CA.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') "); + sql.append(" AND CA.motivocancelacion_id IS NULL "); + sql.append(" AND CA.preciobase IS NOT NULL "); + sql.append(" AND CA.preciobase = RESULTADO.preciobase "); + sql.append(" AND PO.cveparada = RESULTADO.origem "); + sql.append(" AND PD.cveparada = RESULTADO.destino) "); + sql.append(" EQUIVALENTE "); + sql.append(" FROM (SELECT CO.corrida_id CORRIDA_ID, "); + sql.append(" ORI.cveparada ORIGEM, "); + sql.append(" DES.cveparada DESTINO, "); + sql.append(" CA.numkmviaje KM_TRAMO, "); + sql.append(" RU.ruta_id, "); + sql.append(" CA.preciobase "); + sql.append(" FROM boleto CA "); + sql.append(" INNER JOIN parada ORI ON ORI.parada_id = CA.origen_id "); + sql.append(" INNER JOIN parada DES ON DES.parada_id = CA.destino_id "); + sql.append(" INNER JOIN corrida CO ON ( CO.corrida_id = CA.corrida_id AND CO.feccorrida = CA.feccorrida ) "); + sql.append(" INNER JOIN empresa EM ON EM.empresa_id = CO.empresacorrida_id "); + sql.append(" INNER JOIN ruta RU ON RU.ruta_id = CO.ruta_id "); + sql.append(" WHERE CA.activo = 1 AND RU.activo = 1 AND EM.activo = 1 AND ORI.activo = 1 AND DES.activo = 1 "); + sql.append((" AND CO.EMPRESACORRIDA_ID IN (") + empresaIds + ") "); + sql.append(" AND CA.FECCORRIDA BETWEEN to_date('" + dataDe + "','dd/mm/yyyy HH24:mi:ss') AND to_date('" + dataAte + "','dd/mm/yyyy HH24:mi:ss') "); + sql.append(" AND CA.motivocancelacion_id IS NULL "); + sql.append(" AND CA.preciobase IS NOT NULL "); + sql.append((bilhetesGratuitos ? " AND CA.PRECIOBASE >= 0 " : " AND CA.PRECIOBASE > 0 ")); + sql.append(" GROUP BY RU.ruta_id, "); + sql.append(" EM.nombempresa, "); + sql.append(" ORI.cveparada, "); + sql.append(" DES.cveparada, "); + sql.append(" CA.numkmviaje, "); + sql.append(" CO.corrida_id, "); + sql.append(" RU.descruta, "); + sql.append(" RU.indsentidoida, "); + sql.append(" CA.preciobase) RESULTADO "); + sql.append(" INNER JOIN ruta_secuencia RS ON RS.ruta_id = RESULTADO.ruta_id "); + sql.append(" INNER JOIN tramo TR ON TR.tramo_id = RS.tramo_id "); + sql.append(" WHERE RS.activo = 1 AND TR.activo = 1 "); + sql.append(" GROUP BY RESULTADO.corrida_id, "); + sql.append(" RESULTADO.origem, "); + sql.append(" RESULTADO.destino, "); + sql.append(" RESULTADO.km_tramo, "); + sql.append(" RESULTADO.ruta_id, "); + sql.append(" RESULTADO.preciobase) RESULTADO_2 "); + sql.append(" GROUP BY RESULTADO_2.corrida_id "); + sql.append(" ORDER BY RESULTADO_2.corrida_id)T2 "); + sql.append(" ON T1.corrida_1 = T2.corrida_2 "); - return sql; + return sql.toString(); } public class ParadaRelatorioOD { diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper index 3f06c6dc7..c5a26067a 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml index f51a72f97..8110a6dbd 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml @@ -245,35 +245,35 @@ - + - + - + - + - + @@ -301,7 +301,7 @@ - + @@ -315,70 +315,70 @@ - + - + - + - + - + - + - + - + - + - + @@ -416,35 +416,35 @@ - + - + - + - + - + @@ -472,7 +472,7 @@ - + @@ -486,63 +486,63 @@ - + - + - + - + - + - + - + - + - + @@ -552,7 +552,7 @@ - + @@ -875,7 +875,7 @@ - + @@ -889,70 +889,70 @@ - + - + - + - + - + - + - + - + - + - + @@ -987,7 +987,7 @@ - + @@ -1001,14 +1001,14 @@ - + - + @@ -1036,28 +1036,28 @@ - + - + - + - + @@ -1077,35 +1077,35 @@ - + - + - + - + - + @@ -1133,7 +1133,7 @@ - + @@ -1147,63 +1147,63 @@ - + - + - + - + - + - + - + - + - + @@ -1217,7 +1217,7 @@ - +