Ejemplo n.º 1
0
        /// <summary>
        /// Gets the item's ingredient cost (for a single item)
        /// </summary>
        /// <returns></returns>
        public double GetCostOfIngredients()
        {
            double result = 0;

            foreach (ItemIngredient itemIngredient in ItemIngredient.GetAll(Id))
            {
                Ingredient ingredient             = Ingredient.Get(itemIngredient.IngredientId);
                double     amountInInventoryUnits = UnitConversion.Convert(itemIngredient.Amount,
                                                                           itemIngredient.MeasurementUnit, ingredient.MeasurementUnit);
                result += (amountInInventoryUnits * ingredient.GetActualCostPerUnit());
            }
            return(result);
        }
Ejemplo n.º 2
0
 /// <summary>
 /// Checks to see if there is enough Ingredients to make this Item
 /// </summary>
 /// <param name="quantity">The quantity of this item to be made</param>
 /// <returns></returns>
 public bool HaveIngredientsToMake(int quantity)
 {
     if (quantity <= 0)
     {
         throw new ArgumentOutOfRangeException("Quantity must be a positive non-zero integer");
     }
     foreach (ItemIngredient itemIngredient in ItemIngredient.GetAll(Id))
     {
         Ingredient ingredient             = Ingredient.Get(itemIngredient.IngredientId);
         double     amountInInventoryUnits = UnitConversion.Convert(itemIngredient.Amount,
                                                                    itemIngredient.MeasurementUnit, ingredient.MeasurementUnit);
         if (ingredient.InventoryAmount < (amountInInventoryUnits * quantity))
         {
             return(false);
         }
     }
     return(true);
 }
Ejemplo n.º 3
0
        public static void AdjustInventory(TicketItem ticketItem, bool increase,
                                           int?difference = null)
        {
            int quantity =
                (difference != null ? difference.Value :
                 (ticketItem.QuantityPending != null ? ticketItem.QuantityPending.Value :
                  ticketItem.Quantity));

            foreach (ItemIngredient itemIngredient in
                     ItemIngredient.GetAll(ticketItem.ItemId))
            {
                PosModelHelper.AdjustInventoryByIngredient(itemIngredient.IngredientId,
                                                           increase, itemIngredient.Amount * quantity,
                                                           itemIngredient.MeasurementUnit);
            }

            foreach (TicketItemOption ticketItemOption in
                     TicketItemOption.GetAll(ticketItem.PrimaryKey))
            {
                TicketItemOption.AdjustInventory(ticketItemOption, quantity,
                                                 increase);
            }
        }