Skip to content

Commit 631ed3e

Browse files
feat: add new order each time
1 parent 24a809e commit 631ed3e

1 file changed

Lines changed: 19 additions & 32 deletions

File tree

app/Services/QrOrderingService.php

Lines changed: 19 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -99,36 +99,23 @@ public function placeOrder(TableQrCode $qrCode, array $data): Order
9999
]);
100100
}
101101

102-
// Reuse the existing pending order for this session so the customer
103-
// can add more items before staff accepts, instead of creating a new order each time.
104-
$order = Order::where('table_session_id', $session->id)
105-
->where('order_source', 'qr')
106-
->where('approval_status', 'pending')
107-
->latest()
108-
->first();
109-
110-
if (!$order) {
111-
$order = Order::create([
112-
'outlet_id' => $qrCode->outlet_id,
113-
'table_session_id' => $session->id,
114-
'order_number' => $this->generateOrderNumber(),
115-
'order_type' => 'dine_in',
116-
'source' => 'other',
117-
'order_source' => 'qr',
118-
'approval_status' => 'pending',
119-
'status' => 'draft',
120-
'note' => $data['note'] ?? null,
121-
]);
102+
$order = Order::create([
103+
'outlet_id' => $qrCode->outlet_id,
104+
'table_session_id' => $session->id,
105+
'order_number' => $this->generateOrderNumber(),
106+
'order_type' => 'dine_in',
107+
'source' => 'other',
108+
'order_source' => 'qr',
109+
'approval_status' => 'pending',
110+
'status' => 'pending',
111+
'note' => $data['note'] ?? null,
112+
]);
122113

123-
OrderTable::create([
124-
'order_id' => $order->id,
125-
'dining_table_id' => $qrCode->dining_table_id,
126-
'assignment_type' => 'reserved_copy',
127-
]);
128-
} elseif ($data['note'] ?? null) {
129-
// Append note if provided
130-
$order->update(['note' => trim(($order->note ? $order->note . "\n" : '') . $data['note'])]);
131-
}
114+
OrderTable::create([
115+
'order_id' => $order->id,
116+
'dining_table_id' => $qrCode->dining_table_id,
117+
'assignment_type' => 'reserved_copy',
118+
]);
132119

133120
foreach ($data['items'] as $itemData) {
134121
$this->orderService->addItem($order, $itemData);
@@ -137,9 +124,9 @@ public function placeOrder(TableQrCode $qrCode, array $data): Order
137124
OrderStatusHistory::create([
138125
'order_id' => $order->id,
139126
'changed_by' => null,
140-
'from_status' => $order->wasRecentlyCreated ? null : 'draft',
141-
'to_status' => 'draft',
142-
'note' => $order->wasRecentlyCreated ? 'Order placed via QR code.' : 'Items added via QR code.',
127+
'from_status' => null,
128+
'to_status' => 'pending',
129+
'note' => 'Order placed via QR code.',
143130
]);
144131

145132
return $order->fresh();

0 commit comments

Comments
 (0)