Пример #1
0
        /// <summary>
        /// 주문 메뉴 별 서빙 완료 여부 갱신
        /// </summary>
        /// <param name="index">테이블 번호</param>
        private void OrderDetailDBUpdate(int index)
        {
            using (EATSEntities db = new EATSEntities())
            {
                List <MenuInfo> orderList = new List <MenuInfo>();
                switch (index)
                {
                case 1:
                    orderList = menuTable1;
                    break;

                case 2:
                    orderList = menuTable2;
                    break;

                case 3:
                    orderList = menuTable3;
                    break;

                case 4:
                    orderList = menuTable4;
                    break;
                }

                // orderList : 오더 코드, 메뉴명, 수량
                foreach (var item in orderList)
                {
                    db.OrderDetailtbl.FirstOrDefault(o => o.idx.Equals(item.OrderIdx)).OrderComplete = true;
                }
                db.SaveChanges();
            }
        }
Пример #2
0
        private void LoadingDataGrid()
        {
            /*메뉴*/
            List <Menutbl> menutbls;

            using (var ctx = new EATSEntities())
                menutbls = ctx.Menutbl.ToList();

            GrdMenu.DataContext = menutbls;

            /*주문*/
            List <Ordertbl> ordertbls;

            using (var ctx = new EATSEntities())
                ordertbls = ctx.Ordertbl.ToList();

            GrdOrder.DataContext = ordertbls;

            /*주문상세*/
            List <OrderDetailtbl> detailtbls;

            using (var ctx = new EATSEntities())
                detailtbls = ctx.OrderDetailtbl.ToList();

            GrdOrderDetail.DataContext = detailtbls;

            /*사용자*/
            List <Usertbl> usertbls;

            using (var ctx = new EATSEntities())
                usertbls = ctx.Usertbl.ToList();

            GrdUser.DataContext = usertbls;
        }
Пример #3
0
 /// <summary>
 /// 메뉴 목록 출력
 /// </summary>
 private void MenuLoad()
 {
     lsvMenu.Items.Clear();
     using (EATSEntities db = new EATSEntities())
     {
         var menus = db.Menutbl.Where(m => m.MenuCode.Substring(0, 1).Equals(menuKey)).ToList();
         foreach (var item in menus)
         {
             if (item.Activation)
             {
                 MenuItems menuItems = new MenuItems()
                 {
                     MenuCode = item.MenuCode,
                     MenuName = item.MenuName,
                     Price    = item.Price,
                     ImageSrc = "D:/GitRepository/Project_EATS/kiosk1/Image/" + item.ImageName + ".jpg"
                 };
                 lsvMenu.Items.Add(menuItems);
             }
             else if (!item.Activation)
             {
                 MenuItems menuItems = new MenuItems()
                 {
                     MenuCode = item.MenuCode,
                     ImageSrc = "D:/GitRepository/Project_EATS/주방/EATS_kitchen/image/재료소진.jpg",
                     MenuName = item.MenuName + " 재료소진",
                     Price    = 0,
                 };
                 lsvMenu.Items.Add(menuItems);
             }
         }
     }
 }
Пример #4
0
        private void dataGridView3_MouseClick(object sender, MouseEventArgs e)
        {
            DialogResult result    = MessageBox.Show("서빙하시겠습니까?", "서빙", MessageBoxButtons.YesNo);
            var          orderCode = "20210802005";

            if (result == DialogResult.Yes)
            {
                using (EATSEntities db = new EATSEntities())
                {
                    var results = db.OrderDetailtbl.Where(o => o.OrderCode == orderCode).ToList();
                    foreach (var item in results)
                    {
                        if (item != null)
                        {
                            item.OrderComplete = true;
                        }
                    }

                    if (db.SaveChanges() != 0)
                    {
                        MessageBox.Show("서빙 완료");
                        DatagridRefresh();
                        return;
                    }
                    else
                    {
                        MessageBox.Show("데이터 입력 실패(주문 없음)");
                    }
                }
            }
        }
Пример #5
0
 public static int SetOrder(Ordertbl order)
 {
     using (var ctx = new EATSEntities())
     {
         ctx.Ordertbl.AddOrUpdate(order);
         return(ctx.SaveChanges()); // commit
     }
 }
Пример #6
0
 public static int SetMenu(Menutbl menu)
 {
     using (var ctx = new EATSEntities())
     {
         ctx.Menutbl.AddOrUpdate(menu);
         return(ctx.SaveChanges()); // commit
     }
 }
Пример #7
0
 internal static int SetOrderDetail(OrderDetailtbl item)
 {
     using (var ctx = new EATSEntities())
     {
         ctx.OrderDetailtbl.AddOrUpdate(item);
         return(ctx.SaveChanges()); // return 1 or 0
     }
 }
Пример #8
0
 internal static int SetMenuActive(Menutbl menuName)
 {
     using (var ctx = new EATSEntities())
     {
         ctx.Menutbl.AddOrUpdate(menuName);
         return(ctx.SaveChanges());
     }
 }
Пример #9
0
        internal static List <OrderDetailtbl> GetDetail()
        {
            List <OrderDetailtbl> list;

            using (var ctx = new EATSEntities())
                list = ctx.OrderDetailtbl.ToList();

            return(list);
        }
Пример #10
0
        public static List <Ordertbl> GetOrder()
        {
            List <Ordertbl> orders;

            using (var ctx = new EATSEntities())
            {
                orders = ctx.Ordertbl.ToList();
            }
            return(orders);
        }
Пример #11
0
        internal static List <Menutbl> GetMenu()
        {
            List <Menutbl> list;

            using (var ctx = new EATSEntities())
            {
                list = ctx.Menutbl.ToList();
            }
            return(list);
        }
Пример #12
0
        public static List <Menutbl> GetMenu()
        {
            List <Menutbl> menus;

            using (var ctx = new EATSEntities())
            {
                menus = ctx.Menutbl.ToList();
            }
            return(menus);
        }
Пример #13
0
        internal static Menutbl GetMenuInfo(OrderDetailtbl item)
        {
            Menutbl info;

            using (var ctx = new EATSEntities())
            {
                info = ctx.Menutbl.Where(c => c.MenuCode.Equals(item.MenuCode)).FirstOrDefault();
            }

            return(info);
        }
Пример #14
0
        /// <summary>
        /// 화면에 주문 목록 출력 갱신
        /// </summary>
        private void UpdateOrder()
        {
            Dispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() =>
            {
                using (EATSEntities db = new EATSEntities())
                {
                    var orderList = db.Ordertbl.Where(o => o.TableInUse).ToList();
                    foreach (var order in orderList)
                    {
                        int tblNum = order.TblNum;
                        List <MenuInfo> orderInfo             = new List <MenuInfo>();
                        List <OrderDetailtbl> orderDetailList = db.OrderDetailtbl.Where(o => o.OrderCode.Equals(order.OrderCode) && !o.OrderComplete).ToList();
                        foreach (var item in orderDetailList)
                        {
                            var info = new MenuInfo()
                            {
                                OrderIdx      = item.idx,
                                OrderCode     = item.OrderCode,
                                MenuName      = db.Menutbl.FirstOrDefault(m => m.MenuCode.Equals(item.MenuCode)).MenuName,
                                Amount        = item.Amount,
                                OrderComplete = item.OrderComplete
                            };

                            orderInfo.Add(info);
                        }

                        if (tblNum == 1)
                        {
                            menuTable1            = orderInfo;
                            Lbltbl1.Content       = order.OrderTime.ToShortTimeString();
                            lsvTable1.ItemsSource = orderInfo;
                        }
                        else if (tblNum == 2)
                        {
                            menuTable2            = orderInfo;
                            Lbltbl2.Content       = order.OrderTime.ToShortTimeString();
                            lsvTable2.ItemsSource = orderInfo;
                        }
                        else if (tblNum == 3)
                        {
                            menuTable3            = orderInfo;
                            Lbltbl3.Content       = order.OrderTime.ToShortTimeString();
                            lsvTable3.ItemsSource = orderInfo;
                        }
                        else if (tblNum == 4)
                        {
                            menuTable4            = orderInfo;
                            Lbltbl4.Content       = order.OrderTime.ToShortTimeString();
                            lsvTable4.ItemsSource = orderInfo;
                        }
                    }
                };
            }));
        }
Пример #15
0
 /// <summary>
 /// DB에 테이블 현재 사용 여부를 갱신
 /// </summary>
 /// <param name="tblNum">테이블 번호</param>
 private void TableSetEmpty(int tblNum)
 {
     using (EATSEntities db = new EATSEntities())
     {
         Ordertbl useTable = db.Ordertbl.Where(o => o.TableInUse && o.TblNum == tblNum).FirstOrDefault();
         if (useTable != null)
         {
             useTable.TableInUse = false;
         }
         db.SaveChanges();
     }
 }
Пример #16
0
        // 주문 1 : 삼겹살 2인분 + 목살 2인분 + 콜라 1캔
        private void btnOrderCommit1_Click(object sender, EventArgs e)
        {
            using (EATSEntities db = new EATSEntities())
            {
                // 가장 최근 오더 번호
                var lastOrder = db.Ordertbl.OrderByDescending(u => u.OrderCode).Take(1).ToList()[0].OrderCode; // 20210802005

                // 최신 오더 뒤 3자리 추출하고 정수로 변환하여 + 1
                int num = int.Parse(lastOrder.Substring(8)) + 1; //  "20210802003" -> 4

                // 오더 번호 생성
                var orderCode = DateTime.Today.ToString("yyyyMMdd") + num.ToString("D3");


                // Order 1 line (OrderCode, OrderTime, CustomerNum, TblNum, OrderPrice, OrderRemark)
                // 키오스크로부터 인원수, 테이블 번호, 결제 금액을 받아와서 입력
                var order = new Ordertbl()
                {
                    OrderCode   = orderCode,
                    OrderTime   = DateTime.Now,
                    CustomerNum = "4",
                    TblNum      = 4,
                    OrderPrice  = 20000,
                    OrderRemark = null
                };

                db.Ordertbl.Add(order);

                // OrderDetail 3 line (OrderCode, MenuCode, Amount)

                // 키오스크로부터 메뉴와 수량 받아와서 처리 (임시 입력)
                int      menuCount = 3;                          // 3종류
                string[] menu      = { "M001", "M002", "B001" }; // 메뉴 종류
                int[]    amount    = { 2, 2, 1 };                // 각 메뉴 수량

                for (int i = 0; i < menuCount; i++)
                {
                    var orderDetail = new OrderDetailtbl()
                    {
                        OrderCode = orderCode,
                        MenuCode  = menu[i],
                        Amount    = amount[i]
                    };
                    db.OrderDetailtbl.Add(orderDetail);
                }

                db.SaveChanges();
            }
        }
Пример #17
0
        /// <summary>
        /// 현재 사용 중인 테이블 목록 갱신, 표시
        /// </summary>
        private void TableInUse()
        {
            using (EATSEntities db = new EATSEntities())
            {
                // 사용 중인 테이블 목록
                var useTable = db.Ordertbl.Where(o => o.TableInUse).ToList();

                btnTable1.Background = Brushes.GreenYellow;
                btnTable2.Background = Brushes.GreenYellow;
                btnTable3.Background = Brushes.GreenYellow;
                btnTable4.Background = Brushes.GreenYellow;
                // 사용 중 변경
                foreach (var item in useTable)
                {
                    switch (item.TblNum)
                    {
                    case 1:
                        btnTable1.Background = Brushes.Gray;
                        break;

                    case 2:
                        btnTable2.Background = Brushes.Gray;
                        break;

                    case 3:
                        btnTable3.Background = Brushes.Gray;
                        break;

                    case 4:
                        btnTable4.Background = Brushes.Gray;
                        break;
                    }
                }

                if (useTable.Count == 4)
                {
                    grdOrder.Visibility = Visibility.Hidden;
                }
                else
                {
                    grdOrder.Visibility = Visibility.Visible;
                }
            }
        }
Пример #18
0
        /// <summary>
        /// 가장 최신 주문을 불러와서 테이블 사용 여부 체크
        /// </summary>
        /// <param name="tblNum">테이블 번호</param>
        /// <returns>주문 번호</returns>
        private int OrderCheck(int tblNum)
        {
            // 1. 테이블이 현재 사용 중인가?
            // 2. 오늘의 첫 주문인가?
            using (EATSEntities db = new EATSEntities())
            {
                var lastOrder  = db.Ordertbl.OrderByDescending(u => u.OrderCode).Take(1).ToList()[0].OrderCode;
                var tableInUse = db.Ordertbl.OrderByDescending(o => o.OrderCode).Where(o => o.TblNum.Equals(tblNum)).Take(1).ToList()[0];
                if (lastOrder.Substring(0, 8) != DateTime.Today.ToString("yyyyMMdd"))
                {
                    return(1);
                }

                else
                {
                    return(int.Parse(lastOrder.Substring(8)) + 1);
                }
            }
        }
Пример #19
0
        /// <summary>
        /// DB에 주문 내역 저장
        /// </summary>
        /// <param name="orderCode">고유 주문 번호</param>
        private void SaveOrderToDB(string orderCode)
        {
            using (EATSEntities db = new EATSEntities())
            {
                var menus = DataAccess.GetMenu();
                if (db.Ordertbl.Count(o => o.OrderCode.Equals(orderCode)) == 0)
                {
                    var order = new Ordertbl()
                    {
                        OrderCode   = orderCode,
                        OrderTime   = DateTime.Now,
                        TblNum      = TableNum,
                        OrderPrice  = totalPrice, // TODO : 계산식 추가
                        TableInUse  = true,
                        OrderRemark = null        // TODO : 주문 특이사항 이후 추가
                    };

                    db.Ordertbl.Add(order);
                }

                foreach (var item in menuList)
                {
                    var orderDetail = new OrderDetailtbl()
                    {
                        OrderCode     = orderCode,
                        MenuCode      = menus.FirstOrDefault(m => m.MenuName.Equals(item.MenuName)).MenuCode,
                        Amount        = item.Amount,
                        OrderComplete = false
                    };
                    db.OrderDetailtbl.Add(orderDetail);
                }

                if (db.SaveChanges() > 0)
                {
                    MessageBox.Show("주문 완료", "Complete");
                }
                else
                {
                    MessageBox.Show("주문 실패, 관리자에게 문의!", "Fail");
                }
            }
        }
Пример #20
0
        /// <summary>
        /// 주문을 DB에 저장
        /// </summary>
        private void SaveDB()
        {
            using (EATSEntities db = new EATSEntities())
            {
                // DB에 저장된 가장 최신 주문
                var lastOrder = db.Ordertbl.OrderByDescending(u => u.OrderCode).Take(1).ToList()[0].OrderCode;

                // 새로운 주문번호 생성
                int    num       = int.Parse(lastOrder.Substring(8)) + 1;
                string orderCode = DateTime.Today.ToString("yyyyMMdd") + num.ToString("D3");

                // 주문 객체 생성
                var order = new Ordertbl()
                {
                    OrderCode   = orderCode,
                    OrderTime   = DateTime.Now,
                    CustomerNum = customerNum,
                    TblNum      = tableNum,
                    OrderPrice  = price,
                    OrderRemark = null
                };

                // DB에 주문 추가
                db.Ordertbl.Add(order);
                if (numMainMenu.Value > 0 && cboMainMenu.SelectedIndex > -1)
                {
                    OrderDetailtbl orderDetail = new OrderDetailtbl()
                    {
                        OrderCode = orderCode,
                        MenuCode  = DataAccess.GetMenus().FirstOrDefault(m => m.MenuName.Equals(cboMainMenu.SelectedValue.ToString())).MenuCode,
                        Amount    = (int)numMainMenu.Value
                    };
                    db.OrderDetailtbl.Add(orderDetail);
                }
                if (numSideMenu.Value > 0 && cboSideMenu.SelectedIndex > -1)
                {
                    OrderDetailtbl orderDetail = new OrderDetailtbl()
                    {
                        OrderCode = orderCode,
                        MenuCode  = DataAccess.GetMenus().FirstOrDefault(m => m.MenuName.Equals(cboSideMenu.SelectedValue.ToString())).MenuCode,
                        Amount    = (int)numSideMenu.Value
                    };
                    db.OrderDetailtbl.Add(orderDetail);
                }
                if (numBeverage.Value > 0 && cboBeverage.SelectedIndex > -1)
                {
                    OrderDetailtbl orderDetail = new OrderDetailtbl()
                    {
                        OrderCode = orderCode,
                        MenuCode  = DataAccess.GetMenus().FirstOrDefault(m => m.MenuName.Equals(cboBeverage.SelectedValue.ToString())).MenuCode,
                        Amount    = (int)numBeverage.Value
                    };
                    db.OrderDetailtbl.Add(orderDetail);
                }

                if (db.SaveChanges() > 0)
                {
                    MessageBox.Show("DB 저장 성공!");
                }
                else
                {
                    MessageBox.Show("DB 저장 실패!");
                }
            }
        }
Пример #21
0
        public void DatagridLoad()
        {
            EATSEntities entities = new EATSEntities();

            // 1. 메뉴 리스트 불러와서 바인딩
            var menus = from p in entities.Menutbl
                        select new
            {
                menuCode   = p.MenuCode,
                menuName   = p.MenuName,
                price      = p.Price,
                activation = p.Activation
            };

            dataGridView1.DataSource = menus.ToList();


            // 2. 주문내역 리스트 불러와서 바인딩
            var orderList = (from o in entities.OrderDetailtbl
                             select new
            {
                OrderCode = o.OrderCode,
                MenuCode = o.MenuCode,
                Amount = o.Amount
            }).ToList();

            dataGridView2.DataSource = orderList;



            // 3.
            // MQTT로 메시지 전송받음
            // 주문코드, 테이블 번호
            // 전달 받은 코드와 테이블번호를 매개변수로 하는 메소드
            string inputCode = "20210802005";

            // int tableNum = 3;

            using (EATSEntities db = new EATSEntities())
            {
                var orders = (from d in db.OrderDetailtbl
                              join m in db.Menutbl
                              on d.MenuCode equals m.MenuCode
                              // 해당 코드의 주문 중 서빙이 안된 주문만 (추가 주문 가능성)
                              where (d.OrderCode == inputCode && d.OrderComplete == false)
                              select new
                {
                    OrderCode = d.OrderCode,
                    MenuName = m.MenuName,
                    Amount = d.Amount
                }).ToList();

                foreach (var order in orders)
                {
                    dataGridView3.DataSource = orders;
                    dataGridView3.Columns["OrderCode"].HeaderText = "주문코드";
                    dataGridView3.Columns["MenuName"].HeaderText  = "메뉴";
                    dataGridView3.Columns["Amount"].HeaderText    = "수량";
                }
            }
        }