public ActionResult Edit(int id, int IdEstado) { Estados_Pedido Estado = db.Estados_Pedido.Find(IdEstado); if (Estado == null) { return(new HttpStatusCodeResult(HttpStatusCode.BadRequest)); } else { Pedidos Pedido = db.Pedidos.Find(id); if (Pedido == null) { return(HttpNotFound()); } else { Pedido.Id_Estado = Estado.Id; Pedido.Fecha_Modificacion = DateTime.Now; db.Entry(Pedido).State = EntityState.Modified; db.SaveChanges(); return(RedirectToAction("Details", "Pedidos", new { id = Pedido.Id })); } } }
// GET: Pedidos public ActionResult Index(int?Estado, int?Page) { const int PedidosPorPagina = 10; if (Page == null) { Page = 1; } IQueryable <Estados_Pedido> EstadosPedidoConsulta = db.Estados_Pedido; IEnumerable <Pedidos> Pedidos; if (User.IsInRole("Administrador")) { Pedidos = db.Pedidos; } else { string NombreUsuario = User.Identity.GetUserName(); Clientes Cliente = db.Clientes.Where(e => e.Email == NombreUsuario).FirstOrDefault(); if (Cliente == null) { return(RedirectToAction("Create", "Clientes")); } else { Pedidos = Cliente.Pedidos.Where(e => e.Id_Estado > 1); EstadosPedidoConsulta = EstadosPedidoConsulta.Where(e => e.Id != 1); if (Estado == 1) { Estado = 0; // No permitimos que solicite los pedidos sin confirmar } } } List <Estados_Pedido> EstadosPedidoLista = EstadosPedidoConsulta.ToList(); EstadosPedidoLista.Insert(0, new Estados_Pedido { Id = 0, Nombre = "[Todos]", }); SelectList EstadosPedido = new SelectList(EstadosPedidoLista, "Id", "Nombre"); SelectListItem EstadoSeleccionado = EstadosPedido.First(); if (Estado != null) { Estados_Pedido EstadoPedidos = db.Estados_Pedido.Find(Estado); if (EstadoPedidos != null) { Pedidos = Pedidos.Where(e => e.Id_Estado == Estado); EstadoSeleccionado = EstadosPedido.Where(e => e.Value == EstadoPedidos.Id.ToString()).First(); } } EstadoSeleccionado.Selected = true; ViewBag.EstadoSeleccionadoFiltro = EstadoSeleccionado; ViewBag.EstadosPedidos = EstadosPedido.ToList(); return(View(Pedidos.OrderByDescending(e => e.Fecha_Modificacion).ToPagedList((int)Page, PedidosPorPagina))); }