/// <summary> /// 修改请购买数量 /// </summary> /// <param name="product"></param> /// <param name="quantity"></param> /// <returns>0:成功 -1:购物车中不包括此产品 -2:已超可请购数量 -3:小于最小单次请购数量 -4:大于最大单次请购数量</returns> public int ModifyQuantity(int product, int quantity) { ORD_OrderCart cartitem = Items.FirstOrDefault(m => m.Product == product); if (cartitem == null) { return(-1); } cartitem.AvailableQuantity = cartitem.AvailableQuantity; cartitem.SubmitQuantity = ORD_OrderApplyBLL.GetSubmitQuantity(_publish, product); if (cartitem.AvailableQuantity > 0 && quantity > cartitem.AvailableQuantity - cartitem.SubmitQuantity) { return(-2); } if (cartitem.MinQuantity > 0 && cartitem.MinQuantity > quantity || quantity < 0) { return(-3); } if (cartitem.MaxQuantity > 0 && cartitem.MaxQuantity < quantity) { return(-4); } cartitem.BookQuantity = quantity; return(0); }
/// <summary> /// 向购物车中新增产品 /// </summary> /// <param name="product"></param> /// <param name="price"></param> /// <returns>0:成功 -1:发布目录中不包括此产品 -2:已超可请购数量 -3:该产品已在购物车中 -4:该产品不在指定客户的价表中</returns> public int AddProduct(int product, decimal price) { if (Items.FirstOrDefault(m => m.Product == product) != null) { return(-3); } ORD_ApplyPublishDetail _m = new ORD_ApplyPublishBLL(_publish).Items.FirstOrDefault(m => m.Product == product); if (_m != null) { ORD_OrderCart cartitem = new ORD_OrderCart(); cartitem.Product = _m.Product; cartitem.MinQuantity = _m.MinQuantity; cartitem.MaxQuantity = _m.MaxQuantity; cartitem.Price = price; cartitem.AvailableQuantity = _m.AvailableQuantity; cartitem.SubmitQuantity = ORD_OrderApplyBLL.GetSubmitQuantity(_publish, product); cartitem.BookQuantity = cartitem.MinQuantity > 0 ? cartitem.MinQuantity : new PDT_ProductBLL(product).Model.ConvertFactor; if (cartitem.AvailableQuantity > 0 && cartitem.BookQuantity > cartitem.AvailableQuantity - cartitem.SubmitQuantity) { return(-2); } _items.Add(cartitem); return(0); } return(-1); }
/// <summary> /// 从购物车中移除产品 /// </summary> /// <param name="product"></param> /// <returns></returns> public int RemoveProduct(int product) { ORD_OrderCart cartitem = Items.FirstOrDefault(m => m.Product == product); if (cartitem != null) { Items.Remove(cartitem); } return(0); }
/// <summary> /// 根据请购买申请单重新初始化购物车 /// </summary> /// <param name="ApplyID"></param> /// <returns></returns> public static ORD_OrderCartBLL InitByOrderApply(int ApplyID) { ORD_OrderApplyBLL apply = new ORD_OrderApplyBLL(ApplyID); if (apply.Model == null) { return(null); } ORD_ApplyPublishBLL publish = new ORD_ApplyPublishBLL(apply.Model.PublishID); if (publish.Model == null) { return(null); } int addressid = 0; int.TryParse(apply.Model["AddressID"], out addressid); ORD_OrderCartBLL cart = new ORD_OrderCartBLL(apply.Model.PublishID, apply.Model.OrganizeCity, apply.Model.Client, apply.Model.AccountMonth, addressid); foreach (ORD_OrderApplyDetail item in apply.Items) { ORD_ApplyPublishDetail _m = publish.Items.FirstOrDefault(m => m.Product == item.Product); if (_m == null) { continue; } ORD_OrderCart cartitem = new ORD_OrderCart(); cartitem.ID = _m.ID; cartitem.Product = _m.Product; cartitem.MinQuantity = _m.MinQuantity; cartitem.MaxQuantity = _m.MaxQuantity; cartitem.Price = item.Price; cartitem.AvailableQuantity = _m.AvailableQuantity; cartitem.SubmitQuantity = ORD_OrderApplyBLL.GetSubmitQuantity(cart.Publish, cartitem.Product); cartitem.BookQuantity = item.BookQuantity; cart.Items.Add(cartitem); } return(cart); }
private bool Save() { ORD_OrderCartBLL cart = null; if (Session["LogisticsOrderApplyDetail"] != null) { cart = (ORD_OrderCartBLL)Session["LogisticsOrderApplyDetail"]; } if ((int)ViewState["ID"] == 0) { if (cart == null || cart.Items.Count == 0) { MessageBox.Show(this, "对不起,定单申请明细不能为空!"); return(false); } ORD_OrderApplyBLL bll = new ORD_OrderApplyBLL(); pn_OrderApply.GetData(bll.Model); #region 判断有没有填写经销商 if (bll.Model.Client == 0) { MessageBox.Show(this, "对不起,请填写申请定购的经销商!"); return(false); } #endregion #region 初始化定单字段 bll.Model.OrganizeCity = cart.OrganizeCity; bll.Model.PublishID = cart.Publish; bll.Model.AccountMonth = cart.AccountMonth; bll.Model.SheetCode = ORD_OrderApplyBLL.GenerateSheetCode(bll.Model.OrganizeCity, bll.Model.AccountMonth); //自动产生备案号 bll.Model.ApproveFlag = 2; bll.Model.State = 1; bll.Model.InsertStaff = (int)Session["UserID"]; bll.Model["AddressID"] = cart.AddressID.ToString(); bll.Model["Receiver"] = cart.Receiver.ToString(); if (cart.Publish > 0) { ORD_ApplyPublish publish = new ORD_ApplyPublishBLL(cart.Publish).Model; if (publish != null) { bll.Model["ProductBrand"] = publish["ProductBrand"]; bll.Model["GiftClassify"] = publish["GiftClassify"]; } } #endregion ViewState["ID"] = bll.Add(); #region 新增定单明细明细 foreach (ORD_OrderCart cartitem in cart.Items) { if (cartitem.BookQuantity == 0) { continue; } ORD_OrderApplyDetail m = new ORD_OrderApplyDetail(); m.ApplyID = (int)ViewState["ID"]; m.Product = cartitem.Product; m.Price = cartitem.Price; m.BookQuantity = cartitem.BookQuantity; m.AdjustQuantity = 0; m.DeliveryQuantity = 0; bll.AddDetail(m); } #endregion } else { ORD_OrderApplyBLL bll = new ORD_OrderApplyBLL((int)ViewState["ID"]); pn_OrderApply.GetData(bll.Model); bll.Model.UpdateStaff = (int)Session["UserID"]; bll.Update(); #region 修改明细 if (cart != null) { //先将现有定单中每个品项与购物中的比较 //如果购物车中没有该产品,则删除,如有且数量不同,则更新,并从购物车中移除该品项 foreach (ORD_OrderApplyDetail m in bll.Items) { ORD_OrderCart cartitem = cart.Items.FirstOrDefault(p => p.Product == m.Product); if (cartitem == null) { bll.DeleteDetail(m.ID); } else { if (cartitem.BookQuantity != m.BookQuantity) { m.BookQuantity = cartitem.BookQuantity; bll.UpdateDetail(m); } cart.RemoveProduct(m.Product); } } //新购物车中新增的品项加入定单明细中 foreach (ORD_OrderCart cartitem in cart.Items) { ORD_OrderApplyDetail m = new ORD_OrderApplyDetail(); m.ApplyID = (int)ViewState["ID"]; m.Product = cartitem.Product; m.Price = cartitem.Price; m.BookQuantity = cartitem.BookQuantity; m.AdjustQuantity = 0; m.DeliveryQuantity = 0; bll.AddDetail(m); } } #endregion } return(true); }