public ActionResult FiltroOrdenes(FilterModels.FilterOrdenTrabajo filtro) { if (ModelState.IsValid) { Session["Filtro"] = filtro; if (!String.IsNullOrEmpty(filtro.Sucursal)) { Session["Sucursal"] = db.Sucursal.First(x => x.SucursalId == filtro.Sucursal).Descripcion; } if (filtro.Fase != 255) { switch (filtro.Fase) { case 0: Session["Fase"] = "Cancelada"; break; case 1: Session["Fase"] = "Captura"; break; case 2: Session["Fase"] = "Cerrada"; break; } } return(RedirectToAction("Ordenes")); } ViewBag.Sucursales = db.Sucursal.ToList(); return(View(filtro)); }
public ActionResult Ordenes() { FilterModels.FilterOrdenTrabajo filtro = (FilterModels.FilterOrdenTrabajo)Session["Filtro"]; var ordentrabajo = db.OrdenTrabajo.Include("Cliente").Include("Usuario").Include("Taller").Include("Vin"); List <OrdenTrabajo> ordenesFiltradas = ordentrabajo.ToList(); if (!String.IsNullOrEmpty(filtro.Sucursal)) { ordenesFiltradas = ordenesFiltradas.FindAll(x => x.Taller.Almacen.SucursalId == filtro.Sucursal); } if (filtro.FechaIni != null) { ordenesFiltradas = ordenesFiltradas.FindAll(x => x.FechaIni.Date >= filtro.FechaIni.Value.Date); } if (filtro.FechaFin != null) { ordenesFiltradas = ordenesFiltradas.FindAll(x => x.FechaIni.Date <= filtro.FechaFin.Value.Date); } if (filtro.Fase != 255) { ordenesFiltradas = ordenesFiltradas.FindAll(x => x.Fase == filtro.Fase); } if (filtro.Folio != null) { ordenesFiltradas = ordenesFiltradas.FindAll(x => x.Folio.Contains(filtro.Folio)); } if (filtro.Vin != null) { ordenesFiltradas = ordenesFiltradas.FindAll(x => x.Vin.Clave.Contains(filtro.Vin)); } if (filtro.Cliente != null) { ordenesFiltradas = ordenesFiltradas.FindAll(x => x.Cliente.Clave.Contains(filtro.Cliente) || x.Cliente.RazonSocial.Contains(filtro.Cliente)); } return(View(ordenesFiltradas.OrderBy(x => x.Taller.Almacen.Clave).ThenBy(x => x.Taller.Clave).ThenBy(x => x.Usuario.Clave).ThenBy(x => x.Cliente.Clave).ThenBy(x => x.Folio))); }