예제 #1
0
        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);
            }
        }
예제 #2
0
        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));
            }
        }