public object ExcluirSolicitacao(SolicitacaoDocumento sol) { Usuario user = GetSessionUser(); if (user.Permissao == EnumPermissaoUsuario.coordenador) { var retorno = solicitacaoRepository.GetSolicitacaoByCoordenador(User.Identity.Name); if (!retorno.Any(x => x.IdSolicitacao == sol.IdSolicitacao)) { return(Json(new { Status = false, Type = "error", Message = "Não autorizado!" }, JsonRequestBehavior.AllowGet)); } } var s = solicitacaoRepository.GetSolicitacaoById(sol.IdSolicitacao); if (s.Status == EnumStatusSolicitacao.pendente) //regra q soh deleta se status for pendente { if (documentoRepository.DeletaArquivo(s.Documento, true)) { Utilidades.SalvaLog(user, EnumAcao.Excluir, s, s.IdSolicitacao); return(Json(new { Status = true, Type = "success", Message = "Solicitação deletada com sucesso!" }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { Status = false, Type = "error", Message = "Ocorreu um erro ao realizar esta operação." }, JsonRequestBehavior.AllowGet)); } } return(Json(new { Status = false, Type = "error", Message = "Só é possível realizar exclusão de solicitações pendentes." }, JsonRequestBehavior.AllowGet)); }
public object ExcluirDocumento(Documento doc) { Usuario user = GetSessionUser(); // valida se o aluno está matriculado no curso que coordena if (user.Permissao == EnumPermissaoUsuario.coordenador) { List <Curso> cursos = cursoRepository.GetCursoByCoordenador(user.IdUsuario); List <int> alunos = new List <int>(); doc = documentoRepository.GetDocumentoById(doc.IdDocumento); foreach (Curso c in cursos) { alunos.AddRange(c.AlunoCurso.Select(x => x.IdAluno)); } if (!alunos.Contains(doc.AlunoCurso.IdAluno)) { return(Json(new { Status = false, Type = "error", Message = "Não autorizado!" }, JsonRequestBehavior.AllowGet)); } } if (documentoRepository.DeletaArquivo(doc, true)) { Utilidades.SalvaLog(user, EnumAcao.Excluir, doc, (int?)doc.IdDocumento); return(Json(new { Status = true, Type = "success", Message = "Documento deletado com sucesso!", ReturnUrl = Url.Action("Index") }, JsonRequestBehavior.AllowGet)); } return(Json(new { Status = false, Type = "error", Message = "Ocorreu um erro ao realizar esta operação, verifique se existe uma solicitação vinculada a este documento." }, JsonRequestBehavior.AllowGet)); }
public object AlterarStatus(SolicitacaoDocumento solic, int?Horas) { Usuario user = GetSessionUser(); try { if (user.Permissao == EnumPermissaoUsuario.coordenador) { var retorno = solicitacaoRepository.GetSolicitacaoByCoordenador(User.Identity.Name); if (!retorno.Any(x => x.IdSolicitacao == solic.IdSolicitacao)) { return(Json(new { Status = false, Type = "error", Message = "Não autorizado!" }, JsonRequestBehavior.AllowGet)); } } if (solic.Status == EnumStatusSolicitacao.concluido && !Horas.HasValue) { return(Json(new { Status = false, Type = "error", Message = "Informe a quantidade de horas." }, JsonRequestBehavior.AllowGet)); } else if (solic.Status == EnumStatusSolicitacao.reprovado && string.IsNullOrEmpty(solic.Observacao)) { return(Json(new { Status = false, Type = "error", Message = "Informe a observação sobre reprovação." }, JsonRequestBehavior.AllowGet)); } var ok = true; var sol = solicitacaoRepository.GetSolicitacaoById(solic.IdSolicitacao); sol.Status = solic.Status; if (sol.Status == EnumStatusSolicitacao.reprovado) { sol.Observacao = solic.Observacao; } else if (sol.Status == EnumStatusSolicitacao.concluido) { ok = alunoRepository.AdicionaHoras(Horas.Value, sol.IdSolicitacao); } var msg = ""; if (ok) { msg = solicitacaoRepository.PersisteSolicitacao(sol); } else { return(Json(new { Status = false, Type = "error", Message = "Ocorreu um erro ao realizar esta operação." }, JsonRequestBehavior.AllowGet)); } if (msg != "Erro") { try { if (sol.Status == EnumStatusSolicitacao.reprovado && !string.IsNullOrEmpty(sol.Documento.CaminhoDocumento)) { documentoRepository.DeletaArquivo(sol.Documento, false); //DirDoc.DeletaArquivo(sol.Documento.CaminhoDocumento); //sol.Documento.CaminhoDocumento = null; } var acao = sol.Status == EnumStatusSolicitacao.concluido ? "aprovada" : sol.Status == EnumStatusSolicitacao.reprovado ? "reprovada" : ""; var url = System.Web.Hosting.HostingEnvironment.MapPath("~/Views/Email/AlteracaoStatusSolicitacaoHoras.cshtml"); string viewCode = System.IO.File.ReadAllText(url); var solicitacaoEmail = solicitacaoRepository.ConverToEmailModel(sol, Url.Action("Login", "Account", null, Request.Url.Scheme)); var html = RazorEngine.Razor.Parse(viewCode, solicitacaoEmail); var to = new[] { solicitacaoEmail.EmailAluno }; var from = System.Configuration.ConfigurationManager.AppSettings["MailFrom"].ToString(); Email.EnviarEmail(from, to, "Solicitação de horas complementares " + acao, html); } catch (Exception e) { } if (sol.Status == EnumStatusSolicitacao.concluido) { Utilidades.SalvaLog(user, EnumAcao.Aprovar, sol, sol.IdSolicitacao); } else if (sol.Status == EnumStatusSolicitacao.reprovado) { Utilidades.SalvaLog(user, EnumAcao.Reprovar, sol, sol.IdSolicitacao); } return(Json(new { Status = true, Type = "success", Message = "Solicitação salva com sucesso", ReturnUrl = Url.Action("Index") }, JsonRequestBehavior.AllowGet)); } else { return(Json(new { Status = false, Type = "error", Message = "Ocorreu um erro ao realizar esta operação." }, JsonRequestBehavior.AllowGet)); } } catch (Exception e) { return(Json(new { Status = false, Type = "error", Message = "Ocorreu um erro ao realizar esta operação." }, JsonRequestBehavior.AllowGet)); } }