Exemplo n.º 1
0
        public ActionResult Demitir(string id)
        {
            try
            {
                //######################################################################################################

                if (string.IsNullOrEmpty(id))
                {
                    throw new Exception("Não foi possível localizar a identificação da admissão para prosseguir com a operação.");
                }

                Guid     UKAdmissao = Guid.Parse(id);
                Admissao adm        = AdmissaoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(UKAdmissao));
                if (adm == null)
                {
                    throw new Exception("Não foi possível encontrar a admissão na base de dados.");
                }

                Empregado oEmp = EmpregadoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(adm.UKEmpregado));
                if (oEmp == null)
                {
                    throw new Exception("Não foi possível encontrar o empregado na base de dados.");
                }

                //######################################################################################################


                List <Alocacao> als = AlocacaoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKAdmissao.Equals(UKAdmissao)).ToList();
                if (als.Count > 0)
                {
                    foreach (Alocacao al in als)
                    {
                        al.UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                        AlocacaoBusiness.Terminar(al);
                    }
                }

                adm.UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                AdmissaoBusiness.Terminar(adm);



                oEmp.UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                EmpregadoBusiness.Terminar(oEmp);

                EmpregadoBusiness.Inserir(new Empregado()
                {
                    CPF             = oEmp.CPF,
                    Nome            = oEmp.Nome,
                    DataNascimento  = oEmp.DataNascimento,
                    Email           = oEmp.Email,
                    UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login,
                    UniqueKey       = oEmp.UniqueKey,
                    Status          = "Já admitido alguma vez"
                });



                Extensions.GravaCookie("MensagemSucesso", "O empregado foi demitido com sucesso.", 10);

                return(Json(new { resultado = new RetornoJSON()
                                  {
                                      URL = Url.Action("Perfil", "Empregado", new { id = adm.UKEmpregado.ToString() })
                                  } }));
            }
            catch (Exception ex)
            {
                if (ex.GetBaseException() == null)
                {
                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          Erro = ex.Message
                                      } }));
                }
                else
                {
                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          Erro = ex.GetBaseException().Message
                                      } }));
                }
            }
        }