// GET: Cart public ActionResult CheckAmount() { List <CartItem> cartItems = (List <CartItem>)Session["cartItems"]; List <CartViewVM> cartViewVM = new List <CartViewVM>(); double Total = 0; if (cartItems != null) { foreach (CartItem item in cartItems) { List <ItemCustomField> ItemCF = item.ItemCustomFields; Item tmp_item = db.Item.Where(x => x.ItemID == item.ItemID) .FirstOrDefault(); CartViewVM cartVM = new CartViewVM(tmp_item); cartVM.Key = item.Key; cartVM.QTY = item.Qty; cartVM.SubTotal = cartVM.QTY * cartVM.ItemPrice; if (item.ItemCustomFields != null) { double addPrice = 0; cartVM.ItemCustomFieldName = new List <ItemCustomFieldName>(); foreach (ItemCustomField icf in ItemCF) { CustomField tmp_cf = db.CustomField.Where(x => x.CustomFieldID == icf.CustomFieldID).FirstOrDefault(); CustomFieldValue tmp_cfv = db.CustomFieldValue.Where(x => x.CustomFieldValueID == icf.CustomFieldValueID).FirstOrDefault(); ItemCustomFieldName item_cfn = new ItemCustomFieldName(tmp_cf, tmp_cfv); if (item_cfn != null) { cartVM.ItemCustomFieldName.Add(item_cfn); if (item_cfn.AdditionalPrice > 0) { addPrice += item_cfn.AdditionalPrice; } } } cartVM.SubTotal += (cartVM.QTY * addPrice); } Total += cartVM.SubTotal; cartViewVM.Add(cartVM); } } ViewBag.Total = Total; return(View(cartViewVM)); }
// GET: Cart public ActionResult Index() { List <CartItem> cartItems = (List <CartItem>)Session["cartItems"]; List <CartViewVM> cartViewVM = new List <CartViewVM>(); if (cartItems != null) { foreach (CartItem item in cartItems) { List <ItemCustomField> ItemCF = item.ItemCustomFields; Item tmp_item = db.Item.Where(x => x.ItemID == item.ItemID) .FirstOrDefault(); CartViewVM cartVM = new CartViewVM(tmp_item); cartVM.Key = item.Key; cartVM.QTY = item.Qty; if (item.ItemCustomFields != null) { cartVM.ItemCustomFieldName = new List <ItemCustomFieldName>(); foreach (ItemCustomField icf in ItemCF) { CustomField tmp_cf = db.CustomField.Where(x => x.CustomFieldID == icf.CustomFieldID).FirstOrDefault(); CustomFieldValue tmp_cfv = db.CustomFieldValue.Where(x => x.CustomFieldValueID == icf.CustomFieldValueID).FirstOrDefault(); ItemCustomFieldName item_cfn = new ItemCustomFieldName(tmp_cf, tmp_cfv); if (item_cfn != null) { cartVM.ItemCustomFieldName.Add(item_cfn); } } } cartViewVM.Add(cartVM); } } return(View(cartViewVM)); }
public ActionResult Checkout(OrderFormVM model) { string userID = User.Identity.GetUserId(); List <CartItem> cartItems = (List <CartItem>)Session["cartItems"]; List <CartViewVM> cartViewVM = new List <CartViewVM>(); double Total = 0; if (cartItems != null) { Order order = new Order(); order.OrderCreateDateTime = DateTime.Now; order.DeliverAddress = model.Address; order.OrderDateTime = model.OrderDateTime; //order.OrderDateTime = (DateTime)Session["OrderDateTime"]; order.UserID = userID; db.Order.Add(order); //db.SaveChanges(); foreach (CartItem item in cartItems) { List <ItemCustomField> ItemCF = item.ItemCustomFields; Item tmp_item = db.Item.Where(x => x.ItemID == item.ItemID) .FirstOrDefault(); CartViewVM cartVM = new CartViewVM(tmp_item); cartVM.Key = item.Key; cartVM.QTY = item.Qty; cartVM.SubTotal = cartVM.QTY * cartVM.ItemPrice; OrderDetail orderDetail = new OrderDetail(); orderDetail.Order = order; orderDetail.ItemID = item.ItemID; orderDetail.Qty = item.Qty; db.OrderDetail.Add(orderDetail); if (item.ItemCustomFields != null) { double addPrice = 0; cartVM.ItemCustomFieldName = new List <ItemCustomFieldName>(); foreach (ItemCustomField icf in ItemCF) { CustomField tmp_cf = db.CustomField.Where(x => x.CustomFieldID == icf.CustomFieldID).FirstOrDefault(); CustomFieldValue tmp_cfv = db.CustomFieldValue.Where(x => x.CustomFieldValueID == icf.CustomFieldValueID).FirstOrDefault(); ItemCustomFieldName item_cfn = new ItemCustomFieldName(tmp_cf, tmp_cfv); OrderDetailCustomField odcf = new OrderDetailCustomField(); odcf.OrderDetail = orderDetail; odcf.CustomFieldName = tmp_cf.CustomFieldName; odcf.CustomFieldValueName = tmp_cfv.CustomFieldValueName; odcf.AdditionalPrice = tmp_cfv.AdditionalPrice; db.OrderDetailCustomField.Add(odcf); if (item_cfn != null) { cartVM.ItemCustomFieldName.Add(item_cfn); if (item_cfn.AdditionalPrice > 0) { addPrice += item_cfn.AdditionalPrice; } } } cartVM.SubTotal += (cartVM.QTY * addPrice); } orderDetail.SubTotalAmount = cartVM.SubTotal; Total += cartVM.SubTotal; order.Total = Total; cartViewVM.Add(cartVM); } Session["cartItems"] = null; //Session.Remove("cartItems"); db.SaveChanges(); } ViewBag.Total = Total; ViewBag.CheckoutStatus = "Checkout Success!"; return(View()); }