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));