internal static int SetOrderDetail(OrderDetailtbl item) { using (var ctx = new EATSEntities()) { ctx.OrderDetailtbl.AddOrUpdate(item); return(ctx.SaveChanges()); // return 1 or 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); }
// 주문 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> /// 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 저장 실패!"); } } }