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
master
valdevir 2021-04-14 18:32:50 +00:00
parent 26ad356220
commit 23c53888d1
1 changed files with 275 additions and 231 deletions

View File

@ -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")));