Exemplo n.º 1
0
 public virtual List <BasketItemsInfo> GetGiftBasketItems(List <int> productSysNoList)
 {
     return(BasketDA.LoadGiftItemByBasketItem(productSysNoList));
 }
Exemplo n.º 2
0
        /// <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
            }
        }