public ActionResult SalvarPermissoes(bool Acao, string Perfil, string UIDsUsuarios, string Config) { try { if (Acao) { //Incluir permissão if (UIDsUsuarios.Contains("|")) { foreach (string IDUsuario in UIDsUsuarios.Split('|')) { if (!string.IsNullOrEmpty(IDUsuario)) { UsuarioPerfilBusiness.Inserir(new UsuarioPerfil() { UKUsuario = IDUsuario, UKPerfil = Perfil, UKConfig = Config }); } } } else { UsuarioPerfilBusiness.Inserir(new UsuarioPerfil() { UKUsuario = UIDsUsuarios, UKPerfil = Perfil, UKConfig = Config }); } } else { //Remover permissão if (UIDsUsuarios.Contains("|")) { foreach (string IDUsuario in UIDsUsuarios.Split('|')) { if (!string.IsNullOrEmpty(IDUsuario)) { UsuarioPerfilBusiness.Alterar(new UsuarioPerfil() { UKUsuario = IDUsuario, UKPerfil = Perfil, UKConfig = Config, DataExclusao = DateTime.Now, UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login }); } } } else { UsuarioPerfilBusiness.Alterar(new UsuarioPerfil() { UKUsuario = UIDsUsuarios, UKPerfil = Perfil, UKConfig = Config, DataExclusao = DateTime.Now, UsuarioExclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login }); } } return(Json(new { resultado = new RetornoJSON() { } })); } 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 } })); } } }
public ActionResult SalvarPermissoes(bool Acao, string Perfil, string UIDsUsuarios, string Orgao, string Empresa) { try { if (Acao) { //Incluir permissão if (UIDsUsuarios.Contains("|")) { foreach (string IDUsuario in UIDsUsuarios.Split('|')) { if (!string.IsNullOrEmpty(IDUsuario)) { UsuarioPerfilBusiness.Inserir(new UsuarioPerfil() { IDUsuario = IDUsuario, IDPerfil = Perfil }); } } } else { UsuarioPerfilBusiness.Inserir(new UsuarioPerfil() { IDUsuario = UIDsUsuarios, IDPerfil = Perfil }); } } else { //Remover permissão if (UIDsUsuarios.Contains("|")) { foreach (string IDUsuario in UIDsUsuarios.Split('|')) { if (!string.IsNullOrEmpty(IDUsuario)) { UsuarioPerfilBusiness.Alterar(new UsuarioPerfil() { IDUsuario = IDUsuario, IDPerfil = Perfil, DataExclusao = DateTime.Now, UsuarioExclusao = "LoginTeste" }); } } } else { UsuarioPerfilBusiness.Alterar(new UsuarioPerfil() { IDUsuario = UIDsUsuarios, IDPerfil = Perfil, DataExclusao = DateTime.Now, UsuarioExclusao = "LoginTeste" }); } } return(Json(new { resultado = new RetornoJSON() { } })); } 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 } })); } } }
public ActionResult Cadastrar(Alocacao entidade) { if (ModelState.IsValid) { try { Admissao oAdmissao = AdmissaoBusiness.Consulta.FirstOrDefault(p => string.IsNullOrEmpty(p.UsuarioExclusao) && p.UniqueKey.Equals(entidade.UKAdmissao)); if (oAdmissao == null) { throw new Exception("Não foi possível encontrar a admissão na base de dados."); } Empregado emp = EmpregadoBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UniqueKey.Equals(oAdmissao.UKEmpregado)); if (emp == null) { throw new Exception("Não foi possível encontrar o empregado na base de dados."); } if (AlocacaoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKAdmissao.Equals(entidade.UKAdmissao) && a.UKCargo.Equals(entidade.UKCargo) && a.UKFuncao.Equals(entidade.UKFuncao)).Count() > 0) { throw new Exception("Já existe uma alocação deste empregado neste cargo e função selecionado."); } else { entidade.UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login; AlocacaoBusiness.Inserir(entidade); Usuario usr = UsuarioBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.Login.Equals(emp.CPF.Replace(".", "").Replace("-", ""))); if (usr == null) { // string Senha = GISHelpers.Utils.Severino.GeneratePassword(); string Senha = "escola10"; usr = new Usuario() { UniqueKey = Guid.NewGuid(), CPF = emp.CPF, Nome = emp.Nome, UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login, Email = emp.Email, Login = emp.CPF.Replace(".", "").Replace("-", ""), Senha = Senha, TipoDeAcesso = GISModel.Enums.TipoDeAcesso.Sistema, UKEmpresa = oAdmissao.UKEmpresa, UKDepartamento = entidade.UKDepartamento }; UsuarioBusiness.Inserir(usr); Perfil per = PerfilBusiness.Consulta.FirstOrDefault(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.Nome.Equals("Empregado")); if (per != null) { UsuarioPerfilBusiness.Inserir(new UsuarioPerfil() { UKPerfil = per.UniqueKey, UKUsuario = usr.UniqueKey, UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login, UKConfig = entidade.UKDepartamento }); } } //Cadastrando os documentos relacionados com a atividade alocada. var aloc = @"select top 1 UniqueKey, DataInclusao from tbAlocacao LAST_INSET_ID ORDER BY DataInclusao DESC "; List <Alocacao> lista1 = new List <Alocacao>(); DataTable result1 = DocumentosPessoalBusiness.GetDataTable(aloc); if (result1.Rows.Count > 0) { Alocacao UkAloc = null; Guid ukal = Guid.Empty; foreach (DataRow row in result1.Rows) { if (UkAloc == null) { UkAloc = new Alocacao() { UniqueKey = Guid.Parse(row["UniqueKey"].ToString()) }; } } if (UkAloc != null) { lista1.Add(UkAloc); } foreach (var item in lista1) { if (item != null) { ukal = item.UniqueKey; } } //ukal = Uniquekey da ultima alocaçao List <Alocacao> lista = new List <Alocacao>(); // aqui faço uma pesquisa de documentos relacionados a atividade var sql = @"select al.UniqueKey as UKal, fa.UniqueKey as UKfa, d.UniqueKey as UKd, d.NomeDocumento as Nome, da.UniqueKey as UKda from tbAlocacao al join REL_FuncaoAtividade fa on al.UKFuncao = fa.UKFuncao join REL_DocumentoPessoalAtividade da on fa.UKAtividade = da.UKAtividade join tbDocumentosPessoal d on da.UKDocumentoPessoal = d.UniqueKey and d.DataExclusao = CONVERT(datetime,'9999-12-31 23:59:59.997',101) where al.UniqueKey = '" + ukal + @"' order by al.UniqueKey "; 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) { Alocacao obj = null; DocumentosPessoal oDoc = null; foreach (DataRow row in result.Rows) { if (obj == null) { obj = new Alocacao() { UniqueKey = Guid.Parse(row["UKal"].ToString()), DocumentosPessoal = new List <DocumentosPessoal>() }; if (!string.IsNullOrEmpty(row["UKd"].ToString())) { oDoc = new DocumentosPessoal() { UniqueKey = Guid.Parse(row["UKd"].ToString()), NomeDocumento = row["nome"].ToString(), }; obj.DocumentosPessoal.Add(oDoc); } } else if (obj.UniqueKey.Equals(Guid.Parse(row["UKal"].ToString()))) { if (!string.IsNullOrEmpty(row["UKda"].ToString())) { if (oDoc == null) { oDoc = new DocumentosPessoal() { UniqueKey = Guid.Parse(row["UKd"].ToString()), NomeDocumento = row["nome"].ToString(), }; obj.DocumentosPessoal.Add(oDoc); } else { oDoc = new DocumentosPessoal() { UniqueKey = Guid.Parse(row["UKd"].ToString()), NomeDocumento = row["nome"].ToString(), }; obj.DocumentosPessoal.Add(oDoc); } } } else { lista.Add(obj); obj = new Alocacao() { UniqueKey = Guid.Parse(row["UKal"].ToString()), DocumentosPessoal = new List <DocumentosPessoal>() }; if (!string.IsNullOrEmpty(row["UKd"].ToString())) { oDoc = new DocumentosPessoal() { UniqueKey = Guid.Parse(row["UKd"].ToString()), 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 obj.DocumentosPessoal) { if (item != null) { documento += item.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_DocumentosAlocadoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKDocumento.Equals(pTemp.UniqueKey) && a.UKAlocacao.Equals(ukal)).Count() == 0) { REL_DocumentosAlocadoBusiness.Inserir(new REL_DocumentosAlocados() { Posicao = 0, UKAlocacao = ukal, 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_DocumentosAlocadoBusiness.Consulta.Where(a => string.IsNullOrEmpty(a.UsuarioExclusao) && a.UKDocumento.Equals(pTemp.UniqueKey) && a.UKAlocacao.Equals(ukal)).Count() == 0) { REL_DocumentosAlocadoBusiness.Inserir(new REL_DocumentosAlocados() { UKAlocacao = ukal, UKDocumento = pTemp.UniqueKey, UsuarioInclusao = CustomAuthorizationProvider.UsuarioAutenticado.Login }); } } } } } Extensions.GravaCookie("MensagemSucesso", "O empregado foi alocado com sucesso.", 10); return(Json(new { resultado = new RetornoJSON() { URL = Url.Action("Perfil", "Empregado", new { id = oAdmissao.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() })); } }