public void AddItemToOrder(EventItem item, int quantity) { if (item.RemoveFromStock(quantity)) { if (orderLineItem.ContainsKey(item)) { orderLineItem[item] += quantity; } else { orderLineItem.Add(item, quantity); } } else { throw new LatitudeException("Not enough items in stock"); } }
public int GetQuantitySoldOrTimesRented(EventItem item) { string sql = $"select coalesce(sum(quantity), 0) from order_line_item group by sku having sku = {item.Sku}; "; try { MyDataHelper.OpenConnection(); return(Convert.ToInt32(myDataHelper.ExecuteScalar(sql))); } catch { return(-1); } finally { MyDataHelper.CloseConnection(); } }
public void InsertNewItem(EventItem item) { string type; if (item is ItemForRent) { type = "for rent"; } else { type = "for sale"; } string sql = $"start transaction; insert into item (sku, name, costPerUnit, quantity_in_stock, quantity_min, type, imgPath) values " + $"({item.Sku}, '{item.Name}', {item.CostPerUnit}, {item.QuantityInStock}, {item.QuantityMin}, '{type}', '{item.ImgPath}'); "; if (item is ItemForRent) { sql += $"insert into item_for_rent (sku, rentingFee) values ({item.Sku}, {((ItemForRent)item).RentingFee}); "; } else { string saleType; if (((ItemForSale)item).ItemType == SaleType.Drink) { saleType = "drink"; } else if (((ItemForSale)item).ItemType == SaleType.Food) { saleType = "food"; } else { saleType = "souvenir"; } int isSuitable; if (((ItemForSale)item).IsSuitableForVM) { isSuitable = 1; } else { isSuitable = 0; } sql += $"insert into item_for_sale (sku, forSaleType, sellingPrice, isSuitableForVM) values ({item.Sku}, '{saleType}', {((ItemForSale)item).Price}, {isSuitable}); "; } sql += "commit; "; try { myDataHelper.OpenConnection(); myDataHelper.ExecuteQueries(sql); } catch { return; } finally { myDataHelper.CloseConnection(); } }