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');