Example #1
0
        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());
            }
        }
Example #2
0
        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);
            }
        }