public ActionResult ConfirmaAnalise(string UKAlocacao, string UKREL_DocAloc, string Coment, string status, string UKobjetoArquivo) { Guid Aloc = Guid.Parse(UKAlocacao); Guid Rel = Guid.Parse(UKREL_DocAloc); //uniquekey do arquivo Guid RelArq = Guid.Parse(UKobjetoArquivo); DataTable oSql = retornaAdm(UKAlocacao); DataTable oSql1 = retornaLoc(UKAlocacao); DataTable result = null; if (oSql != null) { result = oSql; } if (oSql1 != null) { result = oSql1; } string ukEmp = ""; if (result.Rows.Count > 0) { foreach (DataRow row in result.Rows) { if (ukEmp == "") { ukEmp = row["ukemp"].ToString(); } } } Guid ukempreg = Guid.Parse(ukEmp); if (ModelState.IsValid) { try { REL_DocumentosAlocados oRelDoc = REL_DocumentosAlocadosBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(Rel)); Rel_DocAdmissao oRelDocAd = Rel_DocAdmissaoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(Rel)); REL_ArquivoEmpregado oArqemp = REL_ArquivoEmpregadoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKObjetoArquivo.Equals(RelArq)); var Cstatus = Convert.ToInt32(status); var oArquivos = ArquivoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(RelArq)); //oRelDoc.Posicao = Cstatus; //REL_DocumentosAlocadosBusiness.Alterar(oRelDoc); //oArqemp.status = status; //REL_ArquivoEmpregadoBusiness.Alterar(oArqemp); //oArquivos.status = status; //ArquivoBusiness.Alterar(oArquivos); string sttatus = ""; if (oRelDoc != null) { var oStatus = ArquivoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKObjeto.Equals(oRelDoc.UKDocumento) && a.NumRegistro.Equals(UKAlocacao)).ToList(); var contador = oStatus.Count(); var contador1 = 0; var contador2 = 0; var contador3 = 0; if (oStatus != null) { foreach (var item in oStatus) { if (item.status == Convert.ToString(3)) { contador3 = contador3 + 1; //sttatus = "3"; } if (item.status == Convert.ToString(1)) { contador1 = contador1 + 1; //sttatus = "1"; } if (item.status == Convert.ToString(2)) { contador2 = contador2 + 1; //sttatus = "2"; } } } switch (status) { case "3": if (oArquivos.UniqueKey == RelArq && status == "3" && contador3 >= 1) { throw new Exception("Você precisa corrigir ou deletar o arquivo reprovado!"); } else { oRelDoc.Posicao = Cstatus; REL_DocumentosAlocadosBusiness.Alterar(oRelDoc); oArqemp.status = status; REL_ArquivoEmpregadoBusiness.Alterar(oArqemp); oArquivos.status = status; ArquivoBusiness.Alterar(oArquivos); } break; case "1": if (oArquivos.UniqueKey == RelArq && contador1 > 1 && contador3 == 0) { //oRelDoc.Posicao = Cstatus; //REL_DocumentosAlocadosBusiness.Alterar(oRelDoc); oArqemp.status = status; REL_ArquivoEmpregadoBusiness.Alterar(oArqemp); oArquivos.status = status; ArquivoBusiness.Alterar(oArquivos); } else if (oArquivos.UniqueKey == RelArq && contador1 > 1 && contador3 >= 1) { throw new Exception("Você precisa corrigir ou deletar o arquivo reprovado!"); } else if (oArquivos.UniqueKey == RelArq && contador1 == 0 && contador3 >= 1) { throw new Exception("Você precisa corrigir ou deletar o arquivo reprovado!"); } else { oRelDoc.Posicao = Cstatus; REL_DocumentosAlocadosBusiness.Alterar(oRelDoc); oArqemp.status = status; REL_ArquivoEmpregadoBusiness.Alterar(oArqemp); oArquivos.status = status; ArquivoBusiness.Alterar(oArquivos); } break; case "2": if (oArquivos.UniqueKey == RelArq && status == "2" && contador1 < contador - 1 && contador1 >= 2) { oRelDoc.Posicao = Cstatus; REL_DocumentosAlocadosBusiness.Alterar(oRelDoc); oArqemp.status = status; REL_ArquivoEmpregadoBusiness.Alterar(oArqemp); oArquivos.status = status; ArquivoBusiness.Alterar(oArquivos); } else if (oArquivos.UniqueKey == RelArq && status == "2" && contador1 == 1) { oRelDoc.Posicao = Cstatus; REL_DocumentosAlocadosBusiness.Alterar(oRelDoc); oArqemp.status = status; REL_ArquivoEmpregadoBusiness.Alterar(oArqemp); oArquivos.status = status; ArquivoBusiness.Alterar(oArquivos); } break; } } if (oRelDocAd != null) { var oStatus = ArquivoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKObjeto.Equals(oRelDocAd.UniqueKey)).ToList(); var contador = oStatus.Count(); var contador1 = 0; var contador2 = 0; var contador3 = 0; if (oStatus != null) { foreach (var item in oStatus) { if (item.status == Convert.ToString(3)) { contador3 = contador3 + 1; //sttatus = "3"; } if (item.status == Convert.ToString(1)) { contador1 = contador1 + 1; //sttatus = "1"; } if (item.status == Convert.ToString(2)) { contador2 = contador2 + 1; //sttatus = "2"; } } } switch (status) { case "3": if (oArquivos.UniqueKey == RelArq && status == "3" && contador3 >= 1) { throw new Exception("Você precisa corrigir ou deletar o arquivo reprovado!"); } else { oRelDocAd.Posicao = Cstatus; Rel_DocAdmissaoBusiness.Alterar(oRelDocAd); oArqemp.status = status; REL_ArquivoEmpregadoBusiness.Alterar(oArqemp); oArquivos.status = status; ArquivoBusiness.Alterar(oArquivos); } break; case "1": if (oArquivos.UniqueKey == RelArq && contador1 > 1 && contador3 == 0) { //oRelDoc.Posicao = Cstatus; //REL_DocumentosAlocadosBusiness.Alterar(oRelDoc); oArqemp.status = status; REL_ArquivoEmpregadoBusiness.Alterar(oArqemp); oArquivos.status = status; ArquivoBusiness.Alterar(oArquivos); } else if (oArquivos.UniqueKey == RelArq && contador1 > 1 && contador3 >= 1) { throw new Exception("Você precisa corrigir ou deletar o arquivo reprovado!"); } else if (oArquivos.UniqueKey == RelArq && contador1 == 0 && contador3 >= 1) { throw new Exception("Você precisa corrigir ou deletar o arquivo reprovado!"); } else { oRelDocAd.Posicao = Cstatus; Rel_DocAdmissaoBusiness.Alterar(oRelDocAd); oArqemp.status = status; REL_ArquivoEmpregadoBusiness.Alterar(oArqemp); oArquivos.status = status; ArquivoBusiness.Alterar(oArquivos); } break; case "2": if (oArquivos.UniqueKey == RelArq && status == "2" && contador1 < contador - 1 && contador1 >= 2) { //oRelDoc.Posicao = Cstatus; //REL_DocumentosAlocadosBusiness.Alterar(oRelDoc); oArqemp.status = status; REL_ArquivoEmpregadoBusiness.Alterar(oArqemp); oArquivos.status = status; ArquivoBusiness.Alterar(oArquivos); } else if (oArquivos.UniqueKey == RelArq && status == "2" && contador1 == 1) { oRelDocAd.Posicao = Cstatus; Rel_DocAdmissaoBusiness.Alterar(oRelDocAd); oArqemp.status = status; REL_ArquivoEmpregadoBusiness.Alterar(oArqemp); oArquivos.status = status; ArquivoBusiness.Alterar(oArquivos); } break; } } Workflow wor = new Workflow(); wor.UKAlocacao = Aloc; wor.UKREL_DocAloc = Rel; wor.Comentarios = Coment; wor.Status = Convert.ToInt32(status); wor.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login; WorkflowBusiness.Inserir(wor); Extensions.GravaCookie("MensagemSucesso", "Solicitação enviada com sucesso", 10); return(Json(new { resultado = new RetornoJSON() { URL = Url.Action("Index", "Ged", new { id = ukEmp.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() })); } }
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() })); } }