Skip to content

Commit 684f36a

Browse files
committed
Reverted store depending configuration of payment plugins and fixed bugs
1 parent 896f54e commit 684f36a

20 files changed

Lines changed: 229 additions & 431 deletions

File tree

migrations/1.0.1-next/migrate-multistore.sql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -596,11 +596,11 @@ set @resources='
596596
<T>Zusätzliche prozentuale Gebühr zum Gesamtbetrag. Es wird ein fester Wert verwendet, falls diese Option nicht aktiviert ist.</T>
597597
</LocaleResource>
598598
599-
<LocaleResource Name="Plugins.Payment.CashOnDelivery.CheckMoneyOrder">
599+
<LocaleResource Name="Plugins.Payment.CheckMoneyOrder.AdditionalFeePercentage">
600600
<Value>Additional fee. Use percentage</Value>
601601
<T>Zusätzliche Gebühren (prozentual)</T>
602602
</LocaleResource>
603-
<LocaleResource Name="Plugins.Payment.CashOnDelivery.CheckMoneyOrder.Hint">
603+
<LocaleResource Name="Plugins.Payment.CheckMoneyOrder.AdditionalFeePercentage.Hint">
604604
<Value>Determines whether to apply a percentage additional fee to the order total. If not enabled, a fixed value is used.</Value>
605605
<T>Zusätzliche prozentuale Gebühr zum Gesamtbetrag. Es wird ein fester Wert verwendet, falls diese Option nicht aktiviert ist.</T>
606606
</LocaleResource>

src/Plugins/Payments.CashOnDelivery/Controllers/PaymentCashOnDeliveryController.cs

Lines changed: 25 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,98 +1,72 @@
1-
using System;
2-
using System.Collections.Generic;
1+
using System.Collections.Generic;
32
using System.Web.Mvc;
4-
using SmartStore.Core;
53
using SmartStore.Plugin.Payments.CashOnDelivery.Models;
64
using SmartStore.Services.Configuration;
75
using SmartStore.Services.Localization;
86
using SmartStore.Services.Payments;
9-
using SmartStore.Services.Stores;
107
using SmartStore.Web.Framework.Controllers;
11-
using SmartStore.Web.Framework.Settings;
128

139
namespace SmartStore.Plugin.Payments.CashOnDelivery.Controllers
1410
{
1511
public class PaymentCashOnDeliveryController : PaymentControllerBase
1612
{
17-
private readonly IWorkContext _workContext;
18-
private readonly IStoreService _storeService;
19-
private readonly ISettingService _settingService;
20-
private readonly IStoreContext _storeContext;
21-
private readonly ILocalizationService _localizationService;
13+
private readonly ISettingService _settingService;
14+
private readonly CashOnDeliveryPaymentSettings _cashOnDeliveryPaymentSettings;
15+
private readonly ILocalizationService _localizationService;
16+
17+
public PaymentCashOnDeliveryController(ISettingService settingService,
18+
CashOnDeliveryPaymentSettings cashOnDeliveryPaymentSettings,
19+
ILocalizationService localizationService)
20+
{
21+
this._settingService = settingService;
22+
this._cashOnDeliveryPaymentSettings = cashOnDeliveryPaymentSettings;
23+
_localizationService = localizationService;
24+
}
2225

23-
public PaymentCashOnDeliveryController(IWorkContext workContext,
24-
IStoreService storeService,
25-
ISettingService settingService,
26-
IStoreContext storeContext,
27-
ILocalizationService localizationService)
28-
{
29-
this._workContext = workContext;
30-
this._storeService = storeService;
31-
this._settingService = settingService;
32-
this._storeContext = storeContext;
33-
this._localizationService = localizationService;
34-
}
3526

3627
[AdminAuthorize]
3728
[ChildActionOnly]
3829
public ActionResult Configure()
3930
{
40-
//load settings for a chosen store scope
41-
var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext);
42-
var cashOnDeliveryPaymentSettings = _settingService.LoadSetting<CashOnDeliveryPaymentSettings>(storeScope);
43-
44-
var model = new ConfigurationModel();
45-
model.DescriptionText = cashOnDeliveryPaymentSettings.DescriptionText;
46-
model.AdditionalFee = cashOnDeliveryPaymentSettings.AdditionalFee;
47-
model.AdditionalFeePercentage = cashOnDeliveryPaymentSettings.AdditionalFeePercentage;
48-
49-
var storeDependingSettings = new StoreDependingSettingHelper(ViewData);
50-
storeDependingSettings.GetOverrideKeys(cashOnDeliveryPaymentSettings, model, storeScope, _settingService);
31+
var model = new ConfigurationModel();
32+
model.DescriptionText = _cashOnDeliveryPaymentSettings.DescriptionText;
33+
model.AdditionalFee = _cashOnDeliveryPaymentSettings.AdditionalFee;
34+
model.AdditionalFeePercentage = _cashOnDeliveryPaymentSettings.AdditionalFeePercentage;
5135

5236
return View("SmartStore.Plugin.Payments.CashOnDelivery.Views.PaymentCashOnDelivery.Configure", model);
5337
}
5438

5539
[HttpPost]
5640
[AdminAuthorize]
5741
[ChildActionOnly]
42+
[ValidateInput(false)]
5843
public ActionResult Configure(ConfigurationModel model, FormCollection form)
5944
{
6045
if (!ModelState.IsValid)
6146
return Configure();
6247

63-
//load settings for a chosen store scope
64-
var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext);
65-
var cashOnDeliveryPaymentSettings = _settingService.LoadSetting<CashOnDeliveryPaymentSettings>(storeScope);
66-
67-
//save settings
68-
cashOnDeliveryPaymentSettings.DescriptionText = model.DescriptionText;
69-
cashOnDeliveryPaymentSettings.AdditionalFee = model.AdditionalFee;
70-
cashOnDeliveryPaymentSettings.AdditionalFeePercentage = model.AdditionalFeePercentage;
71-
72-
var storeDependingSettings = new StoreDependingSettingHelper(ViewData);
73-
storeDependingSettings.UpdateSettings(cashOnDeliveryPaymentSettings, form, storeScope, _settingService);
74-
75-
//now clear settings cache
76-
_settingService.ClearCache();
48+
//save settings
49+
_cashOnDeliveryPaymentSettings.DescriptionText = model.DescriptionText;
50+
_cashOnDeliveryPaymentSettings.AdditionalFee = model.AdditionalFee;
51+
_cashOnDeliveryPaymentSettings.AdditionalFeePercentage = model.AdditionalFeePercentage;
52+
_settingService.SaveSetting(_cashOnDeliveryPaymentSettings);
7753

7854
return View("SmartStore.Plugin.Payments.CashOnDelivery.Views.PaymentCashOnDelivery.Configure", model);
7955
}
8056

8157
[ChildActionOnly]
8258
public ActionResult PaymentInfo()
8359
{
84-
var cashOnDeliveryPaymentSettings = _settingService.LoadSetting<CashOnDeliveryPaymentSettings>(_storeContext.CurrentStore.Id);
85-
8660
var model = new PaymentInfoModel();
87-
string desc = cashOnDeliveryPaymentSettings.DescriptionText;
61+
string desc = _cashOnDeliveryPaymentSettings.DescriptionText;
8862

8963
if (desc.StartsWith("@"))
9064
{
9165
model.DescriptionText = _localizationService.GetResource(desc.Substring(1));
9266
}
9367
else
9468
{
95-
model.DescriptionText = cashOnDeliveryPaymentSettings.DescriptionText;
69+
model.DescriptionText = _cashOnDeliveryPaymentSettings.DescriptionText;
9670
}
9771

9872
return View("SmartStore.Plugin.Payments.CashOnDelivery.Views.PaymentCashOnDelivery.PaymentInfo", model);

src/Plugins/Payments.CashOnDelivery/Views/PaymentCashOnDelivery/Configure.cshtml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
}
44
@model SmartStore.Plugin.Payments.CashOnDelivery.Models.ConfigurationModel
55
@using SmartStore.Web.Framework;
6-
@Html.Action("StoreScopeConfiguration", "Setting", new { area = "Admin" })
76
@using (Html.BeginForm())
87
{
98
<table class="adminContent">
@@ -12,7 +11,6 @@
1211
@Html.SmartLabelFor(model => model.DescriptionText)
1312
</td>
1413
<td class="adminData">
15-
@Html.SettingOverrideCheckbox(model => model.DescriptionText)
1614
@Html.TextAreaFor(model => model.DescriptionText, new { style = "Width: 550px; Height: 350px;" })
1715
@Html.ValidationMessageFor(model => model.DescriptionText)
1816
</td>
@@ -22,7 +20,7 @@
2220
@Html.SmartLabelFor(model => model.AdditionalFee)
2321
</td>
2422
<td class="adminData">
25-
@Html.SettingEditorFor(model => model.AdditionalFee)
23+
@Html.EditorFor(model => model.AdditionalFee)
2624
@Html.ValidationMessageFor(model => model.AdditionalFee)
2725
</td>
2826
</tr>
@@ -31,7 +29,7 @@
3129
@Html.SmartLabelFor(model => model.AdditionalFeePercentage)
3230
</td>
3331
<td class="adminData">
34-
@Html.SettingEditorFor(model => model.AdditionalFeePercentage)
32+
@Html.EditorFor(model => model.AdditionalFeePercentage)
3533
@Html.ValidationMessageFor(model => model.AdditionalFeePercentage)
3634
</td>
3735
</tr>

src/Plugins/Payments.DirectDebit/Controllers/PaymentDirectDebitController.cs

Lines changed: 26 additions & 52 deletions
Original file line numberDiff line numberDiff line change
@@ -1,97 +1,71 @@
1-
using System;
2-
using System.Collections.Generic;
1+
using System.Collections.Generic;
32
using System.Web.Mvc;
4-
using SmartStore.Core;
53
using SmartStore.Plugin.Payments.DirectDebit.Models;
64
using SmartStore.Services.Configuration;
75
using SmartStore.Services.Localization;
86
using SmartStore.Services.Payments;
9-
using SmartStore.Services.Stores;
107
using SmartStore.Web.Framework.Controllers;
11-
using SmartStore.Web.Framework.Settings;
128

139
namespace SmartStore.Plugin.Payments.DirectDebit.Controllers
1410
{
1511
public class PaymentDirectDebitController : PaymentControllerBase
1612
{
17-
private readonly IWorkContext _workContext;
18-
private readonly IStoreService _storeService;
19-
private readonly IStoreContext _storeContext;
20-
private readonly ISettingService _settingService;
21-
private readonly ILocalizationService _localizationService;
13+
private readonly ISettingService _settingService;
14+
private readonly DirectDebitPaymentSettings _directDebitPaymentSettings;
15+
private readonly ILocalizationService _localizationService;
16+
17+
public PaymentDirectDebitController(ISettingService settingService,
18+
DirectDebitPaymentSettings directDebitPaymentSettings,
19+
ILocalizationService localizationService)
20+
{
21+
this._settingService = settingService;
22+
this._directDebitPaymentSettings = directDebitPaymentSettings;
23+
this._localizationService = localizationService;
24+
}
2225

23-
public PaymentDirectDebitController(IWorkContext workContext,
24-
IStoreService storeService,
25-
IStoreContext storeContext,
26-
ISettingService settingService,
27-
ILocalizationService localizationService)
28-
{
29-
this._workContext = workContext;
30-
this._storeService = storeService;
31-
this._storeContext = storeContext;
32-
this._settingService = settingService;
33-
this._localizationService = localizationService;
34-
}
3526

3627
[AdminAuthorize]
3728
[ChildActionOnly]
3829
public ActionResult Configure()
3930
{
40-
//load settings for a chosen store scope
41-
var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext);
42-
var directDebitPaymentSettings = _settingService.LoadSetting<DirectDebitPaymentSettings>(storeScope);
43-
44-
var model = new ConfigurationModel();
45-
model.DescriptionText = directDebitPaymentSettings.DescriptionText;
46-
model.AdditionalFee = directDebitPaymentSettings.AdditionalFee;
47-
model.AdditionalFeePercentage = directDebitPaymentSettings.AdditionalFeePercentage;
48-
49-
var storeDependingSettings = new StoreDependingSettingHelper(ViewData);
50-
storeDependingSettings.GetOverrideKeys(directDebitPaymentSettings, model, storeScope, _settingService);
31+
var model = new ConfigurationModel();
32+
model.DescriptionText = _directDebitPaymentSettings.DescriptionText;
33+
model.AdditionalFee = _directDebitPaymentSettings.AdditionalFee;
34+
model.AdditionalFeePercentage = _directDebitPaymentSettings.AdditionalFeePercentage;
5135

5236
return View("SmartStore.Plugin.Payments.DirectDebit.Views.PaymentDirectDebit.Configure", model);
5337
}
5438

5539
[HttpPost]
5640
[AdminAuthorize]
5741
[ChildActionOnly]
42+
[ValidateInput(false)]
5843
public ActionResult Configure(ConfigurationModel model, FormCollection form)
5944
{
6045
if (!ModelState.IsValid)
6146
return Configure();
6247

63-
//load settings for a chosen store scope
64-
var storeScope = this.GetActiveStoreScopeConfiguration(_storeService, _workContext);
65-
var directDebitPaymentSettings = _settingService.LoadSetting<DirectDebitPaymentSettings>(storeScope);
66-
67-
//save settings
68-
directDebitPaymentSettings.DescriptionText = model.DescriptionText;
69-
directDebitPaymentSettings.AdditionalFee = model.AdditionalFee;
70-
directDebitPaymentSettings.AdditionalFeePercentage = model.AdditionalFeePercentage;
71-
72-
var storeDependingSettings = new StoreDependingSettingHelper(ViewData);
73-
storeDependingSettings.UpdateSettings(directDebitPaymentSettings, form, storeScope, _settingService);
74-
75-
//now clear settings cache
76-
_settingService.ClearCache();
48+
//save settings
49+
_directDebitPaymentSettings.DescriptionText = model.DescriptionText;
50+
_directDebitPaymentSettings.AdditionalFee = model.AdditionalFee;
51+
_directDebitPaymentSettings.AdditionalFeePercentage = model.AdditionalFeePercentage;
52+
_settingService.SaveSetting(_directDebitPaymentSettings);
7753

7854
return View("SmartStore.Plugin.Payments.DirectDebit.Views.PaymentDirectDebit.Configure", model);
7955
}
8056

8157
[ChildActionOnly]
8258
public ActionResult PaymentInfo()
8359
{
84-
var directDebitPaymentSettings = _settingService.LoadSetting<DirectDebitPaymentSettings>(_storeContext.CurrentStore.Id);
85-
86-
var model = new PaymentInfoModel();
87-
string desc = directDebitPaymentSettings.DescriptionText;
60+
var model = new PaymentInfoModel();
61+
string desc = _directDebitPaymentSettings.DescriptionText;
8862

8963
if( desc.StartsWith("@") )
9064
{
9165
model.DescriptionText = _localizationService.GetResource(desc.Substring(1));
9266
}
9367
else {
94-
model.DescriptionText = directDebitPaymentSettings.DescriptionText;
68+
model.DescriptionText = _directDebitPaymentSettings.DescriptionText;
9569
}
9670

9771
return View("SmartStore.Plugin.Payments.DirectDebit.Views.PaymentDirectDebit.PaymentInfo", model);

src/Plugins/Payments.DirectDebit/Views/PaymentDirectDebit/Configure.cshtml

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
}
44
@model SmartStore.Plugin.Payments.DirectDebit.Models.ConfigurationModel
55
@using SmartStore.Web.Framework;
6-
@Html.Action("StoreScopeConfiguration", "Setting", new { area = "Admin" })
76
@using (Html.BeginForm())
87
{
98
<table class="adminContent">
@@ -12,7 +11,6 @@
1211
@Html.SmartLabelFor(model => model.DescriptionText)
1312
</td>
1413
<td class="adminData">
15-
@Html.SettingOverrideCheckbox(model => model.DescriptionText)
1614
@Html.TextAreaFor(model => model.DescriptionText, new { style = "Width: 550px; Height: 350px;" })
1715
@Html.ValidationMessageFor(model => model.DescriptionText)
1816
</td>
@@ -22,7 +20,7 @@
2220
@Html.SmartLabelFor(model => model.AdditionalFee)
2321
</td>
2422
<td class="adminData">
25-
@Html.SettingEditorFor(model => model.AdditionalFee)
23+
@Html.EditorFor(model => model.AdditionalFee)
2624
@Html.ValidationMessageFor(model => model.AdditionalFee)
2725
</td>
2826
</tr>
@@ -31,7 +29,7 @@
3129
@Html.SmartLabelFor(model => model.AdditionalFeePercentage)
3230
</td>
3331
<td class="adminData">
34-
@Html.SettingEditorFor(model => model.AdditionalFeePercentage)
32+
@Html.EditorFor(model => model.AdditionalFeePercentage)
3533
@Html.ValidationMessageFor(model => model.AdditionalFeePercentage)
3634
</td>
3735
</tr>

0 commit comments

Comments
 (0)