public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse) {

    ActionForward retorno =
        actionMapping.findForward("exibirAtualizarVencimentoFaturaClienteResponsavel");
    HttpSession sessao = httpServletRequest.getSession(false);

    AtualizarVencimentoFaturaClienteResponsavelActionForm form =
        (AtualizarVencimentoFaturaClienteResponsavelActionForm) actionForm;
    Fachada fachada = Fachada.getInstancia();

    Date dataVencimento = Util.converteStringParaDate(form.getDataVencimento());
    String anoMesReferencia = Util.formatarMesAnoParaAnoMesSemBarra(form.getAnoMesReferencia());
    Integer qtdeContas = 0;

    if (dataVencimento == null) {
      throw new ActionServletException(
          "atencao.informe_campo_obrigatorio", null, "Data vencimento");
    }

    if (anoMesReferencia == null) {
      throw new ActionServletException(
          "atencao.informe_campo_obrigatorio", null, "Mês/Ano de Referência");
    }

    qtdeContas = fachada.countFaturasClienteResponsaveis(anoMesReferencia);

    // Controlamos o cancelamento de contas pagas
    Object[] arrayValidaQtdeFaturas =
        validarQtdeFaturas(qtdeContas, httpServletRequest, actionMapping);

    if ((Boolean) arrayValidaQtdeFaturas[2]) {
      return (ActionForward) arrayValidaQtdeFaturas[0];
    }

    Boolean confirmadoCancelamentoContasPagas = (Boolean) arrayValidaQtdeFaturas[1];

    if (confirmadoCancelamentoContasPagas != null && !confirmadoCancelamentoContasPagas) {
      return retorno;
    }

    fachada.atualizarVecimentoFaturaClienteResponsavel(dataVencimento, anoMesReferencia);

    montarPaginaSucesso(
        httpServletRequest,
        "Atualização do vencimento de faturas realizada com sucesso",
        "Voltar",
        "/exibirAtualizarVencimentoFaturaClienteResponsavel.do");

    retorno = (ActionForward) arrayValidaQtdeFaturas[0];
    return retorno;
  }
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse) {

    ActionForward retorno = actionMapping.findForward("telaSucesso");
    HttpSession sessao = httpServletRequest.getSession(false);
    ParcelamentoPerfilActionForm parcelamentoPerfilActionForm =
        (ParcelamentoPerfilActionForm) actionForm;

    String idResolucaoDiretoria = parcelamentoPerfilActionForm.getResolucaoDiretoria();
    String idImovelSituacaoTipo = parcelamentoPerfilActionForm.getImovelSituacaoTipo();

    String idImovelPerfil = null;
    if (parcelamentoPerfilActionForm.getImovelPerfil() != null
        && !parcelamentoPerfilActionForm
            .getImovelPerfil()
            .equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
      idImovelPerfil = parcelamentoPerfilActionForm.getImovelPerfil();
    }

    String idSubcategoria = null;
    if (parcelamentoPerfilActionForm.getSubcategoria() != null
        && !parcelamentoPerfilActionForm
            .getSubcategoria()
            .equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
      idSubcategoria = parcelamentoPerfilActionForm.getSubcategoria();
    }

    String idCategoria = null;
    if (parcelamentoPerfilActionForm.getCategoria() != null
        && !parcelamentoPerfilActionForm
            .getCategoria()
            .equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
      idCategoria = parcelamentoPerfilActionForm.getCategoria();
    }

    /*
     *
     */
    String percentualDescontoAcrescimoMulta = null;
    if (parcelamentoPerfilActionForm.getPercentualDescontoAcrescimoMulta() != null
        && !parcelamentoPerfilActionForm
            .getPercentualDescontoAcrescimoMulta()
            .equalsIgnoreCase("")) {
      percentualDescontoAcrescimoMulta =
          parcelamentoPerfilActionForm
              .getPercentualDescontoAcrescimoMulta()
              .toString()
              .replace(",", ".");
    }

    String percentualDescontoAcrescimoJurosMora = null;
    if (parcelamentoPerfilActionForm.getPercentualDescontoAcrescimoJurosMora() != null
        && !parcelamentoPerfilActionForm
            .getPercentualDescontoAcrescimoJurosMora()
            .equalsIgnoreCase("")) {
      percentualDescontoAcrescimoJurosMora =
          parcelamentoPerfilActionForm
              .getPercentualDescontoAcrescimoJurosMora()
              .toString()
              .replace(",", ".");
    }

    String percentualDescontoAcrescimoAtualizacaoMonetaria = null;
    if (parcelamentoPerfilActionForm.getPercentualDescontoAcrescimoAtualizacaoMonetaria() != null
        && !parcelamentoPerfilActionForm
            .getPercentualDescontoAcrescimoAtualizacaoMonetaria()
            .equalsIgnoreCase("")) {
      percentualDescontoAcrescimoAtualizacaoMonetaria =
          parcelamentoPerfilActionForm
              .getPercentualDescontoAcrescimoAtualizacaoMonetaria()
              .toString()
              .replace(",", ".");
    }
    // fim alteração

    String percentualDescontoAcrescimoPagamentoAVista = null;
    if (parcelamentoPerfilActionForm.getPercentualDescontoAcrescimoPagamentoAVista() != null
        && !parcelamentoPerfilActionForm
            .getPercentualDescontoAcrescimoPagamentoAVista()
            .equalsIgnoreCase("")) {
      percentualDescontoAcrescimoPagamentoAVista =
          parcelamentoPerfilActionForm
              .getPercentualDescontoAcrescimoPagamentoAVista()
              .toString()
              .replace(",", ".");
    }

    String percentualTarifaMinimaPrestacao = null;
    if (parcelamentoPerfilActionForm.getPercentualTarifaMinimaPrestacao() != null
        && !parcelamentoPerfilActionForm
            .getPercentualTarifaMinimaPrestacao()
            .equalsIgnoreCase("")) {
      percentualTarifaMinimaPrestacao =
          parcelamentoPerfilActionForm
              .getPercentualTarifaMinimaPrestacao()
              .toString()
              .replace(",", ".");
    }

    atualizaColecoesNaSessao(sessao, httpServletRequest);

    // collectionParcelamentoQuantidadeReparcelamentoHelper
    Collection collectionParcelamentoQuantidadeReparcelamentoHelper = null;
    if (sessao.getAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper") != null) {
      collectionParcelamentoQuantidadeReparcelamentoHelper =
          (Collection) sessao.getAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper");
    }

    // collectionParcelamentoDescontoInatividade
    Collection collectionParcelamentoDescontoInatividade = null;
    if (sessao.getAttribute("collectionParcelamentoDescontoInatividade") != null) {
      collectionParcelamentoDescontoInatividade =
          (Collection) sessao.getAttribute("collectionParcelamentoDescontoInatividade");
    }

    // collectionParcelamentoDescontoAntiguidade
    Collection collectionParcelamentoDescontoAntiguidade = null;
    if (sessao.getAttribute("collectionParcelamentoDescontoAntiguidade") != null) {
      collectionParcelamentoDescontoAntiguidade =
          (Collection) sessao.getAttribute("collectionParcelamentoDescontoAntiguidade");
    }

    // collectionParcelamentoDescontoInatividade
    Collection collectionParcelamentoDescontoInatividadeAVista = null;
    if (sessao.getAttribute("collectionParcelamentoDescontoInatividadeAVista") != null) {
      collectionParcelamentoDescontoInatividadeAVista =
          (Collection) sessao.getAttribute("collectionParcelamentoDescontoInatividadeAVista");
    }

    validacaoFinal(
        idResolucaoDiretoria,
        idImovelSituacaoTipo,
        idImovelPerfil,
        idSubcategoria,
        percentualDescontoAcrescimoMulta,
        percentualDescontoAcrescimoJurosMora,
        percentualDescontoAcrescimoAtualizacaoMonetaria,
        httpServletRequest,
        collectionParcelamentoQuantidadeReparcelamentoHelper,
        collectionParcelamentoDescontoAntiguidade,
        collectionParcelamentoDescontoInatividade,
        percentualTarifaMinimaPrestacao,
        collectionParcelamentoDescontoInatividadeAVista,
        percentualDescontoAcrescimoPagamentoAVista);

    ParcelamentoPerfil parcelamentoPerfilNova = new ParcelamentoPerfil();

    ResolucaoDiretoria resolucaoDiretoria = null;
    if (idResolucaoDiretoria != null && !idResolucaoDiretoria.equals("")) {
      resolucaoDiretoria = new ResolucaoDiretoria();
      resolucaoDiretoria.setId(new Integer(idResolucaoDiretoria));
      parcelamentoPerfilNova.setResolucaoDiretoria(resolucaoDiretoria);
    }

    ImovelSituacaoTipo imovelSituacaoTipo = null;
    if (idImovelSituacaoTipo != null
        && !idImovelSituacaoTipo.equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
      imovelSituacaoTipo = new ImovelSituacaoTipo();
      imovelSituacaoTipo.setId(new Integer(idImovelSituacaoTipo));
      parcelamentoPerfilNova.setImovelSituacaoTipo(imovelSituacaoTipo);
    }

    ImovelPerfil imovelPerfil = null;
    if (idImovelPerfil != null
        && !idImovelPerfil.equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
      imovelPerfil = new ImovelPerfil();
      imovelPerfil.setId(new Integer(idImovelPerfil));
    }
    parcelamentoPerfilNova.setImovelPerfil(imovelPerfil);

    Subcategoria subcategoria = null;
    if (idSubcategoria != null
        && !idSubcategoria.equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
      subcategoria = new Subcategoria();
      subcategoria.setId(new Integer(idSubcategoria));
    }
    parcelamentoPerfilNova.setSubcategoria(subcategoria);

    /*
     *
     */
    if (parcelamentoPerfilActionForm.getPercentualDescontoAcrescimoMulta() != null
        && !parcelamentoPerfilActionForm
            .getPercentualDescontoAcrescimoMulta()
            .equalsIgnoreCase("")) {
      parcelamentoPerfilNova.setPercentualDescontoAcrescimoMulta(
          new BigDecimal(percentualDescontoAcrescimoMulta));
    } else {
      parcelamentoPerfilNova.setPercentualDescontoAcrescimoMulta(new BigDecimal(0));
    }

    if (parcelamentoPerfilActionForm.getPercentualDescontoAcrescimoJurosMora() != null
        && !parcelamentoPerfilActionForm
            .getPercentualDescontoAcrescimoJurosMora()
            .equalsIgnoreCase("")) {
      parcelamentoPerfilNova.setPercentualDescontoAcrescimoJurosMora(
          new BigDecimal(percentualDescontoAcrescimoJurosMora));
    } else {
      parcelamentoPerfilNova.setPercentualDescontoAcrescimoJurosMora(new BigDecimal(0));
    }

    if (parcelamentoPerfilActionForm.getPercentualDescontoAcrescimoAtualizacaoMonetaria() != null
        && !parcelamentoPerfilActionForm
            .getPercentualDescontoAcrescimoAtualizacaoMonetaria()
            .equalsIgnoreCase("")) {
      parcelamentoPerfilNova.setPercentualDescontoAcrescimoAtualizacaoMonetaria(
          new BigDecimal(percentualDescontoAcrescimoAtualizacaoMonetaria));
    } else {
      parcelamentoPerfilNova.setPercentualDescontoAcrescimoAtualizacaoMonetaria(new BigDecimal(0));
    }
    // fim alteração

    if (parcelamentoPerfilActionForm.getPercentualDescontoAcrescimoPagamentoAVista() != null
        && !parcelamentoPerfilActionForm
            .getPercentualDescontoAcrescimoPagamentoAVista()
            .equalsIgnoreCase("")) {
      parcelamentoPerfilNova.setPercentualDescontoPagamentoAVista(
          new BigDecimal(percentualDescontoAcrescimoPagamentoAVista));
    } else {
      parcelamentoPerfilNova.setPercentualDescontoPagamentoAVista(new BigDecimal(0));
    }

    if (parcelamentoPerfilActionForm.getPercentualTarifaMinimaPrestacao() != null
        && !parcelamentoPerfilActionForm
            .getPercentualTarifaMinimaPrestacao()
            .equalsIgnoreCase("")) {
      parcelamentoPerfilNova.setPercentualTarifaMinimaPrestacao(
          new BigDecimal(percentualTarifaMinimaPrestacao));
    } else {
      parcelamentoPerfilNova.setPercentualTarifaMinimaPrestacao(new BigDecimal(0));
    }

    if (parcelamentoPerfilActionForm.getIndicadorParcelarChequeDevolvido() != null
        && !parcelamentoPerfilActionForm.getIndicadorParcelarChequeDevolvido().equals("")) {
      parcelamentoPerfilNova.setIndicadorChequeDevolvido(
          new Short(parcelamentoPerfilActionForm.getIndicadorParcelarChequeDevolvido()));
    } else {
      throw new ActionServletException(
          "atencao.campo_selecionado.obrigatorio", null, "Não parcelar com cheque devolvido");
    }

    if (parcelamentoPerfilActionForm.getConsumoMinimo() != null
        && !parcelamentoPerfilActionForm.getConsumoMinimo().equals("")) {
      parcelamentoPerfilNova.setNumeroConsumoMinimo(
          new Integer(parcelamentoPerfilActionForm.getConsumoMinimo()));
    }

    if (parcelamentoPerfilActionForm.getPercentualVariacaoConsumoMedio() != null
        && !parcelamentoPerfilActionForm.getPercentualVariacaoConsumoMedio().equals("")) {
      parcelamentoPerfilNova.setPercentualVariacaoConsumoMedio(
          Util.formatarMoedaRealparaBigDecimal(
              parcelamentoPerfilActionForm.getPercentualVariacaoConsumoMedio()));
    }

    if (parcelamentoPerfilActionForm.getIndicadorParcelarSancoesMaisDeUmaConta() != null
        && !parcelamentoPerfilActionForm.getIndicadorParcelarSancoesMaisDeUmaConta().equals("")) {
      parcelamentoPerfilNova.setIndicadorSancoesUnicaConta(
          new Short(parcelamentoPerfilActionForm.getIndicadorParcelarSancoesMaisDeUmaConta()));
    } else {
      throw new ActionServletException(
          "atencao.campo_selecionado.obrigatorio",
          null,
          "Não parcelar com sanções em mais de uma conta");
    }

    /////////////////////////////////////////////
    Categoria categoria = null;
    if (idCategoria != null && !idCategoria.equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
      categoria = new Categoria();
      categoria.setId(new Integer(idCategoria));
    }
    parcelamentoPerfilNova.setCategoria(categoria);

    if (parcelamentoPerfilActionForm.getNumeroConsumoEconomia() != null
        && !parcelamentoPerfilActionForm.getNumeroConsumoEconomia().trim().equals("")) {
      parcelamentoPerfilNova.setNumeroConsumoEconomia(
          new Integer(parcelamentoPerfilActionForm.getNumeroConsumoEconomia()));
    }

    if (parcelamentoPerfilActionForm.getNumeroAreaConstruida() != null
        && !parcelamentoPerfilActionForm.getNumeroAreaConstruida().trim().equals("")) {
      parcelamentoPerfilNova.setNumeroAreaConstruida(
          Util.formatarMoedaRealparaBigDecimal(
              parcelamentoPerfilActionForm.getNumeroAreaConstruida()));
    }

    if (parcelamentoPerfilActionForm.getIndicadorRetroativoTarifaSocial() != null
        && !parcelamentoPerfilActionForm.getIndicadorRetroativoTarifaSocial().equals("")) {
      parcelamentoPerfilNova.setIndicadorRetroativoTarifaSocial(
          new Short(parcelamentoPerfilActionForm.getIndicadorRetroativoTarifaSocial()));
    } else {
      throw new ActionServletException(
          "atencao.campo_selecionado.obrigatorio",
          null,
          "Indicador de retroativo de tarifa social");
    }

    if (parcelamentoPerfilActionForm.getAnoMesReferenciaLimiteInferior() != null
        && !parcelamentoPerfilActionForm.getAnoMesReferenciaLimiteInferior().trim().equals("")) {
      parcelamentoPerfilNova.setAnoMesReferenciaLimiteInferior(
          new Integer(
              Util.formatarMesAnoParaAnoMesSemBarra(
                  parcelamentoPerfilActionForm.getAnoMesReferenciaLimiteInferior())));
    }

    if (parcelamentoPerfilActionForm.getAnoMesReferenciaLimiteSuperior() != null
        && !parcelamentoPerfilActionForm.getAnoMesReferenciaLimiteSuperior().trim().equals("")) {
      parcelamentoPerfilNova.setAnoMesReferenciaLimiteSuperior(
          new Integer(
              Util.formatarMesAnoParaAnoMesSemBarra(
                  parcelamentoPerfilActionForm.getAnoMesReferenciaLimiteSuperior())));
    }

    if (parcelamentoPerfilActionForm.getPercentualDescontoTarifaSocial() != null
        && !parcelamentoPerfilActionForm.getPercentualDescontoTarifaSocial().trim().equals("")) {
      BigDecimal percentual =
          Util.formatarMoedaRealparaBigDecimal(
              parcelamentoPerfilActionForm.getPercentualDescontoTarifaSocial());
      verificarPercentualMaximo(percentual);
      parcelamentoPerfilNova.setPercentualDescontoTarifaSocial(percentual);
    }

    if (parcelamentoPerfilActionForm.getParcelaQuantidadeMinimaFatura() != null
        && !parcelamentoPerfilActionForm.getParcelaQuantidadeMinimaFatura().trim().equals("")) {
      parcelamentoPerfilNova.setParcelaQuantidadeMinimaFatura(
          new Integer(parcelamentoPerfilActionForm.getParcelaQuantidadeMinimaFatura()));
    }

    if (parcelamentoPerfilActionForm.getIndicadorAlertaParcelaMinima() != null
        && !parcelamentoPerfilActionForm.getIndicadorAlertaParcelaMinima().equals("")) {
      parcelamentoPerfilNova.setIndicadorAlertaParcelaMinima(
          new Short(parcelamentoPerfilActionForm.getIndicadorAlertaParcelaMinima()));
    } else {
      throw new ActionServletException(
          "atencao.campo_selecionado.obrigatorio", null, "Indicador de alerta de parcela mínima");
    }

    if (parcelamentoPerfilActionForm.getPercentualDescontoSancao() != null
        && !parcelamentoPerfilActionForm.getPercentualDescontoSancao().trim().equals("")) {
      BigDecimal percentual =
          Util.formatarMoedaRealparaBigDecimal(
              parcelamentoPerfilActionForm.getPercentualDescontoSancao());
      verificarPercentualMaximo(percentual);
      parcelamentoPerfilNova.setPercentualDescontoSancao(percentual);
    }

    if (parcelamentoPerfilActionForm.getQuantidadeEconomias() != null
        && !parcelamentoPerfilActionForm.getQuantidadeEconomias().trim().equals("")) {
      parcelamentoPerfilNova.setQuantidadeEconomias(
          new Integer(parcelamentoPerfilActionForm.getQuantidadeEconomias()));
    }

    if (parcelamentoPerfilActionForm.getCapacidadeHidrometro() != null
        && !parcelamentoPerfilActionForm.getCapacidadeHidrometro().trim().equals("")) {
      parcelamentoPerfilNova.setCapacidadeHidrometro(
          new Short(parcelamentoPerfilActionForm.getCapacidadeHidrometro()));
    }

    if (parcelamentoPerfilActionForm.getIndicadorEntradaMinima() != null
        && !parcelamentoPerfilActionForm.getIndicadorEntradaMinima().equals("")) {
      parcelamentoPerfilNova.setIndicadorEntradaMinima(
          new Short(parcelamentoPerfilActionForm.getIndicadorEntradaMinima()));
    } else {
      throw new ActionServletException(
          "atencao.campo_selecionado.obrigatorio", null, "Indicador de entrada mínima");
    }

    if (parcelamentoPerfilActionForm.getQuantidadeMaximaReparcelamento() != null
        && !parcelamentoPerfilActionForm.getQuantidadeMaximaReparcelamento().trim().equals("")) {
      parcelamentoPerfilNova.setQuantidadeMaximaReparcelamento(
          new Integer(parcelamentoPerfilActionForm.getQuantidadeMaximaReparcelamento()));
    }

    if (parcelamentoPerfilActionForm.getDataLimiteDescontoPagamentoAVista() != null
        && !parcelamentoPerfilActionForm.getDataLimiteDescontoPagamentoAVista().trim().equals("")) {
      parcelamentoPerfilNova.setDataLimiteDescontoPagamentoAVista(
          Util.converteStringParaDate(
              parcelamentoPerfilActionForm.getDataLimiteDescontoPagamentoAVista()));
    }

    parcelamentoPerfilNova.setUltimaAlteracao(new Date());

    Integer idPerfilParcelamento =
        fachada.inserirPerfilParcelamento(
            parcelamentoPerfilNova,
            collectionParcelamentoQuantidadeReparcelamentoHelper,
            collectionParcelamentoDescontoInatividade,
            collectionParcelamentoDescontoAntiguidade,
            this.getUsuarioLogado(httpServletRequest),
            collectionParcelamentoDescontoInatividadeAVista);

    sessao.removeAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper");
    sessao.removeAttribute("collectionParcelamentoDescontoInatividade");
    sessao.removeAttribute("collectionParcelamentoDescontoAntiguidade");
    sessao.removeAttribute("collectionParcelamentoDescontoInatividadeAVista");

    FiltroResolucaoDiretoria filtroResolucaoDiretoria = new FiltroResolucaoDiretoria();
    filtroResolucaoDiretoria.adicionarParametro(
        new ParametroSimples(FiltroResolucaoDiretoria.CODIGO, idResolucaoDiretoria));
    Collection<ResolucaoDiretoria> collectionResolucaoDiretoria =
        fachada.pesquisar(filtroResolucaoDiretoria, ResolucaoDiretoria.class.getName());
    String numeroResolucaoDiretoria =
        ((ResolucaoDiretoria) Util.retonarObjetoDeColecao(collectionResolucaoDiretoria))
            .getNumeroResolucaoDiretoria();

    montarPaginaSucesso(
        httpServletRequest,
        "Perfil de Parcelamento da RD de número "
            + numeroResolucaoDiretoria
            + " inserido com sucesso.",
        "Inserir outro Perfil de Parcelamento",
        "exibirInserirPerfilParcelamentoAction.do?desfazer=S",
        "exibirAtualizarPerfilParcelamentoAction.do?idRegistroInseridoAtualizar="
            + idPerfilParcelamento,
        "Atualizar Perfil de Parcelamento Inserido");

    // devolve o mapeamento de retorno
    return retorno;
  }
  /**
   * @author Vivianne Sousa
   * @date 12/05/2006
   * @param actionMapping
   * @param actionForm
   * @param httpServletRequest
   * @param httpServletResponse
   * @return
   */
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse) {

    AtualizarParcelamentoPerfilActionForm atualizarParcelamentoPerfilActionForm =
        (AtualizarParcelamentoPerfilActionForm) actionForm;
    ActionForward retorno = actionMapping.findForward("telaSucesso");
    Fachada fachada = Fachada.getInstancia();
    HttpSession sessao = httpServletRequest.getSession(false);

    String idPerfilParcelamento = (String) sessao.getAttribute("idRegistroAtualizacao");
    String numeroResolucaoDiretoria =
        atualizarParcelamentoPerfilActionForm.getNumeroResolucaoDiretoria();

    FiltroParcelamentoPerfil filtroParcelamentoPerfil = new FiltroParcelamentoPerfil();
    // Seta o filtro para buscar o ParcelamentoPerfil na base
    // e recuperar o idImovelSituacaoTipo,idImovelPerfil e o idSubcategoria
    filtroParcelamentoPerfil.adicionarParametro(
        new ParametroSimples(FiltroParcelamentoPerfil.ID, idPerfilParcelamento));
    filtroParcelamentoPerfil.adicionarCaminhoParaCarregamentoEntidade("imovelSituacaoTipo");
    filtroParcelamentoPerfil.adicionarCaminhoParaCarregamentoEntidade("imovelPerfil");
    filtroParcelamentoPerfil.adicionarCaminhoParaCarregamentoEntidade("subcategoria");
    filtroParcelamentoPerfil.adicionarCaminhoParaCarregamentoEntidade("categoria");
    // Procura o ParcelamentoPerfil na base
    ParcelamentoPerfil parcelamentoPerfilNaBase = null;
    parcelamentoPerfilNaBase =
        (ParcelamentoPerfil)
            ((List)
                    (fachada.pesquisar(
                        filtroParcelamentoPerfil, ParcelamentoPerfil.class.getName())))
                .get(0);

    Integer idImovelSituacaoTipo = parcelamentoPerfilNaBase.getImovelSituacaoTipo().getId();

    Integer idImovelPerfil = null;
    if (parcelamentoPerfilNaBase.getImovelPerfil() != null
        && !parcelamentoPerfilNaBase.getImovelPerfil().equals("")) {
      idImovelPerfil = parcelamentoPerfilNaBase.getImovelPerfil().getId();
    }

    Integer idSubcategoria = null;
    if (parcelamentoPerfilNaBase.getSubcategoria() != null
        && !parcelamentoPerfilNaBase.getSubcategoria().equals("")) {
      idSubcategoria = parcelamentoPerfilNaBase.getSubcategoria().getId();
    }

    Integer idCategoria = null;
    if (parcelamentoPerfilNaBase.getCategoria() != null
        && !parcelamentoPerfilNaBase.getCategoria().equals("")) {
      idCategoria = parcelamentoPerfilNaBase.getCategoria().getId();
    }

    String percentualDescontoAcrescimoMulta = null;
    if (atualizarParcelamentoPerfilActionForm.getPercentualDescontoAcrescimoMulta() != null) {
      percentualDescontoAcrescimoMulta =
          atualizarParcelamentoPerfilActionForm
              .getPercentualDescontoAcrescimoMulta()
              .toString()
              .replace(",", ".");
    }

    String percentualDescontoAcrescimoJurosMora = null;
    if (atualizarParcelamentoPerfilActionForm.getPercentualDescontoAcrescimoJurosMora() != null) {
      percentualDescontoAcrescimoJurosMora =
          atualizarParcelamentoPerfilActionForm
              .getPercentualDescontoAcrescimoJurosMora()
              .toString()
              .replace(",", ".");
    }

    String percentualDescontoAcrescimoAtualizacaoMonetaria = null;
    if (atualizarParcelamentoPerfilActionForm.getPercentualDescontoAcrescimoAtualizacaoMonetaria()
        != null) {
      percentualDescontoAcrescimoAtualizacaoMonetaria =
          atualizarParcelamentoPerfilActionForm
              .getPercentualDescontoAcrescimoAtualizacaoMonetaria()
              .toString()
              .replace(",", ".");
    }

    String percentualDescontoAcrescimoPagamentoAVista = null;
    if (atualizarParcelamentoPerfilActionForm.getPercentualDescontoAcrescimoPagamentoAVista()
            != null
        && !atualizarParcelamentoPerfilActionForm
            .getPercentualDescontoAcrescimoPagamentoAVista()
            .equalsIgnoreCase("")) {
      percentualDescontoAcrescimoPagamentoAVista =
          atualizarParcelamentoPerfilActionForm
              .getPercentualDescontoAcrescimoPagamentoAVista()
              .toString()
              .replace(",", ".");
    }

    String percentualTarifaMinimaPrestacao = null;
    if (atualizarParcelamentoPerfilActionForm.getPercentualTarifaMinimaPrestacao() != null
        && !atualizarParcelamentoPerfilActionForm
            .getPercentualTarifaMinimaPrestacao()
            .equalsIgnoreCase("")) {
      percentualTarifaMinimaPrestacao =
          atualizarParcelamentoPerfilActionForm
              .getPercentualTarifaMinimaPrestacao()
              .toString()
              .replace(",", ".");
    }

    atualizaColecoesNaSessao(sessao, httpServletRequest);

    // collectionParcelamentoQuantidadeReparcelamentoHelper
    Collection collectionParcelamentoQuantidadeReparcelamentoHelper = null;
    if (sessao.getAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper") != null) {
      collectionParcelamentoQuantidadeReparcelamentoHelper =
          (Collection) sessao.getAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper");
    }

    // collectionParcelamentoDescontoInatividade
    Collection collectionParcelamentoDescontoInatividade = null;
    if (sessao.getAttribute("collectionParcelamentoDescontoInatividade") != null) {
      collectionParcelamentoDescontoInatividade =
          (Collection) sessao.getAttribute("collectionParcelamentoDescontoInatividade");
    }

    // collectionParcelamentoDescontoInatividadeAVista
    Collection collectionParcelamentoDescontoInatividadeAVista = null;
    if (sessao.getAttribute("collectionParcelamentoDescontoInatividadeAVista") != null) {
      collectionParcelamentoDescontoInatividadeAVista =
          (Collection) sessao.getAttribute("collectionParcelamentoDescontoInatividadeAVista");
    }

    // collectionParcelamentoDescontoAntiguidade
    Collection collectionParcelamentoDescontoAntiguidade = null;
    if (sessao.getAttribute("collectionParcelamentoDescontoAntiguidade") != null) {
      collectionParcelamentoDescontoAntiguidade =
          (Collection) sessao.getAttribute("collectionParcelamentoDescontoAntiguidade");
    }

    Collection collectionParcelamentoQuantidadeReparcelamentoHelperLinhaRemovidas =
        (Collection)
            sessao.getAttribute(
                "collectionParcelamentoQuantidadeReparcelamentoHelperLinhaRemovidas");

    Collection collectionParcelamentoDescontoInatividadeLinhaRemovidas =
        (Collection) sessao.getAttribute("collectionParcelamentoDescontoInatividadeLinhaRemovidas");

    Collection collectionParcelamentoDescontoInatividadeAVistaLinhaRemovidas =
        (Collection)
            sessao.getAttribute("collectionParcelamentoDescontoInatividadeAVistaLinhaRemovidas");

    Collection collectionParcelamentoDescontoAntiguidadeLinhaRemovidas =
        (Collection) sessao.getAttribute("collectionParcelamentoDescontoAntiguidadeLinhaRemovidas");

    Collection collectionParcelamentoQuantidadePrestacaoHelperLinhaRemovidas =
        (Collection)
            sessao.getAttribute("collectionParcelamentoQuantidadePrestacaoHelperLinhaRemovidas");

    validacaoFinal(
        percentualDescontoAcrescimoMulta,
        percentualDescontoAcrescimoJurosMora,
        percentualDescontoAcrescimoAtualizacaoMonetaria,
        percentualDescontoAcrescimoPagamentoAVista,
        percentualTarifaMinimaPrestacao,
        httpServletRequest,
        collectionParcelamentoQuantidadeReparcelamentoHelper,
        collectionParcelamentoDescontoAntiguidade,
        collectionParcelamentoDescontoInatividade,
        idPerfilParcelamento,
        fachada,
        collectionParcelamentoDescontoInatividadeAVista);

    ParcelamentoPerfil parcelamentoPerfil = new ParcelamentoPerfil();

    parcelamentoPerfil.setId(new Integer(idPerfilParcelamento));

    ResolucaoDiretoria resolucaoDiretoria = null;
    if (numeroResolucaoDiretoria != null && !numeroResolucaoDiretoria.equals("")) {

      FiltroResolucaoDiretoria filtroResolucaoDiretoria = new FiltroResolucaoDiretoria();
      filtroResolucaoDiretoria.adicionarParametro(
          new ParametroSimples(FiltroResolucaoDiretoria.NUMERO, numeroResolucaoDiretoria));
      Collection<ResolucaoDiretoria> collectionResolucaoDiretoria =
          fachada.pesquisar(filtroResolucaoDiretoria, ResolucaoDiretoria.class.getName());

      if (collectionResolucaoDiretoria != null && !collectionResolucaoDiretoria.isEmpty()) {
        resolucaoDiretoria =
            (ResolucaoDiretoria) Util.retonarObjetoDeColecao(collectionResolucaoDiretoria);
        parcelamentoPerfil.setResolucaoDiretoria(resolucaoDiretoria);
      }
    }

    ImovelSituacaoTipo imovelSituacaoTipo = null;
    if (idImovelSituacaoTipo != null
        && !idImovelSituacaoTipo.equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
      imovelSituacaoTipo = new ImovelSituacaoTipo();
      imovelSituacaoTipo.setId(new Integer(idImovelSituacaoTipo));
      parcelamentoPerfil.setImovelSituacaoTipo(imovelSituacaoTipo);
    }

    ImovelPerfil imovelPerfil = null;
    if (idImovelPerfil != null
        && !idImovelPerfil.equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
      imovelPerfil = new ImovelPerfil();
      imovelPerfil.setId(new Integer(idImovelPerfil));
      parcelamentoPerfil.setImovelPerfil(imovelPerfil);
    }

    Subcategoria subcategoria = null;
    if (idSubcategoria != null
        && !idSubcategoria.equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
      subcategoria = new Subcategoria();
      subcategoria.setId(new Integer(idSubcategoria));
      parcelamentoPerfil.setSubcategoria(subcategoria);
    }

    Categoria categoria = null;
    if (idCategoria != null && !idCategoria.equals("" + ConstantesSistema.NUMERO_NAO_INFORMADO)) {
      categoria = new Categoria();
      categoria.setId(new Integer(idCategoria));
      parcelamentoPerfil.setCategoria(categoria);
    }

    if (percentualDescontoAcrescimoMulta != null && !percentualDescontoAcrescimoMulta.equals("")) {

      BigDecimal percentual =
          Util.formatarMoedaRealparaBigDecimal(percentualDescontoAcrescimoMulta);

      verificarPercentualMaximo(percentual);

      parcelamentoPerfil.setPercentualDescontoAcrescimoMulta(percentual);
    } else {
      parcelamentoPerfil.setPercentualDescontoAcrescimoMulta(new BigDecimal(0));
    }

    if (percentualDescontoAcrescimoJurosMora != null
        && !percentualDescontoAcrescimoJurosMora.equals("")) {

      BigDecimal percentual =
          Util.formatarMoedaRealparaBigDecimal(percentualDescontoAcrescimoJurosMora);

      verificarPercentualMaximo(percentual);

      parcelamentoPerfil.setPercentualDescontoAcrescimoJurosMora(percentual);
    } else {
      parcelamentoPerfil.setPercentualDescontoAcrescimoJurosMora(new BigDecimal(0));
    }

    if (percentualDescontoAcrescimoAtualizacaoMonetaria != null
        && !percentualDescontoAcrescimoAtualizacaoMonetaria.equals("")) {

      BigDecimal percentual =
          Util.formatarMoedaRealparaBigDecimal(percentualDescontoAcrescimoAtualizacaoMonetaria);

      verificarPercentualMaximo(percentual);

      parcelamentoPerfil.setPercentualDescontoAcrescimoAtualizacaoMonetaria(percentual);
    } else {
      parcelamentoPerfil.setPercentualDescontoAcrescimoAtualizacaoMonetaria(new BigDecimal(0));
    }

    if (percentualDescontoAcrescimoPagamentoAVista != null
        && !percentualDescontoAcrescimoPagamentoAVista.equals("")) {

      BigDecimal percentual =
          Util.formatarMoedaRealparaBigDecimal(percentualDescontoAcrescimoPagamentoAVista);

      verificarPercentualMaximo(percentual);

      parcelamentoPerfil.setPercentualDescontoPagamentoAVista(percentual);
    } else {
      parcelamentoPerfil.setPercentualDescontoPagamentoAVista(new BigDecimal(0));
    }

    if (percentualTarifaMinimaPrestacao != null
        && !percentualTarifaMinimaPrestacao.equalsIgnoreCase("")) {
      parcelamentoPerfil.setPercentualTarifaMinimaPrestacao(
          new BigDecimal(percentualTarifaMinimaPrestacao));
    } else {
      parcelamentoPerfil.setPercentualTarifaMinimaPrestacao(new BigDecimal(0));
    }

    if (atualizarParcelamentoPerfilActionForm.getIndicadorParcelarChequeDevolvido() != null
        && !atualizarParcelamentoPerfilActionForm
            .getIndicadorParcelarChequeDevolvido()
            .equals("")) {
      parcelamentoPerfil.setIndicadorChequeDevolvido(
          new Short(atualizarParcelamentoPerfilActionForm.getIndicadorParcelarChequeDevolvido()));
    } else {
      throw new ActionServletException(
          "atencao.campo_selecionado.obrigatorio", null, "Não parcelar com cheque devolvido");
    }

    if (atualizarParcelamentoPerfilActionForm.getConsumoMinimo() != null
        && !atualizarParcelamentoPerfilActionForm.getConsumoMinimo().equals("")) {
      parcelamentoPerfil.setNumeroConsumoMinimo(
          new Integer(atualizarParcelamentoPerfilActionForm.getConsumoMinimo()));
    }

    if (atualizarParcelamentoPerfilActionForm.getPercentualVariacaoConsumoMedio() != null
        && !atualizarParcelamentoPerfilActionForm.getPercentualVariacaoConsumoMedio().equals("")) {
      parcelamentoPerfil.setPercentualVariacaoConsumoMedio(
          Util.formatarMoedaRealparaBigDecimal(
              atualizarParcelamentoPerfilActionForm.getPercentualVariacaoConsumoMedio()));
    }

    if (atualizarParcelamentoPerfilActionForm.getIndicadorParcelarSancoesMaisDeUmaConta() != null
        && !atualizarParcelamentoPerfilActionForm
            .getIndicadorParcelarSancoesMaisDeUmaConta()
            .equals("")) {
      parcelamentoPerfil.setIndicadorSancoesUnicaConta(
          new Short(
              atualizarParcelamentoPerfilActionForm.getIndicadorParcelarSancoesMaisDeUmaConta()));
    } else {
      throw new ActionServletException(
          "atencao.campo_selecionado.obrigatorio",
          null,
          "Não parcelar com sanções em mais de uma conta");
    }

    if (atualizarParcelamentoPerfilActionForm.getNumeroConsumoEconomia() != null
        && !atualizarParcelamentoPerfilActionForm.getNumeroConsumoEconomia().trim().equals("")) {
      parcelamentoPerfil.setNumeroConsumoEconomia(
          new Integer(atualizarParcelamentoPerfilActionForm.getNumeroConsumoEconomia()));
    }

    if (atualizarParcelamentoPerfilActionForm.getNumeroAreaConstruida() != null
        && !atualizarParcelamentoPerfilActionForm.getNumeroAreaConstruida().trim().equals("")) {
      parcelamentoPerfil.setNumeroAreaConstruida(
          Util.formatarMoedaRealparaBigDecimal(
              atualizarParcelamentoPerfilActionForm.getNumeroAreaConstruida()));
    }

    if (atualizarParcelamentoPerfilActionForm.getIndicadorRetroativoTarifaSocial() != null
        && !atualizarParcelamentoPerfilActionForm.getIndicadorRetroativoTarifaSocial().equals("")) {
      parcelamentoPerfil.setIndicadorRetroativoTarifaSocial(
          new Short(atualizarParcelamentoPerfilActionForm.getIndicadorRetroativoTarifaSocial()));
    } else {
      throw new ActionServletException(
          "atencao.campo_selecionado.obrigatorio",
          null,
          "Indicador de retroativo de tarifa social");
    }

    if (atualizarParcelamentoPerfilActionForm.getAnoMesReferenciaLimiteInferior() != null
        && !atualizarParcelamentoPerfilActionForm
            .getAnoMesReferenciaLimiteInferior()
            .trim()
            .equals("")) {
      parcelamentoPerfil.setAnoMesReferenciaLimiteInferior(
          new Integer(
              Util.formatarMesAnoParaAnoMesSemBarra(
                  atualizarParcelamentoPerfilActionForm.getAnoMesReferenciaLimiteInferior())));
    }

    if (atualizarParcelamentoPerfilActionForm.getAnoMesReferenciaLimiteSuperior() != null
        && !atualizarParcelamentoPerfilActionForm
            .getAnoMesReferenciaLimiteSuperior()
            .trim()
            .equals("")) {
      parcelamentoPerfil.setAnoMesReferenciaLimiteSuperior(
          new Integer(
              Util.formatarMesAnoParaAnoMesSemBarra(
                  atualizarParcelamentoPerfilActionForm.getAnoMesReferenciaLimiteSuperior())));
    }

    if (atualizarParcelamentoPerfilActionForm.getPercentualDescontoTarifaSocial() != null
        && !atualizarParcelamentoPerfilActionForm
            .getPercentualDescontoTarifaSocial()
            .trim()
            .equals("")) {
      BigDecimal percentual =
          Util.formatarMoedaRealparaBigDecimal(
              atualizarParcelamentoPerfilActionForm.getPercentualDescontoTarifaSocial());
      verificarPercentualMaximo(percentual);
      parcelamentoPerfil.setPercentualDescontoTarifaSocial(percentual);
    }

    if (atualizarParcelamentoPerfilActionForm.getParcelaQuantidadeMinimaFatura() != null
        && !atualizarParcelamentoPerfilActionForm
            .getParcelaQuantidadeMinimaFatura()
            .trim()
            .equals("")) {
      parcelamentoPerfil.setParcelaQuantidadeMinimaFatura(
          new Integer(atualizarParcelamentoPerfilActionForm.getParcelaQuantidadeMinimaFatura()));
    }

    if (atualizarParcelamentoPerfilActionForm.getIndicadorAlertaParcelaMinima() != null
        && !atualizarParcelamentoPerfilActionForm.getIndicadorAlertaParcelaMinima().equals("")) {
      parcelamentoPerfil.setIndicadorAlertaParcelaMinima(
          new Short(atualizarParcelamentoPerfilActionForm.getIndicadorAlertaParcelaMinima()));
    } else {
      throw new ActionServletException(
          "atencao.campo_selecionado.obrigatorio", null, "Indicador de alerta de parcela mínima");
    }

    if (atualizarParcelamentoPerfilActionForm.getPercentualDescontoSancao() != null
        && !atualizarParcelamentoPerfilActionForm.getPercentualDescontoSancao().trim().equals("")) {
      BigDecimal percentual =
          Util.formatarMoedaRealparaBigDecimal(
              atualizarParcelamentoPerfilActionForm.getPercentualDescontoSancao());
      verificarPercentualMaximo(percentual);
      parcelamentoPerfil.setPercentualDescontoSancao(percentual);
    }

    if (atualizarParcelamentoPerfilActionForm.getQuantidadeEconomias() != null
        && !atualizarParcelamentoPerfilActionForm.getQuantidadeEconomias().trim().equals("")) {
      parcelamentoPerfil.setQuantidadeEconomias(
          new Integer(atualizarParcelamentoPerfilActionForm.getQuantidadeEconomias()));
    }

    if (atualizarParcelamentoPerfilActionForm.getQuantidadeMaximaReparcelamento() != null
        && !atualizarParcelamentoPerfilActionForm
            .getQuantidadeMaximaReparcelamento()
            .trim()
            .equals("")) {
      parcelamentoPerfil.setQuantidadeMaximaReparcelamento(
          new Integer(atualizarParcelamentoPerfilActionForm.getQuantidadeMaximaReparcelamento()));
    }

    if (atualizarParcelamentoPerfilActionForm.getIndicadorEntradaMinima() != null
        && !atualizarParcelamentoPerfilActionForm.getIndicadorEntradaMinima().equals("")) {
      parcelamentoPerfil.setIndicadorEntradaMinima(
          new Short(atualizarParcelamentoPerfilActionForm.getIndicadorEntradaMinima()));
    } else {
      throw new ActionServletException(
          "atencao.campo_selecionado.obrigatorio", null, "Indicador de entrada mínima");
    }

    if (atualizarParcelamentoPerfilActionForm.getCapacidadeHidrometro() != null
        && !atualizarParcelamentoPerfilActionForm.getCapacidadeHidrometro().trim().equals("")) {
      parcelamentoPerfil.setCapacidadeHidrometro(
          new Short(atualizarParcelamentoPerfilActionForm.getCapacidadeHidrometro()));
    } else {
      throw new ActionServletException(
          "atencao.campo_selecionado.obrigatorio",
          null,
          "Indicador pesquisa capacidade do hidrometro");
    }

    if (atualizarParcelamentoPerfilActionForm.getDataLimiteDescontoPagamentoAVista() != null
        && !atualizarParcelamentoPerfilActionForm
            .getDataLimiteDescontoPagamentoAVista()
            .trim()
            .equals("")) {
      parcelamentoPerfil.setDataLimiteDescontoPagamentoAVista(
          Util.converteStringParaDate(
              atualizarParcelamentoPerfilActionForm.getDataLimiteDescontoPagamentoAVista()));
    }

    parcelamentoPerfil.setUltimaAlteracao(
        Util.converteStringParaDateHora(
            atualizarParcelamentoPerfilActionForm.getUltimaAlteracao()));

    fachada.atualizarPerfilParcelamento(
        parcelamentoPerfil,
        collectionParcelamentoQuantidadeReparcelamentoHelper,
        collectionParcelamentoDescontoInatividade,
        collectionParcelamentoDescontoAntiguidade,
        collectionParcelamentoQuantidadeReparcelamentoHelperLinhaRemovidas,
        collectionParcelamentoDescontoInatividadeLinhaRemovidas,
        collectionParcelamentoDescontoAntiguidadeLinhaRemovidas,
        collectionParcelamentoQuantidadePrestacaoHelperLinhaRemovidas,
        this.getUsuarioLogado(httpServletRequest),
        collectionParcelamentoDescontoInatividadeAVista,
        collectionParcelamentoDescontoInatividadeAVistaLinhaRemovidas);

    sessao.removeAttribute("collectionParcelamentoQuantidadeReparcelamentoHelper");
    sessao.removeAttribute("collectionParcelamentoDescontoInatividade");
    sessao.removeAttribute("collectionParcelamentoDescontoAntiguidade");
    sessao.removeAttribute("idRegistroAtualizacao");
    sessao.removeAttribute("collectionParcelamentoQuantidadeReparcelamentoHelperLinhaRemovidas");
    sessao.removeAttribute("collectionParcelamentoDescontoInatividadeLinhaRemovidas");
    sessao.removeAttribute("collectionParcelamentoDescontoAntiguidadeLinhaRemovidas");
    sessao.removeAttribute("collectionParcelamentoQuantidadePrestacaoHelperLinhaRemovidas");
    sessao.removeAttribute("collectionParcelamentoDescontoInatividadeAVista");
    sessao.removeAttribute("collectionParcelamentoDescontoInatividadeAVistaLinhaRemovidas");

    //
    // Monta a página de sucesso
    if (retorno.getName().equalsIgnoreCase("telaSucesso")) {
      montarPaginaSucesso(
          httpServletRequest,
          "Perfil de Parcelamento da RD de número "
              + numeroResolucaoDiretoria
              + " atualizado com sucesso.",
          "Realizar outra Manutenção de Perfil de Parcelamento",
          "exibirFiltrarPerfilParcelamentoAction.do?desfazer=S");
    }

    return retorno;
  }
  /**
   * < <Descrição do método>>
   *
   * @param actionMapping Descrição do parâmetro
   * @param actionForm Descrição do parâmetro
   * @param httpServletRequest Descrição do parâmetro
   * @param httpServletResponse Descrição do parâmetro
   * @return Descrição do retorno
   */
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse) {

    // cria a variável de retorno
    ActionForward retorno = null;

    // Mudar isso quando tiver esquema de segurança
    HttpSession sessao = httpServletRequest.getSession(false);

    FiltrarDevolucaoActionForm filtrarDevolucaoActionForm = (FiltrarDevolucaoActionForm) actionForm;

    FiltroDevolucao filtroDevolucao = (FiltroDevolucao) sessao.getAttribute("filtroDevolucao");

    FiltroDevolucaoHistorico filtroDevolucaoHistorico =
        (FiltroDevolucaoHistorico) sessao.getAttribute("filtroDevolucaoHistorico");

    // Collection colecaoDevolucoes = (Collection) sessao
    // .getAttribute("colecaoLocalidadeDevolucoes");

    // Inicio da parte que vai mandar os parametros para o relatório

    Devolucao devolucaoParametrosInicial = new Devolucao();
    Devolucao devolucaoParametrosFinal = new Devolucao();

    // seta os parametros que serão mostrados no relatório
    if (filtrarDevolucaoActionForm.getPeriodoArrecadacaoInicio() != null
        && !filtrarDevolucaoActionForm.getPeriodoArrecadacaoInicio().equals("")) {
      devolucaoParametrosInicial.setAnoMesReferenciaDevolucao(
          new Integer(
              Util.formatarMesAnoParaAnoMesSemBarra(
                  filtrarDevolucaoActionForm.getPeriodoArrecadacaoInicio())));
      devolucaoParametrosFinal.setAnoMesReferenciaDevolucao(
          new Integer(
              Util.formatarMesAnoParaAnoMesSemBarra(
                  filtrarDevolucaoActionForm.getPeriodoArrecadacaoFim())));
    }
    if (filtrarDevolucaoActionForm.getDataDevolucaoInicio() != null
        && !filtrarDevolucaoActionForm.getDataDevolucaoInicio().equals("")) {
      devolucaoParametrosInicial.setDataDevolucao(
          Util.converteStringParaDate(filtrarDevolucaoActionForm.getDataDevolucaoInicio()));
      devolucaoParametrosFinal.setDataDevolucao(
          Util.converteStringParaDate(filtrarDevolucaoActionForm.getDataDevolucaoFim()));
    }

    // Fim da parte que vai mandar os parametros para o relatório

    // cria uma instância da classe do relatório
    RelatorioDevolucao relatorioDevolucao =
        new RelatorioDevolucao(
            (Usuario) (httpServletRequest.getSession(false)).getAttribute("usuarioLogado"));

    // relatorioDevolucao.addParametro("colecaoDevolucoes",
    // colecaoDevolucoes);
    relatorioDevolucao.addParametro("filtroDevolucao", filtroDevolucao);
    relatorioDevolucao.addParametro("filtroDevolucaoHistorico", filtroDevolucaoHistorico);
    relatorioDevolucao.addParametro("devolucaoParametrosInicial", devolucaoParametrosInicial);
    relatorioDevolucao.addParametro("devolucaoParametrosFinal", devolucaoParametrosFinal);

    String tipoRelatorio = httpServletRequest.getParameter("tipoRelatorio");
    if (tipoRelatorio == null) {
      tipoRelatorio = TarefaRelatorio.TIPO_PDF + "";
    }

    relatorioDevolucao.addParametro("tipoFormatoRelatorio", Integer.parseInt(tipoRelatorio));
    try {
      retorno =
          processarExibicaoRelatorio(
              relatorioDevolucao,
              tipoRelatorio,
              httpServletRequest,
              httpServletResponse,
              actionMapping);
    } catch (SistemaException ex) {
      // manda o erro para a página no request atual
      reportarErros(httpServletRequest, "erro.sistema");

      // seta o mapeamento de retorno para a tela de erro de popup
      retorno = actionMapping.findForward("telaErroPopup");

    } catch (RelatorioVazioException ex1) {
      // manda o erro para a página no request atual
      reportarErros(httpServletRequest, "erro.relatorio.vazio");

      // seta o mapeamento de retorno para a tela de atenção de popup
      retorno = actionMapping.findForward("telaAtencaoPopup");
    }

    // devolve o mapeamento contido na variável retorno
    return retorno;
  }