From dee974a33084ece3cb63997d2523732aea217a61 Mon Sep 17 00:00:00 2001 From: devansh bawari Date: Mon, 9 Aug 2021 17:22:00 +0530 Subject: [PATCH] Product Types Validations Updated --- .../Webkul/Product/src/Type/AbstractType.php | 32 ++++++++++--------- packages/Webkul/Product/src/Type/Bundle.php | 16 ++++++---- .../Webkul/Product/src/Type/Configurable.php | 10 +++--- .../Webkul/Product/src/Type/Downloadable.php | 12 ++++--- 4 files changed, 38 insertions(+), 32 deletions(-) diff --git a/packages/Webkul/Product/src/Type/AbstractType.php b/packages/Webkul/Product/src/Type/AbstractType.php index 4f7aa17a5..b0ea7f307 100644 --- a/packages/Webkul/Product/src/Type/AbstractType.php +++ b/packages/Webkul/Product/src/Type/AbstractType.php @@ -2,23 +2,23 @@ namespace Webkul\Product\Type; -use Webkul\Tax\Helpers\Tax; +use Illuminate\Support\Facades\Storage; +use Webkul\Attribute\Repositories\AttributeRepository; use Webkul\Checkout\Facades\Cart; use Webkul\Checkout\Models\CartItem; -use Illuminate\Support\Facades\Storage; +use Webkul\Customer\Repositories\CustomerGroupRepository; +use Webkul\Inventory\Repositories\InventorySourceRepository; +use Webkul\Product\Datatypes\CartItemValidationResult; use Webkul\Product\Facades\ProductImage; use Webkul\Product\Models\ProductAttributeValue; -use Webkul\Product\Repositories\ProductRepository; -use Webkul\Tax\Repositories\TaxCategoryRepository; -use Webkul\Attribute\Repositories\AttributeRepository; -use Webkul\Product\Datatypes\CartItemValidationResult; -use Webkul\Product\Repositories\ProductImageRepository; -use Webkul\Product\Repositories\ProductVideoRepository; -use Webkul\Customer\Repositories\CustomerGroupRepository; -use Webkul\Product\Repositories\ProductInventoryRepository; -use Webkul\Inventory\Repositories\InventorySourceRepository; use Webkul\Product\Repositories\ProductAttributeValueRepository; use Webkul\Product\Repositories\ProductCustomerGroupPriceRepository; +use Webkul\Product\Repositories\ProductImageRepository; +use Webkul\Product\Repositories\ProductInventoryRepository; +use Webkul\Product\Repositories\ProductRepository; +use Webkul\Product\Repositories\ProductVideoRepository; +use Webkul\Tax\Helpers\Tax; +use Webkul\Tax\Repositories\TaxCategoryRepository; abstract class AbstractType { @@ -801,9 +801,11 @@ abstract class AbstractType */ public function evaluatePrice($price) { + $roundedOffPrice = round($price, 2); + return Tax::isTaxInclusive() - ? $this->getTaxInclusiveRate($price) - : $price; + ? $this->getTaxInclusiveRate($roundedOffPrice) + : $roundedOffPrice; } /** @@ -823,7 +825,7 @@ abstract class AbstractType return trans('shop::app.checkout.cart.quantity.inventory_warning'); } - $price = $this->getFinalPrice(); + $price = round($this->getFinalPrice(), 2); $products = [ [ @@ -938,7 +940,7 @@ abstract class AbstractType return $result; } - $price = $item->product->getTypeInstance()->getFinalPrice($item->quantity); + $price = round($item->product->getTypeInstance()->getFinalPrice($item->quantity), 2); if ($price == $item->base_price) { return $result; diff --git a/packages/Webkul/Product/src/Type/Bundle.php b/packages/Webkul/Product/src/Type/Bundle.php index 5c4003fb9..55bc06cfb 100644 --- a/packages/Webkul/Product/src/Type/Bundle.php +++ b/packages/Webkul/Product/src/Type/Bundle.php @@ -2,17 +2,17 @@ namespace Webkul\Product\Type; -use Webkul\Checkout\Models\CartItem; -use Webkul\Product\Helpers\BundleOption; -use Webkul\Product\Repositories\ProductRepository; use Webkul\Attribute\Repositories\AttributeRepository; +use Webkul\Checkout\Models\CartItem; use Webkul\Product\Datatypes\CartItemValidationResult; -use Webkul\Product\Repositories\ProductImageRepository; -use Webkul\Product\Repositories\ProductVideoRepository; -use Webkul\Product\Repositories\ProductInventoryRepository; -use Webkul\Product\Repositories\ProductBundleOptionRepository; +use Webkul\Product\Helpers\BundleOption; use Webkul\Product\Repositories\ProductAttributeValueRepository; use Webkul\Product\Repositories\ProductBundleOptionProductRepository; +use Webkul\Product\Repositories\ProductBundleOptionRepository; +use Webkul\Product\Repositories\ProductImageRepository; +use Webkul\Product\Repositories\ProductInventoryRepository; +use Webkul\Product\Repositories\ProductRepository; +use Webkul\Product\Repositories\ProductVideoRepository; class Bundle extends AbstractType { @@ -712,6 +712,8 @@ class Bundle extends AbstractType $price += $childItem->base_price * $childItem->quantity; } + $price = round($price, 2); + if ($price == $item->base_price) { return $result; } diff --git a/packages/Webkul/Product/src/Type/Configurable.php b/packages/Webkul/Product/src/Type/Configurable.php index f2d3d1f8c..260eb4f78 100644 --- a/packages/Webkul/Product/src/Type/Configurable.php +++ b/packages/Webkul/Product/src/Type/Configurable.php @@ -2,13 +2,13 @@ namespace Webkul\Product\Type; -use Illuminate\Support\Str; use Illuminate\Support\Facades\DB; -use Webkul\Product\Models\ProductFlat; -use Webkul\Product\Facades\ProductImage; -use Webkul\Product\Models\ProductAttributeValue; +use Illuminate\Support\Str; use Webkul\Checkout\Models\CartItem as CartItemModel; use Webkul\Product\Datatypes\CartItemValidationResult; +use Webkul\Product\Facades\ProductImage; +use Webkul\Product\Models\ProductAttributeValue; +use Webkul\Product\Models\ProductFlat; class Configurable extends AbstractType { @@ -739,7 +739,7 @@ class Configurable extends AbstractType return $result; } - $price = $item->child->product->getTypeInstance()->getFinalPrice($item->quantity); + $price = round($item->child->product->getTypeInstance()->getFinalPrice($item->quantity), 2); if ($price == $item->base_price) { return $result; diff --git a/packages/Webkul/Product/src/Type/Downloadable.php b/packages/Webkul/Product/src/Type/Downloadable.php index 8a70e5b69..c6311ce80 100644 --- a/packages/Webkul/Product/src/Type/Downloadable.php +++ b/packages/Webkul/Product/src/Type/Downloadable.php @@ -2,16 +2,16 @@ namespace Webkul\Product\Type; -use Webkul\Checkout\Models\CartItem; -use Webkul\Product\Repositories\ProductRepository; use Webkul\Attribute\Repositories\AttributeRepository; +use Webkul\Checkout\Models\CartItem; use Webkul\Product\Datatypes\CartItemValidationResult; -use Webkul\Product\Repositories\ProductImageRepository; -use Webkul\Product\Repositories\ProductVideoRepository; -use Webkul\Product\Repositories\ProductInventoryRepository; use Webkul\Product\Repositories\ProductAttributeValueRepository; use Webkul\Product\Repositories\ProductDownloadableLinkRepository; use Webkul\Product\Repositories\ProductDownloadableSampleRepository; +use Webkul\Product\Repositories\ProductImageRepository; +use Webkul\Product\Repositories\ProductInventoryRepository; +use Webkul\Product\Repositories\ProductRepository; +use Webkul\Product\Repositories\ProductVideoRepository; class Downloadable extends AbstractType { @@ -274,6 +274,8 @@ class Downloadable extends AbstractType $price += $link->price; } + $price = round($price, 2); + if ($price == $item->base_price) { return $result; }