private void rtbConfirmCancel_Click(object sender, EventArgs e)
 {
     ProccessRepostitory repP = new ProccessRepostitory();
     Form frm = ((HostWindow)this.radDock1.DocumentManager.ActiveDocument).MdiChild;
     DataGridView grv = ((frmKitchen)frm).grvProccessFinish;
     foreach (DataGridViewRow row in grv.SelectedRows)
     {
         repP.ConfirmCancelProcessing(Guid.Parse(row.Cells["grvProccessFinish_ID"].Value.ToString()));
     }
     ((FormBase)frm).RefreshData();
 }
        private void comConnection1_DataReceived(string data)
        {
                OrderRepostitory repO = new OrderRepostitory();
                ProccessRepostitory repP = new ProccessRepostitory();
                OrderDetailDTO item;
                short table_code;
                string table_name;

                switch (data[0])
                {
                    case '1':
                        if (data.Length == 8)
                        {
                            //Lấy thông tin món ăn vừa order
                            item = repO.GetOrderDetailFromCode(data);
                            if (item != null)
                            {
                                if (lstOrderDetail.ContainsKey(item.TABLE_CODE))
                                {
                                    lstOrderDetail[item.TABLE_CODE].Add(item);
                                }else{
                                    lstOrderDetail.Add(item.TABLE_CODE,new List<OrderDetailDTO>());
                                    lstOrderDetail[item.TABLE_CODE].Add(item);
                                }
                            }
                        }
                        break;
                    case '9': //Xác nhận hoàn thành gọi món
                        if (data.Length==3)
                        {
                            table_code = Convert.ToInt16(data.Substring(1, 2));
                            if (lstOrderDetail.ContainsKey(table_code))
                            {
                                repO.InsertOrdered(lstOrderDetail[table_code],table_code);
                                lstOrderDetail.Remove(table_code);
                            }
                        }
                        break;
                    case '2': //Hủy món
                        if (data.Length == 8)
                        {
                            item = repO.GetOrderDetailFromCode(data);
                            if (item != null)
                            {
                                repO.CancelOrdered(item);
                            }
                            break;
                        }
                        break;
                    case '3': //Gọi bồi bàn
                        if (data.Length == 3)
                        {
                            table_code = Convert.ToInt16(data.Substring(1, 2));
                            table_name = repO.GetTableName(table_code);
                            ShowMessage(table_name + ": gọi nhân viên phục vụ", "Gọi nhân viên");
                        }
                        break;
                    case '4': //Thanh toán
                        if (data.Length == 3)
                        {
                            table_code = Convert.ToInt16(data.Substring(1, 2));
                            table_name = repO.GetTableName(table_code);

                            PayRepostitory repPa = new PayRepostitory();
                            repPa.SendToPayment(table_code);

                            ShowMessage(table_name + ": tính tiền", "Thanh toán");
                        }
                        break;
                    case '5':
                        if (data.Length == 2)
                        {
                            int p = int.Parse(data[1].ToString());
                            repP.FinishProcessing(p);
                        }
                        break;
                    case '6':
                        if (data.Length == 2)
                        {
                            int p = int.Parse(data[1].ToString());
                            repP.CancelProcessing(p);
                        }
                        break;
                }
                    Form frm = ((HostWindow)this.radDock1.DocumentManager.ActiveDocument).MdiChild;
                    ((FormBase)frm).RefreshData();
        }
 private void refreshgrvProccessFinish()
 {
     ProccessRepostitory repO = new ProccessRepostitory();
     List<ProccessingDTO> lst = repO.GetProccessingFinishCancelList();
     SetgrvProccessFinishDataSource(lst);
 }
 private void rbtSendToKitchen_Click(object sender, EventArgs e)
 {
     ProccessRepostitory repP = new ProccessRepostitory();
     Form frm = ((HostWindow)this.radDock1.DocumentManager.ActiveDocument).MdiChild;
     DataGridView grv = ((frmOrder)frm).grvOrder;
     foreach (DataGridViewRow row in grv.SelectedRows)
     {
         repP.SendToChicken(Guid.Parse(row.Cells["grvOrder_ID"].Value.ToString()));
     }
     ((FormBase)frm).RefreshData();
 }
        //Inserted ordered dishes
        public Boolean InsertOrdered(List<OrderDetailDTO> lst, short table_code)
        {
            try
            {

                ORDER order;
                OrderDTO query = (from p in Context.ORDER
                                  where p.TABLES_INFO.CODE == table_code
                                  select new OrderDTO()
                                  {
                                     ID=p.Id,
                                     STATUS=p.STATUS 
                                  }).SingleOrDefault();
                if (query == null)
                {
                    order = new ORDER();
                    query = new OrderDTO();
                    order.Id = Guid.NewGuid();
                    query.ID = order.Id;
                    Guid table_id = (from p in Context.TABLES_INFO where p.CODE == table_code select p.Id).SingleOrDefault();
                    order.TABLE_ID = table_id;
                    order.ADD_TIME = DateTime.Now;
                    order.STATUS = "Chờ xác nhận";
                    query.STATUS = order.STATUS;
                    Context.ORDER.AddObject(order);
                }
                foreach (OrderDetailDTO item in lst)
                {
                    ORDER_DETAIL orderdtl = new ORDER_DETAIL();
                    orderdtl.Id  = Guid.NewGuid();
                    ChefDTO chef = GetChefFree();
                    if (chef != null) orderdtl.CHEF_ID = chef.ID;
                    orderdtl.AMOUNT = item.AMOUNT;
                    orderdtl.DISH_ID = item.DISH_ID;
                    orderdtl.ORDER_ID = query.ID;
                    orderdtl.STATUS = "Chờ làm";
                    Context.ORDER_DETAIL.AddObject(orderdtl);
                }
                Context.SaveChanges();
                if (query.STATUS == "Đang làm")
                {
                    ProccessRepostitory rep = new ProccessRepostitory();
                    rep.SendToChicken(query.ID);
                }
                return true;
            }
            catch (Exception ex)
            {
                throw ex;
            }
        }
 private void button11_Click(object sender, EventArgs e)
 {
     ProccessRepostitory repP = new ProccessRepostitory();
     foreach (DataGridViewRow row in grvProccessFinish.SelectedRows)
     {
         repP.ConfirmCancelProcessing(Guid.Parse(row.Cells["grvProccessFinish_ID"].Value.ToString()));
     }
     refreshgrvProccessFinish();
 }
 private void button3_Click(object sender, EventArgs e)
 {
     ProccessRepostitory repP = new ProccessRepostitory();
     foreach (DataGridViewRow row in grvOrder.SelectedRows)
     {
         repP.SendToChicken(Guid.Parse(row.Cells["grvOrder_ID"].Value.ToString()));
     }
     refreshgrvOrder();
     //
 }
 private void comConnection1_DataReceived(string data)
 {
     if (data.Length == 8)
     {
         //Lấy thông tin món ăn vừa order
         OrderRepostitory repO = new OrderRepostitory();
         OrderDetailDTO item;
         item = repO.GetOrderDetailFromCode(data);
         if (item != null)
         {
             //repO.InsertOrdered(item);
             refreshgrvOrder();
         }
     }
     else if (data.Length == 2)
     {
         int p = int.Parse(data[1].ToString());
         ProccessRepostitory repP = new ProccessRepostitory();
         //Finish
         if (data[0] == '5')
         {
             repP.FinishProcessing(p);
             refreshgrvProccessing();
             refreshgrvProccessFinish();
         }
         else if (data[0] == '6')
         {
             repP.CancelProcessing(p);
             refreshgrvProccessing();
             refreshgrvProccessFinish();
         }
     }
     data_recieve = true;
 }      
 private void refreshgrvProccessing()
 {
     ProccessRepostitory repO = new ProccessRepostitory();
     List<ProccessingDTO> lst = repO.GetProccessingList();
     SetgrvProccessingDataSource(lst);
     data_recieve = false;
 }