From a982a98881c025a21fb1227fef8c33c99c6c44f9 Mon Sep 17 00:00:00 2001 From: Fahim Anzam Dip Date: Fri, 22 Sep 2023 20:01:47 +0600 Subject: [PATCH] Made the Price Customizable for Sales, Purchase --- app/Livewire/ProductCart.php | 42 +++++- resources/views/auth/login.blade.php | 120 +++++++++++------- .../includes/product-cart-price.blade.php | 8 ++ .../includes/product-cart-quantity.blade.php | 18 ++- .../views/livewire/product-cart.blade.php | 32 +++-- 5 files changed, 145 insertions(+), 75 deletions(-) create mode 100644 resources/views/livewire/includes/product-cart-price.blade.php diff --git a/app/Livewire/ProductCart.php b/app/Livewire/ProductCart.php index 0925474e..a32b9eb4 100644 --- a/app/Livewire/ProductCart.php +++ b/app/Livewire/ProductCart.php @@ -5,6 +5,7 @@ namespace App\Livewire; use Gloudemans\Shoppingcart\Facades\Cart; use Illuminate\Support\Facades\Request; use Livewire\Component; +use Modules\Product\Entities\Product; class ProductCart extends Component { @@ -19,8 +20,11 @@ class ProductCart extends Component public $check_quantity; public $discount_type; public $item_discount; + public $unit_price; public $data; + private $product; + public function mount($cartInstance, $data = null) { $this->cart_instance = $cartInstance; @@ -39,6 +43,7 @@ class ProductCart extends Component foreach ($cart_items as $cart_item) { $this->check_quantity[$cart_item->id] = [$cart_item->options->stock]; $this->quantity[$cart_item->id] = $cart_item->qty; + $this->unit_price[$cart_item->id] = $cart_item->price; $this->discount_type[$cart_item->id] = $cart_item->options->product_discount_type; if ($cart_item->options->product_discount_type == 'fixed') { $this->item_discount[$cart_item->id] = $cart_item->options->product_discount; @@ -52,6 +57,7 @@ class ProductCart extends Component $this->shipping = 0.00; $this->check_quantity = []; $this->quantity = []; + $this->unit_price = []; $this->discount_type = []; $this->item_discount = []; } @@ -78,6 +84,8 @@ class ProductCart extends Component return; } + $this->product = $product; + $cart->add([ 'id' => $product['id'], 'name' => $product['product_name'], @@ -174,10 +182,36 @@ class ProductCart extends Component session()->flash('discount_message' . $product_id, 'Discount added to the product!'); } - public function calculate($product) { - $product_price = $product['product_price']; - if ($this->cart_instance == 'purchase' || $this->cart_instance == 'purchase_return') { - $product_price = $product['product_cost']; + public function updatePrice($row_id, $product_id) { + $product = Product::findOrFail($product_id); + + $cart_item = Cart::instance($this->cart_instance)->get($row_id); + + Cart::instance($this->cart_instance)->update($row_id, ['price' => $this->unit_price[$product['id']]]); + + Cart::instance($this->cart_instance)->update($row_id, [ + 'options' => [ + 'sub_total' => $this->calculate($product, $this->unit_price[$product['id']])['sub_total'], + 'code' => $cart_item->options->code, + 'stock' => $cart_item->options->stock, + 'unit' => $cart_item->options->unit, + 'product_tax' => $this->calculate($product, $this->unit_price[$product['id']])['product_tax'], + 'unit_price' => $this->calculate($product, $this->unit_price[$product['id']])['unit_price'], + 'product_discount' => $cart_item->options->product_discount, + 'product_discount_type' => $cart_item->options->product_discount_type, + ] + ]); + } + + public function calculate($product, $new_price = null) { + if ($new_price) { + $product_price = $new_price; + } else { + $this->unit_price[$product['id']] = $product['product_price']; + if ($this->cart_instance == 'purchase' || $this->cart_instance == 'purchase_return') { + $this->unit_price[$product['id']] = $product['product_cost']; + } + $product_price = $this->unit_price[$product['id']]; } $price = 0; $unit_price = 0; diff --git a/resources/views/auth/login.blade.php b/resources/views/auth/login.blade.php index 33116c2a..66e74e4a 100644 --- a/resources/views/auth/login.blade.php +++ b/resources/views/auth/login.blade.php @@ -23,76 +23,100 @@
-
+
@if(Session::has('account_deactivated')) @endif -
-
-
-
- @csrf -

Login

-

Sign In to your account

-
-
+
+
+ + @csrf +

Login

+

Sign In to your account

+
+
-
- - @error('email') -
{{ $message }}
- @enderror
-
-
+ + @error('email') +
{{ $message }}
+ @enderror +
+
+
-
- - @error('password') -
{{ $message }}
- @enderror
-
-
- -
- -
- -
-
- @if(Route::has('register')) -
-
-
-

Sign up

-

Sign in to start your session

- Register Now! + + @error('password') +
{{ $message }}
+ @enderror
-
+
+
+ +
+ +
+
- @endif
+ +

+ Developed By + Fahim Anzam Dip +

+ diff --git a/resources/views/livewire/includes/product-cart-price.blade.php b/resources/views/livewire/includes/product-cart-price.blade.php new file mode 100644 index 00000000..1adcc5e4 --- /dev/null +++ b/resources/views/livewire/includes/product-cart-price.blade.php @@ -0,0 +1,8 @@ +
+ +
+ +
+
diff --git a/resources/views/livewire/includes/product-cart-quantity.blade.php b/resources/views/livewire/includes/product-cart-quantity.blade.php index df0315f8..6d4e560d 100644 --- a/resources/views/livewire/includes/product-cart-quantity.blade.php +++ b/resources/views/livewire/includes/product-cart-quantity.blade.php @@ -1,10 +1,8 @@ -
-
- -
- -
-
-
+
+ +
+ +
+
diff --git a/resources/views/livewire/product-cart.blade.php b/resources/views/livewire/product-cart.blade.php index 87b3b6b4..8e124e5d 100644 --- a/resources/views/livewire/product-cart.blade.php +++ b/resources/views/livewire/product-cart.blade.php @@ -20,13 +20,13 @@ Product - Net Unit Price - Stock - Quantity - Discount - Tax - Sub Total - Action + Net Unit Price + Stock + Quantity + Discount + Tax + Sub Total + Action @@ -41,25 +41,31 @@ @include('livewire.includes.product-cart-modal') - {{ format_currency($cart_item->options->unit_price) }} + + {{ format_currency($cart_item->price) }} - +
+ @include('livewire.includes.product-cart-price') +
+ + + {{ $cart_item->options->stock . ' ' . $cart_item->options->unit }} - + @include('livewire.includes.product-cart-quantity') - + {{ format_currency($cart_item->options->product_discount) }} - + {{ format_currency($cart_item->options->product_tax) }} - + {{ format_currency($cart_item->options->sub_total) }}