예제 #1
0
        public ActionResult Index(long IdModulo)
        {
            string _IdModulo       = IdModulo.ToString();
            int    IdTipoDocumento = int.Parse(_IdModulo.Substring(0, (_IdModulo.Length == 7 ? 1 : 2)));

            Session["modId"] = IdModulo;

            DocumentosModel model = new DocumentosModel();

            model.EditDocumento       = false;
            model.IdEmpresa           = long.Parse(Session["IdEmpresa"].ToString());
            model.IdDocumentoSelected = 0;
            model.IdClaseDocumento    = 1;
            model.IdModulo            = IdModulo;
            model.IdModuloActual      = IdModulo;
            model.Documentos          = Metodos.GetDocumentosModulo(IdTipoDocumento, (model.IdClaseDocumento == 1));
            model.ModulosPrincipales  = Metodos.GetModulosPrincipalesEmpresaUsuario();
            model.Perfil     = Metodos.GetPerfilData();
            model.PageTitle  = Resources.DocumentoResource.DocumentosPageTitle;
            model.EditActive = Metodos.EditDocumentoActivo(IdTipoDocumento, (model.IdClaseDocumento == 1));
            ViewBag.Title    = string.Format("{0} - {1}", model.PageTitle, Resources.BCMWebPublic.labelAppTitle);

            Auditoria.RegistarAccion(eTipoAccion.AccesoModuloWeb);

            Session["IdClaseDocumento"] = model.IdClaseDocumento;
            Session["IdTipoDocumento"]  = IdTipoDocumento;

            return(View(model));
        }
예제 #2
0
        private string ComparaInfos(Usuario user)
        {
            DocumentosModel db2    = new DocumentosModel();
            Usuario         userld = db2.Usuario.Find(user.IdUsuario);

            if (user.Funcionario.Count > 0)
            {
                PersisteFuncionario(user.Funcionario.ToArray());
            }

            userld = Utilidades.ComparaValores(userld, user, new string[] { "E_mail", "Permissao" });


            if (userld == null)
            {
                return("Mantido");
            }
            if (db2.SaveChanges() > 0)
            {
                return("Alterado");
            }
            else
            {
                return("Erro");
            }
        }
예제 #3
0
        //public string AlteraStatus(SolicitacaoDocumento sol, EnumStatusSolicitacao e)
        //{
        //    SolicitacaoDocumento soli = db.SolicitacaoDocumento.Find(sol.IdSolicitacao);
        //    soli.Status = e;

        //    if(db.SaveChanges()>0)
        //    {
        //        return "Sucesso";
        //    }
        //    else
        //    {
        //        return "Erro";
        //    }
        //}
        #endregion

        private string ComparaInfos(SolicitacaoDocumento sol)
        {
            DocumentosModel      db2            = new DocumentosModel();
            SolicitacaoDocumento solicitacaoOld = (from sd in db2.SolicitacaoDocumento where sd.IdSolicitacao == sol.IdSolicitacao select sd).FirstOrDefault();

            //db.Entry(solicitacaoOld).Reload();
            solicitacaoOld = Utilidades.ComparaValores(solicitacaoOld, sol, new string[] { "DataLimite", "DataAtendimento", "Status", "IdFuncionario", "Observacao" });

            if (solicitacaoOld.Status == EnumStatusSolicitacao.cancelado)
            {
                db2.Documento.Remove(solicitacaoOld.Documento);
            }

            if (solicitacaoOld == null)
            {
                return("Mantido");
            }
            if (db2.SaveChanges() > 0)
            {
                return("Alterado");
            }
            else
            {
                return("Erro");
            }
        }
예제 #4
0
        private void CrearModel(string linea)
        {
            var vector = linea.Split(';');

            var report = new XtraReport();

            using (var ms = new MemoryStream(File.ReadAllBytes(_context.ServerMapPath(Path.Combine("~/App_Data/Documentos/", vector[4])))))
            {
                report.LoadLayout(ms);
                report.DataSource = FDocumentosDatasourceReport.CreateReport((TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), vector[0]), _context).DataSource;

                using (var stream = new MemoryStream())
                {
                    report.SaveLayout(stream);
                    var model = new DocumentosModel()
                    {
                        Usuario        = Guid.Empty.ToString(),
                        Tipo           = (TipoDocumentoImpresion)Enum.Parse(typeof(TipoDocumentoImpresion), vector[0]),
                        Nombre         = vector[1],
                        Tipoprivacidad = (TipoPrivacidadDocumento)Enum.Parse(typeof(TipoPrivacidadDocumento), vector[2]),
                        Tiporeport     = (TipoReport)Enum.Parse(typeof(TipoReport), vector[3]),
                        Datos          = stream.ToArray(),
                        Defecto        = Funciones.Qbool(vector[5])
                    };

                    _documentosService.SetPreferencia(model.Tipo, new Guid(model.Usuario), model.Tipoprivacidad, model.Tiporeport, model.Nombre, model.Datos, model.Defecto);
                }
            }
        }
예제 #5
0
        public ActionResult Index(DocumentosModel model)
        {
            string _IdModulo       = Session["modId"].ToString();
            long   IdModulo        = long.Parse(_IdModulo);
            int    IdTipoDocumento = int.Parse(_IdModulo.Substring(0, (_IdModulo.Length == 7 ? 1 : 2)));

            model.EditDocumento       = false;
            model.IdEmpresa           = long.Parse(Session["IdEmpresa"].ToString());
            model.IdDocumentoSelected = 0;
            model.IdModulo            = IdModulo;
            model.IdModuloActual      = IdModulo;
            model.EditActive          = Metodos.EditDocumentoActivo(IdTipoDocumento, (model.IdClaseDocumento == 1));
            model.Perfil             = Metodos.GetPerfilData();
            model.ModulosPrincipales = Metodos.GetModulosPrincipalesEmpresaUsuario();
            model.PageTitle          = Resources.DocumentoResource.DocumentosPageTitle;
            model.IdModuloActual     = long.Parse(_IdModulo);
            model.Documentos         = Metodos.GetDocumentosModulo(IdTipoDocumento, (model.IdClaseDocumento == 1));

            /*
             * Aplicar filtro a los documentos
             */
            if (model.FilterEstadoDocumento > 0)
            {
                model.Documentos = model.Documentos.Where(x => x.IdEstatus == model.FilterEstadoDocumento).ToList().AsQueryable();
            }
            if (model.FilterIdProceso > 0)
            {
                model.Documentos = model.Documentos.Where(x => x.Procesos != null && x.Procesos.Where(p => p.IdProceso == model.FilterIdProceso).Count() > 0).ToList().AsQueryable();
            }
            if (model.FilterIdUnidadOrganizativa > 0)
            {
                IList <long> UOIds = Metodos.GetRelatedUOIds(model.FilterIdUnidadOrganizativa);

                if (IdTipoDocumento == 4)
                {
                    model.Documentos = model.Documentos.Where(x => x.DatosBIA != null && UOIds.Contains(x.DatosBIA.IdUnidadOrganizativa)).ToList().AsQueryable();
                }
                else
                {
                    model.Documentos = model.Documentos.Where(x => x.DatosBCP != null && UOIds.Contains(x.DatosBCP.IdUnidadOrganizativa)).ToList().AsQueryable();
                }
            }
            if (model.FilterNroDocumento > 0)
            {
                model.Documentos = model.Documentos.Where(x => x.NroDocumento == model.FilterNroDocumento).ToList().AsQueryable();
            }
            if (model.FilterProcesoCritico)
            {
                model.Documentos = model.Documentos.Where(x => x.Procesos != null && x.Procesos.Where(p => p.Critico == model.FilterProcesoCritico).Count() > 0).ToList().AsQueryable();
            }
            if (model.FilterResponsable > 0)
            {
                model.Documentos = model.Documentos.Where(x => x.IdPersonaResponsable == model.FilterResponsable).ToList().AsQueryable();
            }

            ViewBag.Title = string.Format("{0} - {1}", model.PageTitle, Resources.BCMWebPublic.labelAppTitle);

            return(View(model));
        }
예제 #6
0
        public ActionResult DocumentoBCPPartialView(DocumentosModel model)
        {
            string _IdModulo       = Session["modId"].ToString();
            int    IdTipoDocumento = int.Parse(_IdModulo.Substring(0, (_IdModulo.Length == 7 ? 1 : 2)));

            model.IdClaseDocumento   = int.Parse(Session["IdClaseDocumento"].ToString());
            model.Documentos         = Metodos.GetDocumentosModulo(IdTipoDocumento, (model.IdClaseDocumento == 1));
            model.Perfil             = Metodos.GetPerfilData();
            model.ModulosPrincipales = Metodos.GetModulosPrincipalesEmpresaUsuario();
            model.PageTitle          = Resources.DocumentoResource.DocumentosPageTitle;
            model.IdModulo           = long.Parse(_IdModulo);
            ViewBag.Title            = string.Format("{0} - {1}", model.PageTitle, Resources.BCMWebPublic.labelAppTitle);

            return(PartialView(model));
        }
예제 #7
0
        private string ComparaInfos(Evento ev, int[] idsCurso)
        {
            DocumentosModel db2       = new DocumentosModel();
            Evento          eventoOld = db2.Evento.Find(ev.IdEvento);

            eventoOld = Utilidades.ComparaValores(eventoOld, ev, new string[] { "NomeEvento", "Vagas", "VagasPreenchidas", "CargaHoraria", "PresencaNecessaria", "DataInicio", "DataFim", "Status", "Local", "Observacao" });

            if (eventoOld == null)
            {
                if (idsCurso == null)
                {
                    return("Mantido");
                }
                else
                {
                    List <Curso> cursos = db2.Curso.Where(c => idsCurso.Contains(c.IdCurso)).ToList();

                    eventoOld = db2.Evento.Find(ev.IdEvento);
                    eventoOld.Curso.Clear();
                    foreach (var c in cursos)
                    {
                        eventoOld.Curso.Add(c);
                    }
                }
            }

            try
            {
                if (db2.SaveChanges() > 0)
                {
                    return("Alterado");
                }
                else
                {
                    return("Mantido");
                }
            }
            catch
            {
                return("Erro");
            }
        }
예제 #8
0
        private string ComparaInfos(Curso c)
        {
            DocumentosModel db2      = new DocumentosModel();
            Curso           cursoOld = db2.Curso.Find(c.IdCurso);

            cursoOld = Utilidades.ComparaValores(cursoOld, c, new string[] { "Nome", "Nível", "HoraComplementar", "IdCoordenador" });

            if (cursoOld == null)
            {
                return("Mantido");
            }
            if (db2.SaveChanges() > 0)
            {
                return("Alterado");
            }
            else
            {
                return("Erro");
            }
        }
        public virtual ActionResult DeleteConfirmed(DocumentosModel model)
        {
            try
            {
                using (var db = MarfilEntities.ConnectToSqlServer(ContextService.BaseDatos))
                    using (var service = new DocumentosUsuarioService(db))
                    {
                        TipoDocumentoImpresion tipoDocumento;
                        Guid   usuario;
                        string name;
                        DocumentosUsuarioService.GetFromCustomId(model.CustomId, out tipoDocumento, out usuario, out name);
                        ViewBag.TituloMantenimiento = string.Format(General.ConfiguradorDocumentos, Funciones.GetEnumByStringValueAttribute(tipoDocumento));
                        service.RemovePreferencia(tipoDocumento, usuario, name);

                        return(RedirectToAction("Index", new { id = (int)tipoDocumento }));
                    }
            }
            catch (Exception ex)
            {
                TempData["errors"] = ex.Message;
            }

            return(RedirectToAction("Delete", new { id = model.CustomId }));
        }
예제 #10
0
 public ActionResult FilterBiaDocs(DocumentosModel model)
 {
     return(PartialView(model));
 }
예제 #11
0
        public List <Documento> GetAllDocs()
        {
            DocumentosModel db2 = new DocumentosModel();

            return(db2.Documento.ToList());
        }
        public object SalvarSolicitacao(SolicitacaoDocumento sol)
        {
            Usuario user = GetSessionUser();

            var edit = true;

            sol.Status       = sol.IdSolicitacao > 0 ? sol.Status : EnumStatusSolicitacao.pendente;
            sol.DataAbertura = DateTime.Now;
            if (sol.IdSolicitacao == 0)
            {
                sol.IdAlunoCurso = cursoRepository.GetAlunoCurso(sol.AlunoCurso.IdAluno, sol.AlunoCurso.IdCurso).IdAlunoCurso;
            }
            sol.AlunoCurso      = null;
            sol.TipoSolicitacao = EnumTipoSolicitacao.secretaria;
            if (sol.IdSolicitacao == 0)
            {
                edit = false;
                Documento d = new Documento();
                d.IdTipoDoc     = (int)sol.TipoDocumento;
                d.IdAlunoCurso  = sol.IdAlunoCurso;
                d.Data          = sol.DataAbertura;
                d.NomeDocumento = "";

                sol.Documento = d;
            }

            if (ModelState.IsValid)
            {
                try
                {
                    // valida se o aluno está matriculado no curso que coordena
                    if (user.Permissao == EnumPermissaoUsuario.coordenador)
                    {
                        var        cursos = cursoRepository.GetCursoByCoordenador(User.Identity.Name);
                        AlunoCurso ac     = cursoRepository.GetAlunoCurso(sol.IdAlunoCurso);
                        if (!cursos.Contains(ac.Curso))
                        {
                            return(Json(new { Status = false, Type = "error", Message = "Não autorizado!" }, JsonRequestBehavior.AllowGet));
                        }
                    }

                    string msg = solicitacaoRepository.PersisteSolicitacao(sol);

                    if (msg != "Erro")
                    {
                        try
                        {
                            DocumentosModel db2              = new DocumentosModel();
                            var             solicitacao      = db2.SolicitacaoDocumento.Find(sol.IdSolicitacao);
                            var             solicitacaoEmail = solicitacaoRepository.ConverToEmailModel(solicitacao, Url.Action("Login", "Account", null, Request.Url.Scheme));

                            if (edit)
                            {
                                var    url      = System.Web.Hosting.HostingEnvironment.MapPath("~/Views/Email/AlteracaoSolicitacaoDocumento.cshtml");
                                string viewCode = System.IO.File.ReadAllText(url);

                                var html = RazorEngine.Razor.Parse(viewCode, solicitacaoEmail);
                                if (!string.IsNullOrEmpty(solicitacaoEmail.EmailAluno))
                                {
                                    var to   = new[] { solicitacaoEmail.EmailAluno };
                                    var from = System.Configuration.ConfigurationManager.AppSettings["MailFrom"].ToString();
                                    Email.EnviarEmail(from, to, "Alteração em solicitação de documento - " + solicitacaoEmail.NomeTipoDocumento, html);
                                }
                            }
                            else
                            {
                                var    url      = System.Web.Hosting.HostingEnvironment.MapPath("~/Views/Email/NovaSolicitacaoDocumento.cshtml");
                                string viewCode = System.IO.File.ReadAllText(url);

                                var html = RazorEngine.Razor.Parse(viewCode, solicitacaoEmail);
                                if (!string.IsNullOrEmpty(solicitacaoEmail.EmailAluno))
                                {
                                    var to   = new[] { solicitacaoEmail.EmailAluno };
                                    var from = System.Configuration.ConfigurationManager.AppSettings["MailFrom"].ToString();
                                    Email.EnviarEmail(from, to, "Nova solicitação de documento - " + solicitacaoEmail.NomeTipoDocumento, html);
                                }
                            }
                        }
                        catch (Exception e)
                        {
                        }

                        Utilidades.SalvaLog(user, EnumAcao.Persistir, sol, (sol.IdSolicitacao > 0 ? (int?)sol.IdSolicitacao : null));
                        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));
                }
            }
            else
            {
                return(Json(new { Status = false, Type = "error", Message = "Campos inválidos" }, JsonRequestBehavior.AllowGet));
            }
        }
        protected override bool AuthorizeCore(HttpContextBase httpContext)
        {
            //if (string.IsNullOrEmpty(Groups) && Utilidades.UsuarioLogado.Permissao == EnumPermissaoUsuario.admin)
            //    return true;
            //return true;
            if (base.AuthorizeCore(httpContext))
            {
                if (string.IsNullOrEmpty(Groups))
                {
                    return(true);
                }

                var groups = Groups.Split(',').ToList();

                var context = new PrincipalContext(ContextType.Domain, ConfigurationManager.AppSettings["Dominio"], "9077401526", "12qw!@QW"); //usuario com direitos q nao entendi...

                var userPrincipal = UserPrincipal.FindByIdentity(
                    context,
                    IdentityType.SamAccountName,
                    httpContext.User.Identity.Name);

                var perm = userPrincipal.GetGroups();   //ver os grupos que o usuario participa

                try
                {
                    DocumentosModel db = new DocumentosModel();
                    // Usuario user = usuarioRepository.GetUsuarioById(httpContext.User.Identity.Name);
                    Usuario user = db.Usuario.Where(x => x.IdUsuario == httpContext.User.Identity.Name).FirstOrDefault();
                    if (user == null)
                    {
                        user = new Usuario();
                        Funcionario f;
                        Aluno       al;

                        user.IdUsuario = httpContext.User.Identity.Name;
                        user.Nome      = userPrincipal.Name;

                        if (userPrincipal.IsMemberOf(context, IdentityType.Name, "G_FACULDADE_COORDENADOR_R") || userPrincipal.IsMemberOf(context, IdentityType.Name, "G_FACULDADE_COORDENADOR_RW"))
                        {
                            user.Permissao = EnumPermissaoUsuario.coordenador;
                            f           = new Funcionario();
                            f.IdUsuario = user.IdUsuario;
                            f.Permissao = EnumPermissaoUsuario.coordenador;
                            db.Funcionario.Add(f);
                        }
                        else if (userPrincipal.IsMemberOf(context, IdentityType.Name, "G_FACULDADE_PROFESSOR_R") || userPrincipal.IsMemberOf(context, IdentityType.Name, "G_FACULDADE_PROFESSOR_RW"))
                        {
                            user.Permissao = EnumPermissaoUsuario.professor;
                            f           = new Funcionario();
                            f.IdUsuario = user.IdUsuario;
                            f.Permissao = EnumPermissaoUsuario.professor;
                            db.Funcionario.Add(f);
                        }
                        else if (userPrincipal.IsMemberOf(context, IdentityType.Name, "G_FACULDADE_SECRETARIA_R") || userPrincipal.IsMemberOf(context, IdentityType.Name, "G_FACULDADE_SECRETARIA_RW"))
                        {
                            user.Permissao = EnumPermissaoUsuario.secretaria;
                            f           = new Funcionario();
                            f.IdUsuario = user.IdUsuario;
                            f.Permissao = EnumPermissaoUsuario.secretaria;
                            db.Funcionario.Add(f);
                        }
                        else
                        {
                            user.Permissao = EnumPermissaoUsuario.aluno;
                            al             = new Aluno();
                            al.IdUsuario   = user.IdUsuario;
                            db.Aluno.Add(al);
                        }
                        db.Usuario.Add(user);

                        db.SaveChanges();

                        httpContext.Session[user.IdUsuario] = user;
                    }
                    httpContext.Session[user.IdUsuario] = user;
                }
                catch (Exception e)
                {
                    return(false);
                }

                foreach (var group in groups)
                {
                    if (userPrincipal.IsMemberOf(context,
                                                 IdentityType.Name,
                                                 group))
                    {
                        return(true);
                    }
                }
            }
            return(false);
        }