示例#1
0
        public void ProcessCatalogItemsForInventory(string locale, ShoppingCart_V02 shoppingCart, List <SKU_V01> itemList)
        {
            MyHLShoppingCart cart     = shoppingCart as MyHLShoppingCart;
            bool             isPickup = (cart != null && cart.DeliveryInfo != null &&
                                         cart.DeliveryInfo.Option == ServiceProvider.ShippingSvc.DeliveryOptionType.Pickup);

            //Dictionary<string, SKU_V01> allSKU = HL.MyHerbalife.Providers.Ordering.CatalogProvider.GetAllSKU(locale);
            foreach (SKU_V01 sku in itemList)
            {
                if (sku.CatalogItem == null)
                {
                    continue;
                }
                if (sku.CatalogItem.InventoryList == null)
                {
                    continue;
                }

                WarehouseInventory_V01 warehouse = sku.CatalogItem.InventoryList.ContainsKey("I2") ? sku.CatalogItem.InventoryList["I2"] as WarehouseInventory_V01 : null;
                if (warehouse != null)
                {
                    // Hard fast rule for IT - no A or L types backordered
                    if (sku.CatalogItem.ProductType == ProductType.Product && !warehouse.IsBlocked)
                    {
                        if (warehouse.QuantityAvailable <= 0)
                        {
                            warehouse.IsBackOrder = !isPickup;
                        }
                    }
                }
            }
        }
        private bool IsBlocked(SKU_V01 sku)
        {
            bool isBlocked = false;

            string wareHouse = CurrentWarehouse;

            try
            {
                WarehouseInventory_V01 inventory = sku.CatalogItem.InventoryList[wareHouse] as WarehouseInventory_V01;
                isBlocked = inventory.IsBlocked;
            }
            catch { }

            return(isBlocked);
        }
        private bool IsBlocked(CatalogItem_V01 catItem)
        {
            MyHLShoppingCart cart = (ProductsBase).ShoppingCart;

            if (null != cart && null != cart.DeliveryInfo && catItem.InventoryList != null && catItem.InventoryList.ContainsKey(cart.DeliveryInfo.WarehouseCode))
            {
                WarehouseInventory warehouseInventory = catItem.InventoryList[cart.DeliveryInfo.WarehouseCode];
                if (null != warehouseInventory)
                {
                    WarehouseInventory_V01 inventory = warehouseInventory as WarehouseInventory_V01;
                    if (inventory != null)
                    {
                        return(inventory.IsBlocked);
                    }
                }
            }
            return(true);
        }