diff --git a/app/Observers/OrderObserver.php b/app/Observers/OrderObserver.php index b8404df..5c9d7ec 100644 --- a/app/Observers/OrderObserver.php +++ b/app/Observers/OrderObserver.php @@ -11,14 +11,18 @@ class OrderObserver */ public function creating(Order $order): void { - $lastOrder = Order::whereDate('created_at', now()->format('Y-m-d')) + $date = $order->created_at ?? now(); + + $lastOrder = Order::whereDate('created_at', $date->format('Y-m-d')) ->lockForUpdate() ->count(); $sequence = str_pad($lastOrder + 1, 3, '0', STR_PAD_LEFT); - $order->order_number = 'ORD-'.now()->format('Ymd').'-'.$sequence; + $order->order_number = 'ORD-'.$date->format('Ymd').'-'.$sequence; - $order->user_id = auth()->id(); + if (! $order->user_id) { + $order->user_id = auth()->id(); + } $order->total = $order->subtotal - $order->discount; }