/// <summary>
 /// Add new ordered dish
 /// </summary>
 /// <param name="sender"></param>
 /// <param name="e"></param>
 private void AddOrderedButton_Click(object sender, RoutedEventArgs e)
 {
     try
     {
         order.OrderNumber = bl.ListOfOrder().Last().OrderNumber;
         // checking is the id exist
         if (bl.IsExistingID(order.DishID, bl.ListOfOrder().Last().choice))
         {
             // setting price
             order.Price = bl.FindPriceByID(order.DishID);
             bl.IsExecissivePrice((bl.TotalPrice(order.OrderNumber) + order.QuantityOrder * order.Price), 1500);
             // adding the ordered dish and trying to reduce the quantity ordered
             order.name     = bl.NameByID(order.DishID);
             order.BranchID = Branch;
             bl.AddOrdered(order);
             // refreshing the ListOfDish with new quantity
             ListOfDishCombobox.ItemsSource = bl.ListOfDish(x => x.Request == bl.ListOfOrder().Last().choice);
             // refreshing the price
             TotalPriceLabel.Content = bl.TotalPrice(order.OrderNumber);
             // reinitialise data
             order                       = new Ordered_Dish();
             this.DataContext            = order;
             OrderedCombobox.ItemsSource = bl.ListOfOrdered(x => x.OrderNumber == bl.ListOfOrder().Last().OrderNumber);
             // we have at least one element ordered so we can continue to newt step , taking information of the client
             this.NextButton.IsEnabled = true;
         }
     }
     catch (Exception ex)
     {
         MessageBox.Show(ex.Message);
     }
 }
        /// <summary>
        /// Reduce function , reduce quantity after an ordered dish
        /// </summary>
        /// <param name="dish"></param>
        public void ReduceQuantityAvailable(Ordered_Dish dish)
        {
            // getting the dish
            XElement Order = (from item in dishRoot.Elements()
                              where int.Parse(item.Element("MenuID").Value) == dish.DishID
                              select item).FirstOrDefault();

            // no matching
            if (Order == null)
            {
                throw new Exception("can't find the dish");
            }

            // trying to reduce
            int tmp = int.Parse(Order.Element("Quantity").Value);

            // excpetion
            if (tmp - dish.QuantityOrder < 0)
            {
                throw new Exception("the requested quantity is beyond our available stock !");
            }
            // decreasing the value
            Order.Element("Quantity").Value = (tmp - dish.QuantityOrder).ToString();
            // saving the file
            dishRoot.Save(dishPath);
        }
示例#3
0
        public void AddOrderedDish(Ordered_Dish orderDish)//adds an ordered dish
        {
            Ordered_Dish d = getOrderedDish(orderDish.dishNumber, orderDish.orderNumber);

            if (d == null)
            {
                ordereddishRoot.Add(ConvertOrdered_Dish(orderDish));
                ordereddishRoot.Save(ordereddishPath);
            }


            else
            {
                throw new Exception("Order with the same Order number already exists...");
            }
            //Ordered_Dish d = getOrderedDish(orderDish.dishNumber, orderDish.orderNumber);
            //if (d == null)//doesnt exist
            //{
            //    DataSource.orderedDishList.Add(orderDish);
            //}
            //else//exist(only need to increase the amount of the dish)
            //{

            //    DataSource.orderedDishList.Remove(d);
            //    d.amountOfDish += orderDish.amountOfDish;//the dish is on the table, we r only increasing amount of dish
            //
            // DataSource.orderedDishList.Add(orderDish);
        }
示例#4
0
        public bool update_ordered_d(Ordered_Dish val)
        {
            try
            {
                Ordered_Dish temp = new Ordered_Dish();
                temp = search_o_d(val.get_dish_id);
                if (temp != null)
                {
                    temp.get_quantity = val.get_quantity;
                    temp.get_sum      = val.get_sum;

                    if (cancel_ordered_d(val))
                    {
                        add_ordered_d(temp);
                    }
                    order_dish_root.Save(o_d_root);
                    return(true);
                }
                return(false);
            }
            catch (NullReferenceException E)
            {
                E.Source = "error not update_ordered_d";
                Console.WriteLine(E);
                return(false);
            }
        }
        /// <summary>
        /// Add an ordered dish function
        /// </summary>
        /// <param name="orderedish"></param>
        public void AddOrdered(Ordered_Dish orderedish)
        {
            // if empty , winning time
            if (ListOfOrdered().Count() == 0)
            {
                // add the element to the file , after the convertion to Xelement
                OrderedDishRoot.Add(FromOrderedToXelement(orderedish));
            }
            else
            {
                // searching if we haven't already have a command of the same dish
                Ordered_Dish tmp = ListOfOrdered(x => x.OrderNumber == orderedish.OrderNumber && x.DishID == orderedish.DishID).FirstOrDefault();
                // if we have , adding quantity
                if (tmp != null)
                {
                    tmp.QuantityOrder += orderedish.QuantityOrder;
                }

                // adding a new xelement
                else
                {
                    OrderedDishRoot.Add(FromOrderedToXelement(orderedish));
                }
            }
            // reducing quantity available
            ReduceQuantityAvailable(orderedish);
            // saving the fike
            OrderedDishRoot.Save(OrderedPath);
        }
示例#6
0
        private void select_Click(object sender, RoutedEventArgs e)
        {
            mybl             = FactorySingletonBl.getInstanceBl();
            error.Visibility = Visibility.Hidden;
            foreach (var item in odL)
            {
                if (item.amount != 0)
                {
                    total += ((item.amount) * (item.d_price));
                    Ordered_Dish od = new Ordered_Dish();

                    od.get_dish_id            = item.dish_id;
                    od.get_quantity           = item.amount;
                    MainWindow.order.Get_time = DateTime.Now;

                    mybl.add_ordered_d(od);
                    intlist.Add((int)od.Get_D_Order_code); // add order_dish id to order's list
                }
            }

            MainWindow.order.get_list = intlist;
            if (mybl.order_payment_limit(MainWindow.order))
            {
                PlaceOrder.oD_d = true;
                Close();
            }
            else
            {
                intlist.Clear();
                error.Visibility = Visibility.Visible;
            }
        }
示例#7
0
        public Ordered_Dish search_o_d(int id)
        {
            Load_order_dish();
            Ordered_Dish temp = new Ordered_Dish();

            try
            {
                temp = (from O in order_dish_root.Elements()
                        where int.Parse(O.Element("Order_code").Value) == id
                        select new Ordered_Dish()
                {
                    get_quantity = int.Parse(O.Element("dish_Amount").Value),
                    get_dish_id = int.Parse(O.Element("dish_id").Value),
                    get_sum = int.Parse(O.Element("sum").Value),
                    Get_D_Order_code = int.Parse(O.Element("Order_code").Value),
                }).FirstOrDefault();
                if (temp != null)
                {
                    return((Ordered_Dish)temp.Clone());
                }
                else
                {
                    temp.Get_D_Order_code = 0;
                    return(temp);
                }
            }
            catch (NullReferenceException NULL)
            {
                Console.WriteLine("search_o_d {0} \n", NULL.Message);
                return(temp);
            }
        }
示例#8
0
        public Ordered_Dish search_o_d(int id)
        {
            Ordered_Dish notFound = new Ordered_Dish();

            try
            {
                foreach (var item in DataSource.Ordered_Dish_list)
                {
                    if (item.Get_D_Order_code == id)
                    {
                        return(item);
                    }
                }
                notFound.Get_D_Order_code = 0;
                return(notFound);
            }
            catch (NullReferenceException E)
            {
                E.Source = "error not faund dish";
                Console.WriteLine(E);

                notFound.Get_D_Order_code = 0;
                return(notFound);
            }
        }
示例#9
0
        public void AddOrdered_Dish(Ordered_Dish OD)
        {
            OD.OrderedDish_Number = CurrentOrdernDishNumber;
            CurrentOrdernDishNumber++;

            DataSource.Ordered_DishesList.Add(OD);
        }
        /// <summary>
        /// Delete an ordered dish
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void DeleteButton_Click(object sender, RoutedEventArgs e)
        {
            try
            {
                /* Message : i know this isn't the better way if we made data binding but i have a problem with datacontext
                 *  he just work a time after that all not working so i was forced to use this ...
                 */
                Order          test  = (Order)OrderListCombobox.SelectedValue;
                CasheRoutLevel test2 = bl.FindCashRoutLevelByOrderNumber(test.OrderNumber);
                order.OrderNumber   = test.OrderNumber;
                order.QuantityOrder = int.Parse(quantityTextBox.Text);
                order.DishID        = int.Parse(menuIDTextBox.Text);

                // delete the dish
                bl.DeleteSpecificOrdered(order.OrderNumber, order.DishID, order.QuantityOrder);
                // refreshing the list of dish
                ListOfDishCombobox.ItemsSource = bl.ListOfDish(x => x.Request == test2);
                // refreshing the price
                TotalPriceLabel.Content = bl.TotalPrice(order.OrderNumber);
                // reinitialize data
                order = new Ordered_Dish();
                this.NextButton.IsEnabled = true;
                this.menuIDTextBox.Text   = this.quantityTextBox.Text = "0";
                // refreshing the orderedllist
                this.OrderedCombobox.ItemsSource = bl.ListOfOrdered(x => x.OrderNumber == ((Order)OrderListCombobox.SelectedValue).OrderNumber);
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }
        }
示例#11
0
        public bool update_ordered_d(Ordered_Dish Or)
        {
            try
            {
                Ordered_Dish temp = new Ordered_Dish();

                temp = ((Ordered_Dish)search_o_d(Or.Get_D_Order_code).Clone());
                if (temp != null)
                {
                    cancel_order(search_o(temp.Get_D_Order_code));
                    temp.get_dish_id  = Or.get_dish_id;
                    temp.get_quantity = Or.get_quantity;
                    temp.get_sum      = Or.get_sum;
                    add_ordered_d(temp);
                    return(true);
                }
                return(false);
            }
            catch (NullReferenceException E)
            {
                E.Source = "error not Ordered_Dish";
                Console.WriteLine(E);
                return(false);
            }
        }
示例#12
0
        public void CopyToOrderedDish(Ordered_Dish os, Ordered_Dish od)
        {
            // dal.CopyToOrderedDish(os, od);

            od.Amount    = os.Amount;
            od.DishCode  = os.DishCode;
            od.OrderCode = os.OrderCode;
        }
        private void RemoveButton_Click(object sender, RoutedEventArgs e)
        {
            Ordered_Dish obj = ((FrameworkElement)sender).DataContext as Ordered_Dish;

            bl.delOD(obj.ItemID);
            OrderedDishDataGrid.ItemsSource = bl.getOrderedDishes(od.OrderID);
            this.PriceLabel.Content         = bl.calcTotalPrice(od.OrderID);
        }
示例#14
0
 public void AddOrdered_Dish(Ordered_Dish OD)
 {
     if (SearchAtOrderedDish_List(OD))
     {
         throw new Exception("The ordered dish is already exist");
     }
     dal.AddOrdered_Dish(OD);
 }
示例#15
0
        public void ApdateOrderDish(Ordered_Dish o)
        {
            if (o.Amount < 1)
            {
                throw new Exception("the amount is wrong!");
            }

            dal.ApdateOrderDish(o);
        }
示例#16
0
        public void RemoveOrdered_Dish(Ordered_Dish OD)
        {
            XElement OrderedDish_Element;

            OrderedDish_Element = (from od in OrderedDishes_Root.Elements()
                                   where Convert.ToInt32(od.Element("OrderedDish_Number").Value) == OD.OrderedDish_Number && od.Element("OrderedDish_Situation").Value == OrderedDish_Situation.IN_PROGRESS.ToString()
                                   select od).FirstOrDefault();
            OrderedDish_Element.Element("OrderedDish_Situation").Value = OrderedDish_Situation.CANCELED.ToString();
            OrderedDishes_Root.Save(OrderedDishes_Path);
        }
示例#17
0
        public Ordered_Dish getOD(int itemID)
        {
            Ordered_Dish od = odXML.getOD(itemID);

            if (od == null)
            {
                throw new Exception("Ordered-Dish doesn't exist!");
            }
            return(od);
        }
        public bool DeleteOrderedDish(int dishnumber, string numorder)//delete an ordered dish
        {
            Ordered_Dish d = getOrderedDish(dishnumber, numorder);

            if (d != null)//exists
            {
                DataSource.orderedDishList.Remove(d);
                return(true);
            }
            return(false);//does not exist
        }
示例#19
0
 public void ODchange_to_finish(Ordered_Dish od)
 {
     foreach (XElement OD in OrderedDishes_Root.Elements())
     {
         if (OD.Element("OrderedDish_Number").Value == od.OrderedDish_Number.ToString())
         {
             OD.Element("OrderedDish_Situation").Value = OrderedDish_Situation.FINISH.ToString();
         }
     }
     OrderedDishes_Root.Save(OrderedDishes_Path);
 }
示例#20
0
        public void UpdateOrdered_DishDetails(Ordered_Dish OD)
        {
            XElement OrderedDish_Element = (from od in OrderedDishes_Root.Elements()
                                            where Convert.ToInt32(od.Element("OrderedDish_Number").Value) == OD.OrderedDish_Number && od.Element("OrderedDish_Situation").Value == OrderedDish_Situation.IN_PROGRESS.ToString()
                                            select od).FirstOrDefault();

            OrderedDish_Element.Element("AmountSameDishes").Value = OD.AmountSameDishes.ToString();
            OrderedDish_Element.Element("DishNumber").Value       = OD.DishNumber.ToString();
            OrderedDish_Element.Element("OrderNumber").Value      = OD.OrderNumber.ToString();
            OrderedDishes_Root.Save(OrderedDishes_Path);
        }
示例#21
0
        //ORDERED_DISH
        public bool add_ordered_d(Ordered_Dish Or_d)
        {
            bool exist = get_order_dish_list().Exists(i => i.Get_D_Order_code == Or_d.Get_D_Order_code);

            if (exist)
            {
                return(false);
            }
            DataSource.Ordered_Dish_list.Add(Or_d);
            return(true);
        }
示例#22
0
        public void AddOD(Ordered_Dish od)
        {
            LoadData();
            XElement itemID  = new XElement("ItemID", od.ItemID);
            XElement orderID = new XElement("OrderID", od.OrderID);
            XElement dishID  = new XElement("DishID", od.DishID);
            XElement amount  = new XElement("Amount", od.Amount);

            orderedDishRoot.Add(new XElement("Ordered_Dish", itemID, orderID, dishID, amount));
            orderedDishRoot.Save(orderedDishPath);
        }
示例#23
0
文件: BL.cs 项目: israelZ/restMeng
 public bool update_ordered_d(Ordered_Dish Or)
 {
     XDal = FactorySingletonDal.getInstanceDal();
     if (XDal.update_ordered_d(Or))
     {
         return(true);
     }
     else
     {
         return(false);
     }
 }
        public bool SetOrderedDish(Ordered_Dish orderDish)//sets an ordered dish
        {
            Ordered_Dish d = getOrderedDish(orderDish.dishNumber, orderDish.orderNumber);

            if (d != null)
            {
                DataSource.orderedDishList.Remove(d);
                DataSource.orderedDishList.Add(orderDish);
                return(true);
            }
            return(false); //does not exist in the list
        }
 /// <summary>
 /// Constructor , initialize data , locking button
 /// </summary>
 public UpdateMenuOrderWindow()
 {
     InitializeComponent();
     order            = new Ordered_Dish();
     this.DataContext = order;
     bl = Factory_BL.GetBL();
     this.OrderListCombobox.ItemsSource = bl.ListOfOrder();
     this.DateTimetrueLabel.Content     = DateTime.Now;
     this.SearchButton.IsEnabled        = this.NextButton.IsEnabled = false;
     this.menuIDTextBox.IsEnabled       = this.PriceTextBox.IsEnabled = this.Nametextbox.IsEnabled = ListOfDishCombobox.IsEnabled = false;
     this.quantityTextBox.IsEnabled     = this.SearchButton.IsEnabled = false;
 }
示例#26
0
        public void addOD(Ordered_Dish d)
        {
            List <Ordered_Dish> odList = odXML.getODList();

            if (odList == null)
            {
                d.ItemID = 1;
                odXML.AddOD(d);
                return;
            }
            var y = isODExist(d);

            if (y != null)
            {
                y.Amount++;
                odXML.updateOD(y);
            }
            else
            {
                odList.Sort();
                if (d.ItemID == 0)
                {
                    if (odList.Count > 0)
                    {
                        d.ItemID = odList[odList.Count - 1].ItemID + 1;
                    }
                    else
                    {
                        d.ItemID = 1;
                    }
                }
                else
                {
                    var exist = from x in odList
                                where x.ItemID == d.ItemID
                                select x;
                    if (exist.Any())
                    {
                        int i = 0;
                        for (; i < odList.Count; i++)
                        {
                            if (odList[i].ItemID != i)
                            {
                                break;
                            }
                        }
                        d.ItemID = i;
                    }
                }
                odXML.AddOD(d);
            }
        }
示例#27
0
        public bool SearchAtOrderedDish_List(Ordered_Dish OD)
        {
            List <Ordered_Dish> Ordered_Dishes = dal.GetOrderedDishes_list();
            List <bool>         Checker        = (from Ordered_Dish item in Ordered_Dishes
                                                  where item.OrderedDish_Number == OD.OrderedDish_Number
                                                  select true).ToList();

            if (Checker.Count != 0)
            {
                return(true);
            }
            return(false);
        }
示例#28
0
        /// <summary>
        /// Update an ordered dish
        /// </summary>
        /// <param name="orderdish"></param>
        public void UpdateOrdered(Ordered_Dish orderdish)
        {
            // searching
            int index = data.ListOrderedDish.FindIndex(o => o.OrderNumber == orderdish.OrderNumber);

            // no matching
            if (index == -1)
            {
                throw new Exception("the ordered-dish hasn't been found");
            }
            // update data
            data.ListOrderedDish[index] = orderdish;
        }
示例#29
0
        public void deleteOrdDish(int x, int y)//Need to send the OrdDish ID and NUM.
        {
            Ordered_Dish tempOD = getOrdDish(x, y);

            if (tempOD == null)
            {
                ordDishList.Remove(tempOD);
            }
            else
            {
                throw new Exception("Can't delete Ordered-Dish, for the Ordered-dish doesn't exist in the ordDishlist.");
            }
        }
示例#30
0
        public void IncreaseQuantityAvailable(Ordered_Dish dish)
        {
            // searching
            Dish tmp = ListOfDish(d => d.MenuID == dish.DishID).FirstOrDefault();

            // no matching
            if (tmp == null)
            {
                throw new Exception("unable to find this dish");
            }
            // update quantity
            tmp.Quantity += dish.QuantityOrder;
        }