//Get:Order/OrderDetail public ActionResult OrderDetail(string fOrderGuid) { var Member = this.Member; if (Member == null) { Session.Clear(); //清除Session變數資料 return(RedirectToAction("Index")); } //找出會員帳號並指定給fUserId string fUserId = Member.fUserId; var orderDetail = db.tOrderDetail .Where(m => m.fOrderGuid == fOrderGuid && m.fUserId == fUserId).ToList(); //找出目前會員的所有訂單主檔記錄並依照fDate進行遞增排序 //將查詢結果指定給orders var orders = db.tOrder .Where(m => m.fOrderGuid == fOrderGuid && m.fUserId == fUserId) .OrderByDescending(m => m.fDate).FirstOrDefault(); var tOrderViewModel = new tOrderViewModel(); tOrderViewModel.tOrderData = orders; tOrderViewModel.tOrderDetailsData = orderDetail; //指定OrderDetail.cshtml套用_LayoutMember.cshtml,View使用orders模型 return(View("OrderDetail", "_LayoutMember", tOrderViewModel)); }
public ActionResult Complete(tOrderViewModel tOrderViewModel) { var Member = this.Member; if (Member == null) { Session.Clear(); //清除Session變數資料 return(RedirectToAction("Index")); } //找出會員帳號並指定給fUserId string fUserId = Member.fUserId; //建立唯一的識別值並指定給guid變數,用來當做訂單編號 //tOrder的fOrderGuid欄位會關聯到tOrderDetail的fOrderGuid欄位 //形成一對多的關係,即一筆訂單資料會對應到多筆訂單明細 string guid = Guid.NewGuid().ToString(); //建立訂單主檔資料 tOrder order = new tOrder(); order.fOrderGuid = guid; order.fUserId = fUserId; order.fReceiver = tOrderViewModel.tOrderData.fReceiver; order.fEmail = tOrderViewModel.tOrderData.fEmail; order.fPhone = tOrderViewModel.tOrderData.fPhone; order.fAddress = tOrderViewModel.tOrderData.fAddress; order.fDate = DateTime.Now; //找出目前會員在訂單明細中是購物車狀態的產品 var carList = db.tOrderDetail .Where(m => m.fIsApproved == "否" && m.fUserId == fUserId) .ToList(); int totalPrice = 0; //將購物車狀態產品的fIsApproved設為"是",表示確認訂購產品 foreach (var item in carList) { item.fOrderGuid = guid; item.fIsApproved = "是"; totalPrice += item.fAmount; } //總價 order.fTotalPrice = totalPrice; db.tOrder.Add(order); //更新資料庫,異動tOrder和tOrderDetail //完成訂單主檔和訂單明細的更新 db.SaveChanges(); //執行Home控制器的OrderList動作方法 return(RedirectToAction("OrderList")); }
//確認訂購 public ActionResult Complete() { var Member = this.Member; if (Member == null) { Session.Clear(); //清除Session變數資料 return(RedirectToAction("Index")); } //找出會員帳號並指定給fUserId string fUserId = Member.fUserId; var orderDetail = db.tOrderDetail .Where(m => m.fIsApproved == "否" && m.fUserId == fUserId).ToList(); if (orderDetail == null || orderDetail.Count == 0) { return(RedirectToAction("Index")); } //找出目前會員的所有訂單主檔記錄並依照fDate進行遞增排序 //將查詢結果指定給orders var orders = db.tOrder .Where(m => m.fUserId == fUserId) .OrderByDescending(m => m.fDate).FirstOrDefault(); //目前會員的訂單主檔 var tOrderViewModel = new tOrderViewModel(); tOrderViewModel.tOrderData = orders; tOrderViewModel.tOrderDetailsData = orderDetail; //指定Complete.cshtml套用_LayoutMember.cshtml,View使用orders模型 return(View("Complete", "_LayoutMember", tOrderViewModel)); }