diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java index d4cdae8c8..8814788c1 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java @@ -287,169 +287,169 @@ public class RelatorioOrigemDestino extends Relatorio { 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(" RESULTADO_2.importetaxaembarque, "); - sql.append(" RESULTADO_2.importepedagio "); - 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(" AND CO.ACTIVO = 1 "); - sql.append(" ) VIAGENS, "); - sql.append(" TR.cantkmreal 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(" 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(" RESULTADO_2.importetaxaembarque, "); + sql.append(" RESULTADO_2.importepedagio "); + 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(" AND CO.ACTIVO = 1 "); + sql.append(" ) VIAGENS, "); + sql.append(" TR.cantkmreal 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 "); + if(StringUtils.isNotBlank(CONSTANTE_GRATUIDADE_CRIANCA)) { - sql.append(" AND CA.CATEGORIA_ID <> ").append(CONSTANTE_GRATUIDADE_CRIANCA); + sql.append(" AND CA.CATEGORIA_ID <> ").append(CONSTANTE_GRATUIDADE_CRIANCA); } - - sql.append(" AND CA.preciobase IS NOT 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.DESCPARADA ORIGEM, "); - sql.append(" CO.origen_id ORIGEN_ID, "); - sql.append(" CO.destino_id DESTINO_ID, "); - sql.append(" DES.DESCPARADA 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(" SUM(CA.IMPORTETAXAEMBARQUE) as importetaxaembarque, "); - sql.append(" SUM(CA.IMPORTEPEDAGIO) as importepedagio "); + sql.append(" CO.corrida_id CORRIDA_ID, "); + sql.append(" Max(CO.fechorsalida) FECHORSALIDA, "); + sql.append(" ORI.DESCPARADA ORIGEM, "); + sql.append(" CO.origen_id ORIGEN_ID, "); + sql.append(" CO.destino_id DESTINO_ID, "); + sql.append(" DES.DESCPARADA 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(" SUM(CA.IMPORTETAXAEMBARQUE) as importetaxaembarque, "); + sql.append(" SUM(CA.IMPORTEPEDAGIO) as importepedagio "); 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(" INNER JOIN ruta_secuencia rt on rt.ruta_id = ru.ruta_id "); - sql.append(" INNER JOIN tarifa TF ON (TF.CLASESERVICIO_ID = CO.CLASESERVICIO_ID "); + sql.append(" INNER JOIN ruta_secuencia rt on rt.ruta_id = ru.ruta_id "); + sql.append(" LEFT JOIN tarifa TF ON (TF.CLASESERVICIO_ID = CO.CLASESERVICIO_ID "); sql.append(" AND TF.DESTINO_ID = CO.DESTINO_ID "); sql.append(" AND TF.ORIGEN_ID = CO.ORIGEN_ID "); sql.append(" AND TF.MARCA_ID = CO.MARCA_ID "); - sql.append(" AND TF.RUTA_ID = CO.RUTA_ID AND tf.tramo_id = rt.tramo_id)"); - sql.append("INNER JOIN VIGENCIA_TARIFA VT ON (TF.VIGENCIATARIFA_ID=VT.VIGENCIATARIFA_ID)"); - sql.append(" WHERE CA.activo = 1 AND RU.activo = 1 AND EM.activo = 1 AND ORI.activo = 1 AND DES.activo = 1 AND TF.activo = 1 "); - sql.append(" AND CO.activo = 1 "); + sql.append(" AND TF.RUTA_ID = CO.RUTA_ID AND tf.tramo_id = rt.tramo_id "); + sql.append(" AND TF.activo = 1 ) "); + sql.append(" LEFT JOIN VIGENCIA_TARIFA VT ON (TF.VIGENCIATARIFA_ID=VT.VIGENCIATARIFA_ID "); + sql.append(" AND CO.FECCORRIDA BETWEEN vt.FECINICIOVIGENCIA and vt.FECFINVIGENCIA )"); + sql.append(" WHERE CA.activo = 1 AND RU.activo = 1 AND EM.activo = 1 AND ORI.activo = 1 AND DES.activo = 1 AND CO.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 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 "); + if(StringUtils.isNotBlank(CONSTANTE_GRATUIDADE_CRIANCA)) { sql.append(" AND CA.CATEGORIA_ID <> ").append(CONSTANTE_GRATUIDADE_CRIANCA); } - - sql.append(" AND CA.preciobase IS NOT NULL "); + + sql.append(" AND CA.preciobase IS NOT NULL "); sql.append((bilhetesGratuitos ? " AND CA.PRECIOBASE >= 0 " : " AND CA.PRECIOBASE > 0 ")); - sql.append(" AND CO.FECCORRIDA BETWEEN vt.FECINICIOVIGENCIA and vt.FECFINVIGENCIA"); - sql.append(" GROUP BY RU.ruta_id, "); - sql.append(" EM.nombempresa, "); - sql.append(" ORI.DESCPARADA, "); - sql.append(" DES.DESCPARADA, "); - sql.append(" CO.origen_id, "); - sql.append(" CO.destino_id, "); - sql.append(" CA.numkmviaje, "); - sql.append(" CO.corrida_id, "); - sql.append(" RU.descruta, "); - sql.append(" RU.indsentidoida, "); - sql.append(" CA.preciobase ) RESULTADO "); + sql.append(" GROUP BY RU.ruta_id, "); + sql.append(" EM.nombempresa, "); + sql.append(" ORI.DESCPARADA, "); + sql.append(" DES.DESCPARADA, "); + sql.append(" CO.origen_id, "); + sql.append(" CO.destino_id, "); + 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_combinacion RS on RS.ruta_Id = RESULTADO.ruta_id "); sql.append(" INNER JOIN tramo TR ON TR.tramo_id = RS.tramo_id and (TR.origen_id = RESULTADO.ORIGEN_ID and TR.destino_id = RESULTADO.destino_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.origen_id, "); - sql.append(" RESULTADO.destino_id, "); - sql.append(" TR.cantkmreal, "); - 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, "); - sql.append(" RESULTADO.IMPORTETAXAEMBARQUE,"); - sql.append(" RESULTADO.IMPORTEPEDAGIO ) 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(" RESULTADO_2.IMPORTETAXAEMBARQUE, "); - sql.append(" RESULTADO_2.IMPORTEPEDAGIO "); + 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.origen_id, "); + sql.append(" RESULTADO.destino_id, "); + sql.append(" TR.cantkmreal, "); + 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, "); + sql.append(" RESULTADO.IMPORTETAXAEMBARQUE,"); + sql.append(" RESULTADO.IMPORTEPEDAGIO ) 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(" RESULTADO_2.IMPORTETAXAEMBARQUE, "); + sql.append(" RESULTADO_2.IMPORTEPEDAGIO "); 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(" ( 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(" WHERE CA.activo = 1 "); sql.append(" AND CO.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 "); - + if(StringUtils.isNotBlank(CONSTANTE_GRATUIDADE_CRIANCA)) { sql.append(" AND CA.CATEGORIA_ID <> ").append(CONSTANTE_GRATUIDADE_CRIANCA); } - + sql.append(" AND CA.preciobase IS NOT NULL "); sql.append(" AND CA.preciobase = RESULTADO.preciobase "); sql.append(" AND PO.DESCPARADA = RESULTADO.origem "); @@ -474,11 +474,11 @@ public class RelatorioOrigemDestino extends Relatorio { 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 "); - + if(StringUtils.isNotBlank(CONSTANTE_GRATUIDADE_CRIANCA)) { sql.append(" AND CA.CATEGORIA_ID <> ").append(CONSTANTE_GRATUIDADE_CRIANCA); } - + 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, "); @@ -495,8 +495,8 @@ public class RelatorioOrigemDestino extends Relatorio { sql.append(" ) RESULTADO "); sql.append(" INNER JOIN ruta_combinacion RS on RS.ruta_Id = RESULTADO.ruta_id "); sql.append(" INNER JOIN tramo TR ON TR.tramo_id = RS.tramo_id and (TR.origen_id = RESULTADO.ORIGEN_ID and TR.destino_id = RESULTADO.destino_id) "); - sql.append(" WHERE RS.activo = 1 AND TR.activo = 1 "); - sql.append(" GROUP BY RESULTADO.corrida_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, ");