Skip to content

Commit e1b33d4

Browse files
committed
magento#12817: Coupon code with canceled order.
1 parent 24cb1ac commit e1b33d4

File tree

5 files changed

+38
-14
lines changed

5 files changed

+38
-14
lines changed

app/code/Magento/SalesRule/Plugin/AbstractCouponUses.php renamed to app/code/Magento/SalesRule/Model/Coupon/QuantityManager.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
* See COPYING.txt for license details.
55
*/
66

7-
namespace Magento\SalesRule\Plugin;
7+
namespace Magento\SalesRule\Model\Coupon;
88

99
use Magento\Sales\Model\Order;
1010
use Magento\SalesRule\Model\Coupon;
@@ -13,9 +13,9 @@
1313
use Magento\SalesRule\Model\RuleFactory;
1414

1515
/**
16-
* Abstract class for plugins that are accounting the coupon uses.
16+
* Calculates the coupon usages.
1717
*/
18-
abstract class AbstractCouponUses
18+
class QuantityManager
1919
{
2020
/**
2121
* @var RuleFactory
@@ -56,13 +56,13 @@ public function __construct(
5656
}
5757

5858
/**
59-
* Updates coupon uses.
59+
* Updates coupon usages.
6060
*
6161
* @param Order $subject
6262
* @param bool $increment
6363
* @return Order
6464
*/
65-
protected function updateCouponUses(Order $subject, bool $increment)
65+
public function updateCouponUsages(Order $subject, bool $increment)
6666
{
6767
if (!$subject || !$subject->getAppliedRuleIds()) {
6868
return $subject;

app/code/Magento/SalesRule/Plugin/CouponUsesDecrement.php renamed to app/code/Magento/SalesRule/Plugin/CouponUsagesDecrement.php

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,23 @@
77
namespace Magento\SalesRule\Plugin;
88

99
use Magento\Sales\Model\Order;
10+
use Magento\SalesRule\Model\Coupon\QuantityManager;
1011

11-
class CouponUsesDecrement extends AbstractCouponUses
12+
class CouponUsagesDecrement
1213
{
1314
/**
14-
* Decrements number of coupon uses after cancelling order.
15+
* @var QuantityManager
16+
*/
17+
private $quantityManager;
18+
19+
public function __construct(
20+
QuantityManager $quantityManager
21+
) {
22+
$this->quantityManager = $quantityManager;
23+
}
24+
25+
/**
26+
* Decrements number of coupon usages after cancelling order.
1527
*
1628
* @param Order $subject
1729
* @param callable $proceed
@@ -22,7 +34,7 @@ public function aroundCancel(Order $subject, callable $proceed)
2234
$canCancel = $subject->canCancel();
2335
$returnValue = $proceed();
2436
if ($canCancel) {
25-
$returnValue = $this->updateCouponUses($returnValue, false);
37+
$returnValue = $this->quantityManager->updateCouponUsages($returnValue, false);
2638
}
2739

2840
return $returnValue;

app/code/Magento/SalesRule/Plugin/CouponUsesIncrement.php renamed to app/code/Magento/SalesRule/Plugin/CouponUsagesIncrement.php

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -7,11 +7,23 @@
77
namespace Magento\SalesRule\Plugin;
88

99
use Magento\Sales\Model\Order;
10+
use Magento\SalesRule\Model\Coupon\QuantityManager;
1011

11-
class CouponUsesIncrement extends AbstractCouponUses
12+
class CouponUsagesIncrement
1213
{
1314
/**
14-
* Increments number of coupon uses after placing order.
15+
* @var QuantityManager
16+
*/
17+
private $quantityManager;
18+
19+
public function __construct(
20+
QuantityManager $quantityManager
21+
) {
22+
$this->quantityManager = $quantityManager;
23+
}
24+
25+
/**
26+
* Increments number of coupon usages after placing order.
1527
*
1628
* @param Order $subject
1729
* @param Order $result
@@ -20,7 +32,7 @@ class CouponUsesIncrement extends AbstractCouponUses
2032
*/
2133
public function afterPlace(Order $subject, Order $result)
2234
{
23-
$this->updateCouponUses($subject, true);
35+
$this->quantityManager->updateCouponUsages($subject, true);
2436

2537
return $subject;
2638
}

app/code/Magento/SalesRule/etc/di.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -182,7 +182,7 @@
182182
<plugin name="coupon_label_plugin" type="Magento\SalesRule\Plugin\CartTotalRepository" />
183183
</type>
184184
<type name="\Magento\Sales\Model\Order">
185-
<plugin name="coupon_uses_increment_plugin" type="Magento\SalesRule\Plugin\CouponUsesIncrement" />
186-
<plugin name="coupon_uses_decrement_plugin" type="Magento\SalesRule\Plugin\CouponUsesDecrement" />
185+
<plugin name="coupon_uses_increment_plugin" type="Magento\SalesRule\Plugin\CouponUsagesIncrement" />
186+
<plugin name="coupon_uses_decrement_plugin" type="Magento\SalesRule\Plugin\CouponUsagesDecrement" />
187187
</type>
188188
</config>

dev/tests/integration/testsuite/Magento/SalesRule/Plugin/CouponUsesTest.php renamed to dev/tests/integration/testsuite/Magento/SalesRule/Plugin/CouponUsagesTest.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@
1919
* @magentoDbIsolation enabled
2020
* @magentoAppIsolation enabled
2121
*/
22-
class CouponUsesTest extends \PHPUnit\Framework\TestCase
22+
class CouponUsagesTest extends \PHPUnit\Framework\TestCase
2323
{
2424
/**
2525
* @var ObjectManagerInterface

0 commit comments

Comments
 (0)