コード例 #1
0
        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);
        }
コード例 #2
0
 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() }));
     }
 }
コード例 #3
0
        public string ReturnItemPanel(ReturnItemModel model)
        {
            var html = this.RenderPartialViewToString("_ReturnItemDetails", model);

            return(html);
        }