예제 #1
0
        public SkuCollection FetchByQuery(Query qry)
        {
            SkuCollection coll = new SkuCollection();

            coll.LoadAndCloseReader(qry.ExecuteReader());
            return(coll);
        }
예제 #2
0
        public SkuCollection FetchAll()
        {
            SkuCollection coll = new SkuCollection();
            Query         qry  = new Query(Sku.Schema);

            coll.LoadAndCloseReader(qry.ExecuteReader());
            return(coll);
        }
예제 #3
0
        /// <summary>
        /// Normalizes the cart quantities.
        /// </summary>
        /// <param name="order">The order.</param>
        /// <returns></returns>
        public static bool NormalizeCartQuantities(Order order)
        {
            bool changesMade = false;

            if (order.OrderId > 0)
            {
                List <OrderItem> itemsToRemove = new List <OrderItem>();
                foreach (OrderItem item in order.OrderItemCollection)
                {
                    Product product = Product.FetchByID(item.ProductId);
                    if (!product.AllowNegativeInventories)
                    {
                        SkuCollection skuCollection = new SkuCollection().Where(Sku.Columns.SkuX, SubSonic.Comparison.Equals, item.Sku).Load();
                        if (skuCollection != null)
                        {
                            if (skuCollection.Count == 0 || skuCollection[0].Inventory == 0 || product.ProductStatusDescriptorId == (int)ProductStatus.Inactive)
                            {
                                itemsToRemove.Add(item);
                                changesMade = true;
                            }
                            else if (item.Quantity > skuCollection[0].Inventory)
                            {
                                item.Quantity = skuCollection[0].Inventory;
                                new OrderController().AdjustQuantity(order.OrderId, item.OrderItemId, item.Quantity, order.UserName);
                                changesMade = true;
                            }
                        }
                    }
                }
                foreach (OrderItem item in itemsToRemove)
                {
                    new OrderController().RemoveItem(order.OrderId, item.OrderItemId, order.UserName);
                    order.OrderItemCollection.Remove(item);
                }
                if (order.OrderItemCollection.Count == 0)
                {
                    Order.Delete(order.OrderId);
                }
            }
            return(changesMade);
        }
예제 #4
0
        public SkuCollection FetchByID(object SkuId)
        {
            SkuCollection coll = new SkuCollection().Where("SkuId", SkuId).Load();

            return(coll);
        }