From 54b1ff727071602f21ec1ba01c86543e39facd83 Mon Sep 17 00:00:00 2001 From: AndreiMaz Date: Fri, 4 Aug 2017 14:36:54 +0300 Subject: [PATCH] #2476 Discounts weren't displayed for recurring orders --- .../Orders/OrderProcessingService.cs | 28 +++++++++++++++++-- .../Extensions/ServiceCollectionExtensions.cs | 1 - 2 files changed, 26 insertions(+), 3 deletions(-) diff --git a/src/Libraries/Nop.Services/Orders/OrderProcessingService.cs b/src/Libraries/Nop.Services/Orders/OrderProcessingService.cs index c76fe514986..1e08747edfe 100644 --- a/src/Libraries/Nop.Services/Orders/OrderProcessingService.cs +++ b/src/Libraries/Nop.Services/Orders/OrderProcessingService.cs @@ -573,6 +573,8 @@ protected virtual PlaceOrderContainter PrepareRecurringOrderDetails(ProcessPayme //sub total details.OrderSubTotalInclTax = details.InitialOrder.OrderSubtotalInclTax; details.OrderSubTotalExclTax = details.InitialOrder.OrderSubtotalExclTax; + details.OrderSubTotalDiscountExclTax = details.InitialOrder.OrderSubTotalDiscountExclTax; + details.OrderSubTotalDiscountInclTax = details.InitialOrder.OrderSubTotalDiscountInclTax; //shipping info if (details.InitialOrder.ShippingStatus != ShippingStatus.ShippingNotRequired) @@ -612,6 +614,14 @@ protected virtual PlaceOrderContainter PrepareRecurringOrderDetails(ProcessPayme //VAT number details.VatNumber = details.InitialOrder.VatNumber; + //discount history (the same) + foreach (var duh in details.InitialOrder.DiscountUsageHistory) + { + var d = _discountService.GetDiscountById(duh.DiscountId); + if (d != null) + details.AppliedDiscounts.Add(d.MapDiscount()); + } + //order total details.OrderDiscountAmount = details.InitialOrder.OrderDiscount; details.OrderTotal = details.InitialOrder.OrderTotal; @@ -1215,8 +1225,7 @@ public virtual PlaceOrderResult PlaceOrder(ProcessPaymentRequest processPaymentR var details = PreparePlaceOrderDetails(processPaymentRequest); #region Payment workflow - - + //process payment ProcessPaymentResult processPaymentResult = null; //skip payment workflow if order total equals zero @@ -1817,6 +1826,21 @@ public virtual IEnumerable ProcessNextRecurringPayment(RecurringPayment string.Format(_localizationService.GetResource("Admin.StockQuantityHistory.Messages.PlaceOrder"), order.Id)); } + //discount usage history + foreach (var discount in details.AppliedDiscounts) + { + var d = _discountService.GetDiscountById(discount.Id); + if (d != null) + { + _discountService.InsertDiscountUsageHistory(new DiscountUsageHistory + { + Discount = d, + Order = order, + CreatedOnUtc = DateTime.UtcNow + }); + } + } + //notifications SendNotificationsAndSaveNotes(order); diff --git a/src/Presentation/Nop.Web.Framework/Infrastructure/Extensions/ServiceCollectionExtensions.cs b/src/Presentation/Nop.Web.Framework/Infrastructure/Extensions/ServiceCollectionExtensions.cs index e1e15abd39d..55cbd939c39 100644 --- a/src/Presentation/Nop.Web.Framework/Infrastructure/Extensions/ServiceCollectionExtensions.cs +++ b/src/Presentation/Nop.Web.Framework/Infrastructure/Extensions/ServiceCollectionExtensions.cs @@ -8,7 +8,6 @@ using Nop.Core.Configuration; using Nop.Core.Data; using Nop.Core.Infrastructure; -using Nop.Data; using Nop.Services.Authentication; using Nop.Services.Logging; using Nop.Services.Tasks;