Conforme solicitado pelo cliente, o campo Km Rodado foi ajustado. Pedir o cliente pra validar e apontar a divergencia de valores, se houver. Informando qual o valor seria o esperado.
o IRK é calculado da seguinte forma : Valor Gerado Através (Total/Km) onde Total é o somatório do valor das passagens do serviço incluído venda embarcada. e Km é a extensão do km rodado do serviço durante período pesquisado . Total: Total das Receita daquele horário Passagem + Pedágio + seguro + Taxa de Embarque KM: Quilometragem daquela linha (Cadastro Sequência de linha). IRK Mínimo: Valor estipulado pela empresa (definido na configuração de empresa) Receita mínima: Valor gerado através (IRK mínimo x KM da Linha) Diferença de Receitas: Valor Gerado Através (Total da Receita daquele horário - a Receita mínima) Total de Grupo IRK: Total de Grupo "Total" / Total de Grupo "KM" Total de Grupo Total: Somar toda Receita Total de Grupo Km: Somar todos Km Total de Grupo IRK Mínimo: Somente Repetir o Valor Total de Grupo Receita Mínima: Somar Toda Receita Total de Grupo Diferença de Receitas: Total de Grupo "Total" - Total de Grupo "Receita mínima" fixes bug#1743 qua: dev: git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@115598 d1611594-4594-4d17-8e1d-87c2c4800839master
parent
2de205cc46
commit
20d7f81c88
|
@ -12,6 +12,7 @@ import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.Comparator;
|
import java.util.Comparator;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
|
import java.util.HashMap;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
|
@ -53,7 +54,7 @@ public class RelatorioIndiceIRK extends Relatorio {
|
||||||
String rutaIds = parametros.get("LINHA_FILTRO") != null ? (parametros.get("LINHA_FILTRO").toString()) : null;
|
String rutaIds = parametros.get("LINHA_FILTRO") != null ? (parametros.get("LINHA_FILTRO").toString()) : null;
|
||||||
String corridasIds = parametros.get("SERVICO_FILTRO") != null ? (parametros.get("SERVICO_FILTRO").toString()) : null;
|
String corridasIds = parametros.get("SERVICO_FILTRO") != null ? (parametros.get("SERVICO_FILTRO").toString()) : null;
|
||||||
|
|
||||||
// Executa query relatório e preenche objeto relatório
|
// Executa query relat<EFBFBD>rio e preenche objeto relat<61>rio
|
||||||
lsDadosRelatorio= preencheAgrupaRelatorioBean(preparaExecutaQuery(parametros, conexao, rutaId, empresa, grupoRutaId, rutaIds, corridasIds), parametros);
|
lsDadosRelatorio= preencheAgrupaRelatorioBean(preparaExecutaQuery(parametros, conexao, rutaId, empresa, grupoRutaId, rutaIds, corridasIds), parametros);
|
||||||
|
|
||||||
// Ordena pela Desc Linha
|
// Ordena pela Desc Linha
|
||||||
|
@ -67,7 +68,7 @@ public class RelatorioIndiceIRK extends Relatorio {
|
||||||
parametros.put("RELATORIOLIST", lsDadosRelatorio);
|
parametros.put("RELATORIOLIST", lsDadosRelatorio);
|
||||||
setLsDadosRelatorio(lsDadosRelatorio);
|
setLsDadosRelatorio(lsDadosRelatorio);
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
log.error("Erro ao executar relatório", e);
|
log.error("Erro ao executar relat<EFBFBD>rio", e);
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -120,11 +121,14 @@ public class RelatorioIndiceIRK extends Relatorio {
|
||||||
|
|
||||||
StringBuilder sb = new StringBuilder();
|
StringBuilder sb = new StringBuilder();
|
||||||
|
|
||||||
sb.append("SELECT sum(extensao) as extensao,");
|
sb.append("SELECT sum(extensao) AS extensao,");
|
||||||
sb.append(" servico,");
|
sb.append(" servico,");
|
||||||
sb.append(" rutaid,");
|
sb.append(" rutaid,");
|
||||||
sb.append(" descruta,");
|
sb.append(" descruta,");
|
||||||
sb.append(" CASE WHEN sentido = 1 THEN 'Ida' WHEN sentido = 0 THEN 'Volta' END AS sentido, ");
|
sb.append(" CASE");
|
||||||
|
sb.append(" WHEN sentido = 1 THEN 'Ida'");
|
||||||
|
sb.append(" WHEN sentido = 0 THEN 'Volta'");
|
||||||
|
sb.append(" END AS sentido,");
|
||||||
sb.append(" gruporuta,");
|
sb.append(" gruporuta,");
|
||||||
sb.append(" indiceirkminimo,");
|
sb.append(" indiceirkminimo,");
|
||||||
sb.append(" hora,");
|
sb.append(" hora,");
|
||||||
|
@ -132,10 +136,10 @@ public class RelatorioIndiceIRK extends Relatorio {
|
||||||
sb.append(" SUM(txembarque) AS txembarque,");
|
sb.append(" SUM(txembarque) AS txembarque,");
|
||||||
sb.append(" SUM(pedagio) AS pedagio,");
|
sb.append(" SUM(pedagio) AS pedagio,");
|
||||||
sb.append(" SUM(passagens) AS passagens,");
|
sb.append(" SUM(passagens) AS passagens,");
|
||||||
sb.append(" SUM(totalhorario) as totalhorario,");
|
sb.append(" SUM(totalhorario) AS totalhorario,");
|
||||||
sb.append(" sum(irk) AS irk ,");
|
sb.append(" sum(irk) AS irk,");
|
||||||
sb.append(" sum(receitaminima) AS receitaminima,");
|
sb.append(" sum(receitaminima) AS receitaminima,");
|
||||||
sb.append(" sum(diferencareceita) AS diferencareceita, ");
|
sb.append(" sum(diferencareceita) AS diferencareceita,");
|
||||||
sb.append(" prefixo ");
|
sb.append(" prefixo ");
|
||||||
sb.append("FROM");
|
sb.append("FROM");
|
||||||
sb.append(" (SELECT DISTINCT servico,");
|
sb.append(" (SELECT DISTINCT servico,");
|
||||||
|
@ -145,15 +149,15 @@ public class RelatorioIndiceIRK extends Relatorio {
|
||||||
sb.append(" gruporuta,");
|
sb.append(" gruporuta,");
|
||||||
sb.append(" indiceirkminimo,");
|
sb.append(" indiceirkminimo,");
|
||||||
sb.append(" hora,");
|
sb.append(" hora,");
|
||||||
sb.append(" (extensao) AS extensao,");
|
sb.append(" (extensao * qtdCorrida) AS extensao,");
|
||||||
sb.append(" SUM(seguro) AS seguro,");
|
sb.append(" SUM(seguro) AS seguro,");
|
||||||
sb.append(" SUM(txembarque) AS txembarque,");
|
sb.append(" SUM(txembarque) AS txembarque,");
|
||||||
sb.append(" SUM(pedagio) AS pedagio,");
|
sb.append(" SUM(pedagio) AS pedagio,");
|
||||||
sb.append(" SUM(passagens) AS passagens,");
|
sb.append(" SUM(passagens) AS passagens,");
|
||||||
sb.append(" (SUM(passagens) + SUM(pedagio) + SUM(txembarque) + SUM(seguro)) AS totalhorario,");
|
sb.append(" (SUM(passagens) + SUM(pedagio) + SUM(txembarque) + SUM(seguro)) AS totalhorario,");
|
||||||
sb.append(" round(((SUM(passagens) + SUM(pedagio) + SUM(txembarque) + SUM(seguro)) / extensao), 2) AS irk,");
|
sb.append(" round(((SUM(passagens) + SUM(pedagio) + SUM(txembarque) + SUM(seguro)) / extensao ), 2) AS irk,");
|
||||||
sb.append(" indiceirkminimo * extensao AS receitaminima,");
|
sb.append(" indiceirkminimo * extensao * qtdCorrida AS receitaminima,");
|
||||||
sb.append(" (SUM(passagens) + SUM(pedagio) + SUM(txembarque) + SUM(seguro)) - (indiceirkminimo * extensao) AS diferencareceita,");
|
sb.append(" (SUM(passagens) + SUM(pedagio) + SUM(txembarque) + SUM(seguro)) - (indiceirkminimo * extensao * qtdCorrida) AS diferencareceita,");
|
||||||
sb.append(" prefixo");
|
sb.append(" prefixo");
|
||||||
sb.append(" FROM");
|
sb.append(" FROM");
|
||||||
sb.append(" (SELECT cj.caja_id AS cajaId,");
|
sb.append(" (SELECT cj.caja_id AS cajaId,");
|
||||||
|
@ -162,14 +166,28 @@ public class RelatorioIndiceIRK extends Relatorio {
|
||||||
sb.append(" r.descruta AS descruta,");
|
sb.append(" r.descruta AS descruta,");
|
||||||
sb.append(" r.indsentidoida AS sentido,");
|
sb.append(" r.indsentidoida AS sentido,");
|
||||||
sb.append(" nvl(e.indiceirk, 0) AS indiceirkminimo,");
|
sb.append(" nvl(e.indiceirk, 0) AS indiceirkminimo,");
|
||||||
sb.append(" nvl(gr.descgrupo, 'Não Definido') AS gruporuta,");
|
sb.append(" nvl(gr.descgrupo, 'Nao Definido') AS gruporuta,");
|
||||||
sb.append(" to_char(co.fechorsalida, 'HH24:MI') AS hora,");
|
sb.append(" to_char(co.fechorsalida, 'HH24:MI') AS hora,");
|
||||||
sb.append(" sum(tr.cantkmreal) AS extensao,");
|
sb.append(" sum(tr.cantkmreal) AS extensao,");
|
||||||
sb.append(" cj.importeseguro AS seguro,");
|
sb.append(" cj.importeseguro AS seguro,");
|
||||||
sb.append(" cj.importetaxaembarque AS txembarque,");
|
sb.append(" cj.importetaxaembarque AS txembarque,");
|
||||||
sb.append(" cj.importepedagio AS pedagio,");
|
sb.append(" cj.importepedagio AS pedagio,");
|
||||||
sb.append(" cj.preciopagado AS passagens,");
|
sb.append(" cj.preciopagado AS passagens,");
|
||||||
sb.append(" r.prefixo AS prefixo");
|
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(" FROM caja cj");
|
||||||
sb.append(" INNER JOIN ruta r ON (cj.ruta_id = r.ruta_id)");
|
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(" LEFT JOIN grupo_ruta gr ON (r.gruporuta_id = gr.gruporuta_id)");
|
||||||
|
@ -188,7 +206,8 @@ public class RelatorioIndiceIRK extends Relatorio {
|
||||||
sb.append(" INNER JOIN parada origen ON (origen.parada_id = tr.origen_id)");
|
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 parada destino ON (destino.parada_id = tr.destino_id)");
|
||||||
sb.append(" WHERE cj.activo = 1");
|
sb.append(" WHERE cj.activo = 1");
|
||||||
sb.append(" AND cj.motivocancelacion_id IS NULL and cj.indstatusboleto = 'V' ");
|
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(" 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(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(corridasIds == null || TODOS.equals(corridasIds) ? "" : " AND cj.corrida_id IN ( " + corridasIds + " ) ");
|
||||||
|
@ -200,7 +219,7 @@ public class RelatorioIndiceIRK extends Relatorio {
|
||||||
sb.append(" r.indsentidoida,");
|
sb.append(" r.indsentidoida,");
|
||||||
sb.append(" e.indiceirk,");
|
sb.append(" e.indiceirk,");
|
||||||
sb.append(" gr.descgrupo,");
|
sb.append(" gr.descgrupo,");
|
||||||
sb.append(" co.fechorsalida, ");
|
sb.append(" co.fechorsalida,");
|
||||||
sb.append(" cj.importeseguro,");
|
sb.append(" cj.importeseguro,");
|
||||||
sb.append(" cj.importetaxaembarque,");
|
sb.append(" cj.importetaxaembarque,");
|
||||||
sb.append(" cj.importepedagio,");
|
sb.append(" cj.importepedagio,");
|
||||||
|
@ -215,8 +234,10 @@ public class RelatorioIndiceIRK extends Relatorio {
|
||||||
sb.append(" indiceirkminimo,");
|
sb.append(" indiceirkminimo,");
|
||||||
sb.append(" hora,");
|
sb.append(" hora,");
|
||||||
sb.append(" extensao,");
|
sb.append(" extensao,");
|
||||||
sb.append(" prefixo");
|
sb.append(" prefixo,");
|
||||||
sb.append(" ORDER BY descruta, hora )tabela ");
|
sb.append(" qtdCorrida");
|
||||||
|
sb.append(" ORDER BY descruta, ");
|
||||||
|
sb.append(" hora)tabela ");
|
||||||
sb.append("GROUP BY servico,");
|
sb.append("GROUP BY servico,");
|
||||||
sb.append(" rutaid,");
|
sb.append(" rutaid,");
|
||||||
sb.append(" descruta,");
|
sb.append(" descruta,");
|
||||||
|
@ -224,8 +245,11 @@ public class RelatorioIndiceIRK extends Relatorio {
|
||||||
sb.append(" gruporuta,");
|
sb.append(" gruporuta,");
|
||||||
sb.append(" indiceirkminimo,");
|
sb.append(" indiceirkminimo,");
|
||||||
sb.append(" hora,");
|
sb.append(" hora,");
|
||||||
sb.append(" prefixo");
|
sb.append(" prefixo ");
|
||||||
sb.append(" ORDER BY descruta, sentido, hora ");
|
sb.append("ORDER BY descruta,");
|
||||||
|
sb.append(" sentido,");
|
||||||
|
sb.append(" hora");
|
||||||
|
|
||||||
|
|
||||||
return sb.toString();
|
return sb.toString();
|
||||||
|
|
||||||
|
@ -237,7 +261,7 @@ public class RelatorioIndiceIRK extends Relatorio {
|
||||||
Date dataInicio = (Date) parametros.get("DATA_INICIO");
|
Date dataInicio = (Date) parametros.get("DATA_INICIO");
|
||||||
Date dataFinal = (Date) parametros.get("DATA_FINAL");
|
Date dataFinal = (Date) parametros.get("DATA_FINAL");
|
||||||
|
|
||||||
int diferenciaDeDiasFiltroData = calcularQuantidadeDeDiasFiltroData(dataInicio, dataFinal);
|
|
||||||
|
|
||||||
while (rset.next()) {
|
while (rset.next()) {
|
||||||
RelatorioIndiceIRKBean relatorioIndiceIRK = new RelatorioIndiceIRKBean();
|
RelatorioIndiceIRKBean relatorioIndiceIRK = new RelatorioIndiceIRKBean();
|
||||||
|
@ -249,7 +273,7 @@ public class RelatorioIndiceIRK extends Relatorio {
|
||||||
relatorioIndiceIRK.setIrkMinimo((BigDecimal) rset.getObject("indiceirkminimo"));
|
relatorioIndiceIRK.setIrkMinimo((BigDecimal) rset.getObject("indiceirkminimo"));
|
||||||
relatorioIndiceIRK.setHora((String) rset.getObject("hora"));
|
relatorioIndiceIRK.setHora((String) rset.getObject("hora"));
|
||||||
relatorioIndiceIRK.setExtensao((BigDecimal) rset.getObject("extensao"));
|
relatorioIndiceIRK.setExtensao((BigDecimal) rset.getObject("extensao"));
|
||||||
relatorioIndiceIRK.setKmRodado(((BigDecimal) rset.getObject("extensao")).multiply(new BigDecimal(diferenciaDeDiasFiltroData)));
|
relatorioIndiceIRK.setKmRodado(((BigDecimal) rset.getObject("extensao")));
|
||||||
relatorioIndiceIRK.setSeguro((BigDecimal) rset.getObject("seguro"));
|
relatorioIndiceIRK.setSeguro((BigDecimal) rset.getObject("seguro"));
|
||||||
relatorioIndiceIRK.setTxEmbarque((BigDecimal) rset.getObject("txembarque"));
|
relatorioIndiceIRK.setTxEmbarque((BigDecimal) rset.getObject("txembarque"));
|
||||||
relatorioIndiceIRK.setPedagio((BigDecimal) rset.getObject("pedagio"));
|
relatorioIndiceIRK.setPedagio((BigDecimal) rset.getObject("pedagio"));
|
||||||
|
@ -263,16 +287,21 @@ public class RelatorioIndiceIRK extends Relatorio {
|
||||||
|
|
||||||
lsDadosRelatorio.add(relatorioIndiceIRK);
|
lsDadosRelatorio.add(relatorioIndiceIRK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
calcularQuantidadeDeDiasFiltroData(lsDadosRelatorio);
|
||||||
return lsDadosRelatorio;
|
return lsDadosRelatorio;
|
||||||
}
|
}
|
||||||
|
|
||||||
private int calcularQuantidadeDeDiasFiltroData(Date dataInicial, Date dataFInal) {
|
private void calcularQuantidadeDeDiasFiltroData(List<RelatorioIndiceIRKBean> lsDadosRelatorio) {
|
||||||
|
|
||||||
if (dataInicial != null && dataFInal != null) {
|
Map<Date, Integer> qtdDias = new HashMap<Date, Integer>();
|
||||||
int diferencaDias = DateUtil.diferencaEntreDatasEmdias(dataInicial, dataFInal)+1;
|
|
||||||
return diferencaDias;
|
for (RelatorioIndiceIRKBean relatorioIndiceIRKBean : lsDadosRelatorio) {
|
||||||
|
// if(qtdDias.get(relatorioIndiceIRKBean.gets)) {
|
||||||
|
//
|
||||||
|
// }
|
||||||
}
|
}
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue