示例#1
0
        public ActionResult Accept(AutoUpdateOrderItemModel model)
        {
            if (!_permissionService.Authorize(StandardPermissionProvider.ManageReturnRequests))
            {
                return(AccessDeniedView());
            }

            var returnRequest = _orderService.GetReturnRequestById(model.Id);
            var oi            = _orderService.GetOrderItemById(returnRequest.OrderItemId);

            int cancelQuantity = (returnRequest.Quantity > oi.Quantity ? oi.Quantity : returnRequest.Quantity);

            var context = new AutoUpdateOrderItemContext()
            {
                OrderItem          = oi,
                QuantityOld        = oi.Quantity,
                QuantityNew        = Math.Max(oi.Quantity - cancelQuantity, 0),
                AdjustInventory    = model.AdjustInventory,
                UpdateRewardPoints = model.UpdateRewardPoints,
                UpdateTotals       = model.UpdateTotals
            };

            returnRequest.ReturnRequestStatus = ReturnRequestStatus.ReturnAuthorized;
            _customerService.UpdateCustomer(returnRequest.Customer);

            _orderProcessingService.AutoUpdateOrderDetails(context);

            TempData[AutoUpdateOrderItemContext.InfoKey] = context.ToString(_localizationService);

            return(RedirectToAction("Edit", new { id = returnRequest.Id }));
        }