From 6fba17ea8115cef593eb235e9c9d0fa4b4a3c970 Mon Sep 17 00:00:00 2001 From: Prashant Singh Date: Fri, 21 Dec 2018 16:14:20 +0530 Subject: [PATCH] Fixed issues #300 & Updated inventory in product grid after order received --- packages/Webkul/Admin/src/Listeners/Order.php | 8 ++++---- packages/Webkul/Admin/src/Listeners/Product.php | 14 ++++++++++++++ packages/Webkul/Checkout/src/Cart.php | 6 +++--- 3 files changed, 21 insertions(+), 7 deletions(-) diff --git a/packages/Webkul/Admin/src/Listeners/Order.php b/packages/Webkul/Admin/src/Listeners/Order.php index 8ade83005..44a433981 100644 --- a/packages/Webkul/Admin/src/Listeners/Order.php +++ b/packages/Webkul/Admin/src/Listeners/Order.php @@ -25,7 +25,7 @@ class Order { try { Mail::send(new NewOrderNotification($order)); } catch (\Exception $e) { - + } } @@ -39,7 +39,7 @@ class Order { try { Mail::send(new NewInvoiceNotification($invoice)); } catch (\Exception $e) { - + } } @@ -53,7 +53,7 @@ class Order { try { Mail::send(new NewShipmentNotification($shipment)); } catch (\Exception $e) { - + } } @@ -67,7 +67,7 @@ class Order { $productListener = app(\Webkul\Admin\Listeners\Product::class); foreach ($order->items as $item) { - $productListener->afterProductCreated($item->product); + $productListener->afterOrderRecieved($item->product->id, $item->qty_ordered); } } } \ No newline at end of file diff --git a/packages/Webkul/Admin/src/Listeners/Product.php b/packages/Webkul/Admin/src/Listeners/Product.php index cbe1b54b9..1f259232f 100644 --- a/packages/Webkul/Admin/src/Listeners/Product.php +++ b/packages/Webkul/Admin/src/Listeners/Product.php @@ -213,6 +213,20 @@ class Product { return true; } + /** + * Updates the product quantity when the order is received + * + * @param $productId + * @param $itemQuantity + */ + public function afterOrderRecieved($productId, $itemQuantity) { + $productGrid = $this->productGrid->findOneByField('product_id', $productId); + + $productGrid->update(['quantity' => $productGrid->quantity - $itemQuantity]); + + return true; + } + /** * Manually invoke this function when you have created the products by importing or seeding or factory. */ diff --git a/packages/Webkul/Checkout/src/Cart.php b/packages/Webkul/Checkout/src/Cart.php index aeca264d3..215f6b2a2 100644 --- a/packages/Webkul/Checkout/src/Cart.php +++ b/packages/Webkul/Checkout/src/Cart.php @@ -639,9 +639,9 @@ class Cart { } } - $cart->customer_email = $cart->shipping_address->email; - $cart->customer_first_name = $cart->shipping_address->first_name; - $cart->customer_last_name = $cart->shipping_address->last_name; + $cart->customer_email = $cart->billing_address->email; + $cart->customer_first_name = $cart->billing_address->first_name; + $cart->customer_last_name = $cart->billing_address->last_name; $cart->save(); return true;