68 lines
1.5 KiB
PHP
68 lines
1.5 KiB
PHP
<?php
|
|
|
|
namespace App\Observers;
|
|
|
|
use App\Mail\OrderArrived;
|
|
use App\Mail\OrderRegistered;
|
|
use App\Models\Order;
|
|
use App\Models\User;
|
|
use Illuminate\Support\Facades\Mail;
|
|
use App\Models\Orderstatus;
|
|
use Carbon\Carbon;
|
|
|
|
class OrderObserver
|
|
{
|
|
/**
|
|
* Handle the Order "created" event.
|
|
*/
|
|
public function created(Order $order): void
|
|
{
|
|
$users = User::where("ordermanager", 1)->get();
|
|
foreach ($users as $user) {
|
|
Mail::to($user)->send(new OrderRegistered($order));
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Handle the Order "updated" event.
|
|
*/
|
|
public function updated(Order $order): void
|
|
{
|
|
$hasChanged = $order->getChanges();
|
|
if($hasChanged && isset($hasChanged['orderstatus_id'])) {
|
|
if($order->orderstatus->name == "bestellt") {
|
|
$order->orderdatetime = $order->updated_at;
|
|
$order->saveQuietly();
|
|
}
|
|
if($order->orderstatus->name == "angekommen") {
|
|
$user = User::find($order->user_id);
|
|
Mail::to($user)->send(new OrderArrived($order));
|
|
}
|
|
}
|
|
}
|
|
|
|
/**
|
|
* Handle the Order "deleted" event.
|
|
*/
|
|
public function deleted(Order $order): void
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Handle the Order "restored" event.
|
|
*/
|
|
public function restored(Order $order): void
|
|
{
|
|
//
|
|
}
|
|
|
|
/**
|
|
* Handle the Order "force deleted" event.
|
|
*/
|
|
public function forceDeleted(Order $order): void
|
|
{
|
|
//
|
|
}
|
|
}
|