/// <summary> /// 修改请购买数量 /// </summary> /// <param name="product"></param> /// <param name="quantity"></param> /// <returns>0:成功 -1:购物车中不包括此产品 -2:已超可请购数量 -3:小于最小单次请购数量 -4:大于最大单次请购数量 -5:超订货配额</returns> public int ModifyQuantity(int product, int quantity) { ORD_OrderCartItem cartitem = Items.FirstOrDefault(m => m.Product == product); if (cartitem == null) { return(-1); } cartitem.AvailableQuantity = cartitem.AvailableQuantity; cartitem.SubmitQuantity = ORD_OrderBLL.GetSubmitQuantity(_accountmonth, _client, product, _classify == 1 ? 1 : 0); if (cartitem.MinQuantity > 0 && cartitem.MinQuantity > quantity || quantity < 0) { return(-3); } if (cartitem.MaxQuantity > 0 && cartitem.MaxQuantity < quantity) { return(-4); } #region 判断是否超过发布目录设定的可订货数量 if (cartitem.AvailableQuantity > 0) { int totalquantity = ORD_PublishBLL.GetSubmitQuantity(_publish, product); if (cartitem.BookQuantity > cartitem.AvailableQuantity - totalquantity) { return(-2); } } #endregion if (_classify == 1 && quantity > cartitem.QuotaQuantity - cartitem.SubmitQuantity) { return(-5); } cartitem.BookQuantity = quantity; cartitem.ConfirmQuantity = quantity; return(0); }
/// <summary> /// 向购物车中新增产品 /// </summary> /// <param name="product"></param> /// <returns>0:成功 -1:发布目录中不包括此产品 -2:已超可请购数量 -3:该产品已在购物车中 -4:超订货配额</returns> public int AddProduct(int product, int bookquantity) { if (Items.FirstOrDefault(p => p.Product == product) != null) { return(-3); } ORD_PublishDetail _m = new ORD_PublishBLL(_publish).Items.FirstOrDefault(m => m.Product == product); if (_m != null) { ORD_OrderCartItem cartitem = new ORD_OrderCartItem(); cartitem.Product = _m.Product; cartitem.MinQuantity = _m.MinQuantity; cartitem.MaxQuantity = _m.MaxQuantity; cartitem.Price = _m.Price; cartitem.Points = _m.Points; cartitem.AvailableQuantity = _m.AvailableQuantity; cartitem.SubmitQuantity = ORD_OrderBLL.GetSubmitQuantity(_accountmonth, _client, product, _classify == 1 ? 1 : 0); if (bookquantity == 0) { cartitem.BookQuantity = cartitem.MinQuantity > 0 ? cartitem.MinQuantity : new PDT_ProductBLL(product).Model.ConvertFactor; } else { cartitem.BookQuantity = bookquantity; } cartitem.ConfirmQuantity = cartitem.BookQuantity; #region 判断是否超过发布目录设定的可订货数量 if (cartitem.AvailableQuantity > 0) { int totalquantity = ORD_PublishBLL.GetSubmitQuantity(_publish, product); if (cartitem.BookQuantity > cartitem.AvailableQuantity - totalquantity) { return(-2); } } #endregion #region 获取配额,判断是否超过配额 if (_classify == 1) { //常规订单,按配额订货 cartitem.QuotaQuantity = 0; int quotaid = ORD_QuotaBLL.GetQuotaByClientAndMonth(_client, _accountmonth); ORD_QuotaBLL quota = new ORD_QuotaBLL(quotaid); if (quota != null) { ORD_QuotaDetail d = quota.Items.FirstOrDefault(p => p.Product == product); if (d != null) { cartitem.QuotaQuantity = d.StdQuota + d.AdjQuota; } } if (cartitem.BookQuantity > cartitem.QuotaQuantity - cartitem.SubmitQuantity) { return(-4); } } #endregion _items.Add(cartitem); return(0); } return(-1); }