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}]]>