diff --git a/StockManMVC/Controllers/ItemFluxesController.cs b/StockManMVC/Controllers/ItemFluxesController.cs index 14dc6c1..e64b394 100644 --- a/StockManMVC/Controllers/ItemFluxesController.cs +++ b/StockManMVC/Controllers/ItemFluxesController.cs @@ -439,50 +439,62 @@ namespace StockManMVC.Controllers { return HttpNotFound(); } - // calcolo sfondo! + // recupero SOLO gli scaffali ammissibili + var query = db.Location.Where(o => o.LocType.IsStock).Join(db.ItemStock.Where(s => s.ItemID == itemFlux.ItemID), + l => l.ID, + s => s.LocationID, + (l, s) => new { l.ID, l.Descr }); + // calcolo sfondo e location ammesse da vari casi tipo movimento string CurrStyle = ""; + ViewBag.LocationID = new SelectList(db.Location, "ID", "Descr", itemFlux.LocationID); + ViewBag.ExtLocationID = new SelectList(db.Location, "ID", "Descr", itemFlux.ExtLocationID); switch (itemFlux.MovTypeID) { case "CAR": // per partire scelgo la posizione di default ric ordini - string stdLocationId = "RIC-ORD"; - ViewBag.LocationID = new SelectList(db.Location.Where(o => o.LocType.IsStock), "ID", "Descr", stdLocationId); - ViewBag.ExtLocationID = new SelectList(db.Location.Where(o => o.LocType.IsFor), "ID", "Descr"); + ViewBag.LocationID = new SelectList(db.Location.Where(o => o.LocType.IsStock), "ID", "Descr", itemFlux.LocationID); + ViewBag.ExtLocationID = new SelectList(db.Location.Where(o => o.LocType.IsFor), "ID", "Descr", itemFlux.ExtLocationID); CurrStyle = "bg-success"; break; case "SCAR": - ViewBag.ExtLocationID = new SelectList(db.Location.Where(o => o.LocType.IsCli), "ID", "Descr"); + if (query.Count() > 0) + { + ViewBag.LocationID = new SelectList(query, "ID", "Descr"); + } + ViewBag.ExtLocationID = new SelectList(db.Location.Where(o => o.LocType.IsCli), "ID", "Descr", itemFlux.ExtLocationID); ViewBag.enabEditVal = false; CurrStyle = "bg-danger"; break; case "MOV": - ViewBag.ExtLocationID = new SelectList(db.Location.Where(o => o.LocType.IsStock), "ID", "Descr"); + ViewBag.ExtLocationID = new SelectList(db.Location.Where(o => o.LocType.IsStock), "ID", "Descr", itemFlux.ExtLocationID); ViewBag.enabEditVal = false; CurrStyle = "bg-primary"; break; case "OFOR": - ViewBag.LocationID = new SelectList(db.Location.Where(o => o.LocType.IsStock), "ID", "Descr", "RIC-ORD"); - ViewBag.ExtLocationID = new SelectList(db.Location.Where(o => o.LocType.IsFor), "ID", "Descr"); + ViewBag.LocationID = new SelectList(db.Location.Where(o => o.LocType.IsStock), "ID", "Descr", itemFlux.LocationID); + ViewBag.ExtLocationID = new SelectList(db.Location.Where(o => o.LocType.IsFor), "ID", "Descr", itemFlux.ExtLocationID); CurrStyle = "bg-info"; break; case "RETT": - ViewBag.ExtLocationID = new SelectList(db.Location, "ID", "Descr"); + if (query.Count() > 0) + { + ViewBag.LocationID = new SelectList(query, "ID", "Descr"); + } + ViewBag.ExtLocationID = new SelectList(db.Location, "ID", "Descr", itemFlux.ExtLocationID); ViewBag.enabEditVal = false; CurrStyle = "bg-warning"; break; case "ND": default: - ViewBag.ExtLocationID = new SelectList(db.Location, "ID", "Descr"); + ViewBag.ExtLocationID = new SelectList(db.Location, "ID", "Descr", itemFlux.ExtLocationID); CurrStyle = "bg-default"; break; } // altri valori in viewbag ViewBag.CurrStyle = CurrStyle; - ViewBag.LocationID = new SelectList(db.Location, "ID", "Descr", itemFlux.LocationID); ViewBag.MovTypeID = new SelectList(db.MovType, "ID", "Descr", itemFlux.MovTypeID); ViewBag.ItemID = new SelectList(db.Item, "ID", "Descr", itemFlux.ItemID); ViewBag.OperatorID = new SelectList(db.Operator, "ID", "CodExt", itemFlux.OperatorID); - ViewBag.ExtLocationID = new SelectList(db.Location, "ID", "Descr", itemFlux.ExtLocationID); if (mode == "std") { return PartialView(itemFlux); diff --git a/StockManMVC/bin/StockManMVC.dll b/StockManMVC/bin/StockManMVC.dll index 195984a..b0993db 100644 Binary files a/StockManMVC/bin/StockManMVC.dll and b/StockManMVC/bin/StockManMVC.dll differ