Beispiel #1
0
        /// <summary>
        /// 获取某一个商家的有效仓库信息列表
        /// </summary>
        /// <param name="merchantSysNo"></param>
        /// <param name="vendorStockType"></param>
        /// <returns></returns>
        public static List <StockInfoQueryRestult> GetStockList(int merchantSysNo, VendorStockType vendorStockType)
        {
            StockQueryFilter queryFilter = new StockQueryFilter()
            {
                PageIndex  = 0,
                PageSize   = int.MaxValue,
                Status     = StockStatus.Actived,
                SortFields = "s.SysNo DESC"
            };

            queryFilter.MerchantSysNo = merchantSysNo;
            //所有商家都可以查看泰隆优选仓库
            queryFilter.ContainKJT = true;
            return(StockService.QueryStock(queryFilter).ResultList);
        }
Beispiel #2
0
        public VendorStockType SyncVendorStockTypes(string type)
        {
            //if (string.IsNullOrEmpty(status)) return defaultStatus;

            var rType = _vendorStockTypes.FirstOrDefault(c => c.StockType == type);

            if (rType == null)
            {
                rType = new VendorStockType
                {
                    StockType = type
                };
                Table.Add(rType);
                _vendorStockTypes.Add(rType);
            }

            return(rType);
        }
Beispiel #3
0
        protected override void Import(IDictionary <Models.Stock, String> stockItems)
        {
            var vendorStockTypeRepository = Unit.Scope.Repository <VendorStockType>();
            var vendorStockTypes          = vendorStockTypeRepository.GetAll().ToDictionary(x => x.StockType);

            foreach (var shopCode in stockItems.Keys.Select(stock => stock.ShopCode).Distinct())
            {
                if (!vendorStockTypes.ContainsKey(shopCode))
                {
                    var vendorStockType = new VendorStockType
                    {
                        StockType = shopCode
                    };

                    vendorStockTypes[shopCode] = vendorStockType;
                    vendorStockTypeRepository.Add(vendorStockType);
                }
            }

            Unit.Save();

            var vendorID = Unit.Scope
                           .Repository <Vendor>()
                           .GetSingle(vendor => vendor.Name == Constants.Vendor.Vlisco)
                           .VendorID;
            var vendorStockRepository = Unit.Scope.Repository <VendorStock>();

            foreach (var stockItemsByShopCode in stockItems.Keys.GroupBy(stockItem => stockItem.ShopCode))
            {
                var vendorStockLookup = vendorStockRepository
                                        .Include(vendorStock => vendorStock.Product)
                                        .Include(vendorStock => vendorStock.VendorStockType)
                                        .GetAll(vendorStock => vendorStock.VendorStockType.StockType == stockItemsByShopCode.Key && vendorStock.VendorID == vendorID)
                                        .ToDictionary(vendorStock => vendorStock.Product.VendorItemNumber);

                foreach (var stockItem in stockItemsByShopCode)
                {
                    var vendorItemNumber = Constants.GetVendorItemNumber(stockItem.ArticleCode, stockItem.ColorCode, stockItem.SizeCode);
                    var vendorStock      = default(VendorStock);

                    if (!vendorStockLookup.TryGetValue(vendorItemNumber, out vendorStock))
                    {
                        var product = Unit.Scope.Repository <Product>().GetSingle(p => p.VendorItemNumber == vendorItemNumber);

                        vendorStock = new VendorStock
                        {
                            ConcentratorStatusID = 1,
                            Product         = product,
                            StockStatus     = Constants.Status.Default,
                            VendorID        = vendorID,
                            VendorStatus    = Constants.Status.Default,
                            VendorStockType = vendorStockTypes[stockItemsByShopCode.Key]
                        };

                        vendorStockRepository.Add(vendorStock);
                    }

                    vendorStock.QuantityOnHand = stockItem.Available;
                }
            }

            Unit.Save();
        }