/**
   * [UC0621] - Filtro para Curva ABC de Debitos
   *
   * @author: Ivan Sérgio
   * @date: 30/07/2007
   */
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse) {

    // Seta o mapeamento de retorno
    ActionForward retorno = actionMapping.findForward("gerarCurvaAbcDebitos");

    ImovelCurvaAbcDebitosActionForm imovelCurvaAbcDebitosActionForm =
        (ImovelCurvaAbcDebitosActionForm) actionForm;

    /*
     * [FS0005 - Verificar preenchimento dos campos]
     * Campos obrigatórios: Referencia da cobranca (é validado antes);
     * 						Valor minimo do Debito;
     */

    if (imovelCurvaAbcDebitosActionForm.getValorMinimoDebito() == null) {
      retorno = actionMapping.findForward("filtrarImovelCurvaAbcDebitosDebito");

      httpServletRequest.setAttribute("msgValidacao", "Informe o Valor Mínimo do Débito.");

      FiltrarImovelCurvaAbcDebitosWizardAction filtrar =
          new FiltrarImovelCurvaAbcDebitosWizardAction();
      filtrar.exibirFiltrarImovelCurvaAbcDebitosDebito(
          actionMapping, actionForm, httpServletRequest, httpServletResponse);
    }

    return retorno;
  }
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse) {

    ActionForward retorno =
        actionMapping.findForward("filtrarImovelCurvaAbcDebitosLigacaoAguaEsgoto");

    HttpSession sessao = httpServletRequest.getSession(false);

    Fachada fachada = Fachada.getInstancia();

    ImovelCurvaAbcDebitosActionForm imovelCurvaAbcDebitosActionForm =
        (ImovelCurvaAbcDebitosActionForm) actionForm;

    // Ligacao Agua Situacao
    FiltroLigacaoAguaSituacao filtroLigacaoAguaSituacao = new FiltroLigacaoAguaSituacao();
    filtroLigacaoAguaSituacao.setCampoOrderBy(FiltroLigacaoAguaSituacao.DESCRICAO);

    Collection<LigacaoAguaSituacao> collectionsLigacaoAguaSituacao =
        fachada.pesquisar(filtroLigacaoAguaSituacao, LigacaoAguaSituacao.class.getName());

    if (collectionsLigacaoAguaSituacao == null || collectionsLigacaoAguaSituacao.isEmpty()) {
      throw new ActionServletException(
          "atencao.naocadastrado", null, "Situação da Ligação de Água");
    }

    // Ligacao Esgoto Situacao
    FiltroLigacaoEsgotoSituacao filtroLigacaoEsgotoSituacao = new FiltroLigacaoEsgotoSituacao();
    filtroLigacaoEsgotoSituacao.setCampoOrderBy(FiltroLigacaoEsgotoSituacao.DESCRICAO);
    Collection<LigacaoEsgotoSituacao> collectionLigacaoEsgotoSituacao =
        fachada.pesquisar(filtroLigacaoEsgotoSituacao, LigacaoEsgotoSituacao.class.getName());

    if (collectionLigacaoEsgotoSituacao == null || collectionLigacaoEsgotoSituacao.isEmpty()) {
      throw new ActionServletException(
          "atencao.naocadastrado", null, "Situação da Ligação de Esgoto");
    }

    // Medicao Tipo
    FiltroMedicaoTipo filtroMedicaoTipo = new FiltroMedicaoTipo();
    filtroMedicaoTipo.setCampoOrderBy(FiltroMedicaoTipo.DESCRICAO);
    Collection<FiltroMedicaoTipo> collectionFiltroMedicaoTipo =
        fachada.pesquisar(filtroMedicaoTipo, MedicaoTipo.class.getName());

    if (collectionFiltroMedicaoTipo == null || collectionFiltroMedicaoTipo.isEmpty()) {
      throw new ActionServletException("atencao.naocadastrado", null, "Indicador de Medição");
    }

    httpServletRequest.setAttribute("collectionFiltroMedicaoTipo", collectionFiltroMedicaoTipo);
    httpServletRequest.setAttribute(
        "collectionsLigacaoAguaSituacao", collectionsLigacaoAguaSituacao);
    httpServletRequest.setAttribute(
        "collectionLigacaoEsgotoSituacao", collectionLigacaoEsgotoSituacao);

    // Usado para fazer o controle de navegacao por conta da Aba Local
    sessao.setAttribute("abaAtual", "LIGACAOAGUAESGOTO");

    if (imovelCurvaAbcDebitosActionForm.getClassificacao() != null) {
      httpServletRequest.setAttribute(
          "classificacao", imovelCurvaAbcDebitosActionForm.getClassificacao());
    }

    return retorno;
  }