public bool ReduceInventory(Order order) { order.AllItemsRetreived = true; foreach (OrderDetail orderDetail in order.OrderDetails) { int inventoryID = orderDetail.InventoryId; int count = orderDetail.Quantity; Inventory inventoryItem = db.Inventories.Single(i => i.InventoryID == inventoryID); if (inventoryItem.QuantityInStock >= orderDetail.Quantity) { inventoryItem.QuantityInStock = inventoryItem.QuantityInStock - orderDetail.Quantity; orderDetail.RetreivedFromInventory = true; } else { orderDetail.QuantityShort = orderDetail.Quantity - inventoryItem.QuantityInStock; order.AllItemsRetreived = false; orderDetail.RetreivedFromInventory = false; } } if (order.AllItemsRetreived) db.SaveChanges(); return order.AllItemsRetreived; }
public ActionResult BillingProfile(FormCollection values) { var order = new Order(); TryUpdateModel(order); try { if (string.Equals(values["PromoCode"].Trim(), PromoCode, StringComparison.OrdinalIgnoreCase) == false) { ViewBag.PromotionCodeAlert = "Use the following promotion code to receive your order without paying: "; ViewBag.PromoCodeValue = PromoCode; return View(order); } else { order.Username = User.Identity.Name; order.OrderDate = DateTime.Now; storeDb.Orders.Add(order); storeDb.SaveChanges(); return RedirectToAction("Finalize", new { id = order.OrderId }); } } catch { //Invalid - redisplay with errors return View(order); } }
public int CreateOrder(Order order) { decimal orderTotal = 0; var cartItems = GetCartItems(); order.OrderDetails = new List<OrderDetail>(); // Iterate over the items in the cart, adding the order details for each foreach (var item in cartItems) { var orderDetail = new OrderDetail { RecordId = item.RecordId, InventoryId = item.InventoryId, ItemId = item.ItemId, OrderId = order.OrderId, UnitPrice = item.Price, Quantity = item.Count }; order.OrderDetails.Add(orderDetail); // Set the order total of the shopping cart orderTotal += (item.Count * item.Price); } order.Total = orderTotal; storeDb.SaveChanges(); //EmptyCart(); return order.OrderId; }
// // GET: /Checkout/AddressAndPayment public ActionResult BillingProfile() { try { Order mostRecentOrder = storeDb.Orders.Where(o => o.Username == User.Identity.Name) .OrderByDescending(o => o.OrderDate).First(); Order order = new Order(); order.FirstName = mostRecentOrder.FirstName; order.LastName = mostRecentOrder.LastName; order.Address = mostRecentOrder.Address; order.City = mostRecentOrder.City; order.State = mostRecentOrder.State; order.PostalCode = mostRecentOrder.PostalCode; order.Country = mostRecentOrder.Country; order.Phone = mostRecentOrder.Phone; order.Email = mostRecentOrder.Email; return View(order); } catch { return View(); } }
public bool CheckInventory(Order order) { order.AllItemsAvailable = true; foreach (OrderDetail orderDetail in order.OrderDetails) { int inventoryID = orderDetail.InventoryId; int count = orderDetail.Quantity; Inventory inventoryItem = db.Inventories.Single(i => i.InventoryID == inventoryID); if (inventoryItem.QuantityInStock < orderDetail.Quantity) { orderDetail.QuantityShort = orderDetail.Quantity - inventoryItem.QuantityInStock; order.AllItemsAvailable = false; } else orderDetail.QuantityShort = 0; } return order.AllItemsAvailable; }