package gcom.gui.cobranca;
import gcom.cadastro.sistemaparametro.SistemaParametro;
import gcom.cobranca.bean.OpcoesParcelamentoHelper;
import gcom.cobranca.parcelamento.Parcelamento;
import gcom.fachada.Fachada;
import gcom.gui.ActionServletException;
import gcom.gui.GcomAction;
import gcom.util.ConstantesSistema;
import gcom.util.Util;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.Iterator;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.servlet.http.HttpSession;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.apache.struts.action.DynaActionForm;
import org.jboss.logging.Logger;
public class ExibirEfetuarParcelamentoDebitosProcesso4Action extends GcomAction {
private static Logger logger = Logger.getLogger(ExibirEfetuarParcelamentoDebitosProcesso4Action.class);
public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest request, HttpServletResponse response) {
ActionForward retorno = actionMapping.findForward("processo4");
HttpSession sessao = request.getSession(false);
Fachada fachada = Fachada.getInstancia();
DynaActionForm form = (DynaActionForm) actionForm;
String codigoImovel = (String) form.get("matriculaImovel");
logger.info("Parcelamento do im�vel " + codigoImovel);
// Verifica se entrou na aba de Negocia��o
Collection<OpcoesParcelamentoHelper> colecaoOpcoesParcelamento = (Collection<OpcoesParcelamentoHelper>) sessao.getAttribute("colecaoOpcoesParcelamento");
if (colecaoOpcoesParcelamento == null || colecaoOpcoesParcelamento.isEmpty()) {
throw new ActionServletException("atencao.parametros.obrigatorios.nao.selecionados");
}
// Pega dados do formul�rio
BigDecimal valorDebitoTotalAtualizado = Util.formatarMoedaRealparaBigDecimal((String) form.get("valorDebitoTotalAtualizado"));
// 5.1.4 Valor do desconto
BigDecimal valorASerNegociado = new BigDecimal("0.00");
BigDecimal valorTotalDescontos = Util.formatarMoedaRealparaBigDecimal((String) form.get("valorTotalDescontos"));
valorASerNegociado.setScale(Parcelamento.CASAS_DECIMAIS, Parcelamento.TIPO_ARREDONDAMENTO);
valorASerNegociado = valorDebitoTotalAtualizado.subtract(valorTotalDescontos);
form.set("valorNegociado", Util.formatarMoedaReal(valorASerNegociado));
// 5.1.6 Condi��es da Negocia��o
if (colecaoOpcoesParcelamento != null && !colecaoOpcoesParcelamento.isEmpty()) {
Iterator opcoesParcelamentoValores = colecaoOpcoesParcelamento.iterator();
while (opcoesParcelamentoValores.hasNext()) {
OpcoesParcelamentoHelper opcoesParcelamento = (OpcoesParcelamentoHelper) opcoesParcelamentoValores.next();
if (((String) form.get("indicadorQuantidadeParcelas")).equals(opcoesParcelamento.getQuantidadePrestacao().toString())) {
form.set("parcelaEscolhida", opcoesParcelamento.getQuantidadePrestacao().toString());
form.set("valorParcelaEscolhida", Util.formatarMoedaReal(opcoesParcelamento.getValorPrestacao()));
BigDecimal valorASerParcelado = new BigDecimal("0.00");
valorASerParcelado = opcoesParcelamento.getValorPrestacao().setScale(Parcelamento.CASAS_DECIMAIS, Parcelamento.TIPO_ARREDONDAMENTO)
.multiply(new BigDecimal(opcoesParcelamento.getQuantidadePrestacao()));
form.set("valorASerParcelado", Util.formatarMoedaReal(valorASerParcelado));
form.set("taxaJurosEscolhida", Util.formatarMoedaReal(opcoesParcelamento.getTaxaJuros()));
}
}
}
SistemaParametro sistemaParametro = fachada.pesquisarParametrosDoSistema();
if (sistemaParametro.getIndicadorParcelamentoConfirmado() == ConstantesSistema.SIM.shortValue()) {
request.setAttribute("parcelamentoConfirmado", "OK");
}
return retorno;
}
}