From 00997bfbffbf6e140b9dc178cab91697a27164d9 Mon Sep 17 00:00:00 2001 From: rahul shukla Date: Wed, 23 Dec 2020 15:40:27 +0530 Subject: [PATCH 1/2] #3638 fixed --- .../Webkul/CartRule/src/Helpers/CartRule.php | 26 +++++++------------ 1 file changed, 10 insertions(+), 16 deletions(-) diff --git a/packages/Webkul/CartRule/src/Helpers/CartRule.php b/packages/Webkul/CartRule/src/Helpers/CartRule.php index 36efaf362..55bd17559 100644 --- a/packages/Webkul/CartRule/src/Helpers/CartRule.php +++ b/packages/Webkul/CartRule/src/Helpers/CartRule.php @@ -275,25 +275,19 @@ class CartRule break; case 'cart_fixed': - // if ($this->itemTotals[$rule->id]['total_items'] <= 1) { - // $discountAmount = core()->convertPrice($rule->discount_amount); + if ($this->itemTotals[$rule->id]['total_items'] <= 1) { + $discountAmount = core()->convertPrice($rule->discount_amount); - // $baseDiscountAmount = min($item->base_price * $quantity, $rule->discount_amount); - // } else { - // $discountRate = $item->base_price * $quantity / $this->itemTotals[$rule->id]['base_total_price']; + $baseDiscountAmount = min($item->base_price * $quantity, $rule->discount_amount); + } else { + $discountRate = $item->base_price * $quantity / $this->itemTotals[$rule->id]['base_total_price']; - // $maxDiscount = $rule->discount_amount * $discountRate; + $maxDiscount = $rule->discount_amount * $discountRate; - // $discountAmount = core()->convertPrice($maxDiscount); + $discountAmount = core()->convertPrice($maxDiscount); - // $baseDiscountAmount = min($item->base_price * $quantity, $maxDiscount); - // } - - $discountAmount = core()->convertPrice($rule->discount_amount); - - $baseDiscountAmount = min($item->base_price * $quantity, $rule->discount_amount); - - $discountAmount = min($item->price * $quantity, $discountAmount); + $baseDiscountAmount = min($item->base_price * $quantity, $maxDiscount); + } break; @@ -537,7 +531,7 @@ class CartRule } $coupons = $this->cartRuleCouponRepository->where(['code' => $cart->coupon_code])->get(); - + foreach ($coupons as $coupon) { if (in_array($coupon->cart_rule_id, explode(',', $cart->applied_cart_rule_ids))) { return true; From 22ba6c95342aef909941243d1fff9a5785349dc3 Mon Sep 17 00:00:00 2001 From: rahul shukla Date: Wed, 23 Dec 2020 18:21:31 +0530 Subject: [PATCH 2/2] Issue #4392 --- packages/Webkul/CartRule/src/Helpers/CartRule.php | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/Webkul/CartRule/src/Helpers/CartRule.php b/packages/Webkul/CartRule/src/Helpers/CartRule.php index 55bd17559..27b4fc2c7 100644 --- a/packages/Webkul/CartRule/src/Helpers/CartRule.php +++ b/packages/Webkul/CartRule/src/Helpers/CartRule.php @@ -179,7 +179,7 @@ class CartRule /** @var \Webkul\CartRule\Models\CartRule $rule */ // Laravel relation is used instead of repository for performance // reasons (cart_rule_coupon-relation is pre-loaded by self::getCartRuleQuery()) - $coupon = $rule->cart_rule_coupon->where('code', $cart->coupon_code)->first(); + $coupon = $rule->cart_rule_coupon()->where('code', $cart->coupon_code)->first(); if ($coupon && $coupon->code === $cart->coupon_code) { if ($coupon->usage_limit && $coupon->times_used >= $coupon->usage_limit) {