public static string FormatReturnRequestNoteText(this ReturnRequestNote returnRequestNote)
        {
            if (returnRequestNote == null)
            {
                throw new ArgumentNullException("returnRequestNote");
            }

            return(FormatText.ConvertText(returnRequestNote.Note));
        }
Ejemplo n.º 2
0
        public LiquidReturnRequest(ReturnRequest returnRequest, Store store, Order order, ReturnRequestNote returnRequestNote = null)
        {
            _returnRequest     = returnRequest;
            _order             = order;
            _store             = store;
            _returnRequestNote = returnRequestNote;

            AdditionalTokens = new Dictionary <string, string>();
        }
Ejemplo n.º 3
0
        /// <summary>
        /// Inserts a return request note
        /// </summary>
        /// <param name="returnRequestNote">The return request note</param>
        public virtual async Task InsertReturnRequestNote(ReturnRequestNote returnRequestNote)
        {
            if (returnRequestNote == null)
            {
                throw new ArgumentNullException("returnRequestNote");
            }

            await _returnRequestNoteRepository.InsertAsync(returnRequestNote);

            //event notification
            await _mediator.EntityInserted(returnRequestNote);
        }
Ejemplo n.º 4
0
        public static string FormatReturnRequestNoteText(this ReturnRequestNote returnRequestNote)
        {
            if (returnRequestNote == null)
            {
                throw new ArgumentNullException("returnRequestNote");
            }

            string text = returnRequestNote.Note;

            if (String.IsNullOrEmpty(text))
            {
                return(string.Empty);
            }

            text = HtmlHelper.FormatText(text, false, true, false, false, false, false);

            return(text);
        }
Ejemplo n.º 5
0
        public virtual async Task InsertReturnRequestNote(ReturnRequest returnRequest, Order order, string downloadId, bool displayToCustomer, string message)
        {
            var returnRequestNote = new ReturnRequestNote {
                DisplayToCustomer = displayToCustomer,
                Note            = message,
                DownloadId      = downloadId,
                ReturnRequestId = returnRequest.Id,
                CreatedOnUtc    = DateTime.UtcNow,
            };
            await _returnRequestService.InsertReturnRequestNote(returnRequestNote);

            //new return request notification
            if (displayToCustomer)
            {
                //email
                await _workflowMessageService.SendNewReturnRequestNoteAddedCustomerNotification(returnRequest, returnRequestNote, order);
            }
        }
        public async Task AddReturnRequestTokens(LiquidObject liquidObject, ReturnRequest returnRequest, Store store, Order order, Language language, ReturnRequestNote returnRequestNote = null)
        {
            var liquidReturnRequest = await _mediator.Send(new GetReturnRequestTokensCommand()
            {
                Order = order, Language = language, ReturnRequest = returnRequest, ReturnRequestNote = returnRequestNote, Store = store
            });

            liquidObject.ReturnRequest = liquidReturnRequest;

            await _mediator.EntityTokensAdded(returnRequest, liquidReturnRequest, liquidObject);
        }
Ejemplo n.º 7
0
        public async Task AddReturnRequestTokens(LiquidObject liquidObject, ReturnRequest returnRequest, Store store, Order order, Language language, ReturnRequestNote returnRequestNote = null)
        {
            var liquidReturnRequest = new LiquidReturnRequest(returnRequest, store, order, returnRequestNote);

            liquidReturnRequest.Status   = returnRequest.ReturnRequestStatus.GetLocalizedEnum(_localizationService, language.Id);
            liquidReturnRequest.Products = await ProductListToHtmlTable();

            liquidReturnRequest.PickupAddressStateProvince =
                !string.IsNullOrEmpty(returnRequest.PickupAddress.StateProvinceId) ?
                (await _stateProvinceService.GetStateProvinceById(returnRequest.PickupAddress.StateProvinceId))?.GetLocalized(x => x.Name, language.Id) : "";

            liquidReturnRequest.PickupAddressCountry =
                !string.IsNullOrEmpty(returnRequest.PickupAddress.CountryId) ?
                (await _countryService.GetCountryById(returnRequest.PickupAddress.CountryId))?.GetLocalized(x => x.Name, language.Id) : "";

            async Task <string> ProductListToHtmlTable()
            {
                var sb = new StringBuilder();

                sb.AppendLine("<table border=\"0\" style=\"width:100%;\">");

                sb.AppendLine(string.Format("<tr style=\"text-align:center;\">"));
                sb.AppendLine(string.Format("<th>{0}</th>", _localizationService.GetResource("Messages.Order.Product(s).Name")));
                sb.AppendLine(string.Format("<th>{0}</th>", _localizationService.GetResource("Messages.Order.Product(s).Price")));
                sb.AppendLine(string.Format("<th>{0}</th>", _localizationService.GetResource("Messages.Order.Product(s).Quantity")));
                sb.AppendLine(string.Format("<th>{0}</th>", _localizationService.GetResource("Messages.Order.Product(s).ReturnReason")));
                sb.AppendLine(string.Format("<th>{0}</th>", _localizationService.GetResource("Messages.Order.Product(s).ReturnAction")));
                sb.AppendLine("</tr>");

                IProductService _productService = _serviceProvider.GetRequiredService <IProductService>();
                var             currency        = await _currencyService.GetCurrencyByCode(order.CustomerCurrencyCode);

                foreach (var rrItem in returnRequest.ReturnRequestItems)
                {
                    var orderItem = order.OrderItems.Where(x => x.Id == rrItem.OrderItemId).First();

                    sb.AppendLine(string.Format("<tr style=\"background-color: {0};text-align: center;\">", _templatesSettings.Color2));
                    string productName = (await _productService.GetProductById(orderItem.ProductId))?.GetLocalized(x => x.Name, order.CustomerLanguageId);

                    sb.AppendLine("<td style=\"padding: 0.6em 0.4em;text-align: left;\">" + WebUtility.HtmlEncode(productName));

                    sb.AppendLine("</td>");

                    string unitPriceStr;
                    if (order.CustomerTaxDisplayType == TaxDisplayType.IncludingTax)
                    {
                        //including tax
                        var unitPriceInclTaxInCustomerCurrency = _currencyService.ConvertCurrency(orderItem.UnitPriceInclTax, order.CurrencyRate);
                        unitPriceStr = _priceFormatter.FormatPrice(unitPriceInclTaxInCustomerCurrency, true, currency, language, true);
                    }
                    else
                    {
                        //excluding tax
                        var unitPriceExclTaxInCustomerCurrency = _currencyService.ConvertCurrency(orderItem.UnitPriceExclTax, order.CurrencyRate);
                        unitPriceStr = _priceFormatter.FormatPrice(unitPriceExclTaxInCustomerCurrency, true, currency, language, false);
                    }
                    sb.AppendLine(string.Format("<td style=\"padding: 0.6em 0.4em;text-align: right;\">{0}</td>", unitPriceStr));
                    sb.AppendLine(string.Format("<td style=\"padding: 0.6em 0.4em;text-align: center;\">{0}</td>", orderItem.Quantity));
                    sb.AppendLine(string.Format("<td style=\"padding: 0.6em 0.4em;text-align: center;\">{0}</td>", rrItem.ReasonForReturn));
                    sb.AppendLine(string.Format("<td style=\"padding: 0.6em 0.4em;text-align: center;\">{0}</td>", rrItem.RequestedAction));
                }

                sb.AppendLine("</table>");
                return(sb.ToString());
            }

            liquidObject.ReturnRequest = liquidReturnRequest;

            await _mediator.EntityTokensAdded(returnRequest, liquidReturnRequest, liquidObject);
        }