public ActionResult Create([Bind(Include = "ID,EmpresaID,Nome,Situacao,Naturalidade,DataNascimento,Sexo,EstadoCivil,CPF,RG,NIT,CNH,CTPS,Endereco,Numero,Complemento,Bairro,CEP,Fone1,Fone2,Email,Observacao,CidadeID")] Funcionario funcionario)
 {
     ViewBag.UsuarioLogado = Utils.User.GetCookieUsuarioLogado(Request, Session);
     if (!string.IsNullOrEmpty(ViewBag.UsuarioLogado))
     {
         Utils.User.UsuarioLogado usuariologado = Utils.User.GetDadosUsuarioLogado(ViewBag.UsuarioLogado);
         ViewBag.ModuloFinanceiro = usuariologado.moduloFinanceiro;
         ViewBag.RuleAdmin        = usuariologado.admin;
         ViewBag.RuleFinanceiro   = usuariologado.RuleFinanceiro;
         ViewBag.RuleMovimentacao = usuariologado.RuleMovimentacao;
         ViewBag.RuleCadastro     = usuariologado.RuleCadastro;
         if (ModelState.IsValid)
         {
             funcionario.ID = LibProdusys.GetNewCode("funcionario", "id", " empresaid = " + usuariologado.empresaId.ToString());
             try
             {
                 funcionario.DataNascimento = funcionario.DataNascimento;
                 funcionario.Bairro         = LibProdusys.FS(funcionario.Bairro);
                 funcionario.CEP            = LibProdusys.TrataCep(funcionario.CEP);
                 funcionario.CNH            = LibProdusys.FS(funcionario.CNH);
                 funcionario.Complemento    = LibProdusys.FS(funcionario.Complemento);
                 funcionario.CPF            = LibProdusys.TrataCNPJ(funcionario.CPF);
                 funcionario.CTPS           = LibProdusys.FS(funcionario.CTPS);
                 funcionario.Endereco       = LibProdusys.FS(funcionario.Endereco);
                 funcionario.Fone1          = LibProdusys.TrataFone(funcionario.Fone1);
                 funcionario.Fone2          = LibProdusys.TrataCelular(funcionario.Fone2);
                 funcionario.Naturalidade   = LibProdusys.FS(funcionario.Naturalidade);
                 funcionario.NIT            = LibProdusys.FS(funcionario.NIT);
                 funcionario.Nome           = LibProdusys.FS(funcionario.Nome);
                 funcionario.Numero         = LibProdusys.FS(funcionario.Numero);
                 funcionario.Observacao     = LibProdusys.FS(funcionario.Observacao);
                 funcionario.RG             = LibProdusys.FS(funcionario.RG);
                 funcionario.EmpresaID      = Convert.ToInt32(usuariologado.empresaId);
                 funcionario.DataCadastro   = Convert.ToDateTime(DateTime.Now.ToShortDateString());
                 db.Funcionarios.Add(funcionario);
                 db.SaveChanges();
                 return(RedirectToAction("Index"));
             }
             catch (Exception)
             {
                 throw;
             }
         }
         ViewBag.EstadoCivil = new SelectList(new Funcionario.ListaEstadoCivil().MetodoListaEstadoCivil(), "ID", "Descricao", funcionario.EstadoCivil);
         ViewBag.Sexo        = new SelectList(new Pessoa.ListaSexo().MetodoListaSexo(), "ID", "Descricao", funcionario.Sexo);
         ViewBag.CidadeID    = new SelectList(db.Cidades.OrderBy(x => x.Descricao), "ID", "CidadeUF", funcionario.CidadeID);
         ViewBag.EmpresaID   = new SelectList(db.Empresas, "ID", "Razao", funcionario.EmpresaID);
         ViewBag.Situacao    = new SelectList(new Pessoa.ListaSituacao().MetodoListaSituacao(), "ID", "Descricao", funcionario.Situacao);
         return(View(funcionario));
     }
     else
     {
         TempData["MensagemRetorno"] = "Faça Login para continuar.";
         return(Redirect("~/Login"));
     }
 }