package gcom.faturamento; import gcom.faturamento.credito.CreditoARealizar; import gcom.util.ConstantesSistema; import java.math.BigDecimal; import java.util.Collection; import java.util.Iterator; import org.jboss.logging.Logger; public class FaturamentoUtil { private static Logger logger = Logger.getLogger(ControladorFaturamentoFINAL.class); public AtualizacaoCreditoARealizarHelper atualizarCreditosARealizar(Integer anoMesFaturamento , Collection<CreditoARealizar> creditos , BigDecimal valorAgua , BigDecimal valorEsgoto , BigDecimal valorDebitos , boolean preFaturamento){ AtualizacaoCreditoARealizarHelper helper = new AtualizacaoCreditoARealizarHelper(); BigDecimal valorTotalCreditos = ConstantesSistema.VALOR_ZERO; BigDecimal valorTotalACobrar = ConstantesSistema.VALOR_ZERO; BigDecimal parte1 = valorTotalACobrar.add(valorAgua); BigDecimal parte2 = parte1.add(valorEsgoto); valorTotalACobrar = parte2.add(valorDebitos); if (preFaturamento) { valorTotalACobrar = BigDecimal.ONE; } Iterator<CreditoARealizar> iteratorColecaoCreditosARealizar = creditos.iterator(); CreditoARealizar creditoARealizar = null; while (iteratorColecaoCreditosARealizar.hasNext() && valorTotalACobrar.compareTo(ConstantesSistema.VALOR_ZERO) == 1) { creditoARealizar = (CreditoARealizar) iteratorColecaoCreditosARealizar.next(); logger.info(" ANTES -----> " + creditoARealizar.getId() + " : " + creditoARealizar.getNumeroPrestacaoRealizada() + " de " + creditoARealizar.getNumeroPrestacaoCredito() + " : " + creditoARealizar.getValorTotal() + " credito : " + creditoARealizar.getValorResidualMesAnterior() + " res�duo : " + creditoARealizar.getAnoMesCobrancaCredito() + " cobranca : " + creditoARealizar.getAnoMesReferenciaPrestacao() + " prestacao <----- "); BigDecimal valorCredito = creditoARealizar.calculaValorParcelaIntermediaria(preFaturamento).add(creditoARealizar.getValorResidualMesAnterior()); if (creditoARealizar.concedidoNaReferenciaAtual(anoMesFaturamento.intValue()) && creditoARealizar.isUltimaPrestacao()){ valorCredito = creditoARealizar.calculaCreditoOuResiduo(); } if (creditoARealizar.nuncaFoiConcedido() || !creditoARealizar.concedidoNaReferenciaAtual(anoMesFaturamento.intValue())) { creditoARealizar.incrementaPrestacoesRealizadas(); creditoARealizar.setValorResidualConcedidoMes(creditoARealizar.getValorResidualMesAnterior()); creditoARealizar.setAnoMesReferenciaPrestacao(anoMesFaturamento); } if (!preFaturamento) { valorTotalACobrar = valorTotalACobrar.subtract(valorCredito); } if (valorTotalACobrar.compareTo(ConstantesSistema.VALOR_ZERO) == -1) { creditoARealizar.setValorResidualMesAnterior(valorTotalACobrar.multiply(new BigDecimal("-1"))); valorCredito = valorCredito.subtract(creditoARealizar.getValorResidualMesAnterior()); valorTotalACobrar = ConstantesSistema.VALOR_ZERO; } else { if (!preFaturamento) { creditoARealizar.setValorResidualMesAnterior(ConstantesSistema.VALOR_ZERO); } } valorTotalCreditos = valorTotalCreditos.add(valorCredito); logger.info(" DEPOIS -----> " + creditoARealizar.getId() + " : " + creditoARealizar.getNumeroPrestacaoRealizada() + " de " + creditoARealizar.getNumeroPrestacaoCredito() + " : " + creditoARealizar.getValorTotal() + " credito : " + creditoARealizar.getValorResidualMesAnterior() + " res�duo : " + creditoARealizar.getAnoMesCobrancaCredito() + " cobranca : " + creditoARealizar.getAnoMesReferenciaPrestacao() + " prestacao <----- "); helper.addCreditoARealizar(valorCredito, creditoARealizar); } helper.setValorTotalCreditos(valorTotalCreditos); helper.setValorTotalDebitos(valorTotalACobrar); return helper; } }