protected virtual SubmitReturnRequestModel PrepareReturnRequestModel(SubmitReturnRequestModel model, Order order) { if (order == null) throw new ArgumentNullException("order"); if (model == null) throw new ArgumentNullException("model"); model.OrderId = order.ID; //return reasons if (_orderSettings.ReturnRequestReasons != null) foreach (var rrr in _orderSettings.ReturnRequestReasons) { model.AvailableReturnReasons.Add(new SelectListItem { Text = rrr, Value = rrr }); } //return actions if (_orderSettings.ReturnRequestActions != null) foreach (var rra in _orderSettings.ReturnRequestActions) { model.AvailableReturnActions.Add(new SelectListItem { Text = rra, Value = rra }); } //products var orderItems = _orderService.GetAllOrderItems(order.ID, null, null, null, null, null, null); foreach (var orderItem in orderItems) { var orderItemModel = new SubmitReturnRequestModel.OrderItemModel { Id = orderItem.ID, ProductId = orderItem.Product.ID, ProductName = orderItem.Product.GetLocalized(x => x.Name), ProductSeName = orderItem.Product.GetSeName(), AttributeInfo = orderItem.AttributeDescription, Quantity = orderItem.Quantity }; model.Items.Add(orderItemModel); //unit price if (order.CustomerTaxDisplayType == TaxDisplayType.IncludingTax) { //including tax var unitPriceInclTaxInCustomerCurrency = _currencyService.ConvertCurrency(orderItem.UnitPriceInclTax, order.CurrencyRate); orderItemModel.UnitPrice = _priceFormatter.FormatPrice(unitPriceInclTaxInCustomerCurrency, true, order.CustomerCurrencyCode, _workContext.WorkingLanguage, true); } else { //excluding tax var unitPriceExclTaxInCustomerCurrency = _currencyService.ConvertCurrency(orderItem.UnitPriceExclTax, order.CurrencyRate); orderItemModel.UnitPrice = _priceFormatter.FormatPrice(unitPriceExclTaxInCustomerCurrency, true, order.CustomerCurrencyCode, _workContext.WorkingLanguage, false); } } return model; }
protected virtual SubmitReturnRequestModel PrepareReturnRequestModel(SubmitReturnRequestModel model, Order order) { if (order == null) throw new ArgumentNullException("order"); if (model == null) throw new ArgumentNullException("model"); model.OrderId = order.Id; //return reasons model.AvailableReturnReasons = _cacheManager.Get(string.Format(ModelCacheEventConsumer.RETURNREQUESTREASONS_MODEL_KEY, _workContext.WorkingLanguage.Id), () => { var reasons = new List<SubmitReturnRequestModel.ReturnRequestReasonModel>(); foreach (var rrr in _returnRequestService.GetAllReturnRequestReasons()) reasons.Add(new SubmitReturnRequestModel.ReturnRequestReasonModel() { Id = rrr.Id, Name = rrr.GetLocalized(x => x.Name) }); return reasons; }); //return actions model.AvailableReturnActions = _cacheManager.Get(string.Format(ModelCacheEventConsumer.RETURNREQUESTACTIONS_MODEL_KEY, _workContext.WorkingLanguage.Id), () => { var actions = new List<SubmitReturnRequestModel.ReturnRequestActionModel>(); foreach (var rra in _returnRequestService.GetAllReturnRequestActions()) actions.Add(new SubmitReturnRequestModel.ReturnRequestActionModel() { Id = rra.Id, Name = rra.GetLocalized(x => x.Name) }); return actions; }); //returnable products var orderItems = order.OrderItems.Where(oi => !oi.Product.NotReturnable); foreach (var orderItem in orderItems) { var orderItemModel = new SubmitReturnRequestModel.OrderItemModel { Id = orderItem.Id, ProductId = orderItem.Product.Id, ProductName = orderItem.Product.GetLocalized(x => x.Name), ProductSeName = orderItem.Product.GetSeName(), AttributeInfo = orderItem.AttributeDescription, Quantity = orderItem.Quantity }; model.Items.Add(orderItemModel); //unit price if (order.CustomerTaxDisplayType == TaxDisplayType.IncludingTax) { //including tax var unitPriceInclTaxInCustomerCurrency = _currencyService.ConvertCurrency(orderItem.UnitPriceInclTax, order.CurrencyRate); orderItemModel.UnitPrice = _priceFormatter.FormatPrice(unitPriceInclTaxInCustomerCurrency, true, order.CustomerCurrencyCode, _workContext.WorkingLanguage, true); } else { //excluding tax var unitPriceExclTaxInCustomerCurrency = _currencyService.ConvertCurrency(orderItem.UnitPriceExclTax, order.CurrencyRate); orderItemModel.UnitPrice = _priceFormatter.FormatPrice(unitPriceExclTaxInCustomerCurrency, true, order.CustomerCurrencyCode, _workContext.WorkingLanguage, false); } } return model; }