diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java index 187446460..cc05e321f 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioLinhasHorario.java @@ -1,6 +1,7 @@ package com.rjconsultores.ventaboletos.relatorios.impl; import java.math.BigDecimal; +import java.math.MathContext; import java.math.RoundingMode; import java.sql.Connection; import java.sql.ResultSet; @@ -31,6 +32,7 @@ public class RelatorioLinhasHorario extends Relatorio { private static Logger log = Logger.getLogger(RelatorioLinhasHorario.class); private List lsDadosRelatorio; private static String CONSTANTE_GRATUIDADE_CRIANCA; + private BigDecimal CENTO = BigDecimal.TEN.multiply(BigDecimal.TEN); public RelatorioLinhasHorario(Map parametros, Connection conexao) throws Exception { super(parametros, conexao); @@ -295,111 +297,74 @@ public class RelatorioLinhasHorario extends Relatorio { } private RelatorioLinhasHorarioBean calcKmRodado(RelatorioLinhasHorarioBean horarioBean) { - BigDecimal kmRodado = horarioBean.getTotalViagem().multiply(horarioBean.getExtensao()); - horarioBean.setKmRodado(kmRodado); + horarioBean.setKmRodado( calculaMultiplicacao(horarioBean.getTotalViagem(), horarioBean.getExtensao())); return horarioBean; } private RelatorioLinhasHorarioBean calcEquivalente(RelatorioLinhasHorarioBean horarioBean) { - BigDecimal equivalente = new BigDecimal(0); - try { - equivalente = horarioBean.getSomaExtensaoTrecho().divide(horarioBean.getExtensao(), 2, RoundingMode.HALF_UP); - } catch (ArithmeticException e) { - equivalente = BigDecimal.ZERO; - } catch (NullPointerException nex) { - equivalente = BigDecimal.ZERO; - } catch (Exception ex) { - log.error("", ex); - } - horarioBean.setEquivalente(equivalente); - + horarioBean.setEquivalente( calculaDivisao( horarioBean.getSomaExtensaoTrecho(), horarioBean.getExtensao() ) ); return horarioBean; } private RelatorioLinhasHorarioBean calcMpa(RelatorioLinhasHorarioBean horarioBean) { - BigDecimal mpa = new BigDecimal(0); - try { - mpa = horarioBean.getAbsol().divide(horarioBean.getTotalViagem(), 2, 4); - } catch (ArithmeticException e) { - mpa = BigDecimal.ZERO; - } catch (NullPointerException nex) { - mpa = BigDecimal.ZERO; - } catch (Exception ex) { - log.error("", ex); - } - horarioBean.setMpa(mpa); + horarioBean.setMpa( calculaDivisao( horarioBean.getAbsol(), horarioBean.getTotalViagem() ) ); return horarioBean; } private RelatorioLinhasHorarioBean calcMpe(RelatorioLinhasHorarioBean horarioBean) { - BigDecimal mpe = horarioBean.getEquivalente().divide(horarioBean.getTotalViagem(), 2, 4); - horarioBean.setMpe(mpe); + horarioBean.setMpe( calculaDivisao( horarioBean.getEquivalente(), horarioBean.getTotalViagem() )); return horarioBean; } private RelatorioLinhasHorarioBean calcRsKm(RelatorioLinhasHorarioBean horarioBean) { - BigDecimal rsKm = horarioBean.getTotal().divide(horarioBean.getKmRodado(), 2, 4); - horarioBean.setRsKm(rsKm); + horarioBean.setRsKm( calculaDivisao( horarioBean.getTotal(), horarioBean.getKmRodado() ) ); return horarioBean; } private RelatorioLinhasHorarioBean calcEq(RelatorioLinhasHorarioBean horarioBean) { - BigDecimal eq = null; - try { - eq = horarioBean.getMediaReceitaViagem().divide(horarioBean.getTarifa(), 2, 4); - } catch (ArithmeticException e) { - eq = BigDecimal.ZERO; - } catch (NullPointerException nex) { - eq = BigDecimal.ZERO; - } catch (Exception ex) { - log.error("", ex); - } - horarioBean.setEq(eq); + horarioBean.setEq( calculaDivisao(horarioBean.getMediaReceitaViagem(), horarioBean.getTarifa()) ); return horarioBean; } private RelatorioLinhasHorarioBean calcRsViagem(RelatorioLinhasHorarioBean horarioBean) { - BigDecimal RSViagem = horarioBean.getPassagens().divide(horarioBean.getTotalViagem(), 2, 4); - horarioBean.setRsViagem(RSViagem); + horarioBean.setRsViagem( calculaDivisao(horarioBean.getPassagens(), horarioBean.getTotalViagem())); return horarioBean; } private RelatorioLinhasHorarioBean calcPaxKmOfertado(RelatorioLinhasHorarioBean horarioBean) { - BigDecimal paxKmOfertado = horarioBean.getLot().multiply(horarioBean.getTotalViagem()); - paxKmOfertado = paxKmOfertado.multiply(horarioBean.getExtensao()); - horarioBean.setPaxKmOfertado(paxKmOfertado); + BigDecimal paxKmOfertado = calculaMultiplicacao( horarioBean.getLot(), horarioBean.getTotalViagem()); + horarioBean.setPaxKmOfertado( calculaMultiplicacao( paxKmOfertado, horarioBean.getExtensao()) ); return horarioBean; } private RelatorioLinhasHorarioBean calcIap(RelatorioLinhasHorarioBean horarioBean) { - BigDecimal iap = null; - BigDecimal CENTO = BigDecimal.TEN.multiply(BigDecimal.TEN); - try { - iap = (horarioBean.getPaxKmTransportado().multiply(CENTO)).divide(horarioBean.getPaxKmOfertado(), 2, 4); - } catch (ArithmeticException e) { - iap = BigDecimal.ZERO; - } catch (NullPointerException nex) { - iap = BigDecimal.ZERO; - } catch (Exception ex) { - log.error("", ex); - } - horarioBean.setIap(iap); + horarioBean.setIap( calculaDivisao(horarioBean.getPaxKmTransportado().multiply(CENTO), horarioBean.getPaxKmOfertado() )); return horarioBean; } private BigDecimal calcTotalIap(BigDecimal totalPaxKMTransportado, BigDecimal totalPaxKMOfertado) { - BigDecimal iap = null; - BigDecimal CENTO = BigDecimal.TEN.multiply(BigDecimal.TEN); + return calculaMultiplicacao(totalPaxKMTransportado.multiply(CENTO), totalPaxKMOfertado); + } + + private BigDecimal calculaDivisao( BigDecimal valor1, BigDecimal valor2){ + BigDecimal resultado = BigDecimal.ZERO; try { - iap = (totalPaxKMTransportado.multiply(CENTO)).divide(totalPaxKMOfertado, 2, 4); - } catch (ArithmeticException e) { - iap = BigDecimal.ZERO; - } catch (NullPointerException nex) { - iap = BigDecimal.ZERO; + resultado = valor1.multiply(valor2); + resultado.setScale(2, 4); } catch (Exception ex) { - log.error("", ex); + log.error("Erro ao calcular mutiplicacao no Relatorio de linhas por horario", ex); } - return iap; + return resultado; + } + + private BigDecimal calculaMultiplicacao( BigDecimal valor1, BigDecimal valor2){ + BigDecimal resultado = BigDecimal.ZERO; + try { + resultado = valor1.divide(valor2, 2, 4); + } catch (Exception ex) { + log.error("Erro ao calcular divisão no Relatorio de linhas por horario", ex); + } + return resultado; } @Override diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jasper index b736f46dc..0cc1b969d 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 e141f6409..395c3cde9 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/templates/RelatorioLinhasHorario.jrxml @@ -1,7 +1,7 @@ - + @@ -132,7 +132,7 @@ - + @@ -201,7 +201,7 @@ - + @@ -213,7 +213,7 @@ - + @@ -231,11 +231,11 @@ - + - +