예제 #1
0
        // GET: AdminArea/Items/Create
        public ActionResult Create()
        {
            AddItemVM model = new AddItemVM();

            model.categories = db.categories.ToList();
            return(View(model));
        }
예제 #2
0
        public IHttpActionResult PostAddItem(AddItemVM vm)
        {
            var userId = User.Identity.GetUserId();

            if (_unit.User.IsSeat(userId) || _unit.User.IsCustomer(userId))
            {
                _unit.Customer.postAddItem(userId, 0, vm);

                return(Ok());
            }
            return(Unauthorized());
        }
예제 #3
0
        public void postAddItem(string id, int restaurantId, AddItemVM vm)
        {
            int   SeatInfoId = _db.Users.Where(u => u.Id == id).FirstOrDefault().SeatInfo.Id;
            Order order      = _db.Orders.Where(o => o.SeatInfoId == SeatInfoId && !o.IsRetired && o.TimeOrdered == null).FirstOrDefault();

            if (order == null)
            {
                order = new Order
                {
                    SeatInfoId     = SeatInfoId,
                    RestaurantId   = restaurantId,
                    ConvenienceFee = 4m
                };

                if (RestaurantOutOfArea(id, restaurantId))
                {
                    order.OutOfAreaFee = 2m;
                }

                _db.Orders.Add(order);
            }
            else
            {
                if (restaurantId != 0 && order.RestaurantId != restaurantId)
                {
                    order.IsRetired = true;

                    order = new Order
                    {
                        SeatInfoId   = SeatInfoId,
                        RestaurantId = restaurantId
                    };

                    _db.Orders.Add(order);
                }
                else if (vm != null)
                {
                    if (vm.PersDesc != null)
                    {
                        order.PersDesc = vm.PersDesc;
                    }
                    if (vm.ReceiptEmail != null)
                    {
                        order.ReceiptEmail = vm.ReceiptEmail;
                    }
                    if (vm.ItemId > 0)
                    {
                        OrderItem orderItem = _db.OrderItems.Where(i => i.ItemId == vm.ItemId && i.OrderId == order.Id).FirstOrDefault();
                        if (orderItem == null)
                        {
                            orderItem = new OrderItem
                            {
                                ItemId   = vm.ItemId,
                                Quantity = vm.Quantity,
                                OrderId  = order.Id
                            };
                            if (vm.Quantity <= 0)
                            {
                                orderItem.Quantity = 1;
                            }

                            _db.OrderItems.Add(orderItem);
                        }
                        else
                        {
                            if (orderItem.IsRetired)
                            {
                                orderItem.IsRetired = false;
                                orderItem.Quantity  = 1;
                            }
                            else if (vm.Quantity > 0)
                            {
                                orderItem.Quantity = vm.Quantity;
                            }
                            else
                            {
                                orderItem.Quantity++;
                            }
                        }
                    }
                    if (vm.RemoveItemId > 0)
                    {
                        order.OrderItems.Where(o => o.ItemId == vm.RemoveItemId).FirstOrDefault().IsRetired = true;
                    }
                    if (vm.SubmitOrder)
                    {
                        order.TimeOrdered = DateTime.Now;
                    }
                    order.IsRetired = vm.IsRetired;
                }
            }

            _db.SaveChanges();

            if (order.OrderItems != null)
            {
                updateTotals(id);
            }
        }