// GET Orders/completeOrder/6
        public async Task <IActionResult> CompleteOrder()
        {
            // Create new instance of the view model
            CompleteOrderViewModel model = new CompleteOrderViewModel(_context, await GetCurrentUserAsync());

            return(View(model));
        }
        public async Task <IActionResult> CompleteOrder(CompleteOrderViewModel viewModel)
        {
            if (ModelState.IsValid)
            {
                var user = await GetCurrentUserAsync();

                var currentOrder = await _context.Order.Include("LineItems.Product").SingleOrDefaultAsync(o => o.PaymentType == null && o.User.Id == user.Id);

                if (currentOrder == null || currentOrder.LineItems == null)
                {
                    return(NotFound());
                }
                foreach (var item in currentOrder.LineItems)
                {
                    item.Product.Quantity = item.Product.Quantity - 1;
                    _context.Product.Update(item.Product);
                }
                var selectedPaymentType = await _context.PaymentType.SingleOrDefaultAsync(pt => pt.PaymentTypeID == viewModel.SelectedPaymentTypeId);

                currentOrder.PaymentType = selectedPaymentType;
                _context.Order.Update(currentOrder);
                await _context.SaveChangesAsync();

                var orderID = new { orderID = currentOrder.OrderID };
                return(RedirectToAction("OrderCompleted", orderID));
            }
            CompleteOrderViewModel model = new CompleteOrderViewModel(_context, await GetCurrentUserAsync());

            return(View(model));
        }
示例#3
0
        // GET: Order/Complete - edit the existing form
        // This action sends the user to
        public async Task <IActionResult> AddPaymentType(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            // Convert the id to an int
            id = Convert.ToInt32(id);

            // Get the open order and validate that one is returned
            Order openOrder = _context.Order.Where(o => o.OrderId == id).SingleOrDefault();

            if (openOrder == null)
            {
                return(NotFound());
            }

            // get the current user
            ApplicationUser user = await GetCurrentUserAsync();

            CompleteOrderViewModel paymentTypes = new CompleteOrderViewModel(_context, user, openOrder);

            return(View(paymentTypes));
        }
示例#4
0
 public async Task <IActionResult> Complete(int id, CompleteOrderViewModel model)
 {
     if (id != model.Order.OrderId)
     {
         return(NotFound());
     }
     ModelState.Remove("Order.User");
     if (ModelState.IsValid)
     {
         try
         {
             _context.Update(model.Order);
             await _context.SaveChangesAsync();
         }
         catch (DbUpdateConcurrencyException)
         {
             if (!OrderExists(model.Order.OrderId))
             {
                 return(NotFound());
             }
             else
             {
                 throw;
             }
         }
         return(RedirectToAction("ThankYou"));
     }
     ViewData["PaymentTypeId"] = new SelectList(_context.PaymentType, "PaymentTypeId", "AccountNumber", model.Order.PaymentTypeId);
     return(View(model));
 }
示例#5
0
        public IActionResult Complete(int id)
        {
            CompleteOrderViewModel viewModel = new CompleteOrderViewModel {
                OrderId = id
            };

            return(this.View(viewModel));
        }
        public IActionResult Index()
        {
            var oh = HttpContext.Session.Get <OrderHandler>("OrderHandler");

            Console.WriteLine("OrderHandlerObject: CustomerID: {0}", oh.CustomerID);
            Console.WriteLine("OrderHandlerObject: LocationID: {0}", oh.LocationID);
            Console.WriteLine("OrderHandlerObject: TotalOrderCost: {0}", oh.TotalOrderValue);
            foreach (var pizza in oh.Pizzas)
            {
                Console.WriteLine("OrderHandlerObject: pizza crustID: {0}", pizza.CrustId);
                Console.WriteLine("OrderHandlerObject: pizza sauceID: {0}", pizza.SauceId);
                Console.WriteLine("OrderHandlerObject: pizza cheese1: {0}", pizza.Cheese1);
                Console.WriteLine("OrderHandlerObject: pizza cheese2: {0}", pizza.Cheese2);
                Console.WriteLine("OrderHandlerObject: pizza topping1: {0}", pizza.Topping1);
                Console.WriteLine("OrderHandlerObject: pizza topping2: {0}", pizza.Topping2);
                Console.WriteLine("OrderHandlerObject: pizza topping3: {0}", pizza.Topping3);
                Console.WriteLine("OrderHandlerObject: pizza quantity: {0}", pizza.Quantity);
            }

            //Check if Order is too Expensive
            JsonHandler jh = new JsonHandler();

            if (oh.TotalOrderValue > jh.JsonObject.MAX_ORDER_TOTAL)
            {
                Console.WriteLine("totalOrderCost exceeds {0}", jh.JsonObject.MAX_ORDER_TOTAL);
                ViewBag.CompleteOrderProblem = string.Format("totalOrderCost ${0} exceeds limit of ${1}", oh.TotalOrderValue, jh.JsonObject.MAX_ORDER_TOTAL);
                ViewBag.PizzaProblem         = string.Format("totalOrderCost ${0} exceeds limit of ${1}", oh.TotalOrderValue, jh.JsonObject.MAX_ORDER_TOTAL);

                HttpContext.Session.SetInt32("CostOfOrder", (int)oh.TotalOrderValue);
                oh.TotalOrderValue -= oh.Pizzas.Last().TotalPizzaCost.Value *oh.Pizzas.Last().Quantity;
                oh.Pizzas.RemoveAt(oh.Pizzas.Count - 1);
                HttpContext.Session.Set <OrderHandler>("OrderHandler", oh);

                return(RedirectToAction("Index", "Pizza"));
            }

            //Check inventory availability here
            OrderInventoryHandler oih = new OrderInventoryHandler(oh);

            if (!oih.GetInventorySufficiency())
            {
                Console.WriteLine("Inventory not sufficient");
                ViewBag.BadLocation  = "The Store does not have enough inventory to complete that order.";
                ViewBag.PizzaProblem = "The Store does not have enough inventory to complete that order.";
                HttpContext.Session.SetInt32("InventoryProblem", 1);

                oh.TotalOrderValue -= oh.Pizzas.Last().TotalPizzaCost.Value *oh.Pizzas.Last().Quantity;
                oh.Pizzas.RemoveAt(oh.Pizzas.Count - 1);
                HttpContext.Session.Set <OrderHandler>("OrderHandler", oh);

                return(RedirectToAction("Index", "Pizza"));
            }

            var completeOrder = new CompleteOrderViewModel(oh);

            return(View(completeOrder));
        }
示例#7
0
        public IActionResult Complete2(int shippingDetailId)
        {
            var model = new CompleteOrderViewModel
            {
                ShippingDetail = _shippingDetailService.GetById(shippingDetailId).Data,
                Cart           = _cartSessionHelper.GetCart("cart")
            };

            return(View(model));
        }
示例#8
0
        public IActionResult CompleteOrder(int id)
        {
            Employee driverToCompleteOrder = context.Employees.FirstOrDefault(e => e.EmployeeID == id);

            Order OrderToBeCompleted = context.Orders.FirstOrDefault(o => o.OrderID == driverToCompleteOrder.OrderID);

            Trailer TrailerToBeUnassigned = context.Trailers.FirstOrDefault(t => t.TrailerID == OrderToBeCompleted.TrailerForLoadID);

            CompleteOrderViewModel completeOrderViewModel = new CompleteOrderViewModel(driverToCompleteOrder, OrderToBeCompleted, TrailerToBeUnassigned);

            return(View(completeOrderViewModel));
        }
        public IActionResult Index(CompleteOrderViewModel model)
        {
            var oh = HttpContext.Session.Get <OrderHandler>("OrderHandler");

            //Make order
            OrderMaker om = new OrderMaker(oh);

            om.MakeOrder();

            //Subtract Inventory
            OrderInventoryHandler oih = new OrderInventoryHandler(oh);

            oih.SubtractInventory();

            return(RedirectToAction("Index", "ReviewOrder"));
        }
示例#10
0
        public ActionResult CompleteOrder(PaymentInformation model)
        {
            if (ModelState.IsValid)
            {
                var vm = new CompleteOrderViewModel()
                {
                    Cart = model.Cart
                };

                Session["shoppingCart"] = new Cart();
                return(View(vm));
            }
            else
            {
                var viewModel = new PaymentInformation();
                viewModel.ExpirationYear = DateTime.Now.Year;
                return(View("Checkout", viewModel));
            }
        }
示例#11
0
        public async Task <IActionResult> Complete(int?id)
        {
            if (id == null)
            {
                return(NotFound());
            }

            var order = await _context.Order.SingleOrDefaultAsync(m => m.OrderId == id);

            CompleteOrderViewModel model = new CompleteOrderViewModel();

            model.Order = order;
            if (order == null)
            {
                return(NotFound());
            }
            ViewData["PaymentTypeId"] = new SelectList(_context.PaymentType, "PaymentTypeId", "AccountNumber", order.PaymentTypeId);
            return(View(model));
        }
示例#12
0
        public IActionResult CompleteOrder(CompleteOrderViewModel completeOrderViewModel)
        {
            Employee driverToCompleteOrder = context.Employees.FirstOrDefault(e => e.EmployeeID == completeOrderViewModel.EmployeeId);

            Order orderToBeCompleted = context.Orders.FirstOrDefault(o => o.OrderID == driverToCompleteOrder.OrderID);

            Trailer trailerToBeUnassigned = context.Trailers.FirstOrDefault(t => t.TrailerID == orderToBeCompleted.TrailerForLoadID);

            driverToCompleteOrder.OrderID    = 0;
            driverToCompleteOrder.WorkStatus = "Available";

            orderToBeCompleted.Completed = true;
            //orderToBeCompleted.TrailerForLoadID = 0;

            trailerToBeUnassigned.TrailerStatus = "Available";
            context.SaveChanges();



            return(Redirect("/Employee"));
        }
示例#13
0
 public CompleteOrderCommand(CompleteOrderViewModel model)
 {
     _id = model.Id;
 }
 public static void CreateCompleteOrder()
 {
     if (_completeOrder == null) {
         _completeOrder = new CompleteOrderViewModel();
     }
 }
        public static void ClearCompleteOrder()
        {
            if (_designer == null) { return; }

            _completeOrder.Cleanup();
            _completeOrder = null;
        }