fixes bug#AL-2361

master
Célio de Souza Ribeiro JR 2023-04-20 18:17:26 -03:00
parent 14b6fb6322
commit fd8bc077f9
2 changed files with 99 additions and 67 deletions

View File

@ -4,7 +4,7 @@
<modelVersion>4.0.0</modelVersion>
<groupId>br.com.rjconsultores</groupId>
<artifactId>ventaboletosadm</artifactId>
<version>1.0.100</version>
<version>1.0.101</version>
<packaging>war</packaging>
<properties>

View File

@ -160,72 +160,104 @@ public class RelatorioIndiceIRK extends Relatorio {
sb.append(" (SUM(passagens) + SUM(pedagio) + SUM(txembarque) + SUM(seguro)) - (indiceirkminimo * extensao * qtdCorrida) AS diferencareceita,");
sb.append(" prefixo");
sb.append(" FROM");
sb.append(" (SELECT cj.caja_id AS cajaId,");
sb.append(" cj.corrida_id AS servico,");
sb.append(" r.ruta_id AS rutaid,");
sb.append(" r.descruta AS descruta,");
sb.append(" r.indsentidoida AS sentido,");
sb.append(" nvl(e.indiceirk, 0) AS indiceirkminimo,");
sb.append(" nvl(gr.descgrupo, 'Nao Definido') AS gruporuta,");
sb.append(" to_char(co.fechorsalida, 'HH24:MI') AS hora,");
sb.append(" sum(tr.cantkmreal) AS extensao,");
sb.append(" cj.importeseguro AS seguro,");
sb.append(" cj.importetaxaembarque AS txembarque,");
sb.append(" cj.importepedagio AS pedagio,");
sb.append(" cj.preciopagado AS passagens,");
sb.append(" r.prefixo AS prefixo,");
sb.append(" (SELECT count(*)");
sb.append(" FROM");
sb.append(" (SELECT (cjj.feccorrida)");
sb.append(" FROM caja cjj");
sb.append(" WHERE cjj.activo = 1");
sb.append(" AND cjj.motivocancelacion_id IS NULL");
sb.append(" AND cjj.indstatusboleto = 'V'");
sb.append(" and cjj.feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YY hh24:mi:ss') ");
sb.append(rutaIds == null ||TODOS.equals(rutaIds) ? "" : " AND r.ruta_id IN ( " + rutaIds + " ) ");
sb.append(corridasIds == null || TODOS.equals(corridasIds) ? "" : " AND cj.corrida_id IN ( " + corridasIds + " ) ");
sb.append(grupoRutaId == null || TODOS.equals(grupoRutaId) ? "" : " AND R.GRUPORUTA_ID IN ( " + grupoRutaId + " ) ");
sb.append(" AND cjj.empresacorrida_id =:empresaId ");
sb.append(" AND cjj.corrida_id IN (cj.corrida_id)");
sb.append(" GROUP BY cjj.feccorrida))AS qtdCorrida");
sb.append(" FROM caja cj");
sb.append(" INNER JOIN ruta r ON (cj.ruta_id = r.ruta_id)");
sb.append(" LEFT JOIN grupo_ruta gr ON (r.gruporuta_id = gr.gruporuta_id)");
sb.append(" INNER JOIN ruta_combinacion rc ON (rc.ruta_id = cj.ruta_id");
sb.append(" AND rc.activo = 1)");
sb.append(" INNER JOIN corrida co ON (co.corrida_id = cj.corrida_id");
sb.append(" AND co.ruta_id = r.ruta_id");
sb.append(" AND co.activo = 1");
sb.append(" AND cj.feccorrida = co.feccorrida)");
sb.append(" INNER JOIN tramo tr ON (tr.tramo_id = rc.tramo_id");
sb.append(" AND tr.origen_id = co.origen_id");
sb.append(" AND tr.destino_id = co.destino_id)");
sb.append(" INNER JOIN marca m ON (cj.marca_id = m.marca_id");
sb.append(" AND m.empresa_id =:empresaId )");
sb.append(" INNER JOIN empresa e ON (e.empresa_id =:empresaId )");
sb.append(" INNER JOIN parada origen ON (origen.parada_id = tr.origen_id)");
sb.append(" INNER JOIN parada destino ON (destino.parada_id = tr.destino_id)");
sb.append(" WHERE cj.activo = 1");
sb.append(" AND cj.motivocancelacion_id IS NULL");
sb.append(" AND cj.indstatusboleto = 'V'");
sb.append(" and cj.feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YY hh24:mi:ss') ");
sb.append(rutaIds == null ||TODOS.equals(rutaIds) ? "" : " AND r.ruta_id IN ( " + rutaIds + " ) ");
sb.append(corridasIds == null || TODOS.equals(corridasIds) ? "" : " AND cj.corrida_id IN ( " + corridasIds + " ) ");
sb.append(grupoRutaId == null || TODOS.equals(grupoRutaId) ? "" : " AND R.GRUPORUTA_ID IN ( " + grupoRutaId + " ) ");
sb.append(" GROUP BY cj.caja_id,");
sb.append(" cj.corrida_id,");
sb.append(" r.ruta_id,");
sb.append(" r.descruta,");
sb.append(" r.indsentidoida,");
sb.append(" e.indiceirk,");
sb.append(" gr.descgrupo,");
sb.append(" co.fechorsalida,");
sb.append(" cj.importeseguro,");
sb.append(" cj.importetaxaembarque,");
sb.append(" cj.importepedagio,");
sb.append(" cj.preciopagado,");
sb.append(" r.prefixo");
sb.append(" ORDER BY r.descruta) dados_sem_agrupamento");
sb.append("( WITH corridas AS ( ");
sb.append(" SELECT ");
sb.append(" coi.fechorsalida AS feccorrida, ");
sb.append(" cjj.corrida_id ");
sb.append(" FROM ");
sb.append(" caja cjj ");
sb.append(" INNER JOIN ruta r ON ( cjj.ruta_id = r.ruta_id ) ");
sb.append(" INNER JOIN corrida coi ON ( coi.corrida_id = cjj.corrida_id ");
sb.append(" AND coi.ruta_id = r.ruta_id ");
sb.append(" AND coi.activo = 1 ");
sb.append(" AND cjj.feccorrida = coi.feccorrida ) ");
sb.append(" WHERE ");
sb.append(" cjj.activo = 1 ");
sb.append(" AND cjj.motivocancelacion_id IS NULL ");
sb.append(" AND cjj.indstatusboleto = 'V' ");
sb.append(" and cjj.feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YY hh24:mi:ss') ");
sb.append(rutaIds == null ||TODOS.equals(rutaIds) ? "" : " AND r.ruta_id IN ( " + rutaIds + " ) ");
sb.append(corridasIds == null || TODOS.equals(corridasIds) ? "" : " AND cjj.corrida_id IN ( " + corridasIds + " ) ");
sb.append(grupoRutaId == null || TODOS.equals(grupoRutaId) ? "" : " AND R.GRUPORUTA_ID IN ( " + grupoRutaId + " ) ");
sb.append(" AND cjj.empresacorrida_id =:empresaId ");
sb.append(" GROUP BY ");
sb.append(" coi.fechorsalida, ");
sb.append(" cjj.corrida_id ");
sb.append("), corridas_count AS ( ");
sb.append(" SELECT ");
sb.append(" to_char(feccorrida, 'HH24') AS hora, ");
sb.append(" corrida_id, ");
sb.append(" COUNT(*) AS quantidade ");
sb.append(" FROM ");
sb.append(" corridas ");
sb.append(" GROUP BY ");
sb.append(" to_char(feccorrida, 'HH24'), ");
sb.append(" corrida_id ");
sb.append(") ");
sb.append("SELECT ");
sb.append(" cj.caja_id AS cajaid, ");
sb.append(" cj.corrida_id AS servico, ");
sb.append(" r.ruta_id AS rutaid, ");
sb.append(" r.descruta AS descruta, ");
sb.append(" r.indsentidoida AS sentido, ");
sb.append(" nvl(e.indiceirk, 0) AS indiceirkminimo, ");
sb.append(" nvl(gr.descgrupo, 'Nao Definido') AS gruporuta, ");
sb.append(" SUM(tr.cantkmreal) AS extensao, ");
sb.append(" cj.importeseguro AS seguro, ");
sb.append(" cj.importetaxaembarque AS txembarque, ");
sb.append(" cj.importepedagio AS pedagio, ");
sb.append(" cj.preciopagado AS passagens, ");
sb.append(" r.prefixo AS prefixo, ");
sb.append(" cos.hora, ");
sb.append(" cos.quantidade AS qtdcorrida ");
sb.append("FROM ");
sb.append(" caja cj ");
sb.append(" INNER JOIN ruta r ON ( cj.ruta_id = r.ruta_id ) ");
sb.append(" LEFT JOIN grupo_ruta gr ON ( r.gruporuta_id = gr.gruporuta_id ) ");
sb.append(" INNER JOIN ruta_combinacion rc ON ( rc.ruta_id = cj.ruta_id ");
sb.append(" AND rc.activo = 1 ) ");
sb.append(" INNER JOIN corrida co ON ( co.corrida_id = cj.corrida_id ");
sb.append(" AND co.ruta_id = r.ruta_id ");
sb.append(" AND co.activo = 1 ");
sb.append(" AND cj.feccorrida = co.feccorrida ) ");
sb.append(" INNER JOIN tramo tr ON ( tr.tramo_id = rc.tramo_id ");
sb.append(" AND tr.origen_id = co.origen_id ");
sb.append(" AND tr.destino_id = co.destino_id ) ");
sb.append(" INNER JOIN marca m ON ( cj.marca_id = m.marca_id ");
sb.append(" AND m.empresa_id = :empresaId ) ");
sb.append(" INNER JOIN empresa e ON ( e.empresa_id = :empresaId ) ");
sb.append(" INNER JOIN parada origen ON ( origen.parada_id = tr.origen_id ) ");
sb.append(" INNER JOIN parada destino ON ( destino.parada_id = tr.destino_id ) ");
sb.append(" INNER JOIN corridas_count cos ON ( cos.corrida_id = co.corrida_id ");
sb.append(" AND hora = to_char(co.fechorsalida, 'HH24') ) ");
sb.append("WHERE ");
sb.append(" cj.activo = 1 ");
sb.append(" AND cj.motivocancelacion_id IS NULL ");
sb.append(" AND cj.indstatusboleto = 'V' ");
sb.append(" and cj.feccorrida BETWEEN TO_DATE(:DATA_INICIO, 'DD/MM/YY hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'DD/MM/YY hh24:mi:ss') ");
sb.append(rutaIds == null ||TODOS.equals(rutaIds) ? "" : " AND r.ruta_id IN ( " + rutaIds + " ) ");
sb.append(corridasIds == null || TODOS.equals(corridasIds) ? "" : " AND cj.corrida_id IN ( " + corridasIds + " ) ");
sb.append(grupoRutaId == null || TODOS.equals(grupoRutaId) ? "" : " AND R.GRUPORUTA_ID IN ( " + grupoRutaId + " ) ");
sb.append("GROUP BY ");
sb.append(" cj.caja_id, ");
sb.append(" cj.corrida_id, ");
sb.append(" r.ruta_id, ");
sb.append(" r.descruta, ");
sb.append(" r.indsentidoida, ");
sb.append(" nvl(e.indiceirk, 0), ");
sb.append(" nvl(gr.descgrupo, 'Nao Definido'), ");
sb.append(" cj.importeseguro, ");
sb.append(" cj.importetaxaembarque, ");
sb.append(" cj.importepedagio, ");
sb.append(" cj.preciopagado, ");
sb.append(" r.prefixo, ");
sb.append(" cos.hora, ");
sb.append(" cos.quantidade ");
sb.append("ORDER BY ");
sb.append(" r.descruta ");
sb.append(" ) dados_sem_agrupamento");
sb.append(" GROUP BY servico,");
sb.append(" rutaid,");
sb.append(" descruta,");