public ActionResult EditDrinkDetail(BuyDMDrinkView Buy, string DetailID) { int ordid = Int32.Parse(DetailID); var OrderID = db.CreateBuyOrder_Details.Find(ordid); //加入超過三樣配料,返回視圖 int addTot = Models.AnyDMorBuy.GetAddItemInt(Buy).Count; if (!ModelState.IsValid || addTot > 3) { Buy.SizeType = Models.AnyDMorBuy.DrinkSize(OrderID.MenuID, OrderID.DrinkID); //到時要寫配料的選擇超過三樣時的返回視圖 if (addTot > 3) { ViewBag.ErrorMessage = "配料最多只能選三樣喔!"; } ViewBag.DetailID = ordid; return(View(Buy)); } //更新訂單用明細 int SizePID = Int32.Parse(Buy.SizeTypeM); int SweetID = Models.AnyDMorBuy.GetSweetIceInt(Buy, "sweet"); int IceID = Models.AnyDMorBuy.GetSweetIceInt(Buy, "ice"); int Add01 = Models.AnyDMorBuy.GetOnlyAdditemInt(Buy, 1); int Add02 = Models.AnyDMorBuy.GetOnlyAdditemInt(Buy, 2); int Add03 = Models.AnyDMorBuy.GetOnlyAdditemInt(Buy, 3); int SCount = Models.AnyDMorBuy.GetSCount(Buy); var result = db.Database.ExecuteSqlCommand(@"UPDATE createbuyorder_detail SET SizePID = '" + SizePID + "', SweetID = '" + SweetID + "', IceID = '" + IceID + "', Additem01PID = '" + Add01 + "', Additem02PID = '" + Add02 + "', Additem03PID = '" + Add03 + "', Quantity = '" + Buy.Quantity + "', SCount = '" + SCount + "' Where DetailID = '" + ordid + "';"); //釋放資料(若不釋放則有資料會取未更新時的那筆) db.Dispose(); //更新總價格 NewDrinkDB db2 = new NewDrinkDB(); var OrderID2 = db2.CreateBuyOrder_Details.Find(ordid); var TotCount = db2.CreateBuyOrder_LeaderOrders.Find(OrderID.OrderID); var AllTotCount2 = db2.CreateBuyOrder_Details.Where(m => m.OrderID == TotCount.OrderID); int tot = 0; foreach (var item in AllTotCount2) { tot = tot + item.SCount; } TotCount.TotalCount = tot; db2.SaveChanges(); db2.Dispose(); //返回訂單檢視界面 return(RedirectToAction("OrderingDetail", "AnyDMorBuy", new { OrderID = OrderID.OrderID.ToString() })); }
public ActionResult DrinkDetail(BuyDMDrinkView Buy, string BuyCheck) { //加入超過三樣配料,返回視圖 int addTot = Models.AnyDMorBuy.GetAddItemInt(Buy).Count; if (!ModelState.IsValid || addTot > 3) { Buy.SizeType = Models.AnyDMorBuy.DrinkSize(Buy.MenuID, Buy.DrinkID); if (addTot > 3) { ViewBag.ErrorMessage = "配料最多只能選三樣喔!"; } return(View(Buy)); } //取出使用者ID string UserMail = Helper.GetUserMail(); int UserID = Models.AnyDMorBuy.GetUserID_UseEmail(UserMail); //取出時間 DateTime time = DateTime.Now; //正確金額在這裡做計算 //寫入兩個表 //下訂單用總表(CreateBuyOrder_LeaderOrder) //訂單用明細(CreateBuyOrder_Detail) //(第一次下訂單時) //先寫入下訂單用總表(取OrderID)//////////////////////////////////////////////////// int OrderID = 0; if (BuyCheck == null || String.IsNullOrEmpty(BuyCheck)) { db.CreateBuyOrder_LeaderOrders.Add(new CreateBuyOrder_LeaderOrder() { UserID = UserID, MenuID = Buy.MenuID, CreateTime = time, TotalCount = 0, CanOrNotOrder = 0 }); db.SaveChanges(); var newTime = time.ToString(); var Order = db.CreateBuyOrder_LeaderOrders.Where(m => m.MenuID == Buy.MenuID && m.UserID == UserID).Select(m => new { ID = m.OrderID, Time = m.CreateTime }); if (Order == null) { Buy.SizeType = Models.AnyDMorBuy.DrinkSize(Buy.MenuID, Buy.DrinkID); if (addTot > 3) { ViewBag.ErrorMessage = "菜單建置時發生錯誤,請重新下訂."; } return(View(Buy)); } //取出OrderID foreach (var item in Order) { if (item.Time.ToString() == newTime) { OrderID = item.ID; } } } else { int myNowID = Int32.Parse(BuyCheck); OrderID = myNowID; } //寫入訂單用明細(取DetailID)//////////////////////////////////////////////////////////////////// int SizePID = Int32.Parse(Buy.SizeTypeM); int SweetID = Models.AnyDMorBuy.GetSweetIceInt(Buy, "sweet"); int IceID = Models.AnyDMorBuy.GetSweetIceInt(Buy, "ice"); int Add01 = Models.AnyDMorBuy.GetOnlyAdditemInt(Buy, 1); int Add02 = Models.AnyDMorBuy.GetOnlyAdditemInt(Buy, 2); int Add03 = Models.AnyDMorBuy.GetOnlyAdditemInt(Buy, 3); int SCount = Models.AnyDMorBuy.GetSCount(Buy); db.CreateBuyOrder_Details.Add(new CreateBuyOrder_Detail() { OrderID = OrderID, MenuID = Buy.MenuID, UserID = UserID, DrinkID = Buy.DrinkID, SizePID = SizePID, SweetID = SweetID, IceID = IceID, Additem01PID = Add01, Additem02PID = Add02, Additem03PID = Add03, Quantity = Buy.Quantity, SCount = SCount, }); //更新總價格 var ChangeTot = db.CreateBuyOrder_LeaderOrders.Find(OrderID); ChangeTot.TotalCount = ChangeTot.TotalCount + SCount; db.SaveChanges(); //繼續選購 return(RedirectToAction("DMDetail", "AnyDMorBuy", new { id = Buy.MenuID, BuyCheck = OrderID.ToString() })); }