Пример #1
0
        //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);
        }
Пример #2
0
        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());
        }
Пример #3
0
        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();
        }
Пример #4
0
        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();
        }
Пример #5
0
        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);
        }
Пример #6
0
 public void EditQuantityItem(OrderMenuItem orderMenuItem, int quantity)
 {
     try
     {
         orderMenuItemDB.RemoveOrderMenuItemDB(orderMenuItem, quantity);
     }
     catch
     {
         throw new Exception("Couldn't connect to the database");
     }
 }
Пример #7
0
        //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);
        }
Пример #8
0
        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();
        }
Пример #9
0
        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);
        }
Пример #10
0
        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));
        }
Пример #11
0
        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();
        }
Пример #13
0
        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);
        }
Пример #14
0
        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);
        }
Пример #15
0
        // 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);
        }
Пример #16
0
        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();
        }
Пример #17
0
        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);
            }
        }
Пример #18
0
        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);
            }
        }
Пример #19
0
        //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);
            }
        }
Пример #20
0
 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);
             }
         }
     }
 }
Пример #21
0
        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));
        }
Пример #22
0
 public void UpdateStock(OrderMenuItem menuItem)
 {
     order_db.UpdateStock(menuItem);
 }
Пример #23
0
 public void InsertMenu(OrderMenuItem items, int id)
 {
     order_db.InsertMenuItem(items, id);
 }
Пример #24
0
        public OrderMenuItem getItem(string name)
        {
            OrderMenuItem item = order_db.getNewOrderInfo(name);

            return(item);
        }