public ActionResult Criar(string cpfCnpj, int?tipoPessoa, int tipoCadastro = 0, bool existeCredenciado = false, bool existeInterno = false)
        {
            PessoaVM vm = new PessoaVM(_busLista.EstadosCivil, _busLista.Sexos, _busLista.Profissoes, _busLista.OrgaosClasse, _busLista.Estados);

            vm.ExibirMensagensPartial = true;
            vm.ExibirBotoes           = true;
            vm.UrlAcao      = Url.Action("Criar", "Pessoa");
            vm.TipoCadastro = tipoCadastro;

            vm.CpfCnpjValido = !String.IsNullOrEmpty(cpfCnpj);

            if (vm.CpfCnpjValido)
            {
                vm.Pessoa.Tipo       = tipoPessoa.GetValueOrDefault();
                vm.Pessoa.Fisica.CPF = cpfCnpj;

                if (existeCredenciado)
                {
                    vm.Pessoa = _credenciadoBus.ObterPessoaCredenciado(vm.Pessoa.CPFCNPJ);

                    if (vm.Pessoa.Fisica.ConjugeId > 0)
                    {
                        vm.Pessoa.Fisica.Conjuge    = _credenciadoBus.ObterPessoaCredenciado(vm.Pessoa.Fisica.ConjugeId.Value);
                        vm.Pessoa.Fisica.Conjuge.Id = 0;
                    }
                }
                else if (existeInterno)
                {
                    vm.Pessoa           = _credenciadoBus.ObterPessoaInterno(vm.Pessoa.CPFCNPJ);
                    vm.Pessoa.InternoId = vm.Pessoa.Id;

                    if (vm.Pessoa.Fisica.ConjugeId > 0)
                    {
                        vm.Pessoa.Fisica.Conjuge                  = _credenciadoBus.ObterPessoaInterno(vm.Pessoa.Fisica.ConjugeId.Value);
                        vm.Pessoa.Fisica.Conjuge.InternoId        = vm.Pessoa.Fisica.ConjugeId;
                        vm.Pessoa.Fisica.Conjuge.Fisica.ConjugeId = 0;
                        vm.Pessoa.Fisica.Conjuge.Id               = 0;
                        vm.Pessoa.Fisica.ConjugeId                = 0;
                    }
                }

                if (!existeInterno)
                {
                    vm.Pessoa.InternoId = -1;
                }

                vm.Pessoa.Id = 0;
                CarregaCampos(vm);
                vm.CarregarMunicipios();
            }

            if (Request.IsAjaxRequest())
            {
                return(PartialView("PessoaPartial", vm));
            }
            else
            {
                return(View(vm));
            }
        }
        public ActionResult Criar(string cpfCnpj, int?tipoPessoa, int tipoCadastro = 0, bool existeCredenciado = false, bool existeInterno = false)
        {
            PessoaVM vm = new PessoaVM(_busLista.EstadosCivil, _busLista.Sexos, _busLista.Profissoes, _busLista.OrgaosClasse, _busLista.Estados);

            vm.CpfCnpjValido = !String.IsNullOrEmpty(cpfCnpj);

            if (vm.CpfCnpjValido)
            {
                vm.Pessoa.Tipo = tipoPessoa.GetValueOrDefault();
                if (vm.Pessoa.Tipo == PessoaTipo.FISICA)
                {
                    vm.Pessoa.Fisica.CPF    = cpfCnpj;
                    vm.ProfissaoObrigatoria = true;
                    vm.NomePaiObrigatorio   = true;
                    vm.NomeMaeObrigatorio   = true;

                    vm.OrgaosParceiros         = ViewModelHelper.CriarSelectList(_busOrgaoParceiro.ObterOrgaosParceirosLst(), true);
                    vm.OrgaosParceirosUnidades = ViewModelHelper.CriarSelectList(new List <Lista>(), true);
                }
                else
                {
                    vm.Pessoa.Juridica.CNPJ = cpfCnpj;
                }

                if (existeInterno)
                {
                    vm.Pessoa           = _bus.ObterPessoaInterno(vm.Pessoa.CPFCNPJ);
                    vm.Pessoa.InternoId = vm.Pessoa.Id;
                    vm.Pessoa.Id        = 0;

                    if (vm.Pessoa.IsJuridica)
                    {
                        int internoId = 0;
                        for (int i = 0; i < vm.Pessoa.Juridica.Representantes.Count; i++)
                        {
                            internoId = vm.Pessoa.Juridica.Representantes[i].Id;
                            vm.Pessoa.Juridica.Representantes[i]           = _bus.ObterPessoaInterno(vm.Pessoa.Juridica.Representantes[i].CPFCNPJ);
                            vm.Pessoa.Juridica.Representantes[i].InternoId = internoId;
                            vm.Pessoa.Juridica.Representantes[i].Id        = 0;

                            if (vm.Pessoa.Juridica.Representantes[i].Fisica.ConjugeId > 0)
                            {
                                vm.Pessoa.Juridica.Representantes[i].Fisica.Conjuge                  = _bus.ObterPessoaInterno(vm.Pessoa.Juridica.Representantes[i].Fisica.ConjugeId.Value);
                                vm.Pessoa.Juridica.Representantes[i].Fisica.Conjuge.InternoId        = vm.Pessoa.Juridica.Representantes[i].Fisica.ConjugeId;
                                vm.Pessoa.Juridica.Representantes[i].Fisica.Conjuge.Fisica.ConjugeId = 0;
                                vm.Pessoa.Juridica.Representantes[i].Fisica.Conjuge.Id               = 0;
                                vm.Pessoa.Juridica.Representantes[i].Fisica.ConjugeId                = 0;
                            }
                        }
                    }
                    else if (vm.Pessoa.Fisica.ConjugeId > 0)
                    {
                        vm.Pessoa.Fisica.Conjuge                  = _bus.ObterPessoaInterno(vm.Pessoa.Fisica.ConjugeId.Value);
                        vm.Pessoa.Fisica.Conjuge.InternoId        = vm.Pessoa.Fisica.ConjugeId;
                        vm.Pessoa.Fisica.Conjuge.Fisica.ConjugeId = 0;
                        vm.Pessoa.Fisica.Conjuge.Id               = 0;
                        vm.Pessoa.Fisica.ConjugeId                = 0;
                    }
                }

                CarregaCampos(vm);
                vm.CarregarMunicipios();
            }

            if (Request.IsAjaxRequest())
            {
                return(PartialView("CredenciadoPartial", vm));
            }
            else
            {
                return(View(vm));
            }
        }