示例#1
0
        /// <summary>
        /// manages adding a POSItem to an order. If the POSItem already exists, the quantity is just incremented
        /// </summary>
        /// <param name="i"></param>
        /// <param name="quantity"></param>
        /// <returns>The POSLineItem for the POSItem. Will either return a new one, or an existing with its quantity incremented</returns>
        public POSLineItem AddItem(POSItem i, int quantity)
        {
            bool        exists     = false;
            POSLineItem targetItem = null;

            foreach (POSLineItem lineI in Items)
            {
                if (lineI.Item.ID == i.ID)
                {
                    exists          = true;
                    lineI.Quantity += quantity;
                    targetItem      = lineI;
                    break;
                }
            }
            if (!exists)
            {
                POSLineItem li = new POSLineItem();
                li.Quantity = quantity;
                li.Item     = i;
                targetItem  = li;
                Items.Add(li);
            }
            onOrderChange(this, OrderChangeTarget.ITEM);
            return(targetItem);
        }
示例#2
0
        ////////////////// UI Events and UI Management //////////////////////

        private void StoreItems_ItemSelected(object sender, EventArgs e)
        {
            POSItem     item     = ((StoreItem)((Control)sender).Parent).Item;
            POSLineItem lineItem = Store.CurrentOrder.AddItem(item, 1);

            DisplayLineItem displayLineItem = null;

            posLineItemToDisplayLineItem.TryGetValue(lineItem, out displayLineItem);
            if (displayLineItem == null)
            {
                displayLineItem = DisplayFactory.createDisplayLineItem();
                posLineItemToDisplayLineItem[lineItem] = displayLineItem;
                displayLineItem.quantity = "1";
                displayLineItem.name     = lineItem.Item.Name;
                displayLineItem.price    = (lineItem.Item.Price / 100.0).ToString("C2");
                DisplayOrder.addDisplayLineItem(displayLineItem);
                UpdateDisplayOrderTotals();
                cloverConnector.DisplayOrderLineItemAdded(DisplayOrder, displayLineItem);
            }
            else
            {
                displayLineItem.quantity = lineItem.Quantity.ToString();
                UpdateDisplayOrderTotals();
                cloverConnector.DisplayOrder(DisplayOrder);
            }

            UpdateUI();
        }
示例#3
0
 public long Value(POSItem item)
 {
     if (AmountOff > 0)
     {
         return(AmountOff);
     }
     else
     {
         return((int)(item.Price * PercentageOff));
     }
 }
示例#4
0
        public void AddItem(POSItem i, int quantity)
        {
            bool exists = false;
            foreach(POSLineItem lineI in Items)
            {
                if(lineI.Item.ID == i.ID)
                {
                    exists = true;
                    lineI.Quantity += quantity;
                    break;
                }
            }
            if(!exists)
            {
                POSLineItem li = new POSLineItem();
                li.Quantity = quantity;
                li.Item = i;

                Items.Add(li);
            }
        }
示例#5
0
 /// <summary>
 /// manages adding a POSItem to an order. If the POSItem already exists, the quantity is just incremented
 /// </summary>
 /// <param name="i"></param>
 /// <param name="quantity"></param>
 /// <returns>The POSLineItem for the POSItem. Will either return a new one, or an exising with its quantity incremented</returns>
 public POSLineItem AddItem(POSItem i, int quantity)
 {
     bool exists = false;
     POSLineItem targetItem = null;
     foreach(POSLineItem lineI in Items)
     {
         if(lineI.Item.ID == i.ID)
         {
             exists = true;
             lineI.Quantity += quantity;
             targetItem = lineI;
             break;
         }
     }
     if(!exists)
     {
         POSLineItem li = new POSLineItem();
         li.Quantity = quantity;
         li.Item = i;
         targetItem = li;
         Items.Add(li);
     }
     return targetItem;
 }
示例#6
0
 public long Value(POSItem item)
 {
     if(AmountOff > 0)
     {
         return AmountOff;
     }
     else
     {
         return (int)(item.Price * PercentageOff);
     }
 }