From fbbf1fe99fe5e5738e69a0052cc9606b1c4969fd Mon Sep 17 00:00:00 2001 From: jitendra Date: Fri, 18 Jan 2019 16:40:40 +0530 Subject: [PATCH 1/4] Issues fixed --- .../Controllers/Sales/ShipmentController.php | 7 ++-- .../products/accordians/inventories.blade.php | 2 +- .../products/accordians/variations.blade.php | 2 +- .../views/sales/shipments/create.blade.php | 5 ++- ...0_01_095504_create_order_payment_table.php | 2 +- .../src/Http/Controllers/CartController.php | 34 +++++++++++++------ packages/Webkul/Shop/src/Http/routes.php | 4 ++- 7 files changed, 34 insertions(+), 22 deletions(-) diff --git a/packages/Webkul/Admin/src/Http/Controllers/Sales/ShipmentController.php b/packages/Webkul/Admin/src/Http/Controllers/Sales/ShipmentController.php index 640f47d6e..9a8c67da8 100755 --- a/packages/Webkul/Admin/src/Http/Controllers/Sales/ShipmentController.php +++ b/packages/Webkul/Admin/src/Http/Controllers/Sales/ShipmentController.php @@ -157,12 +157,11 @@ class ShipmentController extends Controller ? $orderItem->child->product : $orderItem->product; - $inventory = $product->inventories() + $availableQty = $product->inventories() ->where('inventory_source_id', $data['shipment']['source']) - ->where('vendor_id', 0) - ->first(); + ->sum('qty'); - if ($orderItem->qty_to_ship < $qty || $inventory->qty < $qty) { + if ($orderItem->qty_to_ship < $qty || $availableQty < $qty) { return false; } diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/inventories.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/inventories.blade.php index 0b911a700..7df94fd68 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/inventories.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/inventories.blade.php @@ -7,7 +7,7 @@ $qty = 0; foreach ($product->inventories as $inventory) { - if ($inventory->inventory_source_id == $inventorySource->id && ! $inventory->vendor_id) { + if ($inventory->inventory_source_id == $inventorySource->id) { $qty = $inventory->qty; break; } diff --git a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/variations.blade.php b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/variations.blade.php index ebcc602f6..ec3ed0ff5 100755 --- a/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/variations.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/catalog/products/accordians/variations.blade.php @@ -325,7 +325,7 @@ sourceInventoryQty (inventorySourceId) { var inventories = this.variant.inventories.filter(function(inventory) { - return inventorySourceId === inventory.inventory_source_id && !inventory.vendor_id; + return inventorySourceId === inventory.inventory_source_id; }) if (inventories.length) diff --git a/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php b/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php index 215b154e5..3d83363f3 100755 --- a/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php +++ b/packages/Webkul/Admin/src/Resources/views/sales/shipments/create.blade.php @@ -312,9 +312,8 @@ $product = $item->type == 'configurable' ? $item->child->product : $item->product; foreach ($product->inventories as $inventory) { - if ($inventory->inventory_source_id == $inventorySource->id && !$inventory->vendor_id) { - $sourceQty = $inventory->qty; - break; + if ($inventory->inventory_source_id == $inventorySource->id) { + $sourceQty += $inventory->qty; } } ?> diff --git a/packages/Webkul/Sales/src/Database/Migrations/2018_10_01_095504_create_order_payment_table.php b/packages/Webkul/Sales/src/Database/Migrations/2018_10_01_095504_create_order_payment_table.php index ea33191bb..f61ded82f 100755 --- a/packages/Webkul/Sales/src/Database/Migrations/2018_10_01_095504_create_order_payment_table.php +++ b/packages/Webkul/Sales/src/Database/Migrations/2018_10_01_095504_create_order_payment_table.php @@ -18,7 +18,7 @@ class CreateOrderPaymentTable extends Migration $table->string('method'); $table->string('method_title')->nullable(); $table->integer('order_id')->nullable()->unsigned(); - $table->foreign('order_id')->references('id')->on('orders'); + $table->foreign('order_id')->references('id')->on('orders')->onDelete('cascade'); $table->timestamps(); }); } diff --git a/packages/Webkul/Shop/src/Http/Controllers/CartController.php b/packages/Webkul/Shop/src/Http/Controllers/CartController.php index 0c0513cf8..00c2d5fee 100755 --- a/packages/Webkul/Shop/src/Http/Controllers/CartController.php +++ b/packages/Webkul/Shop/src/Http/Controllers/CartController.php @@ -89,21 +89,28 @@ class CartController extends Controller */ public function add($id) { - Event::fire('checkout.cart.add.before', $id); + try { + Event::fire('checkout.cart.add.before', $id); - $result = Cart::add($id, request()->except('_token')); + $result = Cart::add($id, request()->except('_token')); - Event::fire('checkout.cart.add.after', $result); + Event::fire('checkout.cart.add.after', $result); - if ($result) { - session()->flash('success', trans('shop::app.checkout.cart.item.success')); - } else { - session()->flash('warning', trans('shop::app.checkout.cart.item.error-add')); + if ($result) { + session()->flash('success', trans('shop::app.checkout.cart.item.success')); + } else { + session()->flash('warning', trans('shop::app.checkout.cart.item.error-add')); + } + + Cart::collectTotals(); + + return redirect()->route($this->_config['redirect']); + + } catch(\Exception $e) { + session()->flash('error', trans($e->getMessage())); + + return redirect()->back(); } - - Cart::collectTotals(); - - return redirect()->back(); } /** @@ -176,10 +183,15 @@ class CartController extends Controller public function buyNow($id) { + Event::fire('checkout.cart.add.before', $id); + $result = Cart::proceedToBuyNow($id); + Event::fire('checkout.cart.add.after', $result); + Cart::collectTotals(); + if (! $result) { return redirect()->back(); } else { diff --git a/packages/Webkul/Shop/src/Http/routes.php b/packages/Webkul/Shop/src/Http/routes.php index 3454c6001..cacfa3afa 100755 --- a/packages/Webkul/Shop/src/Http/routes.php +++ b/packages/Webkul/Shop/src/Http/routes.php @@ -41,7 +41,9 @@ Route::group(['middleware' => ['web', 'theme', 'locale', 'currency']], function ])->name('shop.checkout.cart.index'); //Cart Items Add - Route::post('checkout/cart/add/{id}', 'Webkul\Shop\Http\Controllers\CartController@add')->name('cart.add'); + Route::post('checkout/cart/add/{id}', 'Webkul\Shop\Http\Controllers\CartController@add')->defaults('_config',[ + 'redirect' => 'shop.checkout.cart.index' + ])->name('cart.add'); //Cart Items Add Configurable for more Route::get('checkout/cart/addconfigurable/{slug}', 'Webkul\Shop\Http\Controllers\CartController@addConfigurable')->name('cart.add.configurable'); From b418b27de30767af189a0e0cfc214d4bdc3ac3f1 Mon Sep 17 00:00:00 2001 From: jitendra Date: Fri, 18 Jan 2019 16:49:03 +0530 Subject: [PATCH 2/4] Issue #389 fixed --- packages/Webkul/Sales/src/Repositories/ShipmentRepository.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/packages/Webkul/Sales/src/Repositories/ShipmentRepository.php b/packages/Webkul/Sales/src/Repositories/ShipmentRepository.php index e2bc8813d..e98f8f72c 100755 --- a/packages/Webkul/Sales/src/Repositories/ShipmentRepository.php +++ b/packages/Webkul/Sales/src/Repositories/ShipmentRepository.php @@ -106,6 +106,9 @@ class ShipmentRepository extends Repository $orderItem = $this->orderItem->find($itemId); + if ($qty > $orderItem->qty_to_ship) + $qty = $orderItem->qty_to_ship; + $totalQty += $qty; $shipmentItem = $this->shipmentItem->create([ From 70a24a64b970f28d758d1848411d137baa08f4f1 Mon Sep 17 00:00:00 2001 From: jitendra Date: Fri, 18 Jan 2019 17:23:36 +0530 Subject: [PATCH 3/4] Inventory issue fix --- .../Sales/src/Repositories/ShipmentItemRepository.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/packages/Webkul/Sales/src/Repositories/ShipmentItemRepository.php b/packages/Webkul/Sales/src/Repositories/ShipmentItemRepository.php index 7bce82f55..17302b353 100644 --- a/packages/Webkul/Sales/src/Repositories/ShipmentItemRepository.php +++ b/packages/Webkul/Sales/src/Repositories/ShipmentItemRepository.php @@ -29,6 +29,9 @@ class ShipmentItemRepository extends Repository */ public function updateProductInventory($data) { + if (! $data['product']) + return; + $orderedInventory = $data['product']->ordered_inventories() ->where('channel_id', $data['shipment']->order->channel->id) ->first(); @@ -54,6 +57,9 @@ class ShipmentItemRepository extends Repository ->where('inventory_source_id', $data['shipment']->inventory_source_id) ->first(); + if (!$inventory) + return; + if (($qty = $inventory->qty - $data['qty']) < 0) { $qty = 0; } From 33a75c306d156a64c0435ec6ac2ec63f899f30fd Mon Sep 17 00:00:00 2001 From: jitendra Date: Fri, 18 Jan 2019 18:16:05 +0530 Subject: [PATCH 4/4] Added view event manager to checkout and cart page --- .../views/checkout/cart/index.blade.php | 28 +++++++ .../views/checkout/cart/mini-cart.blade.php | 77 ++++++++++++------- .../views/checkout/onepage/review.blade.php | 20 ++++- 3 files changed, 96 insertions(+), 29 deletions(-) diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/cart/index.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/cart/index.blade.php index a083b9699..7523ecf33 100755 --- a/packages/Webkul/Shop/src/Resources/views/checkout/cart/index.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/cart/index.blade.php @@ -33,16 +33,28 @@
+ {!! view_render_event('bagisto.shop.checkout.cart.item.name.before', ['item' => $item]) !!} + + {!! view_render_event('bagisto.shop.checkout.cart.item.name.after', ['item' => $item]) !!} + + + {!! view_render_event('bagisto.shop.checkout.cart.item.price.before', ['item' => $item]) !!} +
{{ core()->currency($item->base_price) }}
+ {!! view_render_event('bagisto.shop.checkout.cart.item.price.after', ['item' => $item]) !!} + + + {!! view_render_event('bagisto.shop.checkout.cart.item.options.before', ['item' => $item]) !!} + @if ($item->type == 'configurable')
@@ -51,6 +63,12 @@
@endif + + {!! view_render_event('bagisto.shop.checkout.cart.item.options.after', ['item' => $item]) !!} + + + {!! view_render_event('bagisto.shop.checkout.cart.item.quantity.before', ['item' => $item]) !!} +
@@ -76,6 +94,8 @@ @endauth
+ {!! view_render_event('bagisto.shop.checkout.cart.item.quantity.after', ['item' => $item]) !!} + @if (! cart()->isItemHaveQuantity($item))
* {{ __('shop::app.checkout.cart.quantity-error') }} @@ -87,6 +107,8 @@ @endforeach
+ {!! view_render_event('bagisto.shop.checkout.cart.controls.after', ['cart' => $cart]) !!} +
+ + {!! view_render_event('bagisto.shop.checkout.cart.controls.after', ['cart' => $cart]) !!}
+ {!! view_render_event('bagisto.shop.checkout.cart.summary.after', ['cart' => $cart]) !!} + @include('shop::checkout.total.summary', ['cart' => $cart]) + + {!! view_render_event('bagisto.shop.checkout.cart.summary.after', ['cart' => $cart]) !!}
diff --git a/packages/Webkul/Shop/src/Resources/views/checkout/cart/mini-cart.blade.php b/packages/Webkul/Shop/src/Resources/views/checkout/cart/mini-cart.blade.php index ac4e0a179..f47a2b057 100755 --- a/packages/Webkul/Shop/src/Resources/views/checkout/cart/mini-cart.blade.php +++ b/packages/Webkul/Shop/src/Resources/views/checkout/cart/mini-cart.blade.php @@ -22,42 +22,63 @@