Skip to content

Instantly share code, notes, and snippets.

@sirawitpra
Last active July 6, 2017 14:27
Show Gist options
  • Save sirawitpra/bbe8ee8b0aa374c7d8289221723784d6 to your computer and use it in GitHub Desktop.
Save sirawitpra/bbe8ee8b0aa374c7d8289221723784d6 to your computer and use it in GitHub Desktop.
<?php
namespace App\Listeners;
use App\Events\OrderCreated;
use App\Events\StockIsLow;
use App\Product;
class UpdateStock
{
/**
* Create the event listener.
*
* @return void
*/
public function __construct()
{
//
}
/**
* Handle the event.
*
* @param OrderCreated $event
* @return void
*/
public function handle(OrderCreated $event)
{
foreach ($event->order->items as $item) {
$product = Product::find($item->productId);
$quantityLeft = $product->quantity - $item->quantity;
$product->update([
'quantity' => $quantityLeft
]);
if ($quantityLeft < 3) {
event(new StockIsLow($product));
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment