private bool PrepareReturnRequestModel(ReturnRequestModel model, ReturnRequest returnRequest, bool excludeProperties) { if (model == null) throw new ArgumentNullException("model"); if (returnRequest == null) throw new ArgumentNullException("returnRequest"); var orderItem = _orderService.GetOrderItemById(returnRequest.OrderItemId); if (orderItem == null) return false; model.Id = returnRequest.Id; model.ProductId = orderItem.ProductId; model.ProductName = orderItem.Product.Name; model.ProductTypeName = orderItem.Product.GetProductTypeLabel(_localizationService); model.ProductTypeLabelHint = orderItem.Product.ProductTypeLabelHint; model.OrderId = orderItem.OrderId; model.CustomerId = returnRequest.CustomerId; model.CustomerFullName = returnRequest.Customer.GetFullName(); model.Quantity = returnRequest.Quantity; model.ReturnRequestStatusStr = returnRequest.ReturnRequestStatus.GetLocalizedEnum(_localizationService, _workContext); model.CreatedOn = _dateTimeHelper.ConvertToUserTime(returnRequest.CreatedOnUtc, DateTimeKind.Utc); if (!excludeProperties) { model.ReasonForReturn = returnRequest.ReasonForReturn; model.RequestedAction = returnRequest.RequestedAction; model.CustomerComments = returnRequest.CustomerComments; model.StaffNotes = returnRequest.StaffNotes; model.ReturnRequestStatusId = returnRequest.ReturnRequestStatusId; } //model is successfully prepared return true; }
public ActionResult NotifyCustomer(ReturnRequestModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageReturnRequests)) return AccessDeniedView(); var returnRequest = _orderService.GetReturnRequestById(model.Id); if (returnRequest == null) //No return request found with the specified id return RedirectToAction("List"); //var customer = returnRequest.Customer; var orderItem = _orderService.GetOrderItemById(returnRequest.OrderItemId); int queuedEmailId = _workflowMessageService.SendReturnRequestStatusChangedCustomerNotification(returnRequest, orderItem, _localizationSettings.DefaultAdminLanguageId); if (queuedEmailId > 0) NotifySuccess(_localizationService.GetResource("Admin.ReturnRequests.Notified")); return RedirectToAction("Edit", returnRequest.Id); }
public ActionResult Edit(ReturnRequestModel model, bool continueEditing) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageReturnRequests)) return AccessDeniedView(); var returnRequest = _orderService.GetReturnRequestById(model.Id); if (returnRequest == null) //No return request found with the specified id return RedirectToAction("List"); if (ModelState.IsValid) { returnRequest.ReasonForReturn = model.ReasonForReturn; returnRequest.RequestedAction = model.RequestedAction; returnRequest.CustomerComments = model.CustomerComments; returnRequest.StaffNotes = model.StaffNotes; returnRequest.ReturnRequestStatusId = model.ReturnRequestStatusId; returnRequest.UpdatedOnUtc = DateTime.UtcNow; _customerService.UpdateCustomer(returnRequest.Customer); //activity log _customerActivityService.InsertActivity("EditReturnRequest", _localizationService.GetResource("ActivityLog.EditReturnRequest"), returnRequest.Id); NotifySuccess(_localizationService.GetResource("Admin.ReturnRequests.Updated")); return continueEditing ? RedirectToAction("Edit", returnRequest.Id) : RedirectToAction("List"); } //If we got this far, something failed, redisplay form PrepareReturnRequestModel(model, returnRequest, true); return View(model); }
//edit public ActionResult Edit(int id) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageReturnRequests)) return AccessDeniedView(); var returnRequest = _orderService.GetReturnRequestById(id); if (returnRequest == null) //No return request found with the specified id return RedirectToAction("List"); var model = new ReturnRequestModel(); PrepareReturnRequestModel(model, returnRequest, false); return View(model); }
public ActionResult List(GridCommand command) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageReturnRequests)) return AccessDeniedView(); var returnRequests = new List<ReturnRequestModel>(); foreach (var rr in _orderService.SearchReturnRequests(0, 0, 0, null).PagedForCommand(command)) { var m = new ReturnRequestModel(); if (PrepareReturnRequestModel(m, rr, false)) returnRequests.Add(m); } var gridModel = new GridModel<ReturnRequestModel> { Data = returnRequests, Total = returnRequests.Count, }; return new JsonResult { Data = gridModel }; }
private bool PrepareReturnRequestModel(ReturnRequestModel model, ReturnRequest returnRequest, bool excludeProperties) { if (model == null) throw new ArgumentNullException("model"); if (returnRequest == null) throw new ArgumentNullException("returnRequest"); var orderItem = _orderService.GetOrderItemById(returnRequest.OrderItemId); if (orderItem == null) return false; var store = _storeService.GetStoreById(returnRequest.StoreId); model.Id = returnRequest.Id; model.ProductId = orderItem.ProductId; model.ProductSku = orderItem.Product.Sku; model.ProductName = orderItem.Product.Name; model.ProductTypeName = orderItem.Product.GetProductTypeLabel(_localizationService); model.ProductTypeLabelHint = orderItem.Product.ProductTypeLabelHint; model.StoreName = (store != null ? store.Name : "".NaIfEmpty()); model.OrderId = orderItem.OrderId; model.OrderNumber = orderItem.Order.GetOrderNumber(); model.CustomerId = returnRequest.CustomerId; model.CustomerFullName = returnRequest.Customer.GetFullName().NaIfEmpty(); model.CanSendEmailToCustomer = returnRequest.Customer.FindEmail().HasValue(); model.Quantity = returnRequest.Quantity; model.ReturnRequestStatusStr = returnRequest.ReturnRequestStatus.GetLocalizedEnum(_localizationService, _workContext); model.CreatedOn = _dateTimeHelper.ConvertToUserTime(returnRequest.CreatedOnUtc, DateTimeKind.Utc); model.UpdatedOn = _dateTimeHelper.ConvertToUserTime(returnRequest.UpdatedOnUtc, DateTimeKind.Utc); if (!excludeProperties) { model.ReasonForReturn = returnRequest.ReasonForReturn; model.RequestedAction = returnRequest.RequestedAction; if (returnRequest.RequestedActionUpdatedOnUtc.HasValue) model.RequestedActionUpdated = _dateTimeHelper.ConvertToUserTime(returnRequest.RequestedActionUpdatedOnUtc.Value, DateTimeKind.Utc); model.CustomerComments = returnRequest.CustomerComments; model.StaffNotes = returnRequest.StaffNotes; model.AdminComment = returnRequest.AdminComment; model.ReturnRequestStatusId = returnRequest.ReturnRequestStatusId; } string unspec = _localizationService.GetResource("Common.Unspecified"); model.AvailableReasonForReturn.Add(new SelectListItem() { Text = unspec, Value = "" }); model.AvailableRequestedAction.Add(new SelectListItem() { Text = unspec, Value = "" }); // that's what we also offer in frontend string returnRequestReasons = _orderSettings.GetLocalized(x => x.ReturnRequestReasons, orderItem.Order.CustomerLanguageId, true, false); string returnRequestActions = _orderSettings.GetLocalized(x => x.ReturnRequestActions, orderItem.Order.CustomerLanguageId, true, false); foreach (var rrr in returnRequestReasons.SplitSafe(",")) { model.AvailableReasonForReturn.Add(new SelectListItem() { Text = rrr, Value = rrr, Selected = (rrr == returnRequest.ReasonForReturn) }); } foreach (var rra in returnRequestActions.SplitSafe(",")) { model.AvailableRequestedAction.Add(new SelectListItem() { Text = rra, Value = rra, Selected = (rra == returnRequest.RequestedAction) }); } var urlHelper = new UrlHelper(Request.RequestContext); model.AutoUpdateOrderItem.Id = returnRequest.Id; model.AutoUpdateOrderItem.Caption = _localizationService.GetResource("Admin.ReturnRequests.Accept.Caption"); model.AutoUpdateOrderItem.PostUrl = urlHelper.Action("Accept", "ReturnRequest"); model.AutoUpdateOrderItem.ShowUpdateTotals = (orderItem.Order.OrderStatusId <= (int)OrderStatus.Pending); model.AutoUpdateOrderItem.ShowUpdateRewardPoints = (orderItem.Order.OrderStatusId > (int)OrderStatus.Pending && orderItem.Order.RewardPointsWereAdded); model.AutoUpdateOrderItem.UpdateTotals = model.AutoUpdateOrderItem.ShowUpdateTotals; model.AutoUpdateOrderItem.UpdateRewardPoints = orderItem.Order.RewardPointsWereAdded; model.ReturnRequestInfo = TempData[AutoUpdateOrderItemContext.InfoKey] as string; return true; }
public ActionResult List(GridCommand command, ReturnRequestListModel model) { if (!_permissionService.Authorize(StandardPermissionProvider.ManageReturnRequests)) return AccessDeniedView(); var data = new List<ReturnRequestModel>(); var returnRequests = _orderService.SearchReturnRequests(model.SearchStoreId, 0, 0, model.SearchReturnRequestStatus, command.Page - 1, command.PageSize, model.SearchId ?? 0); foreach (var rr in returnRequests) { var m = new ReturnRequestModel(); if (PrepareReturnRequestModel(m, rr, false)) data.Add(m); } var gridModel = new GridModel<ReturnRequestModel> { Data = data, Total = returnRequests.TotalCount, }; return new JsonResult { Data = gridModel }; }