package gcom.gui.cobranca.parcelamento; import gcom.cobranca.parcelamento.ParcelamentoQuantidadePrestacao; import gcom.cobranca.parcelamento.ParcelamentoQuantidadePrestacaoHelper; import gcom.cobranca.parcelamento.ParcelamentoQuantidadeReparcelamentoHelper; 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.ArrayList; 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; /** * Action respons�vel por adicionar na collectionParcelamentoQuantidadePrestacao * um ou mais objeto(s) do tipo ParcelamentoQuantidadePrestacao * * @author Vivianne Sousa * @created 05/05/2006 */ public class InserirPrestacoesParcelamentoPerfilAction extends GcomAction { /** * Este caso de uso permite a inclus�o de um novo perfil de parcelamento * * [UC0220] Inserir Perfil de Parcelamento * * * @author Vivianne Sousa * @date 05/05/2006 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { ActionForward retorno = actionMapping .findForward("inserirPrestacoesParcelamentoPerfilAction"); HttpSession sessao = httpServletRequest.getSession(false); atualizaColecaoNaSessao (sessao, httpServletRequest); Fachada fachada = Fachada.getInstancia(); sessao.removeAttribute("collectionParcelamentoFaixaValor"); if (sessao.getAttribute("collectionParcelamentoQuantidadePrestacaoHelper") != null && !sessao.getAttribute("collectionParcelamentoQuantidadePrestacaoHelper").equals( "")) { Collection collectionParcelamentoQuantidadePrestacaoHelper = (Collection) sessao .getAttribute("collectionParcelamentoQuantidadePrestacaoHelper"); // cria as vari�veis para recuperar os par�metros do request e jogar // no objeto ParcelamentoDescontoInatividade String txJuros = null; String percMinEntrada = null; String percTarMinImovel = null; String percVlReparcelado = null; String fatCalculo = null; String indMediaConta = null; String indValorUltConta = null; Iterator iteratorParcelamentoQuantidadePrestacao = collectionParcelamentoQuantidadePrestacaoHelper .iterator(); while (iteratorParcelamentoQuantidadePrestacao.hasNext()) { ParcelamentoQuantidadePrestacaoHelper parcelamentoQuantidadePrestacaoHelper = (ParcelamentoQuantidadePrestacaoHelper) iteratorParcelamentoQuantidadePrestacao .next(); ParcelamentoQuantidadePrestacao parcelamentoQuantidadePrestacao = parcelamentoQuantidadePrestacaoHelper.getParcelamentoQuantidadePrestacao(); long valorTempo = parcelamentoQuantidadePrestacao.getUltimaAlteracao().getTime(); txJuros = (String) httpServletRequest.getParameter("txJuros" + valorTempo); percMinEntrada = httpServletRequest.getParameter("percMinEntrada" + valorTempo); percTarMinImovel = httpServletRequest.getParameter("percTarMinImovel" + valorTempo); percVlReparcelado = (String)httpServletRequest.getParameter("percVlReparcelado" + valorTempo); fatCalculo = (String) httpServletRequest.getParameter("fatQtdPrest" + valorTempo); indMediaConta = (String) httpServletRequest.getParameter("indMedVlCnta" + valorTempo); indValorUltConta = (String) httpServletRequest.getParameter("indValorUltConta" + valorTempo); // insere essas vari�veis no objeto ParcelamentoDescontoInatividade BigDecimal taxaJuros = null; if (txJuros != null && !txJuros.equals("")) { taxaJuros = Util.formatarMoedaRealparaBigDecimal(txJuros); } Integer fatorCalculo = null; if (fatCalculo != null && !fatCalculo.equals("")) { fatorCalculo = new Integer(fatCalculo); } Short indicadorMediaConta = ConstantesSistema.NAO; if (indMediaConta != null && !indMediaConta.equals("")) { indicadorMediaConta = new Short(indMediaConta); } Short indicadorValorUltConta = ConstantesSistema.NAO; if (indValorUltConta!= null && !indValorUltConta.equals("")) { indicadorValorUltConta = new Short(indValorUltConta); } BigDecimal percentualMinimoEntrada = null; BigDecimal percentualTarifaMinimaImovel = null; BigDecimal percentualValorReparcelado = null; if ((percMinEntrada == null || percMinEntrada.equals("") || percMinEntrada.equals("0,00")) && (percTarMinImovel == null || percTarMinImovel.equals("") || percTarMinImovel.equals("0,00"))){ percentualMinimoEntrada = new BigDecimal(0); percentualTarifaMinimaImovel = new BigDecimal(0); }else{ if (percMinEntrada != null && !percMinEntrada.equals("")){ percentualMinimoEntrada = Util.formatarMoedaRealparaBigDecimal(percMinEntrada); }else if (percTarMinImovel != null && !percTarMinImovel.equals("")){ percentualTarifaMinimaImovel = Util.formatarMoedaRealparaBigDecimal(percTarMinImovel); } } if (percVlReparcelado == null || percVlReparcelado.equals("") || percVlReparcelado.equals("0,00")){ percentualValorReparcelado = new BigDecimal(0); }else{ percentualValorReparcelado =Util.formatarMoedaRealparaBigDecimal(percVlReparcelado); } parcelamentoQuantidadePrestacao.setTaxaJuros(taxaJuros); parcelamentoQuantidadePrestacao.setPercentualMinimoEntrada(percentualMinimoEntrada); parcelamentoQuantidadePrestacao.setPercentualTarifaMinimaImovel(percentualTarifaMinimaImovel); parcelamentoQuantidadePrestacao.setPercentualValorReparcelado(percentualValorReparcelado); parcelamentoQuantidadePrestacaoHelper.setParcelamentoQuantidadePrestacao(parcelamentoQuantidadePrestacao); parcelamentoQuantidadePrestacao.setFatorQuantidadePrestacoes(fatorCalculo); parcelamentoQuantidadePrestacao.setIndicadorMediaValorContas(indicadorMediaConta); parcelamentoQuantidadePrestacao.setIndicadorValorUltimaContaEmAtraso(indicadorValorUltConta); //sessao.setAttribute("collectionParcelamentoQuantidadePrestacao",collectionParcelamentoQuantidadePrestacao); } validacaoFinal( collectionParcelamentoQuantidadePrestacaoHelper,fachada); Collection collectionParcelamentoQuantidadeReparcelamentoHelper = (Collection) sessao .getAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper"); Collection collectionParcelamentoQuantidadeReparcelamentoHelper1 = new ArrayList(); Iterator iterator = collectionParcelamentoQuantidadeReparcelamentoHelper.iterator(); while (iterator.hasNext()) { ParcelamentoQuantidadeReparcelamentoHelper parcelamentoQuantidadeReparcelamentoHelper = (ParcelamentoQuantidadeReparcelamentoHelper) iterator.next(); if (parcelamentoQuantidadeReparcelamentoHelper.getQuantidadeMaximaReparcelamento().toString() .equals((String)sessao.getAttribute("qtdeMaxReparcelamento"))) { parcelamentoQuantidadeReparcelamentoHelper. setCollectionParcelamentoQuantidadePrestacaoHelper(collectionParcelamentoQuantidadePrestacaoHelper); parcelamentoQuantidadeReparcelamentoHelper. setInformacaoParcelamentoQtdeReparcelamento("INFORMADAS"); } collectionParcelamentoQuantidadeReparcelamentoHelper1.add(parcelamentoQuantidadeReparcelamentoHelper); } sessao.setAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper", collectionParcelamentoQuantidadeReparcelamentoHelper1); if (sessao.getAttribute("UseCase")!= null && sessao.getAttribute("UseCase").equals("INSERIRPERFIL")){ httpServletRequest.setAttribute("reloadPage","INSERIRPERFIL"); }else{ httpServletRequest.setAttribute("reloadPage","ATUALIZARPERFIL"); } } return retorno; } private void atualizaColecaoNaSessao(HttpSession sessao, HttpServletRequest httpServletRequest){ //collectionParcelamentoQuantidadePrestacao if (sessao.getAttribute("collectionParcelamentoQuantidadePrestacaoHelper") != null && !sessao.getAttribute("collectionParcelamentoQuantidadePrestacaoHelper").equals( "")) { Collection collectionParcelamentoQuantidadePrestacaoHelper = (Collection) sessao .getAttribute("collectionParcelamentoQuantidadePrestacaoHelper"); // cria as vari�veis para recuperar os par�metros do request e jogar // no objeto ParcelamentoQuantidadePrestacao String txJuros = null; String percMinEntrada = null; String percTarMinImovel = null; String fatCalculo = null; String indMediaConta = null; String indValorUltConta = null; Iterator iterator = collectionParcelamentoQuantidadePrestacaoHelper .iterator(); while (iterator.hasNext()) { ParcelamentoQuantidadePrestacaoHelper parcelamentoQuantidadePrestacaoHelper = (ParcelamentoQuantidadePrestacaoHelper) iterator.next(); ParcelamentoQuantidadePrestacao parcelamentoQuantidadePrestacao = parcelamentoQuantidadePrestacaoHelper.getParcelamentoQuantidadePrestacao(); long valorTempo = parcelamentoQuantidadePrestacao.getUltimaAlteracao() .getTime(); txJuros = (String) httpServletRequest.getParameter("txJuros" + valorTempo); percMinEntrada = (String) httpServletRequest.getParameter("percMinEntrada" + valorTempo); percTarMinImovel = (String)httpServletRequest.getParameter("percTarMinImovel" + valorTempo); fatCalculo = (String) httpServletRequest.getParameter("fatQtdPrest" + valorTempo); indMediaConta = (String) httpServletRequest.getParameter("indMedVlCnta" + valorTempo); indValorUltConta = (String) httpServletRequest.getParameter("indValorUltConta" + valorTempo); // insere essas vari�veis no objeto ParcelamentoQuantidadePrestacao BigDecimal taxaJuros = null; if (txJuros != null && !txJuros.equals("")) { taxaJuros = Util.formatarMoedaRealparaBigDecimal(txJuros); } Integer fatorCalculo = null; if (fatCalculo != null && !fatCalculo.equals("")) { fatorCalculo = new Integer(fatCalculo); } Short indicadorMediaConta = ConstantesSistema.NAO; if (indMediaConta != null && !indMediaConta.equals("")) { indicadorMediaConta = new Short(indMediaConta); } Short indicadorValorUltConta = ConstantesSistema.NAO; if (indValorUltConta!= null && !indValorUltConta.equals("")) { indicadorValorUltConta = new Short(indValorUltConta); } /*BigDecimal percentualMinEntrada = null; if (percMinEntrada != null && !percMinEntrada.equals("")) { percentualMinEntrada = Util.formatarMoedaRealparaBigDecimal(percMinEntrada); }*/ BigDecimal percentualMinimoEntrada = null; BigDecimal percentualTarifaMinimaImovel = null; if ((percMinEntrada == null || percMinEntrada.equals("") || percMinEntrada.equals(0)) && (percTarMinImovel == null || percTarMinImovel.equals("") || percTarMinImovel.equals(0))){ percentualMinimoEntrada = new BigDecimal(0); percentualTarifaMinimaImovel = new BigDecimal(0); }else{ if (percMinEntrada != null && !percMinEntrada.equals("")){ percentualMinimoEntrada = Util.formatarMoedaRealparaBigDecimal(percMinEntrada); }else if (percTarMinImovel != null && !percTarMinImovel.equals("")){ percentualTarifaMinimaImovel = Util.formatarMoedaRealparaBigDecimal(percTarMinImovel); } } parcelamentoQuantidadePrestacao.setTaxaJuros(taxaJuros); parcelamentoQuantidadePrestacao.setPercentualMinimoEntrada(percentualMinimoEntrada); parcelamentoQuantidadePrestacao.setPercentualTarifaMinimaImovel(percentualTarifaMinimaImovel); parcelamentoQuantidadePrestacao.setFatorQuantidadePrestacoes(fatorCalculo); parcelamentoQuantidadePrestacao.setIndicadorMediaValorContas(indicadorMediaConta); parcelamentoQuantidadePrestacao.setIndicadorValorUltimaContaEmAtraso(indicadorValorUltConta); parcelamentoQuantidadePrestacaoHelper.setParcelamentoQuantidadePrestacao(parcelamentoQuantidadePrestacao); } } } private void validacaoFinal(Collection collectionParcelamentoQuantidadePrestacaoHelper, Fachada fachada){ // filtro para descobrir o percentual m�nimo de entrada permitido para financiamento /*FiltroSistemaParametro filtroSistemaParametro = new FiltroSistemaParametro(); Collection colecaoSistemaParametros; colecaoSistemaParametros = fachada.pesquisar( filtroSistemaParametro, SistemaParametro.class.getName()); SistemaParametro sistemaParametro = (SistemaParametro)colecaoSistemaParametros .iterator().next(); BigDecimal percentualFinanciamentoEntradaMinima = sistemaParametro.getPercentualFinanciamentoEntradaMinima(); */ Iterator iteratorParcelamentoQuantidadePrestacaoHelper = collectionParcelamentoQuantidadePrestacaoHelper.iterator(); while (iteratorParcelamentoQuantidadePrestacaoHelper.hasNext()) { ParcelamentoQuantidadePrestacaoHelper parcelamentoQuantidadePrestacaoHelper = (ParcelamentoQuantidadePrestacaoHelper) iteratorParcelamentoQuantidadePrestacaoHelper.next(); ParcelamentoQuantidadePrestacao parcelamentoQuantidadePrestacao = parcelamentoQuantidadePrestacaoHelper.getParcelamentoQuantidadePrestacao(); if(parcelamentoQuantidadePrestacao.getQuantidadeMaximaPrestacao() == null){ throw new ActionServletException( // Informe Quantidade M�xima de Presta��es "atencao.required", null, " Quantidade M�xima de Presta��es"); } if(parcelamentoQuantidadePrestacao.getTaxaJuros() == null){ throw new ActionServletException( // Informe Taxa de Juros a.m "atencao.required", null, " Taxa de Juros a.m"); } // if(parcelamentoQuantidadePrestacao.getFatorQuantidadePrestacoes() == null){ // throw new ActionServletException( // // Informe Fator C�lculo Qtd. Presta��es Parc. // "atencao.required", null, " Fator C�lculo Qtd. Presta��es Parc."); // } /* if(parcelamentoQuantidadePrestacao.getPercentualMinimoEntrada() == null){ throw new ActionServletException( // Informe Percentual M�nimo de Entrada "atencao.required", null, " Percentual M�nimo de Entrada"); }else{ //[FS0005]Verificar percentual m�nimo de entrada BigDecimal percentualMinimoEntrada = parcelamentoQuantidadePrestacao.getPercentualMinimoEntrada(); if (percentualFinanciamentoEntradaMinima.compareTo(percentualMinimoEntrada) > 0 ){ //Percentual M�nimo de Entrada inferior a Percentual M�nimo de Entrada de //{0} permitido para Financiamento. throw new ActionServletException( "atencao.percentual_min_entrada_inferior_percentual_min_financiamento", null,"" + percentualFinanciamentoEntradaMinima); } }*/ } } }