package gcom.gui.cobranca.parcelamento; import gcom.cadastro.imovel.Categoria; import gcom.cadastro.imovel.FiltroCategoria; import gcom.cadastro.imovel.FiltroImovelPerfil; import gcom.cadastro.imovel.FiltroImovelSituacaoTipo; import gcom.cadastro.imovel.FiltroSubCategoria; import gcom.cadastro.imovel.ImovelPerfil; import gcom.cadastro.imovel.ImovelSituacaoTipo; import gcom.cadastro.imovel.Subcategoria; import gcom.cadastro.sistemaparametro.FiltroSistemaParametro; import gcom.cadastro.sistemaparametro.SistemaParametro; import gcom.cobranca.FiltroResolucaoDiretoria; import gcom.cobranca.ResolucaoDiretoria; import gcom.cobranca.parcelamento.ParcDesctoInativVista; import gcom.cobranca.parcelamento.ParcelamentoDescontoAntiguidade; import gcom.cobranca.parcelamento.ParcelamentoDescontoInatividade; import gcom.fachada.Fachada; import gcom.faturamento.conta.ContaMotivoRevisao; import gcom.faturamento.conta.FiltroContaMotivoRevisao; import gcom.gui.ActionServletException; import gcom.gui.GcomAction; import gcom.util.ConstantesSistema; import gcom.util.Util; import gcom.util.filtro.ParametroSimples; import java.math.BigDecimal; import java.util.ArrayList; import java.util.Collection; import java.util.Collections; import java.util.Comparator; import java.util.Date; import java.util.Iterator; import java.util.List; 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 que define o pr�-processamento da p�gina de inserir perfil de parcelamento * * @author Vivianne Sousa * @created 02/05/2006 */ public class ExibirInserirPerfilParcelamentoAction 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 02/05/2006 * * @param actionMapping * @param actionForm * @param httpServletRequest * @param httpServletResponse * @return */ //Obt�m a inst�ncia da fachada Fachada fachada = Fachada.getInstancia(); public ActionForward execute(ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { //Seta o retorno ActionForward retorno = actionMapping.findForward("inserirPerfilParcelamento"); //Obt�m a sess�o HttpSession sessao = httpServletRequest.getSession(false); ParcelamentoPerfilActionForm parcelamentoPerfilActionForm = (ParcelamentoPerfilActionForm) actionForm; FiltroSistemaParametro filtroSistemaParametro = new FiltroSistemaParametro(); Collection colecaoSistemaParametros = fachada.pesquisar( filtroSistemaParametro, SistemaParametro.class.getName()); SistemaParametro sistemaParametro = (SistemaParametro)colecaoSistemaParametros .iterator().next(); String percentualMaximoAbatimento = "" + sistemaParametro.getPercentualMaximoAbatimento(); httpServletRequest.setAttribute("percentualMaximoAbatimento",percentualMaximoAbatimento); //Pesquisando Resolucao Diretoria FiltroResolucaoDiretoria filtroResolucaoDiretoria = new FiltroResolucaoDiretoria(); filtroResolucaoDiretoria.setCampoOrderBy(FiltroResolucaoDiretoria.NUMERO); Collection<ResolucaoDiretoria> collectionResolucaoDiretoria = fachada.pesquisar(filtroResolucaoDiretoria, ResolucaoDiretoria.class.getName()); sessao.setAttribute("collectionResolucaoDiretoria", collectionResolucaoDiretoria); //Fim de pesquisando Resolucao Diretoria //Pesquisando Tipo da Situacao do Im�vel FiltroImovelSituacaoTipo filtroImovelSituacaoTipo = new FiltroImovelSituacaoTipo(); filtroImovelSituacaoTipo.setCampoOrderBy(FiltroImovelSituacaoTipo.DESCRICAO_IMOVEL_SITUACAO_TIPO); Collection<ImovelSituacaoTipo> collectionImovelSituacaoTipo = fachada.pesquisar(filtroImovelSituacaoTipo, ImovelSituacaoTipo.class.getName()); sessao.setAttribute("collectionImovelSituacaoTipo", collectionImovelSituacaoTipo); //Fim de pesquisando Tipo da Situacao do Im�vel //Pesquisando Perfil do Im�vel FiltroImovelPerfil filtroImovelPerfil = new FiltroImovelPerfil(); filtroImovelPerfil.adicionarParametro(new ParametroSimples( FiltroImovelPerfil.INDICADOR_USO, new Short("1"))); filtroImovelPerfil.setCampoOrderBy(FiltroImovelPerfil.DESCRICAO); Collection<ImovelPerfil> collectionImovelPerfil = fachada.pesquisar(filtroImovelPerfil, ImovelPerfil.class.getName()); sessao.setAttribute("collectionImovelPerfil", collectionImovelPerfil); //Fim de pesquisando Perfil do Im�vel //Pesquisando SubCategoria FiltroSubCategoria filtroSubCategoria = new FiltroSubCategoria(); filtroSubCategoria.adicionarParametro(new ParametroSimples( FiltroSubCategoria.INDICADOR_USO, new Short("1"))); filtroSubCategoria.setCampoOrderBy(FiltroSubCategoria.DESCRICAO); Collection<Subcategoria> collectionSubcategoria = fachada.pesquisar(filtroSubCategoria, Subcategoria.class.getName()); sessao.setAttribute("collectionSubcategoria", collectionSubcategoria); //Fim de pesquisando SubCategoria //Pesquisando Categoria FiltroCategoria filtroCategoria = new FiltroCategoria(); filtroCategoria.adicionarParametro(new ParametroSimples(FiltroCategoria.INDICADOR_USO, new Short("1"))); filtroCategoria.setCampoOrderBy(FiltroCategoria.DESCRICAO); Collection<Categoria> collectionCategoria = fachada.pesquisar(filtroCategoria, Categoria.class.getName()); sessao.setAttribute("collectionCategoria", collectionCategoria); //Fim de pesquisando Categoria //Pesquisando ContaMotivoRevisao FiltroContaMotivoRevisao filtroContaMotivoRevisao = new FiltroContaMotivoRevisao(); filtroContaMotivoRevisao.adicionarParametro(new ParametroSimples(FiltroContaMotivoRevisao.INDICADOR_USO, ConstantesSistema.INDICADOR_USO_ATIVO)); filtroContaMotivoRevisao.setCampoOrderBy(FiltroContaMotivoRevisao.DESCRICAO); Collection<ContaMotivoRevisao> collectionContaMotivoRevisao = fachada.pesquisar(filtroContaMotivoRevisao, ContaMotivoRevisao.class.getName()); sessao.setAttribute("collectionContaMotivoRevisao", collectionContaMotivoRevisao); //Fim de pesquisando ContaMotivoRevisao if (httpServletRequest.getParameter("desfazer") != null && httpServletRequest.getParameter("desfazer").equalsIgnoreCase("S") ) { //-------------- bt DESFAZER --------------- parcelamentoPerfilActionForm.setResolucaoDiretoria("" + ConstantesSistema.NUMERO_NAO_INFORMADO); parcelamentoPerfilActionForm.setImovelSituacaoTipo("" + ConstantesSistema.NUMERO_NAO_INFORMADO); parcelamentoPerfilActionForm.setSubcategoria("" + ConstantesSistema.NUMERO_NAO_INFORMADO); parcelamentoPerfilActionForm.setImovelPerfil("" + ConstantesSistema.NUMERO_NAO_INFORMADO); parcelamentoPerfilActionForm.setPercentualDescontoAcrescimoMulta(""); parcelamentoPerfilActionForm.setPercentualDescontoAcrescimoJurosMora(""); parcelamentoPerfilActionForm.setPercentualDescontoAcrescimoAtualizacaoMonetaria(""); parcelamentoPerfilActionForm.setPercentualDescontoAcrescimoPagamentoAVista(""); parcelamentoPerfilActionForm.setPercentualTarifaMinimaPrestacao(""); parcelamentoPerfilActionForm.setPercentualDescontoComRestabelecimentoAntiguidade(""); parcelamentoPerfilActionForm.setPercentualDescontoSemRestabelecimentoAntiguidade(""); parcelamentoPerfilActionForm.setPercentualDescontoAtivo(""); parcelamentoPerfilActionForm.setQuantidadeMaximaMesesInatividade(""); parcelamentoPerfilActionForm.setPercentualDescontoComRestabelecimentoInatividade(""); parcelamentoPerfilActionForm.setPercentualDescontoSemRestabelecimentoInatividade(""); parcelamentoPerfilActionForm.setQtdeMaximaReparcelamento(""); parcelamentoPerfilActionForm.setPercentualEntradaSugerida(""); parcelamentoPerfilActionForm.setQuantidadeMinimaMesesDebito(""); parcelamentoPerfilActionForm.setConsumoMinimo(""); parcelamentoPerfilActionForm.setPercentualVariacaoConsumoMedio(""); parcelamentoPerfilActionForm.setIndicadorParcelarChequeDevolvido("" + ConstantesSistema.NUMERO_NAO_INFORMADO); parcelamentoPerfilActionForm.setIndicadorParcelarSancoesMaisDeUmaConta("" + ConstantesSistema.NUMERO_NAO_INFORMADO); parcelamentoPerfilActionForm.setCategoria("" + ConstantesSistema.NUMERO_NAO_INFORMADO); parcelamentoPerfilActionForm.setNumeroConsumoEconomia(""); parcelamentoPerfilActionForm.setNumeroAreaConstruida(""); parcelamentoPerfilActionForm.setIndicadorRetroativoTarifaSocial("" + ConstantesSistema.NUMERO_NAO_INFORMADO); parcelamentoPerfilActionForm.setAnoMesReferenciaLimiteInferior(""); parcelamentoPerfilActionForm.setAnoMesReferenciaLimiteSuperior(""); parcelamentoPerfilActionForm.setPercentualDescontoTarifaSocial(""); parcelamentoPerfilActionForm.setParcelaQuantidadeMinimaFatura(""); parcelamentoPerfilActionForm.setIndicadorAlertaParcelaMinima("" + ConstantesSistema.NUMERO_NAO_INFORMADO); parcelamentoPerfilActionForm.setPercentualDescontoSancao(""); parcelamentoPerfilActionForm.setQuantidadeEconomias(""); parcelamentoPerfilActionForm.setCapacidadeHidrometro(""); parcelamentoPerfilActionForm.setIndicadorEntradaMinima("" + ConstantesSistema.NUMERO_NAO_INFORMADO); parcelamentoPerfilActionForm.setQuantidadeMaximaReparcelamento(""); parcelamentoPerfilActionForm.setDataLimiteDescontoPagamentoAVista(""); sessao.removeAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper"); sessao.removeAttribute("collectionParcelamentoDescontoInatividade"); sessao.removeAttribute("collectionParcelamentoDescontoAntiguidade"); sessao.removeAttribute("collectionParcelamentoQuantidadeReparcelamentoHelperLinhaRemovidas"); sessao.removeAttribute("collectionParcelamentoDescontoInatividadeLinhaRemovidas"); sessao.removeAttribute("collectionParcelamentoDescontoAntiguidadeLinhaRemovidas"); sessao.removeAttribute("collectionParcelamentoQuantidadePrestacaoHelperLinhaRemovidas"); sessao.removeAttribute("collectionParcelamentoDescontoInatividadeAVista"); sessao.removeAttribute("collectionParcelamentoDescontoInatividadeAVistaLinhaRemovidas"); } if (httpServletRequest.getParameter("adicionarParcelamentoQtdePerfil") != null && httpServletRequest.getParameter("adicionarParcelamentoQtdePerfil").equalsIgnoreCase("S") && parcelamentoPerfilActionForm.getQtdeMaximaReparcelamento() != null) { //-------------- bt adicionarParcelamentoQtdePerfil --------------- atualizaColecoesNaSessao(sessao,httpServletRequest); httpServletRequest.setAttribute("adicionarParcelamentoQtdePerfil","N"); } if (httpServletRequest.getParameter("adicionarParcelamentoDescontoAntiguidade") != null && httpServletRequest.getParameter("adicionarParcelamentoDescontoAntiguidade").equalsIgnoreCase("S") && !parcelamentoPerfilActionForm.getQuantidadeMinimaMesesDebito().equalsIgnoreCase("")){ // ------------------ bt adicionarParcelamentoDescontoAntiguidade ------------------------ atualizaColecoesNaSessao(sessao,httpServletRequest); adicionarParcelamentoDescontoAntiguidade(parcelamentoPerfilActionForm, sessao); httpServletRequest.setAttribute("adicionarParcelamentoDescontoAntiguidade" , "N"); } if (httpServletRequest.getParameter("adicionarParcelamentoDescontoInatividade") != null && httpServletRequest.getParameter("adicionarParcelamentoDescontoInatividade").equalsIgnoreCase("S") && !parcelamentoPerfilActionForm.getQuantidadeMaximaMesesInatividade().equalsIgnoreCase("")){ // ------------------ bt adicionarParcelamentoDescontoInatividade ------------------------ atualizaColecoesNaSessao(sessao,httpServletRequest); adicionarParcelamentoDescontoInatividade(parcelamentoPerfilActionForm,sessao); httpServletRequest.setAttribute("adicionarParcelamentoDescontoInatividade","N"); } if (httpServletRequest.getParameter("adicionarParcelamentoDescontoInatividadeAVista") != null && httpServletRequest.getParameter("adicionarParcelamentoDescontoInatividadeAVista").equalsIgnoreCase("S") && !parcelamentoPerfilActionForm.getQuantidadeMaximaMesesInatividadeAVista().equalsIgnoreCase("")){ // ------------------ bt adicionarParcelamentoDescontoInatividadeAVista ------------------------ atualizaColecoesNaSessao(sessao,httpServletRequest); adicionarParcelamentoDescontoInatividadeAVista(parcelamentoPerfilActionForm,sessao); httpServletRequest.setAttribute("adicionarParcelamentoDescontoInatividadeAVista","N"); } // DEFINI��O QUE IR� AUXILIAR O RETORNO DOS POPUPS sessao.setAttribute("UseCase", "INSERIRPERFIL"); if (sessao.getAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper") == null || ((Collection) sessao.getAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper")).size() == 0){ sessao.setAttribute("collectionParcelamentoQuantidadeReparcelamentoHelperVazia","1"); }else{ sessao.setAttribute("collectionParcelamentoQuantidadeReparcelamentoHelperVazia","2"); } //devolve o mapeamento de retorno return retorno; } private void adicionarParcelamentoDescontoAntiguidade(ParcelamentoPerfilActionForm parcelamentoPerfilActionForm, HttpSession sessao){ if (parcelamentoPerfilActionForm.getQuantidadeMinimaMesesDebito()== null || parcelamentoPerfilActionForm.getQuantidadeMinimaMesesDebito().equalsIgnoreCase("")){ throw new ActionServletException( // Informe Qtde. M�nima Meses de D�bito p/ Desconto "atencao.required", null, " Qtde. M�nima Meses de D�bito p/ Desconto"); }else if( Util.validarValorNaoNumericoComoBigDecimal(parcelamentoPerfilActionForm.getQuantidadeMinimaMesesDebito())){ throw new ActionServletException( // Qtde. M�nima Meses de D�bito p/ Desconto deve ser numerico "atencao.integer", null, " Qtde. M�nima Meses de D�bito p/ Desconto"); } Collection<ParcelamentoDescontoAntiguidade> collectionParcelamentoDescontoAntiguidade = null; if (sessao.getAttribute("collectionParcelamentoDescontoAntiguidade") != null) { collectionParcelamentoDescontoAntiguidade = (Collection) sessao .getAttribute("collectionParcelamentoDescontoAntiguidade"); } else { collectionParcelamentoDescontoAntiguidade = new ArrayList(); } Integer quantidadeMinimaMesesDebito = new Integer(parcelamentoPerfilActionForm.getQuantidadeMinimaMesesDebito()); //[FS0006]Verificar percentual de desconto /*FiltroSistemaParametro filtroSistemaParametro = new FiltroSistemaParametro(); Collection colecaoSistemaParametros = fachada.pesquisar( filtroSistemaParametro, SistemaParametro.class.getName()); SistemaParametro sistemaParametro = (SistemaParametro)colecaoSistemaParametros .iterator().next(); BigDecimal percentualMaximoAbatimento = sistemaParametro.getPercentualMaximoAbatimento();*/ BigDecimal percentualDescontoSemRestabelecimento = null; if (parcelamentoPerfilActionForm.getPercentualDescontoSemRestabelecimentoAntiguidade()== null || parcelamentoPerfilActionForm.getPercentualDescontoSemRestabelecimentoAntiguidade().equalsIgnoreCase("")){ throw new ActionServletException( // Informe Percentual de Desconto Sem Restabelecimento "atencao.required", null, " Percentual de Desconto Sem Restabelecimento"); }else{ percentualDescontoSemRestabelecimento = Util.formatarMoedaRealparaBigDecimal (parcelamentoPerfilActionForm.getPercentualDescontoSemRestabelecimentoAntiguidade()); /*//[FS0006]Verificar percentual de desconto if (percentualDescontoSemRestabelecimento.compareTo(percentualMaximoAbatimento) > 0 ){ //Percentual de Desconto Sem Restabelecimento � superior ao //Percentual M�ximo de Desconto de << percentualMaximoAbatimento >> permitido para Financiamneto throw new ActionServletException( "atencao.percentual_desconto_sem_rest_superior_percentual_max", null, "" + percentualMaximoAbatimento); }*/ } BigDecimal percentualDescontoComRestabelecimento = null; if (parcelamentoPerfilActionForm.getPercentualDescontoComRestabelecimentoAntiguidade()== null || parcelamentoPerfilActionForm.getPercentualDescontoComRestabelecimentoAntiguidade().equalsIgnoreCase("")){ throw new ActionServletException( // Informe Percentual de Desconto Com Restabelecimento "atencao.required", null, " Percentual de Desconto Com Restabelecimento"); }else{ percentualDescontoComRestabelecimento = Util.formatarMoedaRealparaBigDecimal (parcelamentoPerfilActionForm.getPercentualDescontoComRestabelecimentoAntiguidade()); //[FS0006]Verificar percentual de desconto /*if (percentualDescontoComRestabelecimento.compareTo(percentualMaximoAbatimento) > 0 ){ //Percentual de Desconto Com Restabelecimento � superior ao //Percentual M�ximo de Desconto de << percentualMaximoAbatimento >> permitido para Financiamneto throw new ActionServletException( "atencao.percentual_desconto_com_rest_superior_percentual_max", null,"" + percentualMaximoAbatimento); }*/ } BigDecimal percentualDescontoAtivo = null; if (parcelamentoPerfilActionForm.getPercentualDescontoAtivo()== null || parcelamentoPerfilActionForm.getPercentualDescontoAtivo().equalsIgnoreCase("")){ throw new ActionServletException( // Informe Percentual de Desconto Ativo "atencao.required", null, " Percentual de Desconto Ativo"); }else{ percentualDescontoAtivo = Util.formatarMoedaRealparaBigDecimal (parcelamentoPerfilActionForm.getPercentualDescontoAtivo()); //[FS0006]Verificar percentual de desconto /*if (percentualDescontoAtivo.compareTo(percentualMaximoAbatimento) > 0 ){ //Percentual de Desconto Ativo � superior ao //Percentual M�ximo de Desconto de << percentualMaximoAbatimento >> permitido para Financiamneto throw new ActionServletException( "atencao.percentual_desconto_ativo_superior_percentual_max",null,"" + percentualMaximoAbatimento); }*/ } ParcelamentoDescontoAntiguidade parcelamentoDescontoAntiguidadeNovo = new ParcelamentoDescontoAntiguidade(); if (collectionParcelamentoDescontoAntiguidade != null && !collectionParcelamentoDescontoAntiguidade.isEmpty()){ // se cole��o n�o estiver vazia // verificar se a qtd m�xima de presta��es do parcelamento ja foi informada ParcelamentoDescontoAntiguidade parcelamentoDescontoAntiguidadeAntigo = null; Iterator iterator = collectionParcelamentoDescontoAntiguidade.iterator(); while (iterator.hasNext()) { parcelamentoDescontoAntiguidadeAntigo = (ParcelamentoDescontoAntiguidade) iterator.next(); // Verificar quantidade m�nima meses de debito para desconto if (quantidadeMinimaMesesDebito.equals (parcelamentoDescontoAntiguidadeAntigo.getQuantidadeMinimaMesesDebito())){ //Quantidade M�nima Meses de Debito para Desconto j� informada throw new ActionServletException( "atencao.qtde_minima_meses_debito_desconto_ja_informado"); } } } if (parcelamentoPerfilActionForm.getIdContaMotivoRevisao() != null && !parcelamentoPerfilActionForm.getIdContaMotivoRevisao().equalsIgnoreCase("") && !parcelamentoPerfilActionForm.getIdContaMotivoRevisao().equals(ConstantesSistema.NUMERO_NAO_INFORMADO)){ FiltroContaMotivoRevisao filtroContaMotivoRevisao = new FiltroContaMotivoRevisao(); filtroContaMotivoRevisao.adicionarParametro(new ParametroSimples(FiltroContaMotivoRevisao.ID, new Integer(parcelamentoPerfilActionForm.getIdContaMotivoRevisao()))); Collection<ContaMotivoRevisao> collectionContaMotivoRevisao = fachada.pesquisar(filtroContaMotivoRevisao, ContaMotivoRevisao.class.getName()); ContaMotivoRevisao contaMotivoRevisao = (ContaMotivoRevisao) Util.retonarObjetoDeColecao(collectionContaMotivoRevisao); parcelamentoDescontoAntiguidadeNovo.setContaMotivoRevisao(contaMotivoRevisao); } parcelamentoDescontoAntiguidadeNovo.setQuantidadeMinimaMesesDebito(quantidadeMinimaMesesDebito); parcelamentoDescontoAntiguidadeNovo.setPercentualDescontoSemRestabelecimento(percentualDescontoSemRestabelecimento); parcelamentoDescontoAntiguidadeNovo.setPercentualDescontoComRestabelecimento(percentualDescontoComRestabelecimento); parcelamentoDescontoAntiguidadeNovo.setPercentualDescontoAtivo(percentualDescontoAtivo); parcelamentoDescontoAntiguidadeNovo.setUltimaAlteracao(new Date()); collectionParcelamentoDescontoAntiguidade.add(parcelamentoDescontoAntiguidadeNovo); parcelamentoPerfilActionForm.setQuantidadeMinimaMesesDebito(""); parcelamentoPerfilActionForm.setPercentualDescontoSemRestabelecimentoAntiguidade(""); parcelamentoPerfilActionForm.setPercentualDescontoComRestabelecimentoAntiguidade(""); parcelamentoPerfilActionForm.setPercentualDescontoAtivo(""); parcelamentoPerfilActionForm.setIdContaMotivoRevisao(String.valueOf(ConstantesSistema.NUMERO_NAO_INFORMADO)); //Ordena a cole��o pela Qtde. M�nima Meses de D�bito p/ Desconto Collections.sort((List) collectionParcelamentoDescontoAntiguidade, new Comparator() { public int compare(Object a, Object b) { Integer valorMinPrestacao1 = new Integer(((ParcelamentoDescontoAntiguidade) a).getQuantidadeMinimaMesesDebito().toString()) ; Integer valorMinPrestacao2 = new Integer(((ParcelamentoDescontoAntiguidade) b).getQuantidadeMinimaMesesDebito().toString()) ; return valorMinPrestacao1.compareTo(valorMinPrestacao2); } }); //manda para a sess�o a cole��o de ParcelamentoDescontoAntiguidade sessao.setAttribute("collectionParcelamentoDescontoAntiguidade", collectionParcelamentoDescontoAntiguidade); } private void adicionarParcelamentoDescontoInatividade(ParcelamentoPerfilActionForm parcelamentoPerfilActionForm, HttpSession sessao){ if (parcelamentoPerfilActionForm.getQuantidadeMaximaMesesInatividade() == null || parcelamentoPerfilActionForm.getQuantidadeMaximaMesesInatividade().equalsIgnoreCase("")){ throw new ActionServletException( // Informe Qtde. M�xima Meses de Inatividade da Lig. de �gua "atencao.required", null, " Qtde. M�xima Meses de Inatividade da Lig. de �gua"); }else if( Util.validarValorNaoNumericoComoBigDecimal(parcelamentoPerfilActionForm.getQuantidadeMaximaMesesInatividade())){ throw new ActionServletException( // Qtde. M�xima Meses de Inatividade da Lig. de �gua deve ser numerico "atencao.integer", null, " Qtde. M�xima Meses de Inatividade da Lig. de �gua"); } Collection<ParcelamentoDescontoInatividade> collectionParcelamentoDescontoInatividade = null; if (sessao.getAttribute("collectionParcelamentoDescontoInatividade") != null) { collectionParcelamentoDescontoInatividade = (Collection) sessao .getAttribute("collectionParcelamentoDescontoInatividade"); } else { collectionParcelamentoDescontoInatividade = new ArrayList(); } Integer quantidadeMaximaMesesInatividade = new Integer(parcelamentoPerfilActionForm.getQuantidadeMaximaMesesInatividade()); /*FiltroSistemaParametro filtroSistemaParametro = new FiltroSistemaParametro(); Collection colecaoSistemaParametros = fachada.pesquisar( filtroSistemaParametro, SistemaParametro.class.getName()); SistemaParametro sistemaParametro = (SistemaParametro)colecaoSistemaParametros .iterator().next(); BigDecimal percentualMaximoAbatimento = sistemaParametro.getPercentualMaximoAbatimento();*/ BigDecimal percentualDescontoSemRestabelecimento = null; if (parcelamentoPerfilActionForm.getPercentualDescontoSemRestabelecimentoInatividade()== null || parcelamentoPerfilActionForm.getPercentualDescontoSemRestabelecimentoInatividade().equalsIgnoreCase("")){ throw new ActionServletException( // Informe Percentual de Desconto Sem Restabelecimento "atencao.required", null, " Percentual de Desconto Sem Restabelecimento"); }else{ percentualDescontoSemRestabelecimento = Util.formatarMoedaRealparaBigDecimal (parcelamentoPerfilActionForm.getPercentualDescontoSemRestabelecimentoInatividade()); //[FS0006]Verificar percentual de desconto /*if (percentualDescontoSemRestabelecimento.compareTo(percentualMaximoAbatimento) > 0 ){ //Percentual de Desconto Sem Restabelecimento � superior ao //Percentual M�ximo de Desconto de << percentualMaximoAbatimento >> permitido para Financiamneto throw new ActionServletException( "atencao.percentual_desconto_sem_rest_superior_percentual_max", null, "" + percentualMaximoAbatimento); }*/ } BigDecimal percentualDescontoComRestabelecimento = null; if (parcelamentoPerfilActionForm.getPercentualDescontoComRestabelecimentoInatividade()== null || parcelamentoPerfilActionForm.getPercentualDescontoComRestabelecimentoInatividade().equalsIgnoreCase("")){ throw new ActionServletException( // Informe Percentual de Desconto Com Restabelecimento "atencao.required", null, " Percentual de Desconto Com Restabelecimento"); }else{ percentualDescontoComRestabelecimento = Util.formatarMoedaRealparaBigDecimal (parcelamentoPerfilActionForm.getPercentualDescontoComRestabelecimentoInatividade()); //[FS0006]Verificar percentual de desconto /*if (percentualDescontoComRestabelecimento.compareTo(percentualMaximoAbatimento) > 0 ){ //Percentual de Desconto Com Restabelecimento � superior ao //Percentual M�ximo de Desconto de << percentualMaximoAbatimento >> permitido para Financiamneto throw new ActionServletException( "atencao.percentual_desconto_com_rest_superior_percentual_max", null,"" + percentualMaximoAbatimento); }*/ } ParcelamentoDescontoInatividade parcelamentoDescontoInatividadeNovo = new ParcelamentoDescontoInatividade(); if (collectionParcelamentoDescontoInatividade != null && !collectionParcelamentoDescontoInatividade.isEmpty()){ // se cole��o n�o estiver vazia // verificar se a qtd m�xima de presta��es do parcelamento ja foi informada ParcelamentoDescontoInatividade parcelamentoDescontoInatividadeAntigo = null; Iterator iterator = collectionParcelamentoDescontoInatividade.iterator(); while (iterator.hasNext()) { parcelamentoDescontoInatividadeAntigo = (ParcelamentoDescontoInatividade) iterator.next(); //[FS0003] Verificar quantidade m�nima meses de debito if (quantidadeMaximaMesesInatividade.equals (parcelamentoDescontoInatividadeAntigo.getQuantidadeMaximaMesesInatividade())){ //Quantidade M�xima Meses de Inatividade de Liga��o de �gua j� informada throw new ActionServletException( "atencao.qtde_maxima_meses_inatividade_ja_informado"); } } } parcelamentoDescontoInatividadeNovo.setQuantidadeMaximaMesesInatividade(quantidadeMaximaMesesInatividade); parcelamentoDescontoInatividadeNovo.setPercentualDescontoSemRestabelecimento(percentualDescontoSemRestabelecimento); parcelamentoDescontoInatividadeNovo.setPercentualDescontoComRestabelecimento(percentualDescontoComRestabelecimento); parcelamentoDescontoInatividadeNovo.setUltimaAlteracao(new Date()); collectionParcelamentoDescontoInatividade.add(parcelamentoDescontoInatividadeNovo); parcelamentoPerfilActionForm.setQuantidadeMaximaMesesInatividade(""); parcelamentoPerfilActionForm.setPercentualDescontoSemRestabelecimentoInatividade(""); parcelamentoPerfilActionForm.setPercentualDescontoComRestabelecimentoInatividade(""); parcelamentoPerfilActionForm.setPercentualDescontoAtivo(""); //Ordena a cole��o pela Qtde. M�xima Meses de Inatividade da Lig. de �gua Collections.sort((List) collectionParcelamentoDescontoInatividade, new Comparator() { public int compare(Object a, Object b) { Integer valorMinPrestacao1 = new Integer(((ParcelamentoDescontoInatividade) a).getQuantidadeMaximaMesesInatividade().toString() ); Integer valorMinPrestacao2 = new Integer(((ParcelamentoDescontoInatividade) b).getQuantidadeMaximaMesesInatividade().toString()) ; return valorMinPrestacao1.compareTo(valorMinPrestacao2); } }); //manda para a sess�o a cole��o de ParcelamentoDescontoInatividade sessao.setAttribute("collectionParcelamentoDescontoInatividade", collectionParcelamentoDescontoInatividade); } private void atualizaColecoesNaSessao(HttpSession sessao, HttpServletRequest httpServletRequest){ // collectionParcelamentoDescontoAntiguidade if (sessao.getAttribute("collectionParcelamentoDescontoAntiguidade") != null && !sessao.getAttribute("collectionParcelamentoDescontoAntiguidade").equals( "")) { Collection collectionParcelamentoDescontoAntiguidade = (Collection) sessao .getAttribute("collectionParcelamentoDescontoAntiguidade"); // cria as vari�veis para recuperar os par�metros do request e jogar // no objeto ParcelamentoDescontoAntiguidade String vlSemRestAntiguidade = null; String vlComRestAntiguidade = null; String vlDescontoAtivo = null; Iterator iteratorParcelamentoDescontoAntiguidade = collectionParcelamentoDescontoAntiguidade .iterator(); while (iteratorParcelamentoDescontoAntiguidade.hasNext()) { ParcelamentoDescontoAntiguidade parcelamentoDescontoAntiguidade = (ParcelamentoDescontoAntiguidade) iteratorParcelamentoDescontoAntiguidade .next(); long valorTempo = parcelamentoDescontoAntiguidade.getUltimaAlteracao() .getTime(); vlSemRestAntiguidade = (String) httpServletRequest.getParameter("vlSemRestAntiguidade" + valorTempo); vlComRestAntiguidade = httpServletRequest.getParameter("vlComRestAntiguidade" + valorTempo); vlDescontoAtivo = httpServletRequest.getParameter("vlDescontoAtivo" + valorTempo); // inseri essas vari�veis no objeto ParcelamentoDescontoAntiguidade BigDecimal percentualDescontoSemRestabelecimentoAntiguidade = null; if (vlSemRestAntiguidade != null && !vlSemRestAntiguidade.equals("")) { percentualDescontoSemRestabelecimentoAntiguidade = Util .formatarMoedaRealparaBigDecimal(vlSemRestAntiguidade); } BigDecimal percentualDescontoComRestabelecimentoAntiguidade = null; if (vlComRestAntiguidade != null && !vlComRestAntiguidade.equals("")) { percentualDescontoComRestabelecimentoAntiguidade = Util .formatarMoedaRealparaBigDecimal(vlComRestAntiguidade); } BigDecimal percentualDescontoAtivoAntiguidade = null; if (vlDescontoAtivo != null && !vlDescontoAtivo.equals("")) { percentualDescontoAtivoAntiguidade = Util .formatarMoedaRealparaBigDecimal(vlDescontoAtivo); } parcelamentoDescontoAntiguidade. setPercentualDescontoSemRestabelecimento(percentualDescontoSemRestabelecimentoAntiguidade); parcelamentoDescontoAntiguidade. setPercentualDescontoComRestabelecimento(percentualDescontoComRestabelecimentoAntiguidade); parcelamentoDescontoAntiguidade. setPercentualDescontoAtivo(percentualDescontoAtivoAntiguidade); } } //collectionParcelamentoDescontoInatividade if (sessao.getAttribute("collectionParcelamentoDescontoInatividade") != null && !sessao.getAttribute("collectionParcelamentoDescontoInatividade").equals( "")) { Collection collectionParcelamentoDescontoInatividade = (Collection) sessao .getAttribute("collectionParcelamentoDescontoInatividade"); // cria as vari�veis para recuperar os par�metros do request e jogar // no objeto ParcelamentoDescontoInatividade String vlSemRestInatividade = null; String vlComRestInatividade = null; Iterator iteratorParcelamentoDescontoInatividade = collectionParcelamentoDescontoInatividade .iterator(); while (iteratorParcelamentoDescontoInatividade.hasNext()) { ParcelamentoDescontoInatividade parcelamentoDescontoInatividade = (ParcelamentoDescontoInatividade) iteratorParcelamentoDescontoInatividade .next(); long valorTempo = parcelamentoDescontoInatividade.getUltimaAlteracao() .getTime(); vlSemRestInatividade = (String) httpServletRequest.getParameter("vlSemRestInatividade" + valorTempo); vlComRestInatividade = httpServletRequest.getParameter("vlComRestInatividade" + valorTempo); // insere essas vari�veis no objeto ParcelamentoDescontoInatividade BigDecimal percentualDescontoSemRestabelecimentoInatividade = null; if (vlSemRestInatividade != null && !vlSemRestInatividade.equals("")) { percentualDescontoSemRestabelecimentoInatividade = Util .formatarMoedaRealparaBigDecimal(vlSemRestInatividade); } BigDecimal percentualDescontoComRestabelecimentoInatividade = null; if (vlComRestInatividade != null && !vlComRestInatividade.equals("")) { percentualDescontoComRestabelecimentoInatividade = Util .formatarMoedaRealparaBigDecimal(vlComRestInatividade); } parcelamentoDescontoInatividade. setPercentualDescontoSemRestabelecimento(percentualDescontoSemRestabelecimentoInatividade); parcelamentoDescontoInatividade. setPercentualDescontoComRestabelecimento(percentualDescontoComRestabelecimentoInatividade); } } //collectionParcelamentoDescontoInatividadeAVista if (sessao.getAttribute("collectionParcelamentoDescontoInatividadeAVista") != null && !sessao.getAttribute("collectionParcelamentoDescontoInatividadeAVista").equals("")) { Collection collectionParcelamentoDescontoInatividadeAVista = (Collection) sessao .getAttribute("collectionParcelamentoDescontoInatividadeAVista"); // cria as vari�veis para recuperar os par�metros do request e jogar // no objeto ParcelamentoDescontoInatividade String vlSemRestInatividade = null; String vlComRestInatividade = null; Iterator iteratorParcelamentoDescontoInatividade = collectionParcelamentoDescontoInatividadeAVista.iterator(); while (iteratorParcelamentoDescontoInatividade.hasNext()) { ParcDesctoInativVista parcelamentoDescontoInatividade = (ParcDesctoInativVista) iteratorParcelamentoDescontoInatividade.next(); long valorTempo = parcelamentoDescontoInatividade.getUltimaAlteracao().getTime(); vlSemRestInatividade = (String) httpServletRequest.getParameter("vlSemRestInatividadeAVista"+ valorTempo); vlComRestInatividade = httpServletRequest.getParameter("vlComRestInatividadeAVista"+ valorTempo); // insere essas vari�veis no objeto ParcelamentoDescontoInatividade BigDecimal percentualDescontoSemRestabelecimentoInatividade = null; if (vlSemRestInatividade != null && !vlSemRestInatividade.equals("")) { percentualDescontoSemRestabelecimentoInatividade = Util .formatarMoedaRealparaBigDecimal(vlSemRestInatividade); } BigDecimal percentualDescontoComRestabelecimentoInatividade = null; if (vlComRestInatividade != null && !vlComRestInatividade.equals("")) { percentualDescontoComRestabelecimentoInatividade = Util .formatarMoedaRealparaBigDecimal(vlComRestInatividade); } parcelamentoDescontoInatividade. setPercentualDescontoSemRestabelecimento(percentualDescontoSemRestabelecimentoInatividade); parcelamentoDescontoInatividade. setPercentualDescontoComRestabelecimento(percentualDescontoComRestabelecimentoInatividade); } } //collectionParcelamentoQuantidadeReparcelamentoHelper /* if (sessao.getAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper") != null && !sessao.getAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper").equals( "")) { Collection collectionParcelamentoQuantidadeReparcelamentoHelper = (Collection) sessao .getAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper"); // cria as vari�veis para recuperar os par�metros do request e jogar // no objeto ParcelamentoQuantidadeReparcelamentoHelper String vlMinPrest = null; Iterator iteratorParcelamentoQuantidadeReparcelamentoHelper = collectionParcelamentoQuantidadeReparcelamentoHelper .iterator(); while (iteratorParcelamentoQuantidadeReparcelamentoHelper.hasNext()) { ParcelamentoQuantidadeReparcelamentoHelper parcelamentoQuantidadeReparcelamentoHelper = (ParcelamentoQuantidadeReparcelamentoHelper) iteratorParcelamentoQuantidadeReparcelamentoHelper .next(); long valorTempo = parcelamentoQuantidadeReparcelamentoHelper.getUltimaAlteracao() .getTime(); vlMinPrest = (String) httpServletRequest.getParameter("vlMinPrest" + valorTempo); // insere essas vari�veis no objeto ParcelamentoQuantidadeReparcelamentoHelper BigDecimal valorMinimoPrestacao = null; if (vlMinPrest != null && !vlMinPrest.equals("")) { valorMinimoPrestacao = Util.formatarMoedaRealparaBigDecimal(vlMinPrest); } parcelamentoQuantidadeReparcelamentoHelper.setValorMinimoPrestacao(valorMinimoPrestacao); } } */ } private void adicionarParcelamentoDescontoInatividadeAVista( ParcelamentoPerfilActionForm parcelamentoPerfilActionForm,HttpSession sessao){ if (parcelamentoPerfilActionForm.getQuantidadeMaximaMesesInatividadeAVista() == null || parcelamentoPerfilActionForm.getQuantidadeMaximaMesesInatividadeAVista().equalsIgnoreCase("")){ throw new ActionServletException( // Informe Qtde. M�xima Meses de Inatividade da Lig. de �gua "atencao.required", null, " Qtde. M�xima Meses de Inatividade da Lig. de �gua"); }else if( Util.validarValorNaoNumericoComoBigDecimal(parcelamentoPerfilActionForm.getQuantidadeMaximaMesesInatividadeAVista())){ throw new ActionServletException( // Qtde. M�xima Meses de Inatividade da Lig. de �gua deve ser numerico "atencao.integer", null, " Qtde. M�xima Meses de Inatividade da Lig. de �gua"); } Collection<ParcDesctoInativVista> collectionParcelamentoDescontoInatividadeAVista = null; if (sessao.getAttribute("collectionParcelamentoDescontoInatividadeAVista") != null) { collectionParcelamentoDescontoInatividadeAVista = (Collection) sessao .getAttribute("collectionParcelamentoDescontoInatividadeAVista"); } else { collectionParcelamentoDescontoInatividadeAVista = new ArrayList(); } Integer quantidadeMaximaMesesInatividade = new Integer(parcelamentoPerfilActionForm.getQuantidadeMaximaMesesInatividadeAVista()); BigDecimal percentualDescontoSemRestabelecimento = null; if (parcelamentoPerfilActionForm.getPercentualDescontoSemRestabelecimentoInatividadeAVista()== null || parcelamentoPerfilActionForm.getPercentualDescontoSemRestabelecimentoInatividadeAVista().equalsIgnoreCase("")){ throw new ActionServletException( // Informe Percentual de Desconto Sem Restabelecimento "atencao.required", null, " Percentual de Desconto Sem Restabelecimento"); }else{ percentualDescontoSemRestabelecimento = Util.formatarMoedaRealparaBigDecimal (parcelamentoPerfilActionForm.getPercentualDescontoSemRestabelecimentoInatividadeAVista()); } BigDecimal percentualDescontoComRestabelecimento = null; if (parcelamentoPerfilActionForm.getPercentualDescontoComRestabelecimentoInatividadeAVista()== null || parcelamentoPerfilActionForm.getPercentualDescontoComRestabelecimentoInatividadeAVista().equalsIgnoreCase("")){ throw new ActionServletException( // Informe Percentual de Desconto Com Restabelecimento "atencao.required", null, " Percentual de Desconto Com Restabelecimento"); }else{ percentualDescontoComRestabelecimento = Util.formatarMoedaRealparaBigDecimal (parcelamentoPerfilActionForm.getPercentualDescontoComRestabelecimentoInatividadeAVista()); } ParcDesctoInativVista parcelamentoDescontoInatividadeNovo = new ParcDesctoInativVista(); if (collectionParcelamentoDescontoInatividadeAVista != null && !collectionParcelamentoDescontoInatividadeAVista.isEmpty()){ // se cole��o n�o estiver vazia // verificar se a qtd m�xima de presta��es do parcelamento ja foi informada ParcDesctoInativVista parcelamentoDescontoInatividadeAntigo = null; Iterator iterator = collectionParcelamentoDescontoInatividadeAVista.iterator(); while (iterator.hasNext()) { parcelamentoDescontoInatividadeAntigo = (ParcDesctoInativVista) iterator.next(); //[FS0003] Verificar quantidade m�nima meses de debito if (quantidadeMaximaMesesInatividade.equals (parcelamentoDescontoInatividadeAntigo.getQuantidadeMaximaMesesInatividade())){ //Quantidade M�xima Meses de Inatividade de Liga��o de �gua j� informada throw new ActionServletException( "atencao.qtde_maxima_meses_inatividade_ja_informado"); } } } parcelamentoDescontoInatividadeNovo.setQuantidadeMaximaMesesInatividade(quantidadeMaximaMesesInatividade); parcelamentoDescontoInatividadeNovo.setPercentualDescontoSemRestabelecimento(percentualDescontoSemRestabelecimento); parcelamentoDescontoInatividadeNovo.setPercentualDescontoComRestabelecimento(percentualDescontoComRestabelecimento); parcelamentoDescontoInatividadeNovo.setUltimaAlteracao(new Date()); collectionParcelamentoDescontoInatividadeAVista.add(parcelamentoDescontoInatividadeNovo); parcelamentoPerfilActionForm.setQuantidadeMaximaMesesInatividadeAVista(""); parcelamentoPerfilActionForm.setPercentualDescontoSemRestabelecimentoInatividadeAVista(""); parcelamentoPerfilActionForm.setPercentualDescontoComRestabelecimentoInatividadeAVista(""); // parcelamentoPerfilActionForm.setPercentualDescontoAtivo(""); //Ordena a cole��o pela Qtde. M�xima Meses de Inatividade da Lig. de �gua Collections.sort((List) collectionParcelamentoDescontoInatividadeAVista, new Comparator() { public int compare(Object a, Object b) { Integer valorMinPrestacao1 = new Integer(((ParcDesctoInativVista) a).getQuantidadeMaximaMesesInatividade().toString() ); Integer valorMinPrestacao2 = new Integer(((ParcDesctoInativVista) b).getQuantidadeMaximaMesesInatividade().toString()) ; return valorMinPrestacao1.compareTo(valorMinPrestacao2); } }); //manda para a sess�o a cole��o de ParcelamentoDescontoInatividadeAVista sessao.setAttribute("collectionParcelamentoDescontoInatividadeAVista", collectionParcelamentoDescontoInatividadeAVista); } }