public ActionResult Receipt(int id) { RSReceipt receipt = db.Receipts.Include("Order").Include("PaidItems.Product").SingleOrDefault(r => r.Id == id); if (receipt != null) { return(View(receipt)); } else { return(HttpNotFound()); } }
public int CreateReceipt(int id, [FromBody] IEnumerable <int> orderItemIds) { try { RSReceipt receipt = new RSReceipt(); RSOrder order = db.Orders.Find(id); receipt.Order = order; receipt.User = db.Users.Find((User.Identity as RSUser).Id); var orderItems = orderItemIds.Select(oiid => db.OrderItems.Include("Product.Stocks.Stock").SingleOrDefault(oi => oi.Id == oiid)); if (orderItems.All(oi => oi != null ? oi.State < 2 : false)) { foreach (var orderItem in orderItems) { orderItem.Receipt = receipt; //Product was used, modify stock quantity foreach (var stockItem in orderItem.Product.Stocks) { stockItem.Stock.Quantity -= stockItem.Amount; } orderItem.State = (int)RSOrderItemState.Paid; } } else { return(-1); } db.Receipts.Add(receipt); db.SaveChanges(); return(receipt.Id); } catch (Exception ex) { return(-1); } }