/// <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(); } }
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; }
/// <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); } } } }
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("데이터 입력 실패(주문 없음)"); } } } }
public static int SetOrder(Ordertbl order) { using (var ctx = new EATSEntities()) { ctx.Ordertbl.AddOrUpdate(order); return(ctx.SaveChanges()); // commit } }
public static int SetMenu(Menutbl menu) { using (var ctx = new EATSEntities()) { ctx.Menutbl.AddOrUpdate(menu); return(ctx.SaveChanges()); // commit } }
internal static int SetOrderDetail(OrderDetailtbl item) { using (var ctx = new EATSEntities()) { ctx.OrderDetailtbl.AddOrUpdate(item); return(ctx.SaveChanges()); // return 1 or 0 } }
internal static int SetMenuActive(Menutbl menuName) { using (var ctx = new EATSEntities()) { ctx.Menutbl.AddOrUpdate(menuName); return(ctx.SaveChanges()); } }
internal static List <OrderDetailtbl> GetDetail() { List <OrderDetailtbl> list; using (var ctx = new EATSEntities()) list = ctx.OrderDetailtbl.ToList(); return(list); }
public static List <Ordertbl> GetOrder() { List <Ordertbl> orders; using (var ctx = new EATSEntities()) { orders = ctx.Ordertbl.ToList(); } return(orders); }
internal static List <Menutbl> GetMenu() { List <Menutbl> list; using (var ctx = new EATSEntities()) { list = ctx.Menutbl.ToList(); } return(list); }
public static List <Menutbl> GetMenu() { List <Menutbl> menus; using (var ctx = new EATSEntities()) { menus = ctx.Menutbl.ToList(); } return(menus); }
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); }
/// <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; } } }; })); }
/// <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(); } }
// 주문 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(); } }
/// <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; } } }
/// <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); } } }
/// <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"); } } }
/// <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 저장 실패!"); } } }
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 = "수량"; } } }