diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java index 6c1a38af8..75e3d74ea 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java @@ -116,6 +116,7 @@ public class RelatorioLinhasHorario extends Relatorio { BigDecimal totalPedagio = BigDecimal.ZERO; String group = null; + List listaCorridas = new ArrayList(); while (rset.next()) { RelatorioLinhasHorarioBean horarioBean = new RelatorioLinhasHorarioBean(); @@ -124,13 +125,15 @@ public class RelatorioLinhasHorario extends Relatorio { horarioBean.setTipoLinha((String) rset.getObject("TIPO_LINHA")); horarioBean.setHora((String) rset.getObject("HORA")); horarioBean.setServico((BigDecimal) rset.getObject("SERVICO")); + horarioBean.setServico2((BigDecimal) rset.getObject("SERVICO2")); if (rset.getObject("SENTIDO") != null) { horarioBean.convetSentido((BigDecimal) rset.getObject("SENTIDO")); } else { horarioBean.convetSentido(null); } - Boolean isDoubleDeck = BigDecimal.ZERO.equals((BigDecimal) rset.getObject("ISDOUBLEDECK")) ? Boolean.FALSE : Boolean.TRUE; + horarioBean.setIsDoubleDeck(BigDecimal.ZERO.equals((BigDecimal) rset.getObject("ISDOUBLEDECK")) ? Boolean.FALSE : Boolean.TRUE); + horarioBean.setLot((BigDecimal) rset.getObject("LOT")); horarioBean.setCla((String) rset.getObject("CLA")); horarioBean.setExtensao((BigDecimal) rset.getObject("EXTENSAO")); @@ -179,9 +182,18 @@ 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); - if(isDoubleDeck) { - totalKmRodado = totalKmRodado.add(horarioBean.getKmRodado() != null ? horarioBean.getKmRodado() : 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())) { + 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. + horarioBean.setIsDoubleDeck(Boolean.FALSE); + totalKmRodado = totalKmRodado.add(horarioBean.getKmRodado() != null ? horarioBean.getKmRodado() : BigDecimal.ZERO); + } + }else { + 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); @@ -393,6 +405,7 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" GRUPO_RUTA, "); sql.append(" HORA, "); sql.append(" SERVICO, "); + sql.append(" SERVICO2, "); sql.append(" SENTIDO , "); sql.append(" LOT, "); sql.append(" CLA, "); @@ -418,6 +431,7 @@ public class RelatorioLinhasHorario extends Relatorio { sql.append(" NVL(GR.DESCGRUPO, 'Não Definido') AS GRUPO_RUTA, "); sql.append(" TO_CHAR(C.FECHORSALIDA, 'HH24:MI') AS HORA, "); sql.append(" C.CORRIDA_ID AS SERVICO, "); + sql.append(" C.CORRIDA2_ID AS SERVICO2, "); sql.append(" R.INDSENTIDOIDA AS SENTIDO, "); sql.append(" DA.CANTASIENTOS AS LOT, "); sql.append(" NVL(CS.DESCCLASE, '') AS CLA, "); @@ -604,9 +618,9 @@ public class RelatorioLinhasHorario extends Relatorio { 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 ) "); - sql.append("GROUP BY GRUPO_RUTA, HORA, SERVICO, 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("ORDER BY TIPO_LINHA, GRUPO_RUTA, SERVICO, ORIGEM, DESTINO "); + sql.append("ORDER BY TIPO_LINHA, GRUPO_RUTA, SERVICO, SERVICO2, ORIGEM, DESTINO "); return sql.toString(); } diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper index 66986dc9c..1b2366876 100644 Binary files a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper and b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper differ diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml index 47654abe5..f109cae12 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml @@ -1,8 +1,8 @@ - - + + @@ -67,6 +67,7 @@ + @@ -92,7 +93,7 @@ - + diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioLinhasHorarioBean.java b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioLinhasHorarioBean.java index fadf52629..d0bfab3fc 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioLinhasHorarioBean.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/utilitarios/RelatorioLinhasHorarioBean.java @@ -10,6 +10,7 @@ public class RelatorioLinhasHorarioBean { private String destino; private String hora; private BigDecimal servico; + private BigDecimal servico2; private String trecho; private String sentido; private BigDecimal lot; @@ -42,11 +43,20 @@ public class RelatorioLinhasHorarioBean { private BigDecimal extraLinha; private BigDecimal somaExtensaoTrecho; private String descRuta; + private Boolean isDoubleDeck; public RelatorioLinhasHorarioBean() { } + public BigDecimal getServico2() { + return servico2; + } + + public void setServico2(BigDecimal servico2) { + this.servico2 = servico2; + } + public String getSentido() { return sentido; } @@ -363,4 +373,12 @@ public class RelatorioLinhasHorarioBean { public void setDescRuta(String descRuta) { this.descRuta = descRuta; } + + public Boolean getIsDoubleDeck() { + return isDoubleDeck; + } + + public void setIsDoubleDeck(Boolean isDoubleDeck) { + this.isDoubleDeck = isDoubleDeck; + } }