diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java
index d9c943afc..0fe1068dc 100644
--- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioOrigemDestino.java
@@ -240,103 +240,365 @@ public class RelatorioOrigemDestino extends Relatorio {
Boolean bilhetesGratuitos, Boolean trechosSemMovimento) {
StringBuilder sql = new StringBuilder();
- sql.append(" SELECT ");
- sql.append(" resultado.*, ");
- sql.append(" ( ");
- 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('").append(dataDe).append("','dd/mm/yyyy HH24:mi:ss') AND to_date('").append(dataAte).append("','dd/mm/yyyy HH24:mi:ss') ");
- sql.append(" ) VIAGENS, ");
- sql.append(" SUM(TR.CANTKMREAL) KM_CORRIDA, ");
- sql.append(" ( ");
- sql.append(" SELECT MAX(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('").append(dataDe).append("','dd/mm/yyyy HH24:mi:ss') AND to_date('").append(dataAte).append("','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 (").append(empresaIds).append(") ");
- sql.append(" AND CA.CORRIDA_ID = RESULTADO.CORRIDA_ID ");
- sql.append(" AND CA.FECCORRIDA BETWEEN to_date('").append(dataDe).append("','dd/mm/yyyy HH24:mi:ss') AND to_date('").append(dataAte).append("','dd/mm/yyyy HH24:mi:ss') ");
- sql.append(" AND CA.MOTIVOCANCELACION_ID IS NULL ");
- sql.append(" AND CA.PRECIOBASE IS NOT NULL ");
- if (bilhetesGratuitos) {
- sql.append(" AND CA.PRECIOBASE >= 0 ");
- } else {
- sql.append(" AND CA.PRECIOBASE > 0 ");
- }
- sql.append(" ) ABSOLUTO_TOTAL_CORRIDA, ");
- 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(" WHERE CA.ACTIVO = 1 ");
- sql.append(" AND CO.EMPRESACORRIDA_ID IN (").append(empresaIds).append(") ");
- sql.append(" AND CA.CORRIDA_ID = RESULTADO.CORRIDA_ID ");
- sql.append(" AND CA.FECCORRIDA BETWEEN to_date('").append(dataDe).append("','dd/mm/yyyy HH24:mi:ss') AND to_date('").append(dataAte).append("','dd/mm/yyyy HH24:mi:ss') ");
- sql.append(" AND CA.MOTIVOCANCELACION_ID IS NULL ");
- sql.append(" AND CA.PRECIOBASE IS NOT NULL ");
- if (bilhetesGratuitos) {
- sql.append(" AND CA.PRECIOBASE >= 0 ");
- } else {
- sql.append(" AND CA.PRECIOBASE > 0 ");
- }
- sql.append(" ) EQUIVALENTE_TOTAL_CORRIDA ");
+// sql.append(" SELECT ");
+// sql.append(" resultado.*, ");
+// sql.append(" ( ");
+// 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('").append(dataDe).append("','dd/mm/yyyy HH24:mi:ss') AND to_date('").append(dataAte).append("','dd/mm/yyyy HH24:mi:ss') ");
+// sql.append(" ) VIAGENS, ");
+// sql.append(" SUM(TR.CANTKMREAL) KM_CORRIDA, ");
+// sql.append(" ( ");
+// sql.append(" SELECT MAX(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('").append(dataDe).append("','dd/mm/yyyy HH24:mi:ss') AND to_date('").append(dataAte).append("','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 (").append(empresaIds).append(") ");
+// sql.append(" AND CA.CORRIDA_ID = RESULTADO.CORRIDA_ID ");
+// sql.append(" AND CA.FECCORRIDA BETWEEN to_date('").append(dataDe).append("','dd/mm/yyyy HH24:mi:ss') AND to_date('").append(dataAte).append("','dd/mm/yyyy HH24:mi:ss') ");
+// sql.append(" AND CA.MOTIVOCANCELACION_ID IS NULL ");
+// sql.append(" AND CA.PRECIOBASE IS NOT NULL ");
+// if (bilhetesGratuitos) {
+// sql.append(" AND CA.PRECIOBASE >= 0 ");
+// } else {
+// sql.append(" AND CA.PRECIOBASE > 0 ");
+// }
+// sql.append(" ) ABSOLUTO_TOTAL_CORRIDA, ");
+// 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(" WHERE CA.ACTIVO = 1 ");
+// sql.append(" AND CO.EMPRESACORRIDA_ID IN (").append(empresaIds).append(") ");
+// sql.append(" AND CA.CORRIDA_ID = RESULTADO.CORRIDA_ID ");
+// sql.append(" AND CA.FECCORRIDA BETWEEN to_date('").append(dataDe).append("','dd/mm/yyyy HH24:mi:ss') AND to_date('").append(dataAte).append("','dd/mm/yyyy HH24:mi:ss') ");
+// sql.append(" AND CA.MOTIVOCANCELACION_ID IS NULL ");
+// sql.append(" AND CA.PRECIOBASE IS NOT NULL ");
+// if (bilhetesGratuitos) {
+// sql.append(" AND CA.PRECIOBASE >= 0 ");
+// } else {
+// sql.append(" AND CA.PRECIOBASE > 0 ");
+// }
+// sql.append(" ) EQUIVALENTE_TOTAL_CORRIDA ");
+//
+// sql.append(" FROM ");
+// sql.append(" ( ");
+// sql.append(" SELECT ");
+// sql.append(" 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 ");
+// sql.append(" AND RU.ACTIVO = 1 ");
+// sql.append(" AND EM.ACTIVO = 1 ");
+// sql.append(" AND ORI.ACTIVO = 1 ");
+// sql.append(" AND DES.ACTIVO = 1 ");
+// sql.append(" AND CO.EMPRESACORRIDA_ID IN (").append(empresaIds).append(") ");
+// if (!corridasIds.equals("Todas")) {
+// sql.append(" AND CA.CORRIDA_ID IN (").append(corridasIds).append(") ");
+// }
+// sql.append(" AND CA.FECCORRIDA BETWEEN to_date('").append(dataDe).append("','dd/mm/yyyy HH24:mi:ss') AND to_date('").append(dataAte).append("','dd/mm/yyyy HH24:mi:ss') ");
+// sql.append(" AND CA.MOTIVOCANCELACION_ID IS NULL ");
+// sql.append(" AND CA.PRECIOBASE IS NOT NULL ");
+// if (bilhetesGratuitos) {
+// sql.append(" AND CA.PRECIOBASE >= 0 ");
+// } else {
+// sql.append(" AND CA.PRECIOBASE > 0 ");
+// }
+// sql.append(" GROUP BY RU.RUTA_ID, EM.NOMBEMPRESA, ORI.CVEPARADA, DES.CVEPARADA, CA.NUMKMVIAJE, CO.CORRIDA_ID, RU.DESCRUTA, RU.INDSENTIDOIDA, CA.PRECIOBASE ");
+// sql.append(" ) 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 ");
+// sql.append(" AND TR.ACTIVO = 1 ");
+// sql.append(" 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 ");
+// sql.append(" ORDER BY resultado.CORRIDA_ID ");
- sql.append(" FROM ");
- sql.append(" ( ");
- sql.append(" SELECT ");
- sql.append(" 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 ");
- sql.append(" AND RU.ACTIVO = 1 ");
- sql.append(" AND EM.ACTIVO = 1 ");
- sql.append(" AND ORI.ACTIVO = 1 ");
- sql.append(" AND DES.ACTIVO = 1 ");
- sql.append(" AND CO.EMPRESACORRIDA_ID IN (").append(empresaIds).append(") ");
- if (!corridasIds.equals("Todas")) {
- sql.append(" AND CA.CORRIDA_ID IN (").append(corridasIds).append(") ");
- }
- sql.append(" AND CA.FECCORRIDA BETWEEN to_date('").append(dataDe).append("','dd/mm/yyyy HH24:mi:ss') AND to_date('").append(dataAte).append("','dd/mm/yyyy HH24:mi:ss') ");
- sql.append(" AND CA.MOTIVOCANCELACION_ID IS NULL ");
- sql.append(" AND CA.PRECIOBASE IS NOT NULL ");
- if (bilhetesGratuitos) {
- sql.append(" AND CA.PRECIOBASE >= 0 ");
- } else {
- sql.append(" AND CA.PRECIOBASE > 0 ");
- }
- sql.append(" GROUP BY RU.RUTA_ID, EM.NOMBEMPRESA, ORI.CVEPARADA, DES.CVEPARADA, CA.NUMKMVIAJE, CO.CORRIDA_ID, RU.DESCRUTA, RU.INDSENTIDOIDA, CA.PRECIOBASE ");
- sql.append(" ) 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 ");
- sql.append(" AND TR.ACTIVO = 1 ");
- sql.append(" 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 ");
- sql.append(" ORDER BY resultado.CORRIDA_ID ");
+ 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( ");
+ sql.append(" '01/06/2013 00:00:00', ");
+ sql.append(" 'DD/MM/YYYY HH24:MI:SS' ");
+ sql.append(" ) ");
+ sql.append(" AND ");
+ sql.append(" To_date( ");
+ sql.append(" '01/06/2013 23:59:59', ");
+ sql.append(" 'DD/MM/YYYY HH24:MI:SS')) ");
+ sql.append(" VIAGENS, ");
+ sql.append(" Sum(TR.cantkmreal) ");
+ sql.append(" KM_CORRIDA, ");
+ sql.append(" (SELECT Max(DA.cantasientos) ");
+ sql.append(" FROM corrida CO ");
+ sql.append(" INNER JOIN rol_operativo ROL ");
+ sql.append(" ON ");
+ sql.append(" ROL.roloperativo_id = CO.roloperativo_id ");
+ sql.append(" INNER JOIN diagrama_autobus DA ");
+ sql.append(" ON DA.diagramaautobus_id = ");
+ sql.append(" ROL.diagramaautobus_id ");
+ sql.append(" WHERE CO.corrida_id = RESULTADO.corrida_id ");
+ sql.append(" AND CO.feccorrida BETWEEN To_date( ");
+ sql.append(" '01/06/2013 00:00:00', ");
+ sql.append(" 'DD/MM/YYYY HH24:MI:SS' ");
+ sql.append(" ) ");
+ sql.append(" AND ");
+ sql.append(" To_date( ");
+ sql.append(" '01/06/2013 23:59:59', ");
+ sql.append(" '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 ");
+ sql.append(" ON ( CO.corrida_id = CA.corrida_id ");
+ sql.append(" AND CO.feccorrida = CA.feccorrida ) ");
+ sql.append(" WHERE CA.activo = 1 ");
+ sql.append(" AND CO.empresacorrida_id IN ( 25 ) ");
+ sql.append(" AND CA.corrida_id = RESULTADO.corrida_id ");
+ sql.append(" AND CA.feccorrida BETWEEN To_date( ");
+ sql.append(" '01/06/2013 00:00:00', ");
+ sql.append(" 'DD/MM/YYYY HH24:MI:SS' ");
+ sql.append(" ) ");
+ sql.append(" AND ");
+ sql.append(" To_date( ");
+ sql.append(" '01/06/2013 23:59:59', ");
+ sql.append(" '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 > 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 ");
+ sql.append(" ON ORI.parada_id = CA.origen_id ");
+ sql.append(" INNER JOIN parada DES ");
+ sql.append(" ON DES.parada_id = CA.destino_id ");
+ sql.append(" INNER JOIN corrida CO ");
+ sql.append(" ON ( CO.corrida_id = CA.corrida_id ");
+ sql.append(" AND CO.feccorrida = CA.feccorrida ) ");
+ sql.append(" INNER JOIN empresa EM ");
+ sql.append(" ON EM.empresa_id = CO.empresacorrida_id ");
+ sql.append(" INNER JOIN ruta RU ");
+ sql.append(" ON RU.ruta_id = CO.ruta_id ");
+ sql.append(" WHERE CA.activo = 1 ");
+ sql.append(" AND RU.activo = 1 ");
+ sql.append(" AND EM.activo = 1 ");
+ sql.append(" AND ORI.activo = 1 ");
+ sql.append(" AND DES.activo = 1 ");
+ sql.append(" AND CO.empresacorrida_id IN ( 25 ) ");
+ sql.append(" AND CA.feccorrida BETWEEN To_date( ");
+ sql.append(" '01/06/2013 00:00:00', ");
+ sql.append(" 'DD/MM/YYYY HH24:MI:SS' ");
+ sql.append(" ) ");
+ sql.append(" AND ");
+ sql.append(" To_date( ");
+ sql.append(" '01/06/2013 23:59:59', ");
+ sql.append(" '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 > 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 ");
+ sql.append(" ON RS.ruta_id = RESULTADO.ruta_id ");
+ sql.append(" INNER JOIN tramo TR ");
+ sql.append(" ON TR.tramo_id = RS.tramo_id ");
+ sql.append(" WHERE RS.activo = 1 ");
+ sql.append(" 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 ");
+ sql.append(" --ORDER BY ");
+ sql.append(" -- RESULTADO.CORRIDA_ID ");
+ sql.append(" ) 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 ");
+ sql.append(" Count(*) ");
+ sql.append(" FROM ");
+ sql.append(" boleto CA ");
+ sql.append(" INNER JOIN corrida CO ");
+ sql.append(" ON ( CO.corrida_id ");
+ sql.append(" = CA.corrida_id ");
+ sql.append(" AND CO.feccorrida = ");
+ sql.append(" CA.feccorrida ) ");
+ sql.append(" INNER JOIN parada PO ");
+ sql.append(" ON CA.origen_id = PO.parada_id ");
+ sql.append(" INNER JOIN parada PD ");
+ sql.append(" ON CA.destino_id = PD.parada_id ");
+ sql.append(" WHERE ");
+ sql.append(" CA.activo = 1 ");
+ sql.append(" AND CO.empresacorrida_id ");
+ sql.append(" IN ( 25 ) ");
+ sql.append(" AND CA.corrida_id = ");
+ sql.append(" RESULTADO.corrida_id ");
+ sql.append(" AND CA.feccorrida BETWEEN ");
+ sql.append(" To_date('01/06/2013 00:00:00', ");
+ sql.append(" 'DD/MM/YYYY HH24:MI:SS' ");
+ sql.append(" ) ");
+ sql.append(" AND ");
+ sql.append(" To_date( ");
+ sql.append(" '01/06/2013 23:59:59', ");
+ sql.append(" '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 ");
+ sql.append(" ON ORI.parada_id = ");
+ sql.append(" CA.origen_id ");
+ sql.append(" INNER JOIN parada DES ");
+ sql.append(" ON DES.parada_id = ");
+ sql.append(" CA.destino_id ");
+ sql.append(" INNER JOIN corrida CO ");
+ sql.append(" ON ( CO.corrida_id = ");
+ sql.append(" CA.corrida_id ");
+ sql.append(" AND ");
+ sql.append(" CO.feccorrida = CA.feccorrida ) ");
+ sql.append(" INNER JOIN empresa EM ");
+ sql.append(" ON EM.empresa_id = ");
+ sql.append(" CO.empresacorrida_id ");
+ sql.append(" INNER JOIN ruta RU ");
+ sql.append(" ON RU.ruta_id = CO.ruta_id ");
+ sql.append(" WHERE CA.activo = 1 ");
+ sql.append(" AND RU.activo = 1 ");
+ sql.append(" AND EM.activo = 1 ");
+ sql.append(" AND ORI.activo = 1 ");
+ sql.append(" AND DES.activo = 1 ");
+ sql.append(" AND CO.empresacorrida_id IN ( 25 ) ");
+ sql.append(" AND CA.feccorrida BETWEEN To_date( ");
+ sql.append(" '01/06/2013 00:00:00', ");
+ sql.append(" 'DD/MM/YYYY HH24:MI:SS' ");
+ sql.append(" ) ");
+ sql.append(" AND ");
+ sql.append(" To_date( ");
+ sql.append(" '01/06/2013 23:59:59', ");
+ sql.append(" '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 > 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 ");
+ sql.append(" ON RS.ruta_id = RESULTADO.ruta_id ");
+ sql.append(" INNER JOIN tramo TR ");
+ sql.append(" ON TR.tramo_id = RS.tramo_id ");
+ sql.append(" WHERE RS.activo = 1 ");
+ sql.append(" 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.toString();
}
}
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTaxasLinha.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTaxasLinha.java
index 4a58e67c7..22c765378 100644
--- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTaxasLinha.java
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioTaxasLinha.java
@@ -63,7 +63,7 @@ public class RelatorioTaxasLinha extends Relatorio {
public Object valueCustomFields(String fieldName) throws Exception {
// Se não for pra subtrair o ICMS, realiza o calculo e adiciona o mesmo
- if (!(Boolean) this.relatorio.getParametros().get("B_SUBTRAIR_ICMS")) {
+ if ((Boolean) this.relatorio.getParametros().get("B_SUBTRAIR_ICMS")) {
BigDecimal valorIcms = BigDecimal.ZERO;
String indInterestadual = this.resultSet.getString("INTERESTADUAL");
Integer puntoVentaId = this.resultSet.getInt("PUNTOVENTA_ID");
@@ -71,27 +71,27 @@ public class RelatorioTaxasLinha extends Relatorio {
try {
if (fieldName.equals("IMPORTETAXAEMBARQUE") && this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE") != null && !this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE").equals(BigDecimal.ZERO)) {
valorIcms = CalculoImposto.getValorImposto(this.relatorio.getConexao(), puntoVentaId, indInterestadual, BigDecimal.ZERO, BigDecimal.ZERO, this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE"), BigDecimal.ZERO);
- return this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE").add(valorIcms);
+ return this.resultSet.getBigDecimal("IMPORTETAXAEMBARQUE").subtract(valorIcms);
}
else if (fieldName.equals("IMPORTEPEDAGIO") && this.resultSet.getBigDecimal("IMPORTEPEDAGIO") != null && !this.resultSet.getBigDecimal("IMPORTEPEDAGIO").equals(BigDecimal.ZERO)) {
valorIcms = CalculoImposto.getValorImposto(this.relatorio.getConexao(), puntoVentaId, indInterestadual, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, this.resultSet.getBigDecimal("IMPORTEPEDAGIO"));
- return this.resultSet.getBigDecimal("IMPORTEPEDAGIO").add(valorIcms);
+ return this.resultSet.getBigDecimal("IMPORTEPEDAGIO").subtract(valorIcms);
}
else if (fieldName.equals("IMPORTESEGURO") && this.resultSet.getBigDecimal("IMPORTESEGURO") != null && !this.resultSet.getBigDecimal("IMPORTESEGURO").equals(BigDecimal.ZERO)) {
valorIcms = CalculoImposto.getValorImposto(this.relatorio.getConexao(), puntoVentaId, indInterestadual, BigDecimal.ZERO, this.resultSet.getBigDecimal("IMPORTESEGURO"), BigDecimal.ZERO, BigDecimal.ZERO);
- return this.resultSet.getBigDecimal("IMPORTESEGURO").add(valorIcms);
+ return this.resultSet.getBigDecimal("IMPORTESEGURO").subtract(valorIcms);
}
else if (fieldName.equals("TOTAL_EMBARQUE") && !this.resultSet.getBigDecimal("TOTAL_EMBARQUE").equals(BigDecimal.ZERO)) {
valorIcms = CalculoImposto.getValorImposto(this.relatorio.getConexao(), puntoVentaId, indInterestadual, BigDecimal.ZERO, this.resultSet.getBigDecimal("TOTAL_EMBARQUE"), BigDecimal.ZERO, BigDecimal.ZERO);
- return this.resultSet.getBigDecimal("TOTAL_EMBARQUE").add(valorIcms);
+ return this.resultSet.getBigDecimal("TOTAL_EMBARQUE").subtract(valorIcms);
}
else if (fieldName.equals("TOTAL_PEDAGIO") && !this.resultSet.getBigDecimal("TOTAL_PEDAGIO").equals(BigDecimal.ZERO)) {
valorIcms = CalculoImposto.getValorImposto(this.relatorio.getConexao(), puntoVentaId, indInterestadual, BigDecimal.ZERO, BigDecimal.ZERO, BigDecimal.ZERO, this.resultSet.getBigDecimal("TOTAL_PEDAGIO"));
- return this.resultSet.getBigDecimal("TOTAL_PEDAGIO").add(valorIcms);
+ return this.resultSet.getBigDecimal("TOTAL_PEDAGIO").subtract(valorIcms);
}
else if (fieldName.equals("TOTAL_SEGURO") && !this.resultSet.getBigDecimal("TOTAL_SEGURO").equals(BigDecimal.ZERO)) {
valorIcms = CalculoImposto.getValorImposto(this.relatorio.getConexao(), puntoVentaId, indInterestadual, BigDecimal.ZERO, this.resultSet.getBigDecimal("TOTAL_SEGURO"), BigDecimal.ZERO, BigDecimal.ZERO);
- return this.resultSet.getBigDecimal("TOTAL_SEGURO").add(valorIcms);
+ return this.resultSet.getBigDecimal("TOTAL_SEGURO").subtract(valorIcms);
}
} catch (Exception e) {
if (e instanceof ExceptionConfiguracao)
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jasper
index a02b9c353..1e838f94d 100644
Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jasper differ
diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jrxml
index 08c8f6f5c..88dc2197f 100644
--- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jrxml
+++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioOrigemDestino.jrxml
@@ -41,7 +41,7 @@
-
+
@@ -59,7 +59,7 @@
-
+
@@ -71,7 +71,7 @@
-
+
@@ -294,7 +294,9 @@
-
+
+
+
0?new BigDecimal("100.00"):$V{sum_porc_abs}]]>