public ActionResult Create(Proceso proceso, int? areaId, int? tipoId) { if (ModelState.IsValid) { db.Procesos.Add(proceso); db.SaveChanges(); return RedirectToAction("Index", new { areaId = areaId, tipoId = tipoId }); } FillViewBag(proceso, areaId, tipoId); return View(proceso); }
public Area FillViewBag(int? areaId, int? procesoId, string activetab) { ApplicationUser usuario = (ApplicationUser)db.Users.FirstOrDefault(item => item.UserName == User.Identity.Name); int periodId = (int)Session["SelectedPeriod"]; Periodo period = db.Periodos.Find(periodId); Area area; Proceso proceso_enfoque = new Proceso(); if (areaId == null) { //if (usuario.TienePermiso(22) && usuario.TieneNivel(2)) //{ // area = db.Areas.Where(item => item.Nivel.ID == 3 && item.AreaPadre.ID == usuario.UsuarioArea.ID).First(); //} //if (usuario.TienePermiso(1) || (usuario.TienePermiso(22) && (usuario.TieneNivel(1)))) // Administrador y Presidente //{ // area = db.Areas.Where(item => item.Nivel.ID == 3).First(); //} //else if (usuario.TieneNivel(3) && usuario.TienePermiso(6)) //{ // area = usuario.UsuarioArea; //} //else //{ // area = usuario.UsuarioArea; //} area = usuario.GetAreas("3").FirstOrDefault(); if (area != null) { areaId = area.ID; } } else { area = db.Areas.Where(item => item.Nivel.ID == 3).FirstOrDefault(item => item.ID == areaId); } if (procesoId != null && procesoId != 0) { proceso_enfoque = db.Procesos.Find(procesoId); } if (activetab == "" || activetab == null) { activetab = "tabRelevancia"; } ViewBag.activetab = activetab; ViewBag.CurrentArea = area; ViewBag.ProcesoEnfoque = proceso_enfoque; //if (usuario.TienePermiso(22) && usuario.TieneNivel(2)) //{ // List<Area> Areas = new List<Area>(); // List<int> areasId = new List<int>(); // Areas = db.Areas.Where(item => item.Nivel.ID == 3 && item.AreaPadre.ID == usuario.UsuarioArea.ID).ToList(); // areasId = (from a in Areas // select a.ID).ToList(); // Areas.AddRange(db.Areas.Where(item => item.Nivel.ID == 3 && areasId.Any(p => item.AreaPadre.ID == p)).ToList()); // areasId = (from a in Areas // select a.ID).ToList(); // Areas.AddRange(db.Areas.Where(item => item.Nivel.ID == 3 && areasId.Any(p => item.AreaPadre.ID == p)).ToList()); // ViewBag.Areas = Areas.Distinct().OrderBy(item => item.ID); //} //if (usuario.TienePermiso(1) || (usuario.TienePermiso(22) && (usuario.TieneNivel(1)))) // Administrador y Presidente //{ // ViewBag.Areas = db.Areas.Where(item => item.Nivel.ID == 3).ToList(); //} //if (usuario.TienePermiso(6) && usuario.TieneNivel(3)) //{ // List<Area> Areas = new List<Area>(); // Areas.Add(usuario.UsuarioArea); // Areas.AddRange(usuario.UsuarioArea.AreasHijas.ToList()); // ViewBag.Areas = Areas.OrderBy(item => item.AreaPadre.ID); //} ViewBag.Areas = usuario.GetAreas("3"); ViewBag.usuario = usuario; ViewBag.PeriodoSeleccionado = period; ViewBag.Relevancia = db.Relevancia.ToList(); ViewBag.Comportamiento = db.ComportamientoMejora.ToList(); JavaScriptSerializer serializer = new JavaScriptSerializer(); var json_mejora = from a in db.ResultadoMejora select new { ID = a.Relevancia.ID.ToString() + "_" + a.Comportamiento.ID.ToString(), Text = a.Sector.Nombre + "<br />" + a.Sector.Descripcion }; var json_enfoque = from a in db.ResultadoEnfoque select new { ID = a.Relevancia.ID.ToString() + "_" + a.Comportamiento.ID.ToString(), Text = a.Sector.Nombre + "<br />" + a.Sector.Descripcion }; ViewBag.ResulatadoMejora = serializer.Serialize(json_mejora); ViewBag.ResulatadoEnfoque = serializer.Serialize(json_enfoque); return area; }
public void FillViewBag(Proceso proceso, int? areaId, int? tipoId) { ApplicationUser usuario = (ApplicationUser)db.Users.FirstOrDefault(item => item.UserName == User.Identity.Name); int periodId = (int)Session["SelectedPeriod"]; Periodo period = db.Periodos.Find(periodId); JavaScriptSerializer serializer = new JavaScriptSerializer(); TipoProceso tipo; ViewBag.usuario = usuario; ViewBag.PeriodoSeleccionado = period; ViewBag.TipoCliente = db.TipoCliente.ToList(); ViewBag.TipoProceso = db.TipoProceso.ToList(); ViewBag.areaId = areaId; // Areas if (areaId != null) { ViewBag.Areas = db.Areas.Where(item => item.ID == areaId).ToList(); } else if (usuario.TienePermiso(1)) // Administrador { ViewBag.Areas = db.Areas.Where(item => item.Nivel.ID == 3).OrderBy(item => item.AreaPadre.ID).ToList(); } else if (usuario.TienePermiso(6) && usuario.TieneNivel(3)) // Lider Unidad Operativa y Nivel Unidad Operativa { List<Area> Areas = new List<Area>(); Areas.Add(usuario.UsuarioArea); Areas.AddRange(usuario.UsuarioArea.AreasHijas.ToList()); ViewBag.Areas = Areas.OrderBy(item => item.AreaPadre.ID); } else { List<Area> Areas = new List<Area>(); Areas.Add(usuario.UsuarioArea); ViewBag.Areas = Areas; } // Responsables if (usuario.TienePermiso(1)) // Administrador { ViewBag.Responsables = db.Users.ToList<ApplicationUser>(); } else if (usuario.TienePermiso(6) && usuario.TieneNivel(3)) // Lider Unidad Operativa y Nivel Unidad Operativa { List<ApplicationUser> Responsables = new List<ApplicationUser>(); List<Area> Areas = new List<Area>(); IEnumerable<int> AreasIds = new List<int>(); Areas.Add(usuario.UsuarioArea); Areas.AddRange(usuario.UsuarioArea.AreasHijas.ToList()); AreasIds = from a in Areas select a.ID; Responsables = db.Users.Where(user => AreasIds.Contains(user.UsuarioArea.ID)).ToList(); ViewBag.Responsables = Responsables; } else { List<ApplicationUser> Responsables = new List<ApplicationUser>(); Responsables.Add(usuario); ViewBag.Responsables = Responsables; } if (proceso != null) { if (proceso.Actividades != null) { var json = from a in proceso.Actividades select new { id = a.ID, text = a.Nombre, Editar = "<a href=\"javascript: $.noop();\" style=\"color:green\" class=\"fa fa-edit\" data-toggle=\"modal\" data-target=\"#EditarActividad\"></a>", Eliminar = "<a href=\"javascript: $.noop();\" style=\"color:red\" class=\"fa fa-minus\"></a>" }; ViewBag.JSONActividades = serializer.Serialize(json); } else { ViewBag.JSONActividades = serializer.Serialize(new object[] { }); } if (proceso.Atribuciones != null) { var json = from a in proceso.Atribuciones select new { id = a.ID, area = a.Area.Nombre, text = a.Descripcion, Eliminar = "<a href=\"javascript: $.noop();\" style=\"color:red\" class=\"fa fa-minus\"></a>" }; ViewBag.JSONAtribuciones = serializer.Serialize(json); } else { ViewBag.JSONAtribuciones = serializer.Serialize(new object[] { }); } if (proceso.Objetivos != null) { var json = from a in proceso.Objetivos select new { id = a.ID, text = a.Nombre, Eliminar = "<a href=\"javascript: $.noop();\" style=\"color:red\" class=\"fa fa-minus\"></a>" }; ViewBag.JSONObjetivos = serializer.Serialize(json); } else { ViewBag.JSONObjetivos = serializer.Serialize(new object[] { }); } } else { ViewBag.JSONActividades = serializer.Serialize(new object[] { }); ViewBag.JSONAtribuciones = serializer.Serialize(new object[] { }); ViewBag.JSONObjetivos = serializer.Serialize(new object[] { }); } if (tipoId == null) { tipoId = -1; } ViewBag.CurrentTipo = db.TipoProceso.Find(tipoId); }
public ActionResult Edit(Proceso proceso, int? areaId, int? tipoId) { if (ModelState.IsValid) { Proceso tmp_proceso = db.Procesos.Find(proceso.ID); proceso.Mejora = tmp_proceso.Mejora; proceso.Enfoque = tmp_proceso.Enfoque; AutoMapper.Mapper.Map(proceso, tmp_proceso); tmp_proceso.Actividades.ForEach(item => item.Proceso = tmp_proceso); db.Entry(tmp_proceso).State = EntityState.Modified; db.SaveChanges(); return RedirectToAction("Index", new { areaId = areaId, tipoId = tipoId }); } FillViewBag(proceso, areaId, tipoId); return View(proceso); }