public virtual List <BasketItemsInfo> GetGiftBasketItems(List <int> productSysNoList) { return(BasketDA.LoadGiftItemByBasketItem(productSysNoList)); }
/// <summary> /// 批量添加赠品操作 /// </summary> /// <param name="sysNoList"></param> public virtual void BatchAddGift(List <BasketItemsInfo> list) { List <BasketItemsInfo> newItemlist = new List <BasketItemsInfo>(); string WarningMsg = string.Empty; #region 持久化列表中数据到数据库中 BatchUpdateBasketItems(list); #endregion if (list != null && list.Count > 0) { #region 查询采购蓝中item的赠品,验证赠品数量是否合主商品相等 List <int> psysno = new List <int>(); foreach (BasketItemsInfo bitem in list) { psysno.Add(bitem.ProductSysNo.Value); } psysno.Distinct(); List <BasketItemsInfo> giftResultList = BasketDA.LoadGiftItemByBasketItem(psysno); foreach (var bitem in list) { if (!bitem.VendorSysNo.HasValue || bitem.VendorSysNo == 0 || !bitem.StockSysNo.HasValue || !bitem.IsTransfer.HasValue) { #region 验证信息是否完整。 if (WarningMsg != string.Empty) { WarningMsg += "," + Environment.NewLine; } WarningMsg += GetMessageString("Basket_CheckInfo_1") + bitem.ProductSysNo + GetMessageString("Basket_CheckInfo_2"); if (bitem.VendorSysNo == 0 || !bitem.VendorSysNo.HasValue) { WarningMsg += GetMessageString("Basket_CheckInfo_Vendor"); } if (!bitem.StockSysNo.HasValue) { WarningMsg += GetMessageString("Basket_CheckInfo_Stock"); } if (!bitem.IsTransfer.HasValue) { WarningMsg += GetMessageString("Basket_CheckInfo_Transfer"); } #endregion } } if (!string.IsNullOrEmpty(WarningMsg)) { //WarningMsg += "等关键信息,请补全关键信息后再批量添加其赠品!"; WarningMsg += GetMessageString("Basket_CheckInfo_Desc"); throw new BizException(WarningMsg); } var group = from item in list group item by new { item.StockSysNo } into g select new { Key = g.Key, ResultList = g }; foreach (var item in group) { var newbasketItem = from i in item.ResultList where i.Quantity >= 0 select i ; if (giftResultList != null && giftResultList.Count > 0) { foreach (BasketItemsInfo giftentity in giftResultList) { #region 判断赠品数量 int masterQty = 0; int giftQty = 0; string stockName = string.Empty; int stocksysno = 0; foreach (var bitem in newbasketItem) { if (bitem.VendorSysNo != 0 && bitem.StockSysNo.HasValue && bitem.IsTransfer.HasValue) { #region 验证赠品与主商品数量 if (giftentity.MasterProductSysNo == bitem.ProductSysNo) { masterQty = bitem.Quantity.Value; stockName = bitem.StockName; stocksysno = bitem.StockSysNo.Value; if (giftQty != 0) { foreach (var bi in newbasketItem) { if (bi.ProductSysNo == giftentity.GiftSysNo) { bi.Quantity -= masterQty; } } } } if (giftentity.GiftSysNo == bitem.ProductSysNo) { giftQty += bitem.Quantity.Value; stockName = bitem.StockName; stocksysno = bitem.StockSysNo.Value; if (masterQty != 0) { bitem.Quantity -= masterQty; } } #endregion } } #endregion #region 添加赠品 if (masterQty != giftQty && masterQty > giftQty) { //先验证采购蓝中是否包含此商品,如果包含并且供应商,目标分仓, //是否中转都一样则直接改采购数量;如果没有或不一样,则新建记录 foreach (BasketItemsInfo entity in list) { //新建 if (entity.ProductSysNo == giftentity.MasterProductSysNo && entity.StockSysNo == stocksysno) { int basketsysno = BasketDA.CheckGiftInBasket(entity, giftentity.GiftSysNo.Value); if (basketsysno != 0) { BasketItemsInfo basketItem = new BasketItemsInfo() { ItemSysNo = basketsysno, CreateUserSysNo = entity.CreateUserSysNo, OrderPrice = entity.OrderPrice, Quantity = masterQty - giftQty, LastVendorSysNo = entity.VendorSysNo, ProductSysNo = giftentity.GiftSysNo, IsTransfer = entity.IsTransfer, StockSysNo = entity.StockSysNo, CompanyCode = entity.CompanyCode, ProductID = entity.ProductID, ReadyQuantity = entity.ReadyQuantity, IsConsign = entity.IsConsign, GiftSysNo = entity.GiftSysNo, PMSysNo = entity.PMSysNo }; newItemlist.Add(basketItem); if (newItemlist.Count > 0) { //采购篮添加赠品操作: newItemlist.ForEach(x => { CreateGiftForBasket(x); }); newItemlist.Clear(); } } else { //获取赠品信息: BasketItemsInfo gift = BasketDA.LoadBasketGiftInfo(giftentity.GiftSysNo.Value); BasketItemsInfo basketItem = new BasketItemsInfo() { OrderPrice = gift.OrderPrice, Quantity = masterQty - giftQty, LastVendorSysNo = entity.VendorSysNo, ProductSysNo = giftentity.GiftSysNo, IsTransfer = entity.IsTransfer, CreateTime = DateTime.Now, StockSysNo = entity.StockSysNo, CompanyCode = entity.CompanyCode, ProductID = entity.ProductID, ReadyQuantity = entity.ReadyQuantity, CreateUserSysNo = entity.CreateUserSysNo, IsConsign = entity.IsConsign, GiftSysNo = entity.GiftSysNo, PMSysNo = entity.PMSysNo }; newItemlist.Add(basketItem); if (newItemlist.Count > 0) { //采购篮添加赠品操作: newItemlist.ForEach(x => { CreateGiftForBasket(x); }); newItemlist.Clear(); } } } } } #endregion } } } #endregion } }