public override bool Update(ProductPutOutOrder entity, bool IsCommit = true) { _Context.Set <ProductPutOutOrder>().Attach(entity); _Context.Entry <ProductPutOutOrder>(entity).State = System.Data.Entity.EntityState.Modified; var list = _Context.Set <ProductPutOutOrderDetail>().Where(o => o.ProductPutOutOrderId == entity.ID); foreach (var detail in entity.ProductOrderDetail) { if (_Context.Set <ProductPutOutOrderDetail>().Any(o => o.ProductPutOutOrderId == detail.ProductPutOutOrderId && o.ProductName == detail.ProductName)) { _Context.Entry <ProductPutOutOrderDetail>(detail).State = System.Data.Entity.EntityState.Modified; } else { _Context.Entry <ProductPutOutOrderDetail>(detail).State = System.Data.Entity.EntityState.Added; } } foreach (var detail in list) { if (_Context.Entry <ProductPutOutOrderDetail>(detail).State == System.Data.Entity.EntityState.Unchanged) { _Context.Entry <ProductPutOutOrderDetail>(detail).State = System.Data.Entity.EntityState.Deleted; } } if (IsCommit) { return(_Context.SaveChanges() > 0); } else { return(false); } }
public ActionResult OutSave(ProductPutOutOrder model) { try { var ProductOrderNo = model.ProductOrderNo ?? ""; //验证 if (model.ProductPutOrderDate < new DateTime(2017, 1, 1)) { ViewBag.Msg = "请选择订单日期"; return(View("OutEidt", model)); } model.ProductOrderDetail = model.ProductOrderDetail?.Where(o => o.ProductName != null && o.ProductName != "").ToList(); if (model.ProductOrderDetail == null || !model.ProductOrderDetail.Any()) { ViewBag.Msg = "请添加入库产品"; return(View("OutEidt", model)); } if (string.IsNullOrWhiteSpace(ProductOrderNo))//新增 { model.ProductOrderNo = Common.Utils.GetOrderNumber(); while (ProductPutOutOrderManageBz.IsExist(o => o.ProductOrderNo == model.ProductOrderNo)) { model.ProductOrderNo = Common.Utils.GetOrderNumber(); } model.Oper = CurrentUser.UserName; model.Status = OrderStatus.未审批; float sumPriceTotal = 0; int sumNumTotal = 0; foreach (var detail in model.ProductOrderDetail) { float price = detail.Price; int num = detail.Num; float sumprice = price * (num); sumPriceTotal += sumprice; sumNumTotal += (num); detail.SumPrice = sumprice; } model.SumPrice = sumPriceTotal; model.SumNum = sumNumTotal; model.Type = "出库"; bool isSuccess = ProductPutOutOrderManageBz.Save(model); ViewBag.Msg = isSuccess ? "保存成功!" : "保存失败!"; } else { var oldData = ProductPutOutOrderManageBz.Get(o => o.ProductOrderNo == model.ProductOrderNo); var newData = Common.Tools.CopyObjectValue(oldData, model); newData.ProductOrderDetail.ForEach(o => o.ProductPutOutOrderId = newData.ID); newData.Status = OrderStatus.未审批; float sumPriceTotal = 0; int sumNumTotal = 0; foreach (var detail in newData.ProductOrderDetail) { float price = detail.Price; int num = detail.Num; float sumprice = price * num; sumPriceTotal += sumprice; sumNumTotal += num; detail.SumPrice = sumprice; } newData.SumPrice = sumPriceTotal; newData.SumNum = sumNumTotal; newData.SumPrice = sumPriceTotal; newData.Oper = CurrentUser.UserName; if (newData.Status == OrderStatus.未审批) { bool isSuccess = ProductPutOutOrderManageBz.Update(newData); ViewBag.Msg = isSuccess ? "保存成功!" : "保存失败!"; } else { ViewBag.Msg = $"订单{newData.ProductOrderNo},修改失败!"; } } return(RedirectToAction("OutEidt", new { ProductOrderNo = model.ProductOrderNo, Msg = ViewBag.Msg })); } catch (Exception ex) { ViewBag.Msg = ex.Message; return(View("OutEidt", model)); } }