/**
   * Limpa todos os campos que seriam exibidos na tela, sejam eles do form ou da sessão.
   *
   * @since 23/10/2009
   * @author Marlon Patrick
   */
  private void limparFormESessao(
      InformarVencimentoAlternativoActionForm informarVencimentoAlternativoActionForm,
      HttpSession sessao) {

    informarVencimentoAlternativoActionForm.setIdImovel("");
    informarVencimentoAlternativoActionForm.setInscricaoImovel("");
    informarVencimentoAlternativoActionForm.setNomeClienteUsuario("");
    informarVencimentoAlternativoActionForm.setSituacaoAguaImovel("");
    informarVencimentoAlternativoActionForm.setSituacaoEsgotoImovel("");
    informarVencimentoAlternativoActionForm.setDiaVencimentoGrupo("");
    informarVencimentoAlternativoActionForm.setDiaVencimentoAtual("");
    informarVencimentoAlternativoActionForm.setDataAlteracaoVencimento("");
    informarVencimentoAlternativoActionForm.setIndicadorVencimentoMesSeguinte("");

    sessao.removeAttribute("vencimentoAlternativo");
    sessao.removeAttribute("colecaoNovoDiaVencimento");
    sessao.removeAttribute("imovel");
  }
  /**
   * Este método seta as informações a serem exibidas para o usuário no form e na sessão, para que a
   * JSP responsável processe os dados.
   *
   * @since 22/10/2009
   * @author Marlon Patrick
   */
  private void setarDadosFormESessao(
      InformarVencimentoAlternativoActionForm informarVencimentoAlternativoActionForm,
      Collection<ClienteImovel> colecaoClienteImovel,
      HttpSession sessao) {

    Fachada fachada = Fachada.getInstancia();

    ClienteImovel clienteImovel = colecaoClienteImovel.iterator().next();

    fachada.verificarExistenciaRegistroAtendimento(
        clienteImovel.getImovel().getId(),
        "atencao.vencimento_alternativo_existencia_registro_atendimento",
        EspecificacaoTipoValidacao.VENCIMENTO_ALTERNATIVO);

    informarVencimentoAlternativoActionForm.setInscricaoImovel(
        clienteImovel.getImovel().getInscricaoFormatada());

    informarVencimentoAlternativoActionForm.setNomeClienteUsuario(
        clienteImovel.getCliente().getNome());

    informarVencimentoAlternativoActionForm.setSituacaoAguaImovel(
        clienteImovel.getImovel().getLigacaoAguaSituacao().getDescricao());

    informarVencimentoAlternativoActionForm.setSituacaoEsgotoImovel(
        clienteImovel.getImovel().getLigacaoEsgotoSituacao().getDescricao());

    informarVencimentoAlternativoActionForm.setDiaVencimentoGrupo("");

    if (clienteImovel.getImovel().getQuadra().getRota().getFaturamentoGrupo().getDiaVencimento()
            != null
        && !clienteImovel
            .getImovel()
            .getQuadra()
            .getRota()
            .getFaturamentoGrupo()
            .getDiaVencimento()
            .equals(0)) {

      informarVencimentoAlternativoActionForm.setDiaVencimentoGrupo(
          clienteImovel
              .getImovel()
              .getQuadra()
              .getRota()
              .getFaturamentoGrupo()
              .getDiaVencimento()
              .toString());
    }

    informarVencimentoAlternativoActionForm.setDiaVencimentoAtual("");

    if (clienteImovel.getImovel().getDiaVencimento() != null
        && !clienteImovel.getImovel().getDiaVencimento().equals(0)) {
      informarVencimentoAlternativoActionForm.setDiaVencimentoAtual(
          clienteImovel.getImovel().getDiaVencimento().toString());
    }

    FiltroVencimentoAlternativo filtroVencimentoAlternativo =
        new FiltroVencimentoAlternativo(FiltroVencimentoAlternativo.DATA_IMPLANTACAO);

    filtroVencimentoAlternativo.adicionarParametro(
        new ParametroSimples(
            FiltroVencimentoAlternativo.IMOVEL_ID, clienteImovel.getImovel().getId()));

    Collection<VencimentoAlternativo> vencimentosAlternativos =
        fachada.pesquisar(filtroVencimentoAlternativo, VencimentoAlternativo.class.getName());

    if (!Util.isVazioOrNulo(vencimentosAlternativos)) {

      VencimentoAlternativo vencimentoAlternativo = vencimentosAlternativos.iterator().next();

      informarVencimentoAlternativoActionForm.setDataAlteracaoVencimento("");

      if (vencimentoAlternativo.getDataImplantacao() != null) {
        informarVencimentoAlternativoActionForm.setDataAlteracaoVencimento(
            new SimpleDateFormat("dd/MM/yyyy").format(vencimentoAlternativo.getDataImplantacao()));
      }

      sessao.setAttribute("vencimentoAlternativo", vencimentoAlternativo);
    }

    sessao.setAttribute(
        "colecaoNovoDiaVencimento", criarColecaoNovoDiaPagamento(clienteImovel, sessao));

    if (clienteImovel.getImovel().getIndicadorVencimentoMesSeguinte() != null) {
      informarVencimentoAlternativoActionForm.setIndicadorVencimentoMesSeguinte(
          clienteImovel.getImovel().getIndicadorVencimentoMesSeguinte().toString());
    } else {
      informarVencimentoAlternativoActionForm.setIndicadorVencimentoMesSeguinte("2");
    }

    sessao.setAttribute("imovel", clienteImovel.getImovel());
  }