/**
   * Description of the Method
   *
   * @param actionMapping Description of the Parameter
   * @param actionForm Description of the Parameter
   * @param httpServletRequest Description of the Parameter
   * @param httpServletResponse Description of the Parameter
   * @return Description of the Return Value
   */
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse) {

    // Set no mapeamento de retorno
    ActionForward retorno =
        actionMapping.findForward("consultarRegistroAtendimentoPendentesImovel");
    ConsultarRegistroAtendimentoPendentesImovelActionForm atendimentoPendentesImovelActionForm =
        (ConsultarRegistroAtendimentoPendentesImovelActionForm) actionForm;
    Fachada fachada = Fachada.getInstancia();

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

    // Variavel responsavél pelo preenchimento do imovel no formulário
    /*String idOrdemServico = atendimentoPendentesImovelActionForm
    .getIdOrdemServico(); */

    String idImovel = httpServletRequest.getParameter("idImovel");
    String situacao = httpServletRequest.getParameter("situacao");

    sessao.removeAttribute("enderecoImovel");
    sessao.removeAttribute("colecaoConsultarImovelRegistroAtendimentoHelper");

    if (idImovel != null && !idImovel.trim().equals("")) {

      Imovel imovelSelecionado =
          fachada.pesquisarImovelRegistroAtendimento(Util.converterStringParaInteger(idImovel));

      if (imovelSelecionado != null) {

        Collection colecaoConsultarImovelRegistroAtendimentoHelper = null;
        Collection colecaoRegistroAtendimento = null;

        if (situacao != null && !situacao.equalsIgnoreCase("")) {
          colecaoRegistroAtendimento =
              fachada.consultarRegistroAtendimentoImovel(new Integer(idImovel), situacao);
        } else {
          colecaoRegistroAtendimento =
              fachada.consultarRegistroAtendimentoImovel(new Integer(idImovel), null);
        }

        if (colecaoRegistroAtendimento != null && !colecaoRegistroAtendimento.isEmpty()) {

          Iterator iteratorColecaoRegistroAtendimento = colecaoRegistroAtendimento.iterator();

          colecaoConsultarImovelRegistroAtendimentoHelper = new ArrayList();

          while (iteratorColecaoRegistroAtendimento.hasNext()) {
            RegistroAtendimento registroAtendimento =
                (RegistroAtendimento) iteratorColecaoRegistroAtendimento.next();

            ConsultarImovelRegistroAtendimentoHelper consultarImovelRegistroAtendimentoHelper =
                new ConsultarImovelRegistroAtendimentoHelper();

            // id registro atendimento
            if (registroAtendimento != null && registroAtendimento.getId() != null) {
              consultarImovelRegistroAtendimentoHelper.setIdRegistroAtendimento(
                  registroAtendimento.getId().toString());
            }

            // tipo de solicitação
            if (registroAtendimento != null
                && registroAtendimento.getSolicitacaoTipoEspecificacao() != null
                && registroAtendimento.getSolicitacaoTipoEspecificacao().getSolicitacaoTipo()
                    != null) {

              consultarImovelRegistroAtendimentoHelper.setTipoSolicitacao(
                  registroAtendimento
                      .getSolicitacaoTipoEspecificacao()
                      .getSolicitacaoTipo()
                      .getDescricao());
            }

            // especificação
            if (registroAtendimento != null
                && registroAtendimento.getSolicitacaoTipoEspecificacao() != null) {
              consultarImovelRegistroAtendimentoHelper.setEspecificacao(
                  registroAtendimento.getSolicitacaoTipoEspecificacao().getDescricao());
            }

            // data de atendimento
            if (registroAtendimento != null
                && registroAtendimento.getRegistroAtendimento() != null) {
              consultarImovelRegistroAtendimentoHelper.setDataAtendimento(
                  Util.formatarData(registroAtendimento.getRegistroAtendimento()));
            }

            // situacao
            if (registroAtendimento != null && registroAtendimento.getId() != null) {
              ObterDescricaoSituacaoRAHelper obterDescricaoSituacaoRAHelper =
                  fachada.obterDescricaoSituacaoRA(registroAtendimento.getId());
              consultarImovelRegistroAtendimentoHelper.setSituacao(
                  obterDescricaoSituacaoRAHelper.getDescricaoSituacao());
            }

            colecaoConsultarImovelRegistroAtendimentoHelper.add(
                consultarImovelRegistroAtendimentoHelper);
          }

          sessao.setAttribute(
              "colecaoConsultarImovelRegistroAtendimentoHelper",
              colecaoConsultarImovelRegistroAtendimentoHelper);
        } else {
          throw new ActionServletException("atencao.imovel_sem_ra_pendente");
        }

        atendimentoPendentesImovelActionForm.setMatriculaImovel(
            imovelSelecionado.getId().toString());
        atendimentoPendentesImovelActionForm.setInscricaoImovel(
            imovelSelecionado.getInscricaoFormatada());
        atendimentoPendentesImovelActionForm.setSituacaoLigacaoAgua(
            imovelSelecionado.getLigacaoAguaSituacao().getDescricao());
        atendimentoPendentesImovelActionForm.setSituacaoLigacaoEsgoto(
            imovelSelecionado.getLigacaoEsgotoSituacao().getDescricao());

        httpServletRequest.setAttribute("enderecoImovel", imovelSelecionado.getEnderecoFormatado());
      }
    }

    return retorno;
  }
  /**
   * Excute do Exibir Consultar RA Tramites do Popup
   *
   * @author Leonardo Regis
   * @date 11/08/2006
   * @param actionMapping
   * @param actionForm
   * @param httpServletRequest
   * @param httpServletResponse
   * @return forward
   */
  public ActionForward execute(
      ActionMapping actionMapping,
      ActionForm actionForm,
      HttpServletRequest httpServletRequest,
      HttpServletResponse httpServletResponse) {

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

    Fachada fachada = Fachada.getInstancia();

    ConsultarRegistroAtendimentoTramiteActionForm consultarRegistroAtendimentoTramite =
        (ConsultarRegistroAtendimentoTramiteActionForm) actionForm;

    RegistroAtendimento registroAtendimento =
        pesquisarRegistroAtendimento(
            new Integer(consultarRegistroAtendimentoTramite.getNumeroRA()));

    consultarRegistroAtendimentoTramite.setNumeroRA("" + registroAtendimento.getId());

    ObterDescricaoSituacaoRAHelper situacaoRA =
        fachada.obterDescricaoSituacaoRA(registroAtendimento.getId());

    consultarRegistroAtendimentoTramite.setSituacaoRA(situacaoRA.getDescricaoSituacao());

    SolicitacaoTipoEspecificacao solicitacaoTipoEspecificacao =
        registroAtendimento.getSolicitacaoTipoEspecificacao();

    if (solicitacaoTipoEspecificacao != null) {

      if (solicitacaoTipoEspecificacao.getSolicitacaoTipo() != null) {
        consultarRegistroAtendimentoTramite.setIdTipoSolicitacao(
            solicitacaoTipoEspecificacao.getSolicitacaoTipo().getId() + "");
        consultarRegistroAtendimentoTramite.setTipoSolicitacao(
            solicitacaoTipoEspecificacao.getSolicitacaoTipo().getDescricao());
      }
      consultarRegistroAtendimentoTramite.setIdEspecificacao(
          solicitacaoTipoEspecificacao.getId() + "");
      consultarRegistroAtendimentoTramite.setEspecificacao(
          solicitacaoTipoEspecificacao.getDescricao());
    }

    UnidadeOrganizacional unidadeAtual = fachada.obterUnidadeAtualRA(registroAtendimento.getId());

    if (unidadeAtual != null) {
      consultarRegistroAtendimentoTramite.setIdUnidadeAtual("" + unidadeAtual.getId());
      consultarRegistroAtendimentoTramite.setUnidadeAtual(unidadeAtual.getDescricao());
    }

    UnidadeOrganizacional unidadeAtendimento =
        fachada.obterUnidadeAtendimentoRA(registroAtendimento.getId());

    if (unidadeAtendimento != null) {
      consultarRegistroAtendimentoTramite.setIdUnidadeAtendimento("" + unidadeAtendimento.getId());
      consultarRegistroAtendimentoTramite.setUnidadeAtendimento(unidadeAtendimento.getDescricao());
    }

    // Trâmites do RA
    Collection<Tramite> colecaoTramite = fachada.obterTramitesRA(registroAtendimento.getId());

    if (colecaoTramite != null && !colecaoTramite.isEmpty()) {
      consultarRegistroAtendimentoTramite.setColecaoTramites(colecaoTramite);
    } else {
      throw new ActionServletException("atencao.colsutar_tramites_consulta_vazia");
    }

    return retorno;
  }