Пример #1
0
        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() }));
        }
Пример #2
0
        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() }));
        }