From 7a1b73f1c704adf104a5b407483962c428bcd0ad Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Wed, 21 Aug 2019 17:26:23 +0530 Subject: [PATCH] Cart rule action PercentOfProduct max discount quantity fixes --- .../src/Actions/Cart/PercentOfProduct.php | 32 +++++++++++++++++-- 1 file changed, 30 insertions(+), 2 deletions(-) diff --git a/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php b/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php index adeb2c379..93bd4d287 100644 --- a/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php +++ b/packages/Webkul/Discount/src/Actions/Cart/PercentOfProduct.php @@ -45,7 +45,21 @@ class PercentOfProduct extends Action $itemProductId = $item->product_id; } - $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); + $itemQuantity = $item->quantity; + + $discQuantity = $rule->disc_quantity; + + if ($discQuantity > 1) { + if ($itemQuantity >= $discQuantity) { + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; + } else if ($itemQuantity < $discQuantity) { + $discQuantity = $discQuantity - $itemQuantity; + + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; + } + } else { + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); + } if ($itemProductId == $productID) { $totalDiscount = $totalDiscount + $discount; @@ -73,7 +87,21 @@ class PercentOfProduct extends Action $itemProductId = $item->product_id; } - $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); + $itemQuantity = $item->quantity; + + $discQuantity = $rule->disc_quantity; + + if ($discQuantity > 1) { + if ($itemQuantity >= $discQuantity) { + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; + } else if ($itemQuantity < $discQuantity) { + $discQuantity = $discQuantity - $itemQuantity; + + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4) * $discQuantity; + } + } else { + $discount = round(($itemPrice * $rule->disc_amount) / 100, 4); + } $totalDiscount = $totalDiscount + $discount;