public JsonResult Criar(string strFuncionario)
        {
            var pFuncionario = JsonConvert.DeserializeObject<FuncionarioModel>(strFuncionario);

            try
            {
                using (var manterFuncionario = new ManterFuncionarios())
                {
                    var funcionario = new Funcionario()
                    {
                        Bairro = pFuncionario.Bairro.ToUpper(),
                        CEP = pFuncionario.CEP,
                        Cidade = pFuncionario.Cidade.ToUpper(),
                        Complemento = pFuncionario.Complemento.ToUpper(),
                        CPF = pFuncionario.CPF,
                        CTPS = pFuncionario.CTPS,
                        DataInicioTrabalho = pFuncionario.DataInicioTrabalho,
                        Email = pFuncionario.Email,
                        HorarioEntrada = pFuncionario.HorarioEntrada,
                        HorarioSaida = pFuncionario.HorarioSaida,
                        IdFuncionario = pFuncionario.IdFuncionario,
                        Logradouro = pFuncionario.Logradouro.ToUpper(),
                        Nome = pFuncionario.Nome.ToUpper(),
                        Numero = pFuncionario.Numero,
                        RemuneracaoAtual = pFuncionario.RemuneracaoAtual,
                        RG = pFuncionario.RG,
                        TelefoneCelular = pFuncionario.TelefoneCelular,
                        TelefoneFixo = pFuncionario.TelefoneFixo,
                        UF = pFuncionario.UF.ToUpper(),
                        SituacaoAtual = (SituacaoFuncionario)Enum.Parse(typeof(SituacaoFuncionario), pFuncionario.SituacaoAtual.IdSituacaoFuncionario.ToString())
                    };

                    manterFuncionario.InserirFuncionario(funcionario);

                    AtualizarUsuarioFuncionario(funcionario, pFuncionario);

                    return Json(new
                    {
                        TipoMensagem = TipoMensagemRetorno.Ok,
                        Mensagem = "Funcionário Inserido com sucesso!",
                    }, "text/html", JsonRequestBehavior.AllowGet);
                }
            }
            catch (Exception ex)
            {

                    return Json(new
                {
                    TipoMensagem = TipoMensagemRetorno.Erro,
                    Mensagem = ex.Message,
                }, "text/html", JsonRequestBehavior.AllowGet);
            }
        }
        public void AtualizarFuncionario(Funcionario Funcionario, string Login, bool UsaSenhaDia, int IdPefil)
        {
            var UsuarioFuncionario = usuarioBm.GetByFuncionario(Funcionario);

            if (UsuarioFuncionario == null)
            {
                UsuarioFuncionario = new Usuario()
                {
                    DataCriacao = DateTime.Now,
                    AutenticaSenhaDia = UsaSenhaDia,
                    Ativo = true,
                    Email = Funcionario.Email,
                    Telefone = string.IsNullOrWhiteSpace(Funcionario.TelefoneCelular) ? Funcionario.TelefoneFixo : Funcionario.TelefoneCelular,
                    Login = Login.ToUpper(),
                    Nome = Funcionario.Nome.ToUpper(),
                    FuncionarioAssociado = funcionarioBm.GetByID(Funcionario.IdFuncionario)
                };

                usuarioBm.Insert(UsuarioFuncionario);

                var usuarioPerfil = new UsuarioPerfil()
                {
                    Ativo = true,
                    DataAssociacao = DateTime.Now,
                    Perfil = perfilBm.GetByID(IdPefil),
                    Usuario = usuarioBm.GetByID(UsuarioFuncionario.IdUsuario)
                };

                usuarioPerfilBm.Insert(usuarioPerfil);

            }
            else
            {
                UsuarioFuncionario.Login = Login.ToUpper();
                UsuarioFuncionario.Nome = Funcionario.Nome.ToUpper();
                UsuarioFuncionario.Email = Funcionario.Email;
                UsuarioFuncionario.Telefone = string.IsNullOrWhiteSpace(Funcionario.TelefoneCelular) ? Funcionario.TelefoneFixo : Funcionario.TelefoneCelular;
                UsuarioFuncionario.AutenticaSenhaDia = UsaSenhaDia;

                usuarioBm.Update(UsuarioFuncionario);

                var usuarioPerfil = usuarioPerfilBm.GetPerfilByUsuario(UsuarioFuncionario).Where(x => x.Ativo).FirstOrDefault();

                if (usuarioPerfil != null)
                {
                    usuarioPerfil.Ativo = false;
                    usuarioPerfilBm.Update(usuarioPerfil);

                    usuarioPerfil = new UsuarioPerfil()
                    {
                        Ativo = true,
                        DataAssociacao = DateTime.Now,
                        Perfil = perfilBm.GetByID(IdPefil),
                        Usuario = usuarioBm.GetByID(UsuarioFuncionario.IdUsuario)
                    };

                    usuarioPerfilBm.Insert(usuarioPerfil);

                }

            }
        }
 public void AlterarFuncionario(Funcionario pFuncionario)
 {
     funcionarioBm.Update(pFuncionario);
 }
 public void InserirFuncionario(Funcionario pFuncionario)
 {
     funcionarioBm.Insert(pFuncionario);
 }
 public Usuario GetUsuarioPorFuncionario(Funcionario Funcionario)
 {
     return usuarioBm.GetByFuncionario(Funcionario);
 }
        public void DesativarUsuario(Funcionario funcionario)
        {
            var usuarioPerfil = usuarioPerfilBm.GetPerfilByUsuario(usuarioBm.GetByFuncionario(funcionario)).Where(x => x.Ativo).FirstOrDefault();
            if (usuarioPerfil != null)
            {
                usuarioPerfil.Ativo = false;
                usuarioPerfilBm.Update(usuarioPerfil);
            }

            var usuarioFuncionario = usuarioBm.GetByFuncionario(funcionario);
            if (usuarioFuncionario != null)
            {
                usuarioFuncionario.Ativo = false;
                usuarioBm.Update(usuarioFuncionario);
            }
        }
 private void AtualizarUsuarioFuncionario(Funcionario Funcionario, FuncionarioModel FuncionarioModel)
 {
     using (var manterFuncionario = new ManterFuncionarios())
     {
         if (FuncionarioModel.PossuiAcessoSistema)
         {
             manterFuncionario.AtualizarFuncionario(Funcionario, FuncionarioModel.Login, FuncionarioModel.UsaSenhaDia,FuncionarioModel.IdPefil);
         }
         else
         {
             manterFuncionario.DesativarUsuario(Funcionario);
         }
     }
 }