From 23c53888d150e10d50272f010b92bf092317bbf7 Mon Sep 17 00:00:00 2001 From: valdevir Date: Wed, 14 Apr 2021 18:32:50 +0000 Subject: [PATCH] fixes bug#22066 qua: dev:Celio git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@106230 d1611594-4594-4d17-8e1d-87c2c4800839 --- ...LinhasAnaliticoSimplificadoSumarizado.java | 506 ++++++++++-------- 1 file changed, 275 insertions(+), 231 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.java index a09f1fc42..296454ed2 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioResumoLinhasAnaliticoSimplificadoSumarizado.java @@ -124,239 +124,280 @@ public class RelatorioResumoLinhasAnaliticoSimplificadoSumarizado extends Relato * @return */ private String getSql(Integer rutaId, Integer grupoRutaId) { - StringBuilder sqlSb = new StringBuilder(); - sqlSb.append(" SELECT SUB.*, "); - sqlSb.append(" (NVL(SUB.PASSAGEIROS,0) / DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0))) AS PASSAGEIROS_MPA, "); - sqlSb.append(" ( ROUND(NVL(SUB.PASSAGEIROS_EQUIVALENTE,0), 2) / DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0))) AS PASSAGEIROS_MPE, "); - sqlSb.append(" (NVL(SUB.RECEITA_TOTAL,0) / DECODE(NVL(SUB.KM_RODADO,0), 0, 1, NVL(SUB.KM_RODADO,0))) RECEITA_KM, "); - sqlSb.append(" (NVL(SUB.RECEITA_TOTAL,0) / DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0))) AS RECEITA_VIAGEM, "); - sqlSb.append(" (ROUND(NVL(SUB.PASSAGEIROS_EQUIVALENTE,0), 2) * NVL(SUB.EXTENSAO_KM,0)) AS PAX_KM, "); - sqlSb.append(" (NVL(SUB.ASSENTOS,0) * NVL(SUB.KM_RODADO,0)) AS PAX_OFERTADO "); - sqlSb.append(" FROM "); - sqlSb.append(" (SELECT TAB.INDSENTIDOIDA, "); - sqlSb.append(" TAB.PREFIXO, "); - sqlSb.append(" TAB.DESCRUTA, "); - sqlSb.append(" TAB.RUTA_ID, "); - sqlSb.append(" TAB.NUMRUTA, "); - sqlSb.append(" TAB.INTERESTADUAL, "); - sqlSb.append(" TAB.GRUPO_LINHA, "); - sqlSb.append(" TAB.EXTENSAO_KM, "); - sqlSb.append(" TAB.CVE_CLASE_SERVICIO, "); - sqlSb.append(" TAB.DESC_CLASE_SERVICIO, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_SEGURO,0)) AS RECEITA_SEGURO, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_BAGAGEM,0)) AS RECEITA_BAGAGEM, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_SEGURO_OUTROS,0)) AS RECEITA_SEGURO_OUTROS, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_TARIFA,0)) AS RECEITA_TARIFA, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_PEDAGIO,0)) AS RECEITA_PEDAGIO, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_EMBARQUE,0)) AS RECEITA_EMBARQUE, "); - sqlSb.append(" SUM(NVL(TAB.PASSAGEIROS,0)) AS PASSAGEIROS, "); - sqlSb.append(" SUM(NVL(TAB.VIAGENS_EXTRA,0)) AS VIAGENS_EXTRA, "); - sqlSb.append(" SUM(NVL(TAB.VIAGENS,0)) AS VIAGENS, "); - sqlSb.append(" SUM(NVL(TAB.RECEITA_TOTAL,0)) AS RECEITA_TOTAL, "); - sqlSb.append(" SUM(NVL(TAB.VIAGENS_TOTAL,0)) AS VIAGENS_TOTAL, "); - sqlSb.append(" SUM(NVL(TAB.KM_RODADO,0)) AS KM_RODADO, "); - sqlSb.append(" SUM(NVL(TAB.PASSAGEIROS_EQUIVALENTE,0)) AS PASSAGEIROS_EQUIVALENTE, "); - sqlSb.append(" TAB.ASSENTOS AS ASSENTOS "); - sqlSb.append(" FROM "); - sqlSb.append(" (SELECT TAB1.*, "); - sqlSb.append(" (TAB1.RECEITA_TARIFA + RECEITA_SEGURO + RECEITA_EMBARQUE + RECEITA_PEDAGIO) RECEITA_TOTAL, "); - sqlSb.append(" (NVL(TAB1.VIAGENS,0) + NVL(TAB1.VIAGENS_EXTRA,0)) VIAGENS_TOTAL, "); - sqlSb.append(" ((NVL(TAB1.VIAGENS,0) + NVL(TAB1.VIAGENS_EXTRA,0)) * NVL(TAB1.EXTENSAO_KM,0)) KM_RODADO, "); - sqlSb.append(" (SELECT SUM(NVL(PE.EQUIVALENTE,0)) "); - sqlSb.append(" FROM "); - sqlSb.append(" (SELECT CO.FECCORRIDA, "); - sqlSb.append(" CO.RUTA_ID, "); - sqlSb.append(" BO.PRECIOBASE, "); - sqlSb.append(" ROUND((BO.NUMKMVIAJE * COUNT(1) / "); - sqlSb.append(" (SELECT SUM(NVL(TR.CANTKMREAL,0)) "); - sqlSb.append(" FROM RUTA_COMBINACION RS, "); - sqlSb.append(" TRAMO TR "); - sqlSb.append(" WHERE RS.RUTA_ID = CO.RUTA_ID "); - sqlSb.append(" AND RS.TRAMO_ID = TR.TRAMO_ID "); - sqlSb.append(" )), 2) EQUIVALENTE "); - sqlSb.append(" FROM CORRIDA CO, "); - sqlSb.append(" BOLETO BO "); - sqlSb.append(" WHERE CO.CORRIDA_ID = BO.CORRIDA_ID "); - sqlSb.append(" AND CO.FECCORRIDA = BO.FECCORRIDA "); - sqlSb.append(" AND BO.ACTIVO = 1 "); - sqlSb.append(" AND (BO.MOTIVOCANCELACION_ID IS NULL "); - sqlSb.append(" OR BO.MOTIVOCANCELACION_ID = 0) "); - sqlSb.append(" GROUP BY CO.FECCORRIDA, "); - sqlSb.append(" CO.RUTA_ID, "); - sqlSb.append(" BO.PRECIOBASE, "); - sqlSb.append(" BO.NUMKMVIAJE "); - sqlSb.append(" ) PE "); - sqlSb.append(" WHERE PE.FECCORRIDA = TAB1.FECCORRIDA "); - sqlSb.append(" AND PE.RUTA_ID = TAB1.RUTA_ID "); - sqlSb.append(" ) PASSAGEIROS_EQUIVALENTE, "); - sqlSb.append(" (SELECT SUM(NVL(DA.CANTASIENTOS,0)) FROM DIAGRAMA_AUTOBUS DA "); - sqlSb.append(" INNER JOIN ROL_OPERATIVO RO ON (DA.DIAGRAMAAUTOBUS_ID = RO.DIAGRAMAAUTOBUS_ID) "); - sqlSb.append(" INNER JOIN CORRIDA CO ON (RO.ROLOPERATIVO_ID = CO.ROLOPERATIVO_ID) "); - sqlSb.append(" INNER JOIN RUTA RU ON (RU.RUTA_ID = CO.RUTA_ID) "); - sqlSb.append(" WHERE CO.FECCORRIDA BETWEEN TO_DATE(:DATA_INICIAL, 'DD/MM/YY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YY hh24:mi:ss') "); - sqlSb.append(" AND RU.RUTA_ID = TAB1.RUTA_ID "); - sqlSb.append(" AND DA.ACTIVO = 1 "); - sqlSb.append(" AND RO.ACTIVO = 1 "); - sqlSb.append(" AND CO.ACTIVO = 1 "); - sqlSb.append(" AND RU.ACTIVO = 1) ASSENTOS "); - sqlSb.append(" FROM "); - sqlSb.append(" (SELECT RUTA_ID, "); - sqlSb.append(" INDSENTIDOIDA, "); - sqlSb.append(" NUMRUTA, "); - sqlSb.append(" PREFIXO, "); - sqlSb.append(" FECCORRIDA, "); - sqlSb.append(" DESCRUTA, "); - sqlSb.append(" INTERESTADUAL, "); - sqlSb.append(" GRUPO_LINHA, "); - sqlSb.append(" EXTENSAO_KM, "); - sqlSb.append(" RECEITA_SEGURO, "); - sqlSb.append(" RECEITA_BAGAGEM, "); - sqlSb.append(" RECEITA_SEGURO_OUTROS, "); - sqlSb.append(" RECEITA_PEDAGIO, "); - sqlSb.append(" RECEITA_EMBARQUE, "); - sqlSb.append(" SUM(PASSAGEIROS) AS PASSAGEIROS, "); - sqlSb.append(" VIAGENS_EXTRA, "); - sqlSb.append(" VIAGENS, "); - sqlSb.append(" CVE_CLASE_SERVICIO, "); - sqlSb.append(" DESC_CLASE_SERVICIO, "); - sqlSb.append(" SUM(PRECIOPAGADO) AS RECEITA_TARIFA "); - sqlSb.append(" FROM "); - sqlSb.append(" (SELECT RT.RUTA_ID, "); - sqlSb.append(" BL.BOLETO_ID, "); - sqlSb.append(" SUM(BL.PRECIOPAGADO) AS preciototal, "); - sqlSb.append(" BL.preciopagado AS PRECIOPAGADO, "); - sqlSb.append(" RT.INDSENTIDOIDA, "); - sqlSb.append(" RT.NUMRUTA, "); - sqlSb.append(" RT.PREFIXO, "); - sqlSb.append(" CR.FECCORRIDA, "); - sqlSb.append(" RT.DESCRUTA, "); - sqlSb.append(" CASE "); - sqlSb.append(" WHEN CO.ESTADO_ID <> CD.ESTADO_ID "); - sqlSb.append(" THEN 'S' "); - sqlSb.append(" ELSE 'N' "); - sqlSb.append(" END INTERESTADUAL, "); - sqlSb.append(" NVL(GR.DESCGRUPO, 'Não Definido') GRUPO_LINHA, "); - sqlSb.append(" (SELECT SUM(NVL(RS.KMORIGINAL,0)) "); - sqlSb.append(" FROM RUTA_SECUENCIA RS, "); - sqlSb.append(" TRAMO TR "); - sqlSb.append(" WHERE RS.RUTA_ID = RT.RUTA_ID "); - sqlSb.append(" AND RS.TRAMO_ID = TR.TRAMO_ID "); - sqlSb.append(" AND RS.ACTIVO = 1 "); - sqlSb.append(" ) EXTENSAO_KM, "); - sqlSb.append(" NVL(SUM(NVL(BL.IMPORTESEGURO,0)), 0) RECEITA_SEGURO, "); - sqlSb.append(" 0 RECEITA_BAGAGEM, "); - sqlSb.append(" 0 RECEITA_SEGURO_OUTROS, "); - sqlSb.append(" SUM(NVL(BL.IMPORTEPEDAGIO,0)) RECEITA_PEDAGIO, "); - sqlSb.append(" SUM(NVL(BL.IMPORTETAXAEMBARQUE,0)) RECEITA_EMBARQUE, "); - sqlSb.append(" COUNT(DISTINCT BOLETO_ID) PASSAGEIROS, "); - sqlSb.append(" COUNT(DISTINCT "); - sqlSb.append(" CASE "); - sqlSb.append(" WHEN CR.TIPOSERVICIO_ID = 2 "); - sqlSb.append(" THEN CR.FECCORRIDA "); - sqlSb.append(" || CR.CORRIDA_ID "); - sqlSb.append(" ELSE NULL "); - sqlSb.append(" END) VIAGENS_EXTRA, "); - sqlSb.append(" COUNT(DISTINCT "); - sqlSb.append(" CASE "); - sqlSb.append(" WHEN CR.TIPOSERVICIO_ID <> 2 "); - sqlSb.append(" THEN CR.FECCORRIDA "); - sqlSb.append(" || CR.CORRIDA_ID "); - sqlSb.append(" ELSE NULL "); - sqlSb.append(" END) VIAGENS, "); - sqlSb.append(" NVL(CS.CVECLASE, ' ') CVE_CLASE_SERVICIO ,"); - sqlSb.append(" NVL(CS.DESCCLASE, ' ') DESC_CLASE_SERVICIO "); - sqlSb.append(" FROM RUTA RT, "); - sqlSb.append(" BOLETO BL, "); - sqlSb.append(" CORRIDA CR, "); - sqlSb.append(" TRAMO TR, "); - sqlSb.append(" VIGENCIA_TARIFA VT, "); - sqlSb.append(" GRUPO_RUTA GR, "); - sqlSb.append(" PARADA PO, "); - sqlSb.append(" PARADA PD, "); - sqlSb.append(" CIUDAD CO, "); - sqlSb.append(" CIUDAD CD, "); - sqlSb.append(" CLASE_SERVICIO CS "); - sqlSb.append(" WHERE RT.RUTA_ID = CR.RUTA_ID "); - sqlSb.append(" AND CS.CLASESERVICIO_ID = RT.CLASESERVICIO_ID "); - sqlSb.append(" AND CR.FECCORRIDA = BL.FECCORRIDA "); + StringBuilder sql = new StringBuilder(); + sql.append("SELECT "); + sql.append(" subnivel2.*, "); + sql.append(" ( nvl(subnivel2.passageiros, 0) / decode(nvl(subnivel2.viagens_total, 0), 0, 1, nvl(subnivel2.viagens_total, 0)) ) AS passageiros_mpa, "); + sql.append(" ( round(nvl(subnivel2.passageiros_equivalente, 0), 2) / decode(nvl(subnivel2.viagens_total, 0), 0, 1, nvl(subnivel2.viagens_total, "); + sql.append(" 0)) ) AS passageiros_mpe, "); + sql.append(" ( nvl(subnivel2.receita_total, 0) / decode(nvl(subnivel2.km_rodado, 0), 0, 1, nvl(subnivel2.km_rodado, 0)) ) receita_km, "); + sql.append(" ( nvl(subnivel2.receita_total, 0) / decode(nvl(subnivel2.viagens_total, 0), 0, 1, nvl(subnivel2.viagens_total, 0)) ) AS receita_viagem, "); + sql.append(" ( nvl(subnivel2.assentos, 0) * nvl(subnivel2.km_rodado, 0) ) AS pax_ofertado "); + sql.append("FROM"); + sql.append(" ( "); + sql.append(" SELECT"); + sql.append(" subnivel3.*,"); + sql.append(" ( round(nvl(subnivel3.passageiros_equivalente, 0), 2) * nvl(subnivel3.extensao_km, 0) ) AS pax_km, "); + sql.append(" ( nvl(subnivel3.viagens, 0) + nvl(subnivel3.viagens_extra, 0) ) viagens_total,"); + sql.append(" ( ( nvl(subnivel3.viagens, 0) + nvl(subnivel3.viagens_extra, 0) ) * nvl(subnivel3.extensao_km, 0) ) km_rodado "); + sql.append(" FROM "); + sql.append(" ( "); + sql.append(" SELECT"); + sql.append(" subnivel4.indsentidoida, "); + sql.append(" subnivel4.prefixo, "); + sql.append(" subnivel4.descruta,"); + sql.append(" subnivel4.ruta_id, "); + sql.append(" subnivel4.numruta, "); + sql.append(" subnivel4.interestadual,"); + sql.append(" subnivel4.grupo_linha, "); + sql.append(" subnivel4.extensao_km,"); + sql.append(" subnivel4.cve_clase_servicio, "); + sql.append(" subnivel4.desc_clase_servicio,"); + sql.append(" SUM(nvl(subnivel4.receita_seguro, 0)) AS receita_seguro, "); + sql.append(" SUM(nvl(subnivel4.receita_bagagem, 0)) AS receita_bagagem, "); + sql.append(" SUM(nvl(subnivel4.receita_seguro_outros, 0)) AS receita_seguro_outros, "); + sql.append(" SUM(nvl(subnivel4.receita_tarifa, 0)) AS receita_tarifa, "); + sql.append(" SUM(nvl(subnivel4.receita_pedagio, 0)) AS receita_pedagio, "); + sql.append(" SUM(nvl(subnivel4.receita_embarque, 0)) AS receita_embarque, "); + sql.append(" SUM(nvl(subnivel4.passageiros, 0)) AS passageiros,"); + sql.append(" SUM(nvl(subnivel4.receita_total, 0)) AS receita_total,"); + sql.append(" SUM(nvl(subnivel4.passageiros_equivalente, 0)) AS passageiros_equivalente, "); + sql.append(" subnivel4.assentos AS assentos, "); + sql.append(" COUNT(DISTINCT "); + sql.append(" CASE "); + sql.append(" WHEN subnivel4.tiposervicio_id = 2 THEN "); + sql.append(" subnivel4.feccorrida || subnivel4.corrida_id "); + sql.append(" ELSE "); + sql.append(" NULL "); + sql.append(" END "); + sql.append(" ) viagens_extra, "); + sql.append(" COUNT(DISTINCT "); + sql.append(" CASE "); + sql.append(" WHEN subnivel4.tiposervicio_id <> 2 THEN "); + sql.append(" subnivel4.feccorrida || subnivel4.corrida_id "); + sql.append(" ELSE "); + sql.append(" NULL "); + sql.append(" END "); + sql.append(" ) viagens "); + sql.append(" FROM "); + sql.append(" ( "); + sql.append(" SELECT "); + sql.append(" subnivel5.*, "); + sql.append(" ( subnivel5.receita_tarifa + receita_seguro + receita_embarque + receita_pedagio ) receita_total, "); + sql.append(" ( "); + sql.append(" SELECT "); + sql.append(" SUM(nvl(pe.equivalente, 0)) "); + sql.append(" FROM "); + sql.append(" ( "); + sql.append(" SELECT "); + sql.append(" co.feccorrida, "); + sql.append(" co.ruta_id, "); + sql.append(" bo.preciobase, "); + sql.append(" round((bo.numkmviaje * COUNT(1) /( "); + sql.append(" SELECT "); + sql.append(" SUM(nvl(tr.cantkmreal, 0)) "); + sql.append(" FROM "); + sql.append(" ruta_combinacion rs, "); + sql.append(" tramo tr "); + sql.append(" WHERE "); + sql.append(" rs.ruta_id = co.ruta_id "); + sql.append(" AND rs.tramo_id = tr.tramo_id "); + sql.append(" )), "); + sql.append(" 2) equivalente "); + sql.append(" FROM "); + sql.append(" corrida co, "); + sql.append(" boleto bo "); + sql.append(" WHERE "); + sql.append(" co.corrida_id = bo.corrida_id "); + sql.append(" AND co.feccorrida = bo.feccorrida "); + sql.append(" AND bo.activo = 1 "); + sql.append(" AND ( bo.motivocancelacion_id IS NULL "); + sql.append(" OR bo.motivocancelacion_id = 0 ) "); + sql.append(" GROUP BY "); + sql.append(" co.feccorrida, "); + sql.append(" co.ruta_id, "); + sql.append(" bo.preciobase, "); + sql.append(" bo.numkmviaje "); + sql.append(" ) pe "); + sql.append(" WHERE "); + sql.append(" pe.feccorrida = subnivel5.feccorrida "); + sql.append(" AND pe.ruta_id = subnivel5.ruta_id "); + sql.append(" ) passageiros_equivalente, "); + sql.append(" ( "); + sql.append(" SELECT "); + sql.append(" SUM(nvl(da.cantasientos, 0)) "); + sql.append(" FROM "); + sql.append(" diagrama_autobus da "); + sql.append(" INNER JOIN rol_operativo ro ON ( da.diagramaautobus_id = ro.diagramaautobus_id ) "); + sql.append(" INNER JOIN corrida co ON ( ro.roloperativo_id = co.roloperativo_id ) "); + sql.append(" INNER JOIN ruta ru ON ( ru.ruta_id = co.ruta_id ) "); + sql.append(" WHERE "); + sql.append(" co.feccorrida BETWEEN TO_DATE('01/03/2021', 'DD/MM/YY hh24:mi:ss') AND TO_DATE('10/03/2021', 'DD/MM/YY hh24:mi:ss') "); + sql.append(" AND ru.ruta_id = subnivel5.ruta_id "); + sql.append(" AND da.activo = 1 "); + sql.append(" AND ro.activo = 1 "); + sql.append(" AND co.activo = 1 "); + sql.append(" AND ru.activo = 1 "); + sql.append(" ) assentos "); + sql.append(" FROM "); + sql.append(" ( "); + sql.append(" SELECT "); + sql.append(" ruta_id, "); + sql.append(" indsentidoida, "); + sql.append(" numruta, "); + sql.append(" prefixo, "); + sql.append(" feccorrida, "); + sql.append(" corrida_id, "); + sql.append(" tiposervicio_id, "); + sql.append(" descruta, "); + sql.append(" interestadual, "); + sql.append(" grupo_linha, "); + sql.append(" extensao_km, "); + sql.append(" receita_seguro, "); + sql.append(" receita_bagagem, "); + sql.append(" receita_seguro_outros, "); + sql.append(" receita_pedagio, "); + sql.append(" receita_embarque, "); + sql.append(" SUM(passageiros) AS passageiros, "); + sql.append(" cve_clase_servicio, "); + sql.append(" desc_clase_servicio, "); + sql.append(" SUM(preciopagado) AS receita_tarifa "); + sql.append(" FROM "); + sql.append(" ( "); + sql.append(" SELECT "); + sql.append(" rt.ruta_id, "); + sql.append(" bl.boleto_id, "); + sql.append(" SUM(bl.preciopagado) AS preciototal, "); + sql.append(" bl.preciopagado AS preciopagado, "); + sql.append(" rt.indsentidoida, "); + sql.append(" rt.numruta, "); + sql.append(" rt.prefixo, "); + sql.append(" cr.feccorrida, "); + sql.append(" cr.corrida_id, "); + sql.append(" cr.tiposervicio_id, "); + sql.append(" rt.descruta, "); + sql.append(" CASE "); + sql.append(" WHEN co.estado_id <> cd.estado_id THEN "); + sql.append(" 'S' "); + sql.append(" ELSE "); + sql.append(" 'N' "); + sql.append(" END interestadual, "); + sql.append(" nvl(gr.descgrupo, 'Não Definido') grupo_linha, "); + sql.append(" ( "); + sql.append(" SELECT "); + sql.append(" SUM(nvl(rs.kmoriginal, 0)) "); + sql.append(" FROM "); + sql.append(" ruta_secuencia rs, "); + sql.append(" tramo tr "); + sql.append(" WHERE "); + sql.append(" rs.ruta_id = rt.ruta_id "); + sql.append(" AND rs.tramo_id = tr.tramo_id "); + sql.append(" AND rs.activo = 1 "); + sql.append(" ) extensao_km, "); + sql.append(" nvl(SUM(nvl(bl.importeseguro, 0)), 0) receita_seguro, "); + sql.append(" 0 receita_bagagem, "); + sql.append(" 0 receita_seguro_outros, "); + sql.append(" SUM(nvl(bl.importepedagio, 0)) receita_pedagio, "); + sql.append(" SUM(nvl(bl.importetaxaembarque, 0)) receita_embarque, "); + sql.append(" COUNT(DISTINCT boleto_id) passageiros, "); + sql.append(" nvl(cs.cveclase, ' ') cve_clase_servicio, "); + sql.append(" nvl(cs.descclase, ' ') desc_clase_servicio "); + sql.append(" FROM "); + sql.append(" ruta rt, "); + sql.append(" boleto bl, "); + sql.append(" corrida cr, "); + sql.append(" tramo tr, "); + sql.append(" vigencia_tarifa vt, "); + sql.append(" grupo_ruta gr, "); + sql.append(" parada po, "); + sql.append(" parada pd, "); + sql.append(" ciudad co, "); + sql.append(" ciudad cd, "); + sql.append(" clase_servicio cs "); + sql.append(" WHERE "); + sql.append(" rt.ruta_id = cr.ruta_id "); + sql.append(" AND cs.claseservicio_id = rt.claseservicio_id "); + sql.append(" AND cr.feccorrida = bl.feccorrida "); if (rutaId != null) { - sqlSb.append(" AND CR.RUTA_ID = NVL(:RUTA_ID, CR.RUTA_ID) "); + sql.append(" AND cr.ruta_id = NVL(:RUTA_ID, cr.ruta_id) "); } if (grupoRutaId != null) { - sqlSb.append(" AND DECODE(:GRUPORUTA_ID, NULL, 1, RT.GRUPORUTA_ID) = DECODE(:GRUPORUTA_ID, NULL, 1, :GRUPORUTA_ID) "); + sql.append(" AND DECODE(:GRUPORUTA_ID, NULL, 1, RT.GRUPORUTA_ID) = DECODE(:GRUPORUTA_ID, NULL, 1, :GRUPORUTA_ID) "); } - sqlSb.append(" AND CR.CORRIDA_ID = BL.CORRIDA_ID "); - sqlSb.append(" AND CR.EMPRESACORRIDA_ID = :EMPRESA_ID "); - sqlSb.append(" AND CR.ORIGEN_ID = PO.PARADA_ID "); - sqlSb.append(" AND CR.DESTINO_ID = PD.PARADA_ID "); - sqlSb.append(" AND PO.CIUDAD_ID = CO.CIUDAD_ID "); - sqlSb.append(" AND PD.CIUDAD_ID = CD.CIUDAD_ID "); - sqlSb.append(" AND RT.GRUPORUTA_ID = GR.GRUPORUTA_ID(+) "); - sqlSb.append(" AND TR.ORIGEN_ID = CR.ORIGEN_ID "); - sqlSb.append(" AND TR.DESTINO_ID = CR.DESTINO_ID "); - sqlSb.append(" AND BL.MOTIVOCANCELACION_ID IS NULL "); - sqlSb.append(" AND BL.INDSTATUSOPERACION = 'F' "); - sqlSb.append(" AND VT.ACTIVO = 1 "); - sqlSb.append(" AND CR.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA "); - sqlSb.append(" AND CR.FECCORRIDA BETWEEN TO_DATE(:DATA_INICIAL, 'DD/MM/YY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YY hh24:mi:ss') "); - sqlSb.append(" AND CR.ACTIVO = 1 "); - sqlSb.append(" GROUP BY RT.RUTA_ID, "); - sqlSb.append(" RT.NUMRUTA, "); - sqlSb.append(" RT.PREFIXO, "); - sqlSb.append(" CR.FECCORRIDA, "); - sqlSb.append(" RT.DESCRUTA, "); - sqlSb.append(" GR.DESCGRUPO, "); - sqlSb.append(" CO.ESTADO_ID, "); - sqlSb.append(" CD.ESTADO_ID, "); - sqlSb.append(" RT.INDSENTIDOIDA, "); - sqlSb.append(" CS.CVECLASE, "); - sqlSb.append(" CS.DESCCLASE, "); - sqlSb.append(" BL.BOLETO_ID, "); - sqlSb.append(" BL.preciopagado "); - sqlSb.append(" ) DADOS "); - sqlSb.append(" GROUP BY RUTA_ID, "); - sqlSb.append(" INDSENTIDOIDA, "); - sqlSb.append(" NUMRUTA, "); - sqlSb.append(" PREFIXO, "); - sqlSb.append(" FECCORRIDA, "); - sqlSb.append(" DESCRUTA, "); - sqlSb.append(" INTERESTADUAL, "); - sqlSb.append(" GRUPO_LINHA, "); - sqlSb.append(" EXTENSAO_KM, "); - sqlSb.append(" RECEITA_SEGURO, "); - sqlSb.append(" RECEITA_BAGAGEM, "); - sqlSb.append(" RECEITA_SEGURO_OUTROS, "); - sqlSb.append(" RECEITA_PEDAGIO, "); - sqlSb.append(" RECEITA_EMBARQUE, "); - sqlSb.append(" PASSAGEIROS, "); - sqlSb.append(" VIAGENS_EXTRA, "); - sqlSb.append(" VIAGENS, "); - sqlSb.append(" CVE_CLASE_SERVICIO, "); - sqlSb.append(" DESC_CLASE_SERVICIO "); - sqlSb.append(" ) TAB1 "); - sqlSb.append(" )TAB "); - //Obs.: Não deve será alterado ordenação pois impactará na lógica de agrupamento por ida/volta - sqlSb.append(" GROUP BY "); - sqlSb.append(" TAB.PREFIXO, "); - sqlSb.append(" TAB.DESCRUTA, "); - sqlSb.append(" TAB.RUTA_ID, "); - sqlSb.append(" TAB.NUMRUTA, "); - sqlSb.append(" TAB.INTERESTADUAL, "); - sqlSb.append(" TAB.GRUPO_LINHA, "); - sqlSb.append(" TAB.EXTENSAO_KM, "); - sqlSb.append(" TAB.CVE_CLASE_SERVICIO, "); - sqlSb.append(" TAB.DESC_CLASE_SERVICIO, "); - sqlSb.append(" TAB.INDSENTIDOIDA, "); - sqlSb.append(" TAB.ASSENTOS "); - sqlSb.append(" ) SUB "); - sqlSb.append(" WHERE (DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0) "); - sqlSb.append(" AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0 "); - sqlSb.append(" AND DECODE(NVL(SUB.KM_RODADO,0), 0, 1, NVL(SUB.KM_RODADO,0)) != 0 "); - sqlSb.append(" AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0 "); - sqlSb.append(" AND DECODE(NVL(SUB.VIAGENS_TOTAL,0), 0, 1, NVL(SUB.VIAGENS_TOTAL,0)) != 0 "); - sqlSb.append(" ORDER BY SUB.PREFIXO, "); - sqlSb.append(" SUB.INDSENTIDOIDA DESC "); - return sqlSb.toString(); + + sql.append(" AND cr.corrida_id = bl.corrida_id "); + sql.append(" AND cr.empresacorrida_id = :EMPRESA_ID "); + sql.append(" AND cr.origen_id = po.parada_id "); + sql.append(" AND cr.destino_id = pd.parada_id "); + sql.append(" AND po.ciudad_id = co.ciudad_id "); + sql.append(" AND pd.ciudad_id = cd.ciudad_id "); + sql.append(" AND rt.gruporuta_id = gr.gruporuta_id (+) "); + sql.append(" AND tr.origen_id = cr.origen_id "); + sql.append(" AND tr.destino_id = cr.destino_id "); + sql.append(" AND bl.motivocancelacion_id IS NULL "); + sql.append(" AND bl.indstatusoperacion = 'F' "); + sql.append(" AND vt.activo = 1 "); + sql.append(" AND cr.feccorrida BETWEEN vt.feciniciovigencia AND vt.fecfinvigencia "); + sql.append(" AND cr.feccorrida BETWEEN TO_DATE(:DATA_INICIAL, 'DD/MM/YY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, "); + sql.append(" 'DD/MM/YY hh24:mi:ss') "); + sql.append(" AND cr.activo = 1 "); + sql.append(" GROUP BY "); + sql.append(" rt.ruta_id, "); + sql.append(" rt.numruta, "); + sql.append(" rt.prefixo, "); + sql.append(" cr.feccorrida, "); + sql.append(" cr.corrida_id, "); + sql.append(" cr.tiposervicio_id, "); + sql.append(" rt.descruta, "); + sql.append(" gr.descgrupo, "); + sql.append(" co.estado_id, "); + sql.append(" cd.estado_id, "); + sql.append(" rt.indsentidoida, "); + sql.append(" cs.cveclase, "); + sql.append(" cs.descclase, "); + sql.append(" bl.boleto_id, "); + sql.append(" bl.preciopagado "); + sql.append(" ) sunnivel6 "); + sql.append(" GROUP BY "); + sql.append(" ruta_id, "); + sql.append(" indsentidoida, "); + sql.append(" numruta, "); + sql.append(" prefixo, "); + sql.append(" feccorrida, "); + sql.append(" corrida_id, "); + sql.append(" tiposervicio_id, "); + sql.append(" descruta, "); + sql.append(" interestadual, "); + sql.append(" grupo_linha, "); + sql.append(" extensao_km, "); + sql.append(" receita_seguro, "); + sql.append(" receita_bagagem, "); + sql.append(" receita_seguro_outros, "); + sql.append(" receita_pedagio, "); + sql.append(" receita_embarque, "); + sql.append(" passageiros, "); + sql.append(" cve_clase_servicio, "); + sql.append(" desc_clase_servicio "); + sql.append(" ) subnivel5 "); + sql.append(" ) subnivel4 "); + sql.append(" GROUP BY "); + sql.append(" subnivel4.prefixo, "); + sql.append(" subnivel4.descruta, "); + sql.append(" subnivel4.ruta_id, "); + sql.append(" subnivel4.numruta, "); + sql.append(" subnivel4.interestadual, "); + sql.append(" subnivel4.grupo_linha, "); + sql.append(" subnivel4.extensao_km, "); + sql.append(" subnivel4.cve_clase_servicio, "); + sql.append(" subnivel4.desc_clase_servicio, "); + sql.append(" subnivel4.indsentidoida, "); + sql.append(" subnivel4.assentos "); + sql.append(" ) subnivel3 "); + sql.append(" ORDER BY "); + sql.append(" subnivel3.prefixo, "); + sql.append(" subnivel3.indsentidoida DESC "); + sql.append(" ) subnivel2 "); + return sql.toString(); } @@ -418,8 +459,11 @@ public class RelatorioResumoLinhasAnaliticoSimplificadoSumarizado extends Relato relatorioBean.setRECEITA_BAGAGEM(relatorioBean.getRECEITA_BAGAGEM().add(rset.getBigDecimal("RECEITA_BAGAGEM"))); relatorioBean.setRECEITA_SEGURO_OUTROS(relatorioBean.getRECEITA_SEGURO_OUTROS().add(rset.getBigDecimal("RECEITA_SEGURO_OUTROS"))); relatorioBean.setRECEITA_TARIFA(relatorioBean.getRECEITA_TARIFA().add(rset.getBigDecimal("RECEITA_TARIFA"))); - relatorioBean.setRECEITA_TARIFA_SEGURO(rset.getBigDecimal("RECEITA_SEGURO") !=null ? - relatorioBean.getRECEITA_TARIFA_SEGURO().add(rset.getBigDecimal("RECEITA_SEGURO")) : rset.getBigDecimal("RECEITA_TARIFA")); + if(relatorioBean.getRECEITA_TARIFA_SEGURO() !=null) { + relatorioBean.setRECEITA_TARIFA_SEGURO(relatorioBean.getRECEITA_TARIFA_SEGURO().add(rset.getBigDecimal("RECEITA_TARIFA").add(rset.getBigDecimal("RECEITA_SEGURO")))); + }else { + relatorioBean.setRECEITA_TARIFA_SEGURO(relatorioBean.getRECEITA_TARIFA_SEGURO().add(rset.getBigDecimal("RECEITA_TARIFA"))); + } relatorioBean.setRECEITA_PEDAGIO(relatorioBean.getRECEITA_PEDAGIO().add(rset.getBigDecimal("RECEITA_PEDAGIO"))); relatorioBean.setRECEITA_EMBARQUE(relatorioBean.getRECEITA_EMBARQUE().add(rset.getBigDecimal("RECEITA_EMBARQUE"))); relatorioBean.setPASSAGEIROS(relatorioBean.getPASSAGEIROS().add(rset.getBigDecimal("PASSAGEIROS")));