fixes bug#23471

dev: Wallace
qua: 

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@110550 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2022-01-26 17:50:50 +00:00
parent a0f9fd8af2
commit d49f1da638
1 changed files with 13 additions and 37 deletions

View File

@ -166,16 +166,13 @@ public class RelatorioLinhasHorario extends Relatorio {
horarioBean.setDestino((String) rset.getObject("DESTINO"));
horarioBean.setSomaExtensaoTrecho((BigDecimal) rset.getObject("EXTENSAO_TRECHO"));
horarioBean.setPaxKmTransportado((BigDecimal) rset.getObject("KM_REAL"));
horarioBean.setKmRodado((BigDecimal) rset.getObject("KM_RODADO"));
horarioBean = trecho(horarioBean);
horarioBean = calcTotal(horarioBean);
horarioBean = calcMediaReceitaTotal(horarioBean);
horarioBean = calcTotalViagem(horarioBean);
// horarioBean = calcKmRodado(horarioBean);
horarioBean = calcKmRodado(horarioBean);
horarioBean = calcEquivalente(horarioBean);
horarioBean = calcMpa(horarioBean);
horarioBean = calcMpe(horarioBean);
@ -195,8 +192,6 @@ public class RelatorioLinhasHorario extends Relatorio {
totalOrdinario = totalOrdinario.add(horarioBean.getOrd() != null ? horarioBean.getOrd() : BigDecimal.ZERO);
totalExtra = totalExtra.add(horarioBean.getExtra() != null ? horarioBean.getExtra() : BigDecimal.ZERO);
totalViagem = totalViagem.add(horarioBean.getTotalViagem() != null ? horarioBean.getTotalViagem() : BigDecimal.ZERO);
/**
//No double deck corrida2_id estrá preenchido para os dois pisos (nas duas corridas).
//Implementado esta lógica para não somar os dois KMs. Deverá somar somente um dos pisos
if(Boolean.TRUE.equals(horarioBean.getIsDoubleDeck())) {
@ -208,11 +203,6 @@ public class RelatorioLinhasHorario extends Relatorio {
}else {
totalKmRodado = totalKmRodado.add(horarioBean.getKmRodado() != null ? horarioBean.getKmRodado() : BigDecimal.ZERO);
}
**/
// calculo do km_rodado feito direto via banco de dados
totalKmRodado = totalKmRodado.add(horarioBean.getKmRodado() != null ? horarioBean.getKmRodado() : BigDecimal.ZERO);
listaCorridas.add(horarioBean.getServico().longValue());
totalAbsoluto = totalAbsoluto.add(horarioBean.getAbsol() != null ? horarioBean.getAbsol() : BigDecimal.ZERO);
totalEquivalente = totalEquivalente.add(horarioBean.getEquivalente() != null ? horarioBean.getEquivalente() : BigDecimal.ZERO);
@ -407,8 +397,7 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" TIPO_LINHA, ");
sql.append(" ISDOUBLEDECK, ");
sql.append(" ABSOL, ");
sql.append(" COALESCE(SUM(KM_REAL), 0) AS KM_REAL, ");
sql.append(" KM_RODADO ");
sql.append(" COALESCE(SUM(KM_REAL), 0) AS KM_REAL ");
sql.append(" FROM ");
sql.append(" (SELECT ");
sql.append(" R.RUTA_ID, ");
@ -433,11 +422,7 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" TB2.ORD, ");
sql.append(" TB2.EXTRA, ");
sql.append(" CASE WHEN CO.ESTADO_ID <> CD.ESTADO_ID THEN 'INTERESTADUAL' ELSE 'INTERMUNICIPAL' END TIPO_LINHA, ");
// sql.append(" CASE WHEN C.CORRIDA2_ID IS NULL THEN 0 ELSE 1 END ISDOUBLEDECK, ");
sql.append(" TB2.ISDOUBLEDECK, ");
sql.append("CASE WHEN TB2.ISDOUBLEDECK = 0 OR (C.CORRIDA2_ID IS NULL OR C.CORRIDA_ID > C.CORRIDA2_ID) THEN TB2.KM_RODADO_GERAL ELSE 0 END KM_RODADO, ");
sql.append(" CASE WHEN C.CORRIDA2_ID IS NULL THEN 0 ELSE 1 END ISDOUBLEDECK, ");
sql.append(" ABSOL, ");
sql.append(" CJ.KM_REAL AS KM_REAL ");
sql.append(" FROM CORRIDA C ");
@ -469,15 +454,7 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI') AS HORASALIDA, ");
sql.append(" COUNT(CASE WHEN C.TIPOSERVICIO_ID = 1 THEN 1 ELSE NULL END) AS ORD, ");
sql.append(" COUNT(CASE WHEN C.TIPOSERVICIO_ID = 2 THEN 1 ELSE NULL END) AS EXTRA, ");
sql.append(" NVL(TF.PRECIO, 0) AS TARIFA, ");
sql.append(" MAX(CASE WHEN EXISTS (SELECT COUNT(1) AS VENDEU, C.CORRIDA2_ID ");
sql.append(" FROM CORRIDA C_AUX ");
sql.append(" JOIN CAJA BO_AUX ON BO_AUX.CORRIDA_ID = C.CORRIDA2_ID AND BO_AUX.FECCORRIDA = C.FECCORRIDA ");
sql.append(" WHERE C_AUX.CORRIDA_ID = C.CORRIDA2_ID ");
sql.append(" AND C_AUX.FECCORRIDA = C.FECCORRIDA ");
sql.append(" AND BO_AUX.CAJA_ID IS NOT NULL AND ROWNUM = 1 ");
sql.append(" GROUP BY C.CORRIDA2_ID) THEN 1 ELSE 0 END ) AS ISDOUBLEDECK, ");
sql.append(" (COUNT(C.TIPOSERVICIO_ID) * TR.CANTKMREAL) KM_RODADO_GERAL ");
sql.append(" NVL(TF.PRECIO, 0) AS TARIFA ");
sql.append(" FROM CORRIDA C ");
sql.append(" INNER JOIN PARADA ORIGEM ON C.Origen_Id = ORIGEM.PARADA_ID ");
sql.append(" INNER JOIN PARADA DESTINO ON C.DESTINO_ID = DESTINO.PARADA_ID ");
@ -494,10 +471,9 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" AND C.FECCORRIDA BETWEEN TO_DATE(:DATA_INICIO, 'dd/mm/yyyy hh24:mi:ss') AND TO_DATE(:DATA_FINAL, 'dd/mm/yyyy hh24:mi:ss') ");
sql.append(" GROUP BY C.CORRIDA_ID, C.CORRIDA2_ID, ");
sql.append(" C.ROLOPERATIVO_ID, ");
sql.append(" C.RUTA_ID, ");
sql.append(" DESTINO.CVEPARADA, ");
sql.append(" c.ruta_id, ");
sql.append(" Destino.Cveparada, ");
sql.append(" ORIGEM.CVEPARADA, ");
sql.append(" TR.CANTKMREAL, ");
sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI'), ");
sql.append(" NVL(TF.PRECIO, 0) ");
sql.append(" ) TB2 ON (TB2.CORRIDA_ID = C.CORRIDA_ID AND (TB2.CORRIDA2_ID=C.CORRIDA2_ID OR (TB2.CORRIDA2_ID IS NULL AND C.CORRIDA2_ID IS NULL)) and tb2.c_ruta_id = c.ruta_id ");
@ -647,9 +623,9 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" NVL(TF.PRECIO, 0), DA.CANTASIENTOS, CS.DESCCLASE, TR.CANTKMREAL, TB2.ORD, TB2.EXTRA, ABSOL, ");
sql.append(" CO.ESTADO_ID, CD.ESTADO_ID, ORIGEM.CVEPARADA, DESTINO.CVEPARADA, CJ.PRECIOPAGADO, ");
sql.append(" CJ.IMPORTESEGURO, CJ.IMPORTETAXAEMBARQUE, CJ.IMPORTEPEDAGIO, ");
sql.append(" CJ.EQUIVALENTE, CJ.KM_REAL , CJ.BOLETO_ID, C.CORRIDA2_ID, TB2.ISDOUBLEDECK, TB2.KM_RODADO_GERAL ) ");
sql.append(" CJ.EQUIVALENTE, CJ.KM_REAL , CJ.BOLETO_ID, C.CORRIDA2_ID ) ");
sql.append("GROUP BY GRUPO_RUTA, HORA, SERVICO, SERVICO2, SENTIDO, LOT, CLA, TARIFA, ORIGEM, DESTINO, ");
sql.append(" EXTENSAO, BAGAGENS, ORD, EXTRA, TIPO_LINHA, ISDOUBLEDECK, ABSOL, KM_RODADO ");
sql.append(" EXTENSAO, BAGAGENS, ORD, EXTRA, TIPO_LINHA, ISDOUBLEDECK, ABSOL ");
sql.append("ORDER BY TIPO_LINHA, GRUPO_RUTA, SERVICO, SERVICO2, ORIGEM, DESTINO ");
log.info(sql.toString());
return sql.toString();