fixes bug#23471

dev: Wallace
qua: 

git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@110539 d1611594-4594-4d17-8e1d-87c2c4800839
master
julio 2022-01-26 03:21:38 +00:00
parent b4a248c972
commit a0f9fd8af2
2 changed files with 39 additions and 15 deletions

View File

@ -166,13 +166,16 @@ public class RelatorioLinhasHorario extends Relatorio {
horarioBean.setDestino((String) rset.getObject("DESTINO")); horarioBean.setDestino((String) rset.getObject("DESTINO"));
horarioBean.setSomaExtensaoTrecho((BigDecimal) rset.getObject("EXTENSAO_TRECHO")); horarioBean.setSomaExtensaoTrecho((BigDecimal) rset.getObject("EXTENSAO_TRECHO"));
horarioBean.setPaxKmTransportado((BigDecimal) rset.getObject("KM_REAL")); horarioBean.setPaxKmTransportado((BigDecimal) rset.getObject("KM_REAL"));
horarioBean.setKmRodado((BigDecimal) rset.getObject("KM_RODADO"));
horarioBean = trecho(horarioBean); horarioBean = trecho(horarioBean);
horarioBean = calcTotal(horarioBean); horarioBean = calcTotal(horarioBean);
horarioBean = calcMediaReceitaTotal(horarioBean); horarioBean = calcMediaReceitaTotal(horarioBean);
horarioBean = calcTotalViagem(horarioBean); horarioBean = calcTotalViagem(horarioBean);
horarioBean = calcKmRodado(horarioBean); // horarioBean = calcKmRodado(horarioBean);
horarioBean = calcEquivalente(horarioBean); horarioBean = calcEquivalente(horarioBean);
horarioBean = calcMpa(horarioBean); horarioBean = calcMpa(horarioBean);
horarioBean = calcMpe(horarioBean); horarioBean = calcMpe(horarioBean);
@ -192,17 +195,24 @@ public class RelatorioLinhasHorario extends Relatorio {
totalOrdinario = totalOrdinario.add(horarioBean.getOrd() != null ? horarioBean.getOrd() : BigDecimal.ZERO); totalOrdinario = totalOrdinario.add(horarioBean.getOrd() != null ? horarioBean.getOrd() : BigDecimal.ZERO);
totalExtra = totalExtra.add(horarioBean.getExtra() != null ? horarioBean.getExtra() : BigDecimal.ZERO); totalExtra = totalExtra.add(horarioBean.getExtra() != null ? horarioBean.getExtra() : BigDecimal.ZERO);
totalViagem = totalViagem.add(horarioBean.getTotalViagem() != null ? horarioBean.getTotalViagem() : 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). //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 //Implementado esta lógica para não somar os dois KMs. Deverá somar somente um dos pisos
if(Boolean.TRUE.equals(horarioBean.getIsDoubleDeck())) { if (Boolean.TRUE.equals(horarioBean.getIsDoubleDeck())) {
if(horarioBean.getServico2()!=null && !listaCorridas.contains(horarioBean.getServico2().longValue())) { if (horarioBean.getServico2() != null && !listaCorridas.contains(horarioBean.getServico2().longValue())) {
//Um dos pisos não será marcadado como double deck para não realizar o agrupamento dentro do relatório. // Um dos pisos não será marcadado como double deck para não realizar o agrupamento dentro do relatório.
horarioBean.setIsDoubleDeck(Boolean.FALSE); horarioBean.setIsDoubleDeck(Boolean.FALSE);
totalKmRodado = totalKmRodado.add(horarioBean.getKmRodado() != null ? horarioBean.getKmRodado() : BigDecimal.ZERO); totalKmRodado = totalKmRodado.add(horarioBean.getKmRodado() != null ? horarioBean.getKmRodado() : BigDecimal.ZERO);
} }
}else { } else {
totalKmRodado = totalKmRodado.add(horarioBean.getKmRodado() != null ? horarioBean.getKmRodado() : BigDecimal.ZERO); 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()); listaCorridas.add(horarioBean.getServico().longValue());
totalAbsoluto = totalAbsoluto.add(horarioBean.getAbsol() != null ? horarioBean.getAbsol() : BigDecimal.ZERO); totalAbsoluto = totalAbsoluto.add(horarioBean.getAbsol() != null ? horarioBean.getAbsol() : BigDecimal.ZERO);
totalEquivalente = totalEquivalente.add(horarioBean.getEquivalente() != null ? horarioBean.getEquivalente() : BigDecimal.ZERO); totalEquivalente = totalEquivalente.add(horarioBean.getEquivalente() != null ? horarioBean.getEquivalente() : BigDecimal.ZERO);
@ -397,7 +407,8 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" TIPO_LINHA, "); sql.append(" TIPO_LINHA, ");
sql.append(" ISDOUBLEDECK, "); sql.append(" ISDOUBLEDECK, ");
sql.append(" ABSOL, "); sql.append(" ABSOL, ");
sql.append(" COALESCE(SUM(KM_REAL), 0) AS KM_REAL "); sql.append(" COALESCE(SUM(KM_REAL), 0) AS KM_REAL, ");
sql.append(" KM_RODADO ");
sql.append(" FROM "); sql.append(" FROM ");
sql.append(" (SELECT "); sql.append(" (SELECT ");
sql.append(" R.RUTA_ID, "); sql.append(" R.RUTA_ID, ");
@ -422,7 +433,11 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" TB2.ORD, "); sql.append(" TB2.ORD, ");
sql.append(" TB2.EXTRA, "); 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 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(" 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(" ABSOL, "); sql.append(" ABSOL, ");
sql.append(" CJ.KM_REAL AS KM_REAL "); sql.append(" CJ.KM_REAL AS KM_REAL ");
sql.append(" FROM CORRIDA C "); sql.append(" FROM CORRIDA C ");
@ -454,7 +469,15 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI') AS HORASALIDA, "); 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 = 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(" COUNT(CASE WHEN C.TIPOSERVICIO_ID = 2 THEN 1 ELSE NULL END) AS EXTRA, ");
sql.append(" NVL(TF.PRECIO, 0) AS TARIFA "); 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(" FROM CORRIDA C "); sql.append(" FROM CORRIDA C ");
sql.append(" INNER JOIN PARADA ORIGEM ON C.Origen_Id = ORIGEM.PARADA_ID "); 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 "); sql.append(" INNER JOIN PARADA DESTINO ON C.DESTINO_ID = DESTINO.PARADA_ID ");
@ -471,9 +494,10 @@ 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(" 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(" GROUP BY C.CORRIDA_ID, C.CORRIDA2_ID, ");
sql.append(" C.ROLOPERATIVO_ID, "); sql.append(" C.ROLOPERATIVO_ID, ");
sql.append(" c.ruta_id, "); sql.append(" C.RUTA_ID, ");
sql.append(" Destino.Cveparada, "); sql.append(" DESTINO.CVEPARADA, ");
sql.append(" ORIGEM.CVEPARADA, "); sql.append(" ORIGEM.CVEPARADA, ");
sql.append(" TR.CANTKMREAL, ");
sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI'), "); sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI'), ");
sql.append(" NVL(TF.PRECIO, 0) "); 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 "); 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 ");
@ -507,7 +531,7 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" INNER JOIN VIGENCIA_TARIFA VT ON (VT.VIGENCIATARIFA_ID = TF.VIGENCIATARIFA_ID AND C.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA ) "); sql.append(" INNER JOIN VIGENCIA_TARIFA VT ON (VT.VIGENCIATARIFA_ID = TF.VIGENCIATARIFA_ID AND C.FECCORRIDA BETWEEN VT.FECINICIOVIGENCIA AND VT.FECFINVIGENCIA ) ");
sql.append(" WHERE C.ACTIVO = 1 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(" WHERE C.ACTIVO <> 0 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') ");
if (lsNumServico.size() > 0) { if (lsNumServico.size() > 0) {
for (Corrida corrida : lsNumServico) { for (Corrida corrida : lsNumServico) {
@ -563,7 +587,7 @@ public class RelatorioLinhasHorario extends Relatorio {
sql.append(" WHERE CO.ACTIVO = 1 "); sql.append(" WHERE CO.ACTIVO <> 0 ");
sql.append(" AND RC.ACTIVO = 1"); sql.append(" AND RC.ACTIVO = 1");
sql.append(" AND T.ACTIVO = 1"); sql.append(" AND T.ACTIVO = 1");
sql.append(" AND BO.INDSTATUSBOLETO != 'S' AND BO.MOTIVOCANCELACION_ID IS NULL "); sql.append(" AND BO.INDSTATUSBOLETO != 'S' AND BO.MOTIVOCANCELACION_ID IS NULL ");
@ -623,9 +647,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(" 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(" CO.ESTADO_ID, CD.ESTADO_ID, ORIGEM.CVEPARADA, DESTINO.CVEPARADA, CJ.PRECIOPAGADO, ");
sql.append(" CJ.IMPORTESEGURO, CJ.IMPORTETAXAEMBARQUE, CJ.IMPORTEPEDAGIO, "); sql.append(" CJ.IMPORTESEGURO, CJ.IMPORTETAXAEMBARQUE, CJ.IMPORTEPEDAGIO, ");
sql.append(" CJ.EQUIVALENTE, CJ.KM_REAL , CJ.BOLETO_ID, C.CORRIDA2_ID ) "); sql.append(" CJ.EQUIVALENTE, CJ.KM_REAL , CJ.BOLETO_ID, C.CORRIDA2_ID, TB2.ISDOUBLEDECK, TB2.KM_RODADO_GERAL ) ");
sql.append("GROUP BY GRUPO_RUTA, HORA, SERVICO, SERVICO2, SENTIDO, LOT, CLA, TARIFA, ORIGEM, DESTINO, "); 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 "); sql.append(" EXTENSAO, BAGAGENS, ORD, EXTRA, TIPO_LINHA, ISDOUBLEDECK, ABSOL, KM_RODADO ");
sql.append("ORDER BY TIPO_LINHA, GRUPO_RUTA, SERVICO, SERVICO2, ORIGEM, DESTINO "); sql.append("ORDER BY TIPO_LINHA, GRUPO_RUTA, SERVICO, SERVICO2, ORIGEM, DESTINO ");
log.info(sql.toString()); log.info(sql.toString());
return sql.toString(); return sql.toString();