//Remove items from an orders. Will decrease or delete the item, depending on the quantity public void RemoveOrderMenuItemDB(OrderMenuItem orderMenuItem, int quantity) { string query = ""; if (quantity < orderMenuItem.Quantity) { query = "UPDATE ORDER_CONTENT SET quantity = @quantity WHERE id = @id"; } else if (quantity == orderMenuItem.Quantity) { query = "DELETE ORDER_CONTENT WHERE id = @id"; } else { throw new Exception("Problem with Database"); } SqlParameter[] sqlParameters = (new[] { new SqlParameter("@id", orderMenuItem.Id), new SqlParameter("@quantity", orderMenuItem.Quantity - quantity) }); ExecuteEditQuery(query, sqlParameters); }
public async Task <IActionResult> PutOrderMenuItem([FromRoute] int id, [FromBody] OrderMenuItem orderMenuItem) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } if (id != orderMenuItem.Id) { return(BadRequest()); } _context.Entry(orderMenuItem).State = EntityState.Modified; try { await _context.SaveChangesAsync(); } catch (DbUpdateConcurrencyException) { if (!OrderMenuItemExists(id)) { return(NotFound()); } else { throw; } } return(NoContent()); }
private void btn_Confirm_Click(object sender, EventArgs e) { orderMenuItems.Clear(); for (int i = 0; i < gridV_Lunch.Rows.Count; i++) { OrderMenuItem item = new OrderMenuItem() { menuItemID = int.Parse(gridV_Lunch.Rows[i].Cells[0].Value.ToString()), price = double.Parse(gridV_Lunch.Rows[i].Cells[2].Value.ToString()), quantity = int.Parse(gridV_Lunch.Rows[i].Cells[3].Value.ToString()), comments = "No comment", }; orderMenuItems.Add(item); } //foreach (OrderMenuItems value in orderMenuItems) //{ // commentBox.Text = value.menuItemID.ToString() + " " + value.itemName; // } //txt_tablenumber.Text = orderMenuItems.Count.ToString(); this.Hide(); TakingDrinksOrder waiterPage = new TakingDrinksOrder(employee, table, orderMenuItems); waiterPage.ShowDialog(); this.Close(); }
private void btn_ConfirmOrder_Click(object sender, EventArgs e) { List <ChapeauModel.MenuItem> itemsAdded = new List <ChapeauModel.MenuItem>(); Order order = new Order(LoggedInEmployee, table); foreach (ListViewItem li in lst_NewOrderItems.Items) { OrderMenuItem item = (OrderMenuItem)li.Tag; if (itemsAdded.Contains(item.GetMenuItem())) { order.IncrementQuantityMenuItem(item.GetMenuItem()); } else { itemsAdded.Add(item.GetMenuItem()); item.Quantity = 1; item.Status = OrderStatus.BeingPrepared; item.TimeStamp = DateTime.Now; order.content.Add(item); } order.content.Add(item); } orderDB.InsertOrder(order); table.Status = TableStatus.Occupied; tableDB.ChangeDiningTableStatus(table); tableView.RefreshTable(); tableView.Show(); Close(); }
public void UpdateStock(OrderMenuItem menuItem) { string query = "UPDATE menuItem SET amount = amount - @quantity WHERE menuItemID = @id"; SqlParameter[] sqlParameters = new SqlParameter[2]; sqlParameters[0] = new SqlParameter("@quantity", menuItem.quantity); sqlParameters[1] = new SqlParameter("@id", menuItem.menuItemID); ExecuteEditQuery(query, sqlParameters); }
public void EditQuantityItem(OrderMenuItem orderMenuItem, int quantity) { try { orderMenuItemDB.RemoveOrderMenuItemDB(orderMenuItem, quantity); } catch { throw new Exception("Couldn't connect to the database"); } }
//Convert OrderMenuItem information from the database to OrderMenuItem objects private List <OrderMenuItem> ReadTables(DataTable dataTable) { List <OrderMenuItem> orderMenuItems = new List <OrderMenuItem>(); foreach (DataRow dr in dataTable.Rows) { OrderMenuItem orderMenuItem = new OrderMenuItem(new MenuItem((int)dr["ItemId"], (string)dr["ItemName"], (decimal)dr["price"], (int)dr["stock"], new MenuCategory((string)dr["CatId"], (string)dr["CatName"], (decimal)dr["vat"])), (int)dr["ContentId"], (DateTime)dr["date_time"], (int)dr["quantity"], (string)dr["comment"], (string)dr["status"]); orderMenuItems.Add(orderMenuItem); } return(orderMenuItems); }
private void btn_ConfirmComment_Click(object sender, EventArgs e) { OrderMenuItem item = (OrderMenuItem)lst_NewOrderItems.SelectedItems[0].Tag; item.Comment = rtxt_CommentOrder.Text; lst_NewOrderItems.SelectedItems[0].Tag = item; btn_ConfirmComment.Hide(); lbl_Comment.Hide(); rtxt_CommentOrder.Hide(); }
public void InsertMenuItem(OrderMenuItem menuItems, int id) { string query = "INSERT INTO Order_MenuItem (orderID,MenuItemID,quantity,comment) VALUES (@orderID,@MenuItemID,@quantity,@comment)"; SqlParameter[] sqlParameters = new SqlParameter[4]; sqlParameters[0] = new SqlParameter("@orderID", id); sqlParameters[1] = new SqlParameter("@MenuItemID", menuItems.menuItemID); sqlParameters[2] = new SqlParameter("@quantity", menuItems.quantity); sqlParameters[3] = new SqlParameter("@comment", menuItems.comments); ExecuteEditQuery(query, sqlParameters); }
public async Task <IActionResult> PostOrderMenuItem([FromBody] OrderMenuItem orderMenuItem) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } _context.OrderMenuItems.Add(orderMenuItem); await _context.SaveChangesAsync(); return(CreatedAtAction("GetOrderMenuItem", new { id = orderMenuItem.Id }, orderMenuItem)); }
private OrderMenuItem SelectMenuItem(DataTable dataTable) { DataRow dr = dataTable.Rows[0]; OrderMenuItem menuItem = new OrderMenuItem() { menuItemID = (int)(dr["menuItemID"]), price = (double)(dr["price"]), StockAmount = (int)(dr["amount"]) }; return(menuItem); }
protected override void OnAppearing() { if (Global.ActiveOrder != null) { OrderDateLabel.Text = Global.ActiveOrder.OrderDate.ToString(); TotalPriceLabel.Text = "Total price: " + Global.ActiveOrder.TotalPrice.ToString() + " KM"; List <OrderMenuItem> orderMenusItems = new List <OrderMenuItem>(); if (Global.ActiveOrder.OrderItem.Count != 0) { foreach (var item in Global.ActiveOrder.OrderItem) { OrderMenuItem omn = new OrderMenuItem() { Name = item.Product.Name_, Price = item.Product.Price.ToString(), Quantity = item.Quantity.ToString() }; orderMenusItems.Add(omn); } } if (Global.ActiveOrder.OrderMenu.Count != 0) { foreach (var item in Global.ActiveOrder.OrderMenu) { OrderMenuItem omn = new OrderMenuItem() { Name = item.Menu.Name_, Price = item.Menu.Price.ToString(), Quantity = item.Quantity.ToString() }; orderMenusItems.Add(omn); } } OrderMenusItems.ItemsSource = orderMenusItems; } else { PageTitleLabel.Text = "Currently no active order"; CancelButton.IsEnabled = false; MoreItemsButton.IsEnabled = false; } base.OnAppearing(); }
private List <OrderMenuItem> ReadItem(DataTable dataTable) { List <OrderMenuItem> order = new List <OrderMenuItem>(); foreach (DataRow dr in dataTable.Rows) { OrderMenuItem item = new OrderMenuItem() { itemName = (string)dr["itemName"], quantity = (int)dr["quantity"], comments = (string)dr["comment"], }; order.Add(item); } return(order); }
private void btn_menuItem_Click(object sender, EventArgs e) { Button button = (Button)sender; ChapeauModel.MenuItem menuItem = (ChapeauModel.MenuItem)button.Tag; ListViewItem li = new ListViewItem(menuItem.Name);//needs to fix this because stock quantity is taken rather than order quantity OrderMenuItem orderMenuItem = new OrderMenuItem(menuItem); li.Tag = orderMenuItem; //linking menuItem to the entry of the list li.SubItems.Add(menuItem.Price.ToString("0.00")); li.SubItems.Add(menuItem.Stock.ToString()); li.SubItems.Add(menuItem.Category.ToString()); lst_NewOrderItems.Items.Add(li); }
// Reads all the information from the database required for payments private List <OrderMenuItem> ReadInfoForPayments(DataTable dataTable) { List <OrderMenuItem> paymentItems = new List <OrderMenuItem>(); foreach (DataRow dataRow in dataTable.Rows) { OrderMenuItem items = new OrderMenuItem() { OrderId = (int)dataRow["orderID"], itemName = (string)dataRow["itemName"], quantity = (int)dataRow["quantity"], price = (double)dataRow["price"] }; paymentItems.Add(items); } return(paymentItems); }
private void btn_chooseDrinks_Click(object sender, EventArgs e) { for (int i = 0; i < grisV_Dinner.Rows.Count; i++) { OrderMenuItem item = new OrderMenuItem() { menuItemID = int.Parse(grisV_Dinner.Rows[i].Cells[0].Value.ToString()), price = double.Parse(grisV_Dinner.Rows[i].Cells[2].Value.ToString()), quantity = int.Parse(grisV_Dinner.Rows[i].Cells[3].Value.ToString()), comments = "No comment", }; orderMenuItems.Add(item); } this.Hide(); TakingDrinksOrder waiterPage = new TakingDrinksOrder(employee, table, orderMenuItems); waiterPage.ShowDialog(); this.Close(); }
private void btn_Confirm_Click(object sender, EventArgs e) { for (int i = 0; i < gridV_Drinks.Rows.Count; i++) { OrderMenuItem item = new OrderMenuItem() { menuItemID = int.Parse(gridV_Drinks.Rows[i].Cells[0].Value.ToString()), price = double.Parse(gridV_Drinks.Rows[i].Cells[2].Value.ToString()), quantity = int.Parse(gridV_Drinks.Rows[i].Cells[3].Value.ToString()), comments = "No comment", }; orderMenuItems.Add(item); } try { orderServices.NewOrder(table, employee); table.status = OrderStatus.occupied.ToString(); orderServices.UpdateTable(table); Order order = orderServices.getId(table, employee); foreach (OrderMenuItem menuItems in orderMenuItems) { orderServices.InsertMenu(menuItems, order.OrderID); orderServices.UpdateStock(menuItems); } ; this.Hide(); TablePage waiterPage = new TablePage(employee); waiterPage.ShowDialog(); this.Close(); } catch (Exception ex) { MessageBox.Show(ex.Message); } }
private void btn_remove_Click(object sender, EventArgs e) { try { if (lst_CurrentOrder.SelectedItems.Count == 0) { return; } OrderMenuItem food = (OrderMenuItem)lst_CurrentOrder.SelectedItems[0].Tag; ChapeauLogic.OrderMenuItemService Insert_Values = new ChapeauLogic.OrderMenuItemService(); Insert_Values.EditQuantityItem(food, int.Parse(txt_EditQuantity.Text)); lst_CurrentOrder.Clear(); ListViewDesignOrderOption(); FillListView();//to update the listview when quantity change.. } catch (Exception msg) { MessageBox.Show(msg.Message); } }
//Method for filling the Orders listview private void DisplayOrders(List <Order> orders) { lst_OrdersWaiter.Clear(); lst_OrderContentWaiter.Clear(); lst_OrdersWaiter.GridLines = true; lst_OrdersWaiter.View = View.Details; lst_OrdersWaiter.FullRowSelect = true; lst_OrdersWaiter.Columns.Add("Table", 80); lst_OrdersWaiter.Columns.Add("Status", 200); lst_OrdersWaiter.Columns.Add("# Items", 100); lst_OrdersWaiter.Columns.Add("Time ordered", 120); foreach (Order order in orders) { ListViewItem li = new ListViewItem(order.Table.Id.ToString()); li.Tag = order; if (order.content[0].Status == OrderStatus.ReadyToServe) { li.ForeColor = Color.Green; } else { li.ForeColor = Color.Red; } //Getting first item in the list to get extra information OrderMenuItem item = order.content[0]; li.SubItems.Add(item.Status.ToString()); li.SubItems.Add(order.content.Count().ToString()); li.SubItems.Add(item.TimeStamp.ToString("HH:mm:ss")); lst_OrdersWaiter.Items.Add(li); } }
private void AddItem_lunch_Click(object sender, EventArgs e) { grisV_Dinner.Rows.Clear(); foreach (NumericUpDown item in ItemCount) { newItem = orderServices.getItem(item.Name); int count = Convert.ToInt32(item.Value); if (count > 0) { if (newItem.StockAmount < count && newItem.StockAmount > 0) { MessageBox.Show(text: newItem.StockAmount + " left in stock."); } else if (newItem.StockAmount == 0) { MessageBox.Show(text: "Out of stock"); } else { grisV_Dinner.Rows.Add(newItem.menuItemID.ToString(), item.Name, (newItem.price * count).ToString(), item.Value); } } } }
public ActionResult Create(CreateOrderViewModel orderItems) { if (ModelState.IsValid) { //check to ensure there is at least one item if (orderItems.MenuItems.All(x => x.Amount <= 0)) { ModelState.AddModelError("error_message", "You must choose at least one menu item!"); return(View(orderItems)); } //check to ensure there is no negative menu item if (orderItems.MenuItems.Any(x => x.Amount < 0)) { ModelState.AddModelError("error_message", "You cannot have a negative amount of an item!"); return(View(orderItems)); } //check for multiple discounts if (orderItems.Discounts.FindAll(discount => discount.isActive).Count > 1) { ModelState.AddModelError("error_message", "You may only choose one discount per order!"); return(View(orderItems)); } //get user signed in ApplicationUserManager userManager = HttpContext.GetOwinContext().GetUserManager <ApplicationUserManager>(); ApplicationUser user = userManager.FindByName(User.Identity.Name); //remove all empty items orderItems.MenuItems.RemoveAll(item => item.Amount == 0); //create list of db items for each item in the order var orderMenuItems = new List <OrderMenuItem>(); foreach (var item in orderItems.MenuItems) { var menuItem = db.MenuItems.Where(m => m.Id == item.MenuItem.Id).FirstOrDefault(); var ordermenuitem = new OrderMenuItem { MenuItem = menuItem, Amount = item.Amount }; orderMenuItems.Add(ordermenuitem); } //calculate subtotal decimal subtotal = 0; foreach (var item in orderItems.MenuItems) { subtotal += (item.MenuItem.Price * item.Amount); } //apply discount decimal preTaxTotal = subtotal; foreach (var discount in orderItems.Discounts) { if (discount.isActive) { if (discount.Discount.DiscountType == DiscountType.Fixed) { preTaxTotal -= (decimal)discount.Discount.FlatAmount; } else { preTaxTotal -= (preTaxTotal * (decimal)(discount.Discount.Percent * 0.01m)); } } } decimal discountAmount = subtotal - preTaxTotal; //calculate tax amount var taxes = db.Taxes.ToList(); decimal taxAmount = 0; int taxpercent = 0; foreach (var tax in taxes) { taxpercent += tax.Percentage; } taxAmount = preTaxTotal * (taxpercent * 0.01m); //calculate final total decimal total = preTaxTotal; total += taxAmount; //create the rest of the order info var order = new Order { TimePlaced = DateTime.Now, ServerName = user.FirstName + " " + user.LastName, SubTotal = subtotal, DiscountAmount = discountAmount, PreTaxTotal = preTaxTotal, TaxAmount = taxAmount, Total = total }; //add order info to each order menu item and add to database foreach (var item in orderMenuItems) { item.Order = order; db.OrderMenuItems.Add(item); } db.SaveChanges(); return(RedirectToAction("Index")); } return(View(orderItems)); }
public void UpdateStock(OrderMenuItem menuItem) { order_db.UpdateStock(menuItem); }
public void InsertMenu(OrderMenuItem items, int id) { order_db.InsertMenuItem(items, id); }
public OrderMenuItem getItem(string name) { OrderMenuItem item = order_db.getNewOrderInfo(name); return(item); }