From 1b06082e2e6adbb5f6e3f7bfbeaff183d6b9014d Mon Sep 17 00:00:00 2001 From: jitendra Date: Thu, 11 Oct 2018 11:42:39 +0530 Subject: [PATCH] Tax calculation --- packages/Webkul/Checkout/src/Cart.php | 18 ++++++++++++++++++ .../2018_09_05_150444_create_cart_table.php | 4 ++-- ...18_09_05_150915_create_cart_items_table.php | 7 +------ .../Webkul/Checkout/src/Models/CartItem.php | 11 ++--------- 4 files changed, 23 insertions(+), 17 deletions(-) diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index a02ba8875..6f289d865 100644 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -639,6 +639,8 @@ class Cart { } } + $this->calulateTax(); + return true; } @@ -698,6 +700,8 @@ class Cart { if(!$cart = $this->getCart()) return false; + $this->calulateItemsTax(); + $cart->grand_total = 0; $cart->base_grand_total = 0; @@ -735,6 +739,20 @@ class Cart { $cart->save(); } + /** + * Calculates cart items tax + * + * @return void + */ + public function calulateItemsTax() + { + $cart = $this->getCart(); + + foreach ($cart->items()->get() as $item) { + $product = $item->product; + } + } + /** * Checks if cart has any error * diff --git a/packages/Webkul/Checkout/src/Database/Migrations/2018_09_05_150444_create_cart_table.php b/packages/Webkul/Checkout/src/Database/Migrations/2018_09_05_150444_create_cart_table.php index dfe93a40a..ce5a38381 100644 --- a/packages/Webkul/Checkout/src/Database/Migrations/2018_09_05_150444_create_cart_table.php +++ b/packages/Webkul/Checkout/src/Database/Migrations/2018_09_05_150444_create_cart_table.php @@ -41,8 +41,8 @@ class CreateCartTable extends Migration $table->decimal('tax_total', 12, 4)->default(0)->nullable(); $table->decimal('base_tax_total', 12, 4)->default(0)->nullable(); - $table->decimal('sub_total_with_discount', 12, 4)->default(0)->nullable(); - $table->decimal('base_sub_total_with_discount', 12, 4)->default(0)->nullable(); + $table->decimal('discount', 12, 4)->default(0)->nullable(); + $table->decimal('base_discount', 12, 4)->default(0)->nullable(); $table->string('checkout_method')->nullable(); $table->boolean('is_guest')->nullable(); diff --git a/packages/Webkul/Checkout/src/Database/Migrations/2018_09_05_150915_create_cart_items_table.php b/packages/Webkul/Checkout/src/Database/Migrations/2018_09_05_150915_create_cart_items_table.php index 6168624af..5d6a90cae 100644 --- a/packages/Webkul/Checkout/src/Database/Migrations/2018_09_05_150915_create_cart_items_table.php +++ b/packages/Webkul/Checkout/src/Database/Migrations/2018_09_05_150915_create_cart_items_table.php @@ -19,7 +19,6 @@ class CreateCartItemsTable extends Migration $table->string('sku')->nullable(); $table->string('type')->nullable(); $table->string('name')->nullable(); - $table->integer('parent_id')->unsigned()->nullable(); $table->string('coupon_code')->nullable(); $table->decimal('weight', 12,4)->default(1); $table->decimal('total_weight', 12,4)->default(0); @@ -35,18 +34,14 @@ class CreateCartItemsTable extends Migration $table->decimal('tax_percent', 12, 4)->default(0)->nullable(); $table->decimal('tax_amount', 12, 4)->default(0)->nullable(); $table->decimal('base_tax_amount', 12, 4)->default(0)->nullable(); - - $table->decimal('total_with_discount', 12,4)->default(0); - $table->decimal('base_total_with_discount', 12,4)->default(0); $table->decimal('discount_percent', 12,4)->default(0); $table->decimal('discount_amount', 12,4)->default(0); $table->decimal('base_discount_amount', 12,4)->default(0); - $table->boolean('no_discount')->nullable()->default(0); - $table->boolean('free_shipping')->nullable()->default(0); $table->json('additional')->nullable(); + $table->integer('parent_id')->unsigned()->nullable(); $table->integer('product_id')->unsigned(); $table->foreign('product_id')->references('id')->on('products')->onDelete('cascade'); $table->integer('cart_id')->unsigned(); diff --git a/packages/Webkul/Checkout/src/Models/CartItem.php b/packages/Webkul/Checkout/src/Models/CartItem.php index f6d284d95..e047811ff 100644 --- a/packages/Webkul/Checkout/src/Models/CartItem.php +++ b/packages/Webkul/Checkout/src/Models/CartItem.php @@ -3,6 +3,7 @@ namespace Webkul\Checkout\Models; use Illuminate\Database\Eloquent\Model; +use Webkul\Product\Models\Product; class CartItem extends Model @@ -16,17 +17,9 @@ class CartItem extends Model protected $fillable = ['product_id', 'quantity', 'cart_id', 'sku', 'type', 'name', 'parent_id','tax_category_id', 'coupon_code', 'weight', 'total_weight', 'base_total_weight', 'price', 'total', 'base_total', 'total_with_discount', 'base_total_with_discount', 'base_price', 'custom_price', 'discount_percent', 'discount_amount', 'base_discount_amount', 'no_discount', 'free_shipping', 'additional']; public function product() { - return $this->hasOne('Webkul\Product\Models\Product', 'id', 'product_id'); + return $this->hasOne(Product::class, 'id', 'product_id'); } - // /** - // * Get the parent item - // */ - // public function parent() - // { - // return $this->hasOne(self::class, 'parent_id', 'id'); - // } - /** * Get the child item. */