From 18cf8ebd1bab19a5e06d97d1fa95ff5e59524899 Mon Sep 17 00:00:00 2001 From: julio Date: Mon, 27 Apr 2015 17:37:17 +0000 Subject: [PATCH] =?UTF-8?q?Erro=20-=20Relat=C3=B3rio=20de=20Aproveitamento?= =?UTF-8?q?=20(fixes=20bug=20#6206)=20Tempo:=202=20horas?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit git-svn-id: http://desenvolvimento.rjconsultores.com.br/repositorio/sco/AdmVenta/Web/trunk/ventaboletos@43420 d1611594-4594-4d17-8e1d-87c2c4800839 --- .../impl/RelatorioAproveitamento.java | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAproveitamento.java b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAproveitamento.java index 0c7383de8..b1afe3e23 100644 --- a/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAproveitamento.java +++ b/src/java/com/rjconsultores/ventaboletos/relatorios/impl/RelatorioAproveitamento.java @@ -95,13 +95,21 @@ public class RelatorioAproveitamento extends Relatorio { totalNominal = tarifa.multiply(totalOcupados); BigDecimal arrecadadoKm = BigDecimal.ONE; - arrecadadoKm = totalArrecadado.divide(kmCorrida, 4, RoundingMode.HALF_EVEN); BigDecimal nominalKmFinal = BigDecimal.ONE; - nominalKmFinal = totalNominal.divide(kmCorrida, 4, RoundingMode.HALF_EVEN); + try { + arrecadadoKm = totalArrecadado.divide(kmCorrida, 4, RoundingMode.HALF_EVEN); + nominalKmFinal = totalNominal.divide(kmCorrida, 4, RoundingMode.HALF_EVEN); + ocupacao = ocupacao.divide(totalOcupados.multiply(kmCorrida), 4, RoundingMode.HALF_EVEN); + ocupacaoSemArrecadacao = ocupacaoSemArrecadacao.divide(totalOcupados.multiply(kmCorrida), 4, RoundingMode.HALF_EVEN); + ocupacaoArrecadacao = ocupacaoArrecadacao.divide(totalOcupados.multiply(kmCorrida), 4, RoundingMode.HALF_EVEN); - ocupacao = ocupacao.divide(totalOcupados.multiply(kmCorrida), 4, RoundingMode.HALF_EVEN); - ocupacaoSemArrecadacao = ocupacaoSemArrecadacao.divide(totalOcupados.multiply(kmCorrida), 4, RoundingMode.HALF_EVEN); - ocupacaoArrecadacao = ocupacaoArrecadacao.divide(totalOcupados.multiply(kmCorrida), 4, RoundingMode.HALF_EVEN); + } catch (ArithmeticException e) { + arrecadadoKm = BigDecimal.ZERO; + nominalKmFinal = BigDecimal.ZERO; + ocupacao = BigDecimal.ZERO; + ocupacaoSemArrecadacao = BigDecimal.ZERO; + ocupacaoArrecadacao = BigDecimal.ZERO; + } Locale locale = new Locale("pt", "BR"); parametros.put("P_TOTAL_ARRECADADO", CurrencyUtil.getCurrencyBigDecimalFromStr(totalArrecadado, locale));