public IActionResult ReturnOrder(string orderGuid) { var order = _orderService.GetByGuid(orderGuid); if (order == null || order.UserId != CurrentUser.Id) { return(NotFound()); } if (!CanReturnOrder(order, out var returnableOrderItems, out var lastReturnDate)) { return(R.Fail.With("error", T("The order is not eligible for returns")).Result); } var models = returnableOrderItems.Select(x => { var returnItemModel = new ReturnItemModel() { OrderItem = _orderModelFactory.Create(x), MinimumQuantityToReturn = x.Product.MinimumPurchaseQuantity }; if (returnItemModel.MinimumQuantityToReturn == 0) { returnItemModel.MinimumQuantityToReturn = 1; } return(returnItemModel); }).ToList(); order.OrderItems = null; var orderModel = _orderModelFactory.Create(order); //get the actions and reasons var customLabels = _customLabelService.Get( new List <string>() { ReturnActionLabel, ReturnReasonLabel }, out _).ToList(); var actions = customLabels.Where(x => x.Type == ReturnActionLabel).ToList(); var reasons = customLabels.Where(x => x.Type == ReturnReasonLabel).ToList(); var reasonsAsSelectList = SelectListHelper.GetSelectItemList(reasons, x => x.Id, x => x.Text); var actionsAsSelectList = SelectListHelper.GetSelectItemList(actions, x => x.Id, x => x.Text); //set breadcrumb nodes SetBreadcrumbToRoute("Account", RouteNames.AccountProfile); SetBreadcrumbToRoute("Orders", RouteNames.AccountOrders); SetBreadcrumbToRoute(order.OrderNumber, RouteNames.SingleOrder, new { orderGuid }, localize: false); SetBreadcrumbToRoute("Return Request", RouteNames.ReturnOrder); return(R.Success.With("returnItems", models).With("availableReasons", reasonsAsSelectList) .With("availableActions", actionsAsSelectList).With("order", orderModel) .With("lastReturnDate", lastReturnDate).Result); }
public ActionResult SaveReturnItem(ReturnItemModel model) { if (ModelState.IsValid) { var returnItem = _returnItemRepository.GetById(model.Id); //always set IsNew to false when saving returnItem.IsNew = false; returnItem.IssueItemId = model.IssueItemId; returnItem.ReturnQuantity = model.ReturnQuantity; _returnItemRepository.UpdateAndCommit(returnItem); return(new NullJsonResult()); } else { return(Json(new { Errors = ModelState.Errors().ToHtmlString() })); } }
public string ReturnItemPanel(ReturnItemModel model) { var html = this.RenderPartialViewToString("_ReturnItemDetails", model); return(html); }