public ActionResult Cadastrar(Admissao oAdmissao, string EmpID)
        {
            //id do Estabelecimento recebido por parametro
            oAdmissao.IDEmpregado = EmpID;


            if (ModelState.IsValid)
            {
                try
                {
                    AdmissaoBusiness.Inserir(oAdmissao);

                    TempData["MensagemSucesso"] = "O empregado foi admitido com sucesso.";

                    //var iAdmin = oAdmissao.IDAdmissao;

                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          URL = Url.Action("PerfilEmpregado", "Admissao", new { id = EmpID })
                                      } }));
                }
                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
                                          } }));
                    }
                }
            }
            else
            {
                return(Json(new { resultado = TratarRetornoValidacaoToJSON() }));
            }
        }
Exemple #2
0
        public ActionResult Cadastrar(Admissao entidade)
        {
            if (ModelState.IsValid)
            {
                try
                {
                    Empregado oEmp = EmpregadoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(entidade.UKEmpregado));
                    if (oEmp == null)
                    {
                        throw new Exception("Não foi possível encontrar o empregado relacionado a admissão.");
                    }

                    entidade.Status          = GISModel.Enums.Situacao.Ativo;
                    entidade.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login;
                    AdmissaoBusiness.Inserir(entidade);

                    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          = "Atualmente admitido"
                    });

                    var adm = @"select top 1  UniqueKey, DataInclusao  from tbAdmissao LAST_INSET_ID ORDER BY DataInclusao DESC  ";

                    List <Admissao> lista1 = new List <Admissao>();

                    DataTable result1 = DocumentosPessoalBusiness.GetDataTable(adm);

                    if (result1.Rows.Count > 0)
                    {
                        Admissao UkAdm      = null;
                        Guid     ukadmissao = Guid.Empty;

                        foreach (DataRow row in result1.Rows)
                        {
                            if (UkAdm == null)
                            {
                                UkAdm = new Admissao()
                                {
                                    UniqueKey = Guid.Parse(row["UniqueKey"].ToString())
                                };
                            }
                        }

                        if (UkAdm != null)
                        {
                            lista1.Add(UkAdm);
                        }

                        foreach (var item in lista1)
                        {
                            if (item != null)
                            {
                                ukadmissao = item.UniqueKey;
                            }
                        }


                        //ukad = Uniquekey da ultima admissao


                        List <Admissao> lista = new List <Admissao>();

                        // aqui faço uma pesquisa de documentos relacionados a admissao

                        var sql = @"select UniqueKey as UKad, NomeDocumento as nome from tbDocumentosPessoal where Tipo = 1";

                        DataTable result = DocumentosPessoalBusiness.GetDataTable(sql);

                        //abaixo monto uma lista de objetos com a Uniquekey da alocação e a relação de documentos relacionados a atividade alocada

                        if (result.Rows.Count > 0)
                        {
                            Admissao          obj  = null;
                            DocumentosPessoal oDoc = null;

                            foreach (DataRow row in result.Rows)
                            {
                                if (obj == null)
                                {
                                    obj = new Admissao()
                                    {
                                        UniqueKey         = ukadmissao,
                                        DocumentosPessoal = new List <DocumentosPessoal>()
                                    };

                                    if (!string.IsNullOrEmpty(row["UKad"].ToString()))
                                    {
                                        oDoc = new DocumentosPessoal()
                                        {
                                            UniqueKey     = ukadmissao,
                                            NomeDocumento = row["nome"].ToString(),
                                        };


                                        obj.DocumentosPessoal.Add(oDoc);
                                    }
                                }
                                else if (obj.UniqueKey.Equals(Guid.Parse(row["UKad"].ToString())))
                                {
                                    if (!string.IsNullOrEmpty(row["UKad"].ToString()))
                                    {
                                        if (oDoc == null)
                                        {
                                            oDoc = new DocumentosPessoal()
                                            {
                                                UniqueKey     = ukadmissao,
                                                NomeDocumento = row["nome"].ToString(),
                                            };

                                            obj.DocumentosPessoal.Add(oDoc);
                                        }


                                        else
                                        {
                                            oDoc = new DocumentosPessoal()
                                            {
                                                UniqueKey     = ukadmissao,
                                                NomeDocumento = row["nome"].ToString(),
                                            };

                                            obj.DocumentosPessoal.Add(oDoc);
                                        }
                                    }
                                }
                                else
                                {
                                    lista.Add(obj);

                                    obj = new Admissao()
                                    {
                                        UniqueKey         = ukadmissao,
                                        DocumentosPessoal = new List <DocumentosPessoal>()
                                    };

                                    if (!string.IsNullOrEmpty(row["UKad"].ToString()))
                                    {
                                        oDoc = new DocumentosPessoal()
                                        {
                                            UniqueKey     = ukadmissao,
                                            NomeDocumento = row["nome"].ToString(),
                                        };


                                        obj.DocumentosPessoal.Add(oDoc);
                                    }
                                }
                            }

                            if (obj != null)
                            {
                                lista.Add(obj);
                            }


                            if (lista == null)
                            {
                                throw new Exception("Nenhum Documento para vincular.");
                            }

                            string documento = string.Empty;

                            foreach (var item in lista)
                            {
                                if (item != null)
                                {
                                    foreach (var item2 in item.DocumentosPessoal)
                                    {
                                        documento += item2.NomeDocumento + ",";
                                    }
                                }
                            }

                            // se vier uma array entra aqui neste if

                            if (documento.Contains(","))
                            {
                                documento = documento.Remove(documento.Length - 1);

                                foreach (string ativ in documento.Split(','))
                                {
                                    if (!string.IsNullOrEmpty(ativ.Trim()))
                                    {
                                        DocumentosPessoal pTemp = DocumentosPessoalBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.NomeDocumento.Equals(ativ.Trim()));
                                        if (pTemp != null)
                                        {
                                            if (Rel_DocAdmissaoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKDocumento.Equals(pTemp.UniqueKey) && a.UKAdmissoa.Equals(ukadmissao)).Count() == 0)
                                            {
                                                Rel_DocAdmissaoBusiness.Inserir(new Rel_DocAdmissao()
                                                {
                                                    Posicao         = 0,
                                                    UKAdmissoa      = ukadmissao,
                                                    UKDocumento     = pTemp.UniqueKey,
                                                    DataDocumento   = DateTime.MaxValue,
                                                    UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login
                                                });
                                            }
                                            //else
                                            //{
                                            //    return Json(new { resultado = new RetornoJSON() { Erro = "Este documento já está cadastrado para esta alocação!." } });
                                            //}
                                        }
                                    }
                                }
                            }

                            // se vier somente um documento entre aqui
                            else
                            {
                                DocumentosPessoal pTemp = DocumentosPessoalBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.NomeDocumento.Equals(documento.Trim()));
                                if (pTemp != null)
                                {
                                    if (Rel_DocAdmissaoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKDocumento.Equals(pTemp.UniqueKey) && a.UKAdmissoa.Equals(ukadmissao)).Count() == 0)
                                    {
                                        Rel_DocAdmissaoBusiness.Inserir(new Rel_DocAdmissao()
                                        {
                                            UKAdmissoa      = ukadmissao,
                                            UKDocumento     = pTemp.UniqueKey,
                                            UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login
                                        });
                                    }
                                }
                            }
                        }
                    }



                    Extensions.GravaCookie("MensagemSucesso", "Admissão realizada com sucesso.", 10);

                    return(Json(new { resultado = new RetornoJSON()
                                      {
                                          URL = Url.Action("Perfil", "Empregado", new { id = entidade.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
                                          } }));
                    }
                }
            }
            else
            {
                return(Json(new { resultado = TratarRetornoValidacaoToJSON() }));
            }
        }