/// <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); }
////////////////// 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(); }
public long Value(POSItem item) { if (AmountOff > 0) { return(AmountOff); } else { return((int)(item.Price * PercentageOff)); } }
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); } }
/// <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; }
public long Value(POSItem item) { if(AmountOff > 0) { return AmountOff; } else { return (int)(item.Price * PercentageOff); } }