diff --git a/composer.json b/composer.json index e4e0e4b2f..0e268403b 100755 --- a/composer.json +++ b/composer.json @@ -39,6 +39,7 @@ "laravel/dusk": "^4.0", "mockery/mockery": "^1.0", "nunomaduro/collision": "^2.0", + "phploc/phploc": "^5.0@dev", "phpunit/phpunit": "^7.0" }, "replace": { diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index cd2e92019..678684279 100755 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -1240,6 +1240,13 @@ class Cart { return $result; } + public function applyNonCoupon() + { + $result = $this->discount->applyNonCouponAble(); + + return $result; + } + public function leastWorthItem() { $cart = $this->getCart(); @@ -1247,8 +1254,8 @@ class Cart { $leastSubTotal = []; foreach ($cart->items as $item) { - if ($item->base_total < $leastValue) { - $leastValue = $item->total; + if ($item->price < $leastValue) { + $leastValue = $item->price; $leastSubTotal = [ 'id' => $item->id, 'base_total' => $leastValue diff --git a/packages/Webkul/Discount/src/Helpers/Discount.php b/packages/Webkul/Discount/src/Helpers/Discount.php index ecbf246da..4e228dccb 100644 --- a/packages/Webkul/Discount/src/Helpers/Discount.php +++ b/packages/Webkul/Discount/src/Helpers/Discount.php @@ -78,8 +78,9 @@ class Discount if ($channel->channel_id == $currentChannel->id) { if (auth()->guard('customer')->check()) { foreach ($rule->customer_groups as $customerGroup) { - if (auth()->guard('customer')->user()->customer_group_id == $customerGroup->customer_group_id) + if (auth()->guard('customer')->user()->customer_group_id == $customerGroup->customer_group_id) { array_push($suitableRules, $rule); + } } } } @@ -100,8 +101,9 @@ class Discount if ($channel->channel_id == $currentChannel->id) { if (auth()->guard('customer')->check()) { foreach ($rule->customer_groups as $customerGroup) { - if (auth()->guard('customer')->user()->customer_group_id == $customerGroup->customer_group_id) + if (auth()->guard('customer')->user()->customer_group_id == $customerGroup->customer_group_id) { array_push($suitableRules, $rule); + } } } } @@ -272,14 +274,6 @@ class Discount } } - // works automatically on the basis of no conditions - public function checkNonCouponConditions() - { - $rules = $this->applyNonCouponAble(); - - return $rules; - } - public function ruleCheck($code) { $rules = $this->applyCouponAble(); @@ -306,33 +300,14 @@ class Discount $cart = \Cart::getCart(); //all of conditions is/are true - $result = null; - if ($appliedRule->conditions) { + $result = 1; + if ($appliedRule->conditions && $appliedRule->conditions != "null") { $conditions = json_decode(json_decode($appliedRule->conditions)); - - $shipping_address = $cart->getShippingAddressAttribute(); - - $shipping_method = $cart->shipping_method; - $shipping_country = $shipping_address->country; - $shipping_state = $shipping_address->state; - $shipping_postcode = $shipping_address->postcode; - $shipping_city = $shipping_address->city; - - $payment_method = $cart->payment->method; - $sub_total = $cart->base_sub_total; - - $total_items = $cart->items_qty; - $total_weight = 0; - - foreach($cart->items as $item) { - $total_weight = $total_weight + $item->base_total_weight; - } - $test_mode = config('pricerules.test_mode.0'); - $test_conditions = config('pricerules.cart.conditions'); - + // dd($conditions); if ($test_mode == config('pricerules.test_mode.0')) { $result = $this->testAllConditionAreTrue($conditions, $cart); + // dd($result); } else if ($test_mode == config('pricerules.test_mode.1')) { $result = $this->testAllConditionAreFalse($conditions, $cart); } else if ($test_mode == config('pricerules.test_mode.2')) { @@ -358,7 +333,7 @@ class Discount $leastWorthItem = \Cart::leastWorthItem(); if ($action_type == config('pricerules.cart.validation.0')) { - $newBaseSubTotal = ($leastWorthItem['base_total'] * $disc_amount) / 100; + $newBaseSubTotal = $cart->grand_total - ($leastWorthItem['base_total'] * $disc_amount) / 100; } else if ($action_type == config('pricerules.cart.validation.1')) { $newBaseSubTotal = $leastWorthItem['base_total'] - $disc_amount; } else if ($action_type == config('pricerules.cart.validation.2')) { @@ -372,14 +347,16 @@ class Discount 'message' => trans('admin::app.promotion.status.coupon-applied'), 'action' => $action_type, 'amount_given' => false, - 'amount' => $newQuantity + 'amount_payable' => $newQuantity, + 'amount' => null ]); } else { return response()->json([ 'message' => trans('admin::app.promotion.status.coupon-applied'), 'action' => $action_type, 'amount_given' => true, - 'amount' => core()->currency($newBaseSubTotal) + 'amount_payable' => core()->currency($newBaseSubTotal), + 'amount' => core()->currency($cart->grand_total - $newBaseSubTotal) ]); } } else { @@ -489,11 +466,10 @@ class Discount // } // } } - return $result; } - protected function testAllConditionAreFalse($condition, $cart) { + protected function testAllConditionAreFalse($conditions, $cart) { $shipping_address = $cart->getShippingAddressAttribute(); $shipping_method = $cart->shipping_method; @@ -514,8 +490,8 @@ class Discount $test_mode = config('pricerules.test_mode.0'); $test_conditions = config('pricerules.cart.conditions'); - $result = 1; + $result = 1; foreach ($conditions as $condition) { $actual_value = ${$condition->attribute}; $test_value = $condition->value; @@ -584,7 +560,7 @@ class Discount return $result; } - protected function testAnyConditionIsTrue($condition, $cart) { + protected function testAnyConditionIsTrue($conditions, $cart) { $shipping_address = $cart->getShippingAddressAttribute(); $shipping_method = $cart->shipping_method; @@ -654,7 +630,7 @@ class Discount return $result; } - protected function testAnyConditionIsFalse($condition, $cart) { + protected function testAnyConditionIsFalse($conditions, $cart) { $shipping_address = $cart->getShippingAddressAttribute(); $shipping_method = $cart->shipping_method; diff --git a/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php b/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php index 5225e474a..de4c09dd7 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/OnepageController.php @@ -15,7 +15,7 @@ use Webkul\Sales\Repositories\OrderRepository; /** * Chekout controller for the customer and guest for placing order * - * @author Jitendra Singh + * @author Jitendra Singh * @copyright 2018 Webkul Software Pvt Ltd (http://www.webkul.com) */ class OnepageController extends Controller @@ -114,6 +114,10 @@ class OnepageController extends Controller $cart = Cart::getCart(); + $rules = Cart::applyNonCoupon($cart); + + dd($rules); + return response()->json([ 'jump_to_section' => 'review', 'html' => view('shop::checkout.onepage.review', compact('cart'))->render() diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/onepage.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/onepage.blade.php index fa7d76277..6fa0add81 100755 --- a/packages/Webkul/Shop/src/Resources/views/checkout/onepage.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/onepage.blade.php @@ -512,8 +512,8 @@ this_this.message = response.data.message; this_this.discounted = true; - this_this.discount.amount = response.data.amount; - this_this.discount.amount_given = response.data.amount_given; + this_this.discount.amount = response.data.amount_payable; + this_this.discount.amount_given = response.data.amount; }).catch(function(error) { this_this.discounted = false; }); diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/total/summary.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/total/summary.blade.php index 7d207fc86..e1e99bb5d 100755 --- a/packages/Webkul/Shop/src/Resources/views/checkout/total/summary.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/total/summary.blade.php @@ -47,17 +47,18 @@
-
+
Coupon used
- + - + - + + @@ -65,4 +66,4 @@ @endif
- + \ No newline at end of file diff --git a/packages/Webkul/Ui/src/Resources/assets/sass/app.scss b/packages/Webkul/Ui/src/Resources/assets/sass/app.scss index fb3e64d5d..8c83a391c 100755 --- a/packages/Webkul/Ui/src/Resources/assets/sass/app.scss +++ b/packages/Webkul/Ui/src/Resources/assets/sass/app.scss @@ -188,6 +188,13 @@ h5 { display: none !important; } +.row { + display: flex; + flex-direction: row; + justify-content: space-between; + align-items: center; +} + .btn { @include box-shadow( 0 1px 4px 0 rgba(0, 0, 0, 0.2),