public ActionResult abaDadosCadastrais(int?id)
        {
            var idTipoAssociado = UtilRequest.getInt32("idTipoAssociado");

            var ViewModel = new NaoAssociadoCadastroPJForm();

            if (id > 0)
            {
                ViewModel.Associado = this.ONaoAssociadoBL.listar("", "").Where(x => x.id == id)
                                      .Include(x => x.UsuarioCadastro)
                                      .Include(x => x.Unidade)
                                      .Include(x => x.Pessoa.CidadeOrigem).FirstOrDefault();

                if (ViewModel.Associado == null)
                {
                    return(RedirectToAction("cadastrar"));
                }

                if (ViewModel.Associado.Pessoa.flagTipoPessoa == "F")
                {
                    return(RedirectToAction("editar", "NaoAssociadoCadastroPJ", new { ViewModel.Associado.id }));
                }
            }
            else
            {
                ViewModel.Associado = new Associado()
                {
                    idTipoAssociado = idTipoAssociado
                };

                ViewModel.Associado.Pessoa = new Pessoa();
            }

            ViewModel.carregarConfiguracoes();

            var flagEdicao = id > 0;

            ViewModel.carregaDados(flagEdicao);

            ViewModel.Associado.Pessoa = ViewModel.Associado.Pessoa ?? new Pessoa();

            ViewModel.Associado.Pessoa.limparListas();
            ViewModel.Associado.limparListas();

            ViewModel.carregarValorCampos(ViewModel);

            return(View("aba-dados-cadastrais", ViewModel));
        }
        public ActionResult editar(int?id)
        {
            var ViewModel = new NaoAssociadoCadastroPJForm();

            ViewModel.Associado = this.ONaoAssociadoBL.listar("", "").Where(x => x.id == id)
                                  .Include(x => x.Indicador)
                                  .Include(x => x.UsuarioCadastro)
                                  .Include(x => x.Unidade)
                                  .Include(x => x.Pessoa.CidadeOrigem).FirstOrDefault();

            ViewModel.Saldo = this.OSaldoConsultaBL.query(id.toInt()).Where(x => x.idMembro > 0)
                              .Select(x => new { x.id, x.saldoAtual, x.dtAtualizacaoSaldo })
                              .FirstOrDefault()
                              .ToJsonObject <MembroSaldo>() ?? new MembroSaldo();

            if (ViewModel.Associado == null)
            {
                return(RedirectToAction("cadastrar"));
            }

            if (ViewModel.Associado.Pessoa.flagTipoPessoa == "F")
            {
                return(RedirectToAction("editar", "NaoAssociadoCadastroPF", new { ViewModel.Associado.id }));
            }

            ViewModel.carregarConfiguracoes();

            ViewModel.carregaDados(true);

            ViewModel.Associado        = this.ONaoAssociadoBL.carregar(id.toInt()).condicoesSeguranca().FirstOrDefault();
            ViewModel.Associado.Pessoa = ViewModel.Associado.Pessoa ?? new Pessoa();

            if (ViewModel.Associado.Pessoa.id > 0)
            {
                ViewModel.Associado.Pessoa.listaEmails    = this.OPessoaEmailConsultaBL.listar(ViewModel.Associado.Pessoa.id).ToList();
                ViewModel.Associado.Pessoa.listaTelefones = this.OPessoaTelefoneConsultaBL.listar(ViewModel.Associado.Pessoa.id).ToList();
                ViewModel.Associado.Pessoa.listaEnderecos = this.OPessoaEnderecoConsultaBL.listar(ViewModel.Associado.Pessoa.id).ToList();
            }

            ViewModel.Associado.Pessoa.limparListas();
            ViewModel.Associado.limparListas();

            ViewModel.carregarValorCampos(ViewModel);

            return(View("editar", ViewModel));
        }