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)); }
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); }
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")); }
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); }