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() })); } }
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() })); } }