fix editing dei flussi: elenchi ammissibili correttamente filtrati come in creazione..

This commit is contained in:
Samuele E. Locatelli
2016-10-24 15:59:59 +02:00
parent f16077af4d
commit 6854f0b129
2 changed files with 24 additions and 12 deletions
+24 -12
View File
@@ -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);
Binary file not shown.