public ActionForward execute( ActionMapping actionMapping, ActionForm actionForm, HttpServletRequest httpServletRequest, HttpServletResponse httpServletResponse) { String method = httpServletRequest.getParameter("method"); ActionForward retorno = actionMapping.findForward("exibirInserir"); HttpSession sessao = httpServletRequest.getSession(false); Usuario usuarioLogado = (Usuario) sessao.getAttribute("usuarioLogado"); InserirResolucaoDiretoriaContratoParcelamentoActionForm form = (InserirResolucaoDiretoriaContratoParcelamentoActionForm) actionForm; // ContratoParcelamentoRD que vai ser cadastrado no sistema ContratoParcelamentoRD contratoCadastrar = (ContratoParcelamentoRD) sessao.getAttribute("contratoCadastrar"); if (contratoCadastrar == null) { contratoCadastrar = new ContratoParcelamentoRD(); } if (method != null && method.equals("concluirInserirRD")) { List<QuantidadePrestacoes> parcelas = (List<QuantidadePrestacoes>) sessao.getAttribute("parcelas"); if (form.getIndicadorParcelamentoJuros() != null && !form.getIndicadorParcelamentoJuros().toString().trim().equals("") && form.getIndicadorParcelamentoJuros().compareTo(ConstantesSistema.SIM) == 0) { form.setIndicadorInformarParcela(ConstantesSistema.NAO); } String validacao = validarFormulario(form); // Verifica a existência de algum ContratoParcelamentoRD com o número informado pelo usuário if (form != null && form.getNumero() != null && !"".equals(form.getNumero())) { ContratoParcelamentoRD contrato = fachada.pesquisarContratoParcelamentoRDPorNumero(form.getNumero()); if (contrato != null) { validacao = "Já existe RD com este número. Informe outro número"; } } if (validacao.equals("") && validarNumeroMaxParc(parcelas, form) == false) { validacao = "Parcela informada excede o número máximo de parcelas da RD"; } if (!validacao.equals("")) { carregarFormContratoCadastrar(contratoCadastrar, form); Collections.sort(parcelas, new ComparatorParcela()); sessao.setAttribute("parcelas", parcelas); sessao.setAttribute("contratoCadastrar", contratoCadastrar); sessao.setAttribute("atencao", validacao); sessao.setAttribute("voltar", "document.forms[0].submit();"); retorno = actionMapping.findForward("exibirError"); } else { carregarFormContratoCadastrar(contratoCadastrar, form); Collections.sort(parcelas, new ComparatorParcela()); Integer contratoId = (Integer) fachada.inserirContratoParcelamentoResolucaoDiretoria( contratoCadastrar, parcelas, usuarioLogado); if (contratoId != null && contratoId != 0) { retorno = actionMapping.findForward("telaSucesso"); montarPaginaSucesso( httpServletRequest, "Resolução de diretoria para contratos de parcelamento por cliente - " + contratoCadastrar.getNumero() + " - inserida com sucesso", "Inserir outra Resolução de diretoria para contratos de parcelamento por cliente", "exibirInserirResolucaoDiretoriaContratoParcelamentoAction.do?menu=sim", "exibirAtualizarResolucaoDiretoriaContratoParcelamentoAction.do?numeroContratoParcelamentoRD=" + contratoCadastrar.getNumero(), "Atualizar Resolução de diretoria para contratos de parcelamento por cliente inserida"); } else { throw new ActionServletException("erro.sistema"); } } } else if (method != null && method.equals("inserirParcela")) { retorno = actionMapping.findForward("exibirInserir"); List<QuantidadePrestacoes> parcelas = (List<QuantidadePrestacoes>) sessao.getAttribute("parcelas"); if (parcelas == null) { parcelas = new ArrayList<QuantidadePrestacoes>(); } String parcela = httpServletRequest.getParameter("parcela"); String taxaJuros = httpServletRequest.getParameter("taxaJuros"); boolean parcelaExistente = false; boolean campoInvalido = false; if (parcela != null && !parcela.equals("") && taxaJuros != null && !taxaJuros.equals("") && Util.formatarMoedaRealparaBigDecimal(taxaJuros).compareTo(BigDecimal.ZERO) != 0) { for (QuantidadePrestacoes prestacoes : parcelas) { if (prestacoes.getQtdFaturasParceladas() == Integer.parseInt(parcela)) { parcelaExistente = true; } } } else { campoInvalido = true; } if (parcelaExistente == false && campoInvalido == false) { QuantidadePrestacoes prestacao = new QuantidadePrestacoes(); prestacao.setQtdFaturasParceladas(Integer.parseInt(parcela)); prestacao.setUltimaAlteracao(new Date()); taxaJuros = taxaJuros.replace(',', '.'); if (taxaJuros.trim().equals("")) { taxaJuros = "0"; } BigDecimal taxa = new BigDecimal(taxaJuros); prestacao.setTaxaJuros(taxa); parcelas.add(prestacao); carregarFormContratoCadastrar(contratoCadastrar, form); Collections.sort(parcelas, new ComparatorParcela()); sessao.setAttribute("parcelas", parcelas); sessao.setAttribute("contratoCadastrar", contratoCadastrar); } else { carregarFormContratoCadastrar(contratoCadastrar, form); sessao.setAttribute("parcelas", parcelas); sessao.setAttribute("contratoCadastrar", contratoCadastrar); if (parcelaExistente) { throw new ActionServletException("atencao.parcela_informada_ja_existente"); } else { throw new ActionServletException( "atencao.erro_invalido", "Campo Parcelas ou Taxa de Juros"); } } } else if (method != null && method.equals("removerParcela")) { retorno = actionMapping.findForward("exibirInserir"); List<QuantidadePrestacoes> parcelas = (List<QuantidadePrestacoes>) sessao.getAttribute("parcelas"); String parcela = httpServletRequest.getParameter("parcela"); if (parcela != null && !parcela.equals("")) { for (int i = 0; i < parcelas.size(); i++) { if (parcelas.get(i).getQtdFaturasParceladas() == Integer.parseInt(parcela)) { parcelas.remove(i); i = parcelas.size(); } } } else { throw new ActionServletException("erro.sistema"); } carregarFormContratoCadastrar(contratoCadastrar, form); Collections.sort(parcelas, new ComparatorParcela()); sessao.setAttribute("parcelas", parcelas); sessao.setAttribute("contratoCadastrar", contratoCadastrar); } else if (method != null && method.equals("limparColecaoParcelas")) { contratoCadastrar.setIndicadorParcelamentoJuros(ConstantesSistema.NAO); form.setIndicadorParcelamentoJuros(ConstantesSistema.NAO); sessao.removeAttribute("parcelas"); sessao.setAttribute("contratoCadastrar", contratoCadastrar); } return retorno; }