Ejemplo n.º 1
0
        public ActionResult TakeOverPull(int orderId, OrderHeaderDetail model)
        {
            if (!ModelState.IsValid)
            {
                return(View(model));
            }


            if (model.OrderId != orderId)
            {
                ModelState.AddModelError("", "Error in changing Pull User Name.  Please try again.");
                return(View(model));
            }

            var userId  = User.Identity.GetUserId();
            var service = CreateOrderService();

            bool takeOverSucess = service.TakeOverOrder(orderId, userId);

            if (takeOverSucess)
            {
                return(RedirectToAction(actionName: "PullOrder", controllerName: "Order", routeValues: new { id = orderId }));
            }

            ModelState.AddModelError("", "Error in changing Pull User Name - unknown error.  Please try again.");
            return(View(model));
        }
Ejemplo n.º 2
0
        public OrderHeaderDetail GetOrderWithShortDetailById(int id, string userId, bool isCust)
        {
            OrderHeaderDetail model = GetOrderById(id, isCust);

            model.SlotDateTime = ConvertSlotToDateTime(model.SlotId, model.CreateDateTime.DateTime, model.Deliver, userId);
            bool shortList = true;

            model.OrderDetailCategoryList = GetOrderDetailByOrderId(id, userId, shortList);

            return(model);
        }
Ejemplo n.º 3
0
        public ActionResult PullOrder(int id, OrderHeaderDetail model)
        {
            bool isComplete = false;

            if (Request.Form["Complete"] != null)
            {
                isComplete = true;
            }
            else if (Request.Form["PullOnly"] != null)
            {
                isComplete = false;
            }
            else
            {
                ModelState.AddModelError("", "Programmer Error - Could not identify Button selected.");
                return(RedirectToAction("PullIndex"));
            }

            if (!ModelState.IsValid)
            {
                return(View(model));
            }

            if (model.OrderId != id)
            {
                ModelState.AddModelError("", "Id Mismatch");
                return(View(model));
            }

            var service = CreateOrderService();

            OrderCrtUpdRtnStatus orderRtnStatus = service.UpdatePulledItems(model, id, isComplete);

            if (orderRtnStatus.OrderHeaderCreated)
            {
                if (isComplete)
                {
                    TempData["SaveResult"] = $"Order was Completed.";

                    return(RedirectToAction("PullIndex"));
                }
                if (orderRtnStatus.OrderAllDetailCreated)
                {
                    TempData["SaveResult"] = $"Order was NOT completed - not all Items were updated. Please review the order.";
                    return(RedirectToAction("PullIndex"));
                }
                TempData["SaveResult"] = $"Order was NOT completed. Some or all Pulled Items were saved.";
                return(RedirectToAction("PullIndex"));
            }

            ModelState.AddModelError("", "Order could not be updated. Please review the order.");
            return(RedirectToAction("PullIndex"));
        }
Ejemplo n.º 4
0
        public OrderCrtUpdRtnStatus UpdatePulledItems(OrderHeaderDetail model, int orderId, bool isComplete)
        {
            OrderCrtUpdRtnStatus orderRtnStatus = new OrderCrtUpdRtnStatus
            {
                OrderHeaderCreated    = false,
                OrderAllDetailCreated = false,
                OrderId = 0
            };

            if (isComplete)
            {
                using (var ctx = new ApplicationDbContext())
                {
                    var entity =
                        ctx
                        .OrderHeaders
                        .Single(e => e.OrderId == model.OrderId);
                    entity.OrderCompletedAt = DateTimeOffset.Now;

                    try { ctx.SaveChanges(); }
                    catch { return(orderRtnStatus); }
                }
                orderRtnStatus.OrderHeaderCreated = true;
            }

            orderRtnStatus.OrderId = model.OrderId;

            // Assume all OrderDetail records will be created/updated/deleted - make false if any fail.
            orderRtnStatus.OrderAllDetailCreated = true;
            OrderDetailService orderDetailService = new OrderDetailService(_userId);

            // Add Order Detail
            foreach (var catagory in model.OrderDetailCategoryList)
            {
                foreach (var subCat in catagory.OrderDetailSubCatList)
                {
                    if (subCat.OrderDetailItemList != null)
                    {
                        foreach (var itm in subCat.OrderDetailItemList)
                        {
                            if (itm.Pulled != itm.PulledBefore)
                            {
                                // Marked as Pulled (or un-Pulled)
                                var orderDetail =
                                    new OrderDetailUpdate()
                                {
                                    OrderDetailId = itm.OrderDetailId,
                                    ItemId        = itm.ItemId,
                                    Quantity      = itm.Quantity,
                                    Filled        = itm.Pulled
                                };

                                if (!orderDetailService.UpdateOrderDetail(orderDetail))
                                {
                                    orderRtnStatus.OrderAllDetailCreated = false;
                                }
                            }
                        }
                    }
                }
            }
            return(orderRtnStatus);
        }