rodrigo 2013-08-27 15:17:47 +00:00
parent 9ea28d5a07
commit 4c50a11bea
3 changed files with 270 additions and 362 deletions

View File

@ -240,365 +240,273 @@ 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(" 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(" 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("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 ");
String var1 = ""
+ " 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 ";
return sql.toString();
return var1;
}
}

View File

@ -22,7 +22,7 @@
<![CDATA[$P!{SQL}]]>
</queryString>
<field name="NOMBEMPRESA" class="java.lang.String"/>
<field name="CORRIDA_ID" class="java.math.BigDecimal"/>
<field name="CORRIDA_1" class="java.math.BigDecimal"/>
<field name="FECHORSALIDA" class="java.sql.Timestamp"/>
<field name="ORIGEM" class="java.lang.String"/>
<field name="DESTINO" class="java.lang.String"/>
@ -89,7 +89,7 @@
<variableExpression><![CDATA[$F{ABSOLUTOS}]]></variableExpression>
</variable>
<group name="group_corrida_id">
<groupExpression><![CDATA[$F{CORRIDA_ID}]]></groupExpression>
<groupExpression><![CDATA[$F{CORRIDA_1}]]></groupExpression>
<groupHeader>
<band height="66">
<staticText>
@ -200,7 +200,7 @@
<textField>
<reportElement uuid="523ac3ad-3918-41f8-9a59-a89ae6bbc9ca" x="130" y="20" width="61" height="20"/>
<textElement/>
<textFieldExpression><![CDATA[$F{CORRIDA_ID}]]></textFieldExpression>
<textFieldExpression><![CDATA[$F{CORRIDA_1}]]></textFieldExpression>
</textField>
<textField>
<reportElement uuid="d4373b5b-172d-44fb-b2aa-5ab7cb02137e" x="191" y="20" width="212" height="20"/>
@ -436,7 +436,7 @@
<jr:list xmlns:jr="http://jasperreports.sourceforge.net/jasperreports/components" xsi:schemaLocation="http://jasperreports.sourceforge.net/jasperreports/components http://jasperreports.sourceforge.net/xsd/components.xsd" printOrder="Vertical">
<datasetRun subDataset="peso_operacional" uuid="cceb69bf-5b20-4d36-b039-25196730651a">
<datasetParameter name="corrida_id_relatorio">
<datasetParameterExpression><![CDATA[$F{CORRIDA_ID}]]></datasetParameterExpression>
<datasetParameterExpression><![CDATA[$F{CORRIDA_1}]]></datasetParameterExpression>
</datasetParameter>
<dataSourceExpression><![CDATA[new net.sf.jasperreports.engine.data.JRBeanCollectionDataSource($P{lsPesoOperacionalRelatorio})]]></dataSourceExpression>
</datasetRun>