diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java index 31e796aa9..f044e6f91 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java @@ -448,18 +448,15 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" CO.EMPRESACORRIDA_ID, "); sql.append(" BO.BOLETO_ID, "); sql.append(" BO.NUMKMVIAJE * COUNT(1) AS KM_REAL, "); - sql.append(" ROUND((BO.NUMKMVIAJE * COUNT(1) / "); - sql.append("("); - sql.append(" SELECT DISTINCT NVL(B.NUMKMVIAJE, 0)"); - sql.append(" FROM BOLETO B"); - sql.append(" WHERE B.BOLETO_ID = BO.BOLETO_ID"); - sql.append(")), 3) EQUIVALENTE,"); + sql.append(" ROUND(BO.NUMKMVIAJE * COUNT(1) / SUM(T.CANTKMREAL), 3) EQUIVALENTE, "); sql.append(" SUM(NVL(BO.IMPORTESEGURO, 0)) AS IMPORTESEGURO, "); sql.append(" SUM(NVL(BO.IMPORTETAXAEMBARQUE, 0)) AS IMPORTETAXAEMBARQUE, "); sql.append(" SUM(NVL(BO.IMPORTEPEDAGIO, 0)) AS IMPORTEPEDAGIO, "); sql.append(" SUM(NVL(BO.PRECIOPAGADO, 0)) AS PRECIOPAGADO "); sql.append(" FROM CORRIDA CO "); sql.append(" INNER JOIN BOLETO BO ON CO.CORRIDA_ID = BO.CORRIDA_ID AND CO.FECCORRIDA = BO.FECCORRIDA "); + sql.append(" INNER JOIN RUTA_COMBINACION RC ON RC.RUTA_ID = BO.RUTA_ID "); + sql.append(" INNER JOIN TRAMO T ON RC.TRAMO_ID = T.TRAMO_ID AND T.ORIGEN_ID = BO.ORIGEN_ID AND T.DESTINO_ID = BO.DESTINO_ID "); sql.append(" WHERE CO.ACTIVO = 1 "); sql.append(empresa == null ? "" : " AND BO.MARCA_ID = " + empresa.getEmpresaId()); sql.append(" AND BO.INDSTATUSBOLETO != 'S' AND BO.MOTIVOCANCELACION_ID IS NULL "); @@ -494,29 +491,13 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append("LEFT JOIN VIGENCIA_TARIFA VTF ON (TF.VIGENCIATARIFA_ID = VTF.VIGENCIATARIFA_ID AND C.FECCORRIDA BETWEEN VTF.FECINICIOVIGENCIA AND VTF.FECFINVIGENCIA ) "); sql.append("INNER JOIN "); sql.append("( "); - sql.append("SELECT DISTINCT B.ORIGEN_ID, B.DESTINO_ID, B.EMPRESACORRIDA_ID, RS.RUTA_ID, CO.CORRIDA_ID, NVL(B.NUMKMVIAJE, 0) AS EXTENSAO "); - sql.append("FROM RUTA_SECUENCIA RS "); - sql.append("INNER JOIN BOLETO B ON B.RUTA_ID = RS.RUTA_ID "); - sql.append("INNER JOIN CORRIDA CO ON (CO.CORRIDA_ID = B.CORRIDA_ID AND CO.FECCORRIDA = B.FECCORRIDA) "); - sql.append("WHERE RS.ACTIVO = 1 "); - sql.append("AND B.ACTIVO = 1 "); - sql.append("AND CO.FECCORRIDA BETWEEN :DATA_INICIO AND :DATA_FINAL "); - if (lsNumServico.size() > 0) { - for (Corrida corrida : lsNumServico) { - if (lsNumServico.indexOf(corrida) == 0) { - sql.append(" AND CO.CORRIDA_ID IN ( " + corrida.getId().getCorridaId()); - } else { - sql.append(" , " + corrida.getId().getCorridaId() + " "); - } - } - sql.append(" ) "); - } - sql.append(empresa == null ? "" : " AND CO.EMPRESACORRIDA_ID = " + empresa.getEmpresaId()); - sql.append(") TB5 ON TB5.ORIGEN_ID = ORIGEM.PARADA_ID "); + sql.append("SELECT RC.RUTA_ID, T.ORIGEN_ID, T.DESTINO_ID, NVL(T.CANTKMREAL,0) AS EXTENSAO "); + sql.append("FROM RUTA_COMBINACION RC "); + sql.append("INNER JOIN TRAMO T ON RC.TRAMO_ID = T.TRAMO_ID "); + sql.append("WHERE RC.ACTIVO = 1 "); + sql.append(") TB5 ON TB5.RUTA_ID = C.RUTA_ID "); + sql.append("AND TB5.ORIGEN_ID = ORIGEM.PARADA_ID "); sql.append("AND TB5.DESTINO_ID = DESTINO.PARADA_ID "); - sql.append("AND TB5.EMPRESACORRIDA_ID = C.EMPRESACORRIDA_ID "); - sql.append("AND TB5.RUTA_ID = C.RUTA_ID "); - sql.append("AND TB5.CORRIDA_ID = C.CORRIDA_ID "); sql.append("WHERE TB2.CORRIDA_ID = C.CORRIDA_ID "); sql.append("AND TB2.ROLOPERATIVO_ID = C.ROLOPERATIVO_ID "); sql.append("AND TB2.HORASALIDA = TO_CHAR(C.FECHORSALIDA, 'HH24:MI') ");