public ActionResult MaterialOutEdit(int id, string itemsString, FormCollection collection) { if (!UserInfo.CurUser.HasRight("物资设备-物资出库输入")) return Redirect("~/content/AccessDeny.htm"); MaterialOut r = (from o in db.MaterialOuts where o.Id == id select o).FirstOrDefault(); if (r == null) { r = new MaterialOut { }; db.MaterialOuts.Add(r); } TryUpdateModel(r, collection); r.MallId = mallid; if (r.DepartmentId == 0) { ModelState.AddModelError("DepartmentId", "请选择部门"); } if (r.PersonId == 0) { ModelState.AddModelError("PersonId", "请选择人员"); } List<MaterialOutItemEdit> items = Newtonsoft.Json.JsonConvert.DeserializeObject<List<MaterialOutItemEdit>>(itemsString); foreach (var materialOutItem in items) { if (materialOutItem.Item.MaterialId == 0) ModelState.AddModelError("", "请选择物料"); decimal inNum = db.Database.SqlQuery<decimal>(string.Format("select isnull(sum(num),0) from materialinitems where materialid={0}", materialOutItem.Item.MaterialId)).First(); decimal outNum = db.Database.SqlQuery<decimal>(string.Format("select isnull(sum(num),0) from materialoutitems where materialid={0} and outid!={1}", materialOutItem.Item.MaterialId, r.Id)).First(); if (inNum - outNum - materialOutItem.Item.Num < 0) { ModelState.AddModelError("", "出库数量不能大于库存数"); materialOutItem.Msg = "!"; } } if (ModelState.IsValid == false) { ViewBag.ItemsString = Newtonsoft.Json.JsonConvert.SerializeObject(items); return View(r); } else { db.SaveChanges(); (from o in db.MaterialOutItems where o.OutId == r.Id select o).ToList().ForEach(o => db.MaterialOutItems.Remove(o)); foreach (var item in items) { item.Item.OutId = r.Id; db.MaterialOutItems.Add(item.Item); } db.SaveChanges(); return Redirect("../MaterialOutView/" + r.Id); } }
public ActionResult MaterialOutView(int id,string act) { if (!UserInfo.CurUser.HasRight("物资设备-物资出库查询")) return Redirect("~/content/AccessDeny.htm"); var r = (from o in db.MaterialOuts where o.Id == id select o).FirstOrDefault(); if (r == null) { r = new MaterialOut(); } ViewBag.Items = (from o in db.MaterialOutItems where o.MaterialId == id select o).ToList(); using (SqlConnection conn = new SqlConnection(System.Configuration.ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString)) { conn.Open(); var items = conn.Query( string.Format("select m.Name,m.CatalogId,i.Num from MaterialOutitems i join materials m on i.materialid=m.id where i.outid={0}", r.Id)); ViewBag.Items2 = items; } ViewBag.Items1 = (from o in db.MaterialOutItems select new { Num = o.Num }).ToList(); if (act=="print") return View("MaterialOutPrint",r); return View(r); }
public ActionResult MaterialOutEdit(int id) { if (!UserInfo.CurUser.HasRight("物资设备-物资出库输入")) return Redirect("~/content/AccessDeny.htm"); var r = (from o in db.MaterialOuts where o.Id == id select o).FirstOrDefault(); if (r == null) { r = new MaterialOut(); } List<MaterialOutItem> items = (from o in db.MaterialOutItems where o.OutId == id select o).ToList(); var editItems=(from o in items select new MaterialOutItemEdit {Item=o,Msg=""}).ToList(); ViewBag.ItemsString = Newtonsoft.Json.JsonConvert.SerializeObject(editItems); return View(r); }