package gcom.gui.faturamento;
import gcom.cadastro.imovel.Imovel;
import gcom.fachada.Fachada;
import gcom.gui.GcomAction;
import gcom.seguranca.acesso.usuario.Usuario;
import gcom.util.Util;
import java.math.BigDecimal;
import java.util.ArrayList;
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;
public class CalcularPrestacaoDebitoACobrarAction extends GcomAction {
public ActionForward execute(ActionMapping actionMapping,
ActionForm actionForm, HttpServletRequest httpServletRequest,
HttpServletResponse httpServletResponse) {
//Seta o mapeamento de retorno
ActionForward retorno = actionMapping
.findForward("exibirInserirDebitoACobrar");
HttpSession sessao = httpServletRequest.getSession(false);
Fachada fachada = Fachada.getInstancia();
Usuario usuario = (Usuario) sessao.getAttribute("usuarioLogado");
InserirDebitoACobrarActionForm inserirDebitoACobrarActionForm = (InserirDebitoACobrarActionForm) actionForm;
BigDecimal valorEntrada = null;
if(inserirDebitoACobrarActionForm.getValorEntrada() != null && !inserirDebitoACobrarActionForm.getValorEntrada().equals("")){
String valEntrada = inserirDebitoACobrarActionForm.getValorEntrada();
valorEntrada = Util.formatarMoedaRealparaBigDecimal(valEntrada);
}else{
valorEntrada = new BigDecimal("0.00");
}
BigDecimal valorTotalServico = Util.formatarMoedaRealparaBigDecimal(inserirDebitoACobrarActionForm.getValorTotalServico());
BigDecimal percentualAbatimento;
if(inserirDebitoACobrarActionForm.getPercentualAbatimento() != null && !inserirDebitoACobrarActionForm.getPercentualAbatimento().equals("")){
String percAbatimento = inserirDebitoACobrarActionForm.getPercentualAbatimento();
percentualAbatimento = Util.formatarMoedaRealparaBigDecimal(percAbatimento);
}else{
percentualAbatimento = new BigDecimal("0.00");
}
String taxaJurosFinanciamento = inserirDebitoACobrarActionForm.getTaxaJurosFinanciamento();
BigDecimal taxaJutosFinanciamento = new BigDecimal("0.00");
if(taxaJurosFinanciamento != null && !taxaJurosFinanciamento.equals("")){
taxaJutosFinanciamento = Util.formatarMoedaRealparaBigDecimal(taxaJurosFinanciamento);
}
Integer numeroPrestacoes = new Integer(inserirDebitoACobrarActionForm.getNumeroPrestacoes());
Imovel imovel = null;
if (sessao.getAttribute("imovelPesquisado") != null) {
imovel = (Imovel) sessao.getAttribute("imovelPesquisado");
}
//Chamar o CalcularPrestacao
ArrayList valores = fachada.calcularValorPrestacao(taxaJutosFinanciamento,numeroPrestacoes,valorTotalServico,
valorEntrada,percentualAbatimento,inserirDebitoACobrarActionForm.getIdTipoDebito(),null,imovel, usuario);
BigDecimal valorTotal = new BigDecimal(valores.get(0).toString());
inserirDebitoACobrarActionForm.setValorTotalServico(Util.formatarMoedaReal(valorTotal));
inserirDebitoACobrarActionForm.setValorPrestacao(valores.get(1).toString().replace('.',','));
inserirDebitoACobrarActionForm.setValorJuros(valores.get(2).toString().replace('.',','));
inserirDebitoACobrarActionForm.setvalorTotalServicoAParcelar(valores.get(3).toString().replace('.',','));
return retorno;
}
}