fix(inventory): 修復 Controller 語法錯誤並補齊操作記錄
This commit is contained in:
@@ -179,54 +179,12 @@ class AdjustDocController extends Controller
|
|||||||
]);
|
]);
|
||||||
}
|
}
|
||||||
|
|
||||||
public function update(Request $request, InventoryAdjustDoc $doc)
|
public function destroy(InventoryAdjustDoc $doc)
|
||||||
{
|
{
|
||||||
if ($doc->status !== 'draft') {
|
if ($doc->status !== 'draft') {
|
||||||
return redirect()->back()->with('error', '只能修改草稿狀態的單據');
|
return redirect()->back()->with('error', '只能刪除草稿狀態的單據');
|
||||||
}
|
}
|
||||||
|
|
||||||
// 提交 (items 更新 或 過帳)
|
|
||||||
if ($request->input('action') === 'post') {
|
|
||||||
$this->adjustService->post($doc, auth()->id());
|
|
||||||
|
|
||||||
// 記錄活動
|
|
||||||
activity()
|
|
||||||
->performedOn($doc)
|
|
||||||
->causedBy(auth()->user())
|
|
||||||
->event('posted')
|
|
||||||
->withProperties([
|
|
||||||
'attributes' => ['status' => 'posted'],
|
|
||||||
'old' => ['status' => 'draft'],
|
|
||||||
'snapshot' => [
|
|
||||||
'doc_no' => $doc->doc_no,
|
|
||||||
'warehouse_name' => $doc->warehouse?->name,
|
|
||||||
]
|
|
||||||
])
|
|
||||||
->log('posted');
|
|
||||||
|
|
||||||
return redirect()->route('inventory.adjust.index')
|
|
||||||
->with('success', '盤調單已過帳生效');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 僅儲存資料
|
|
||||||
$validated = $request->validate([
|
|
||||||
'items' => 'array',
|
|
||||||
'items.*.product_id' => 'required|exists:products,id',
|
|
||||||
'items.*.adjust_qty' => 'required|numeric', // 可以是負數
|
|
||||||
'items.*.batch_number' => 'nullable|string',
|
|
||||||
'items.*.notes' => 'nullable|string',
|
|
||||||
]);
|
|
||||||
|
|
||||||
if ($request->has('items')) {
|
|
||||||
$this->adjustService->updateItems($doc, $validated['items']);
|
|
||||||
}
|
|
||||||
|
|
||||||
// 更新表頭
|
|
||||||
$doc->update($request->only(['reason', 'remarks']));
|
|
||||||
|
|
||||||
return redirect()->back()->with('success', '儲存成功');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 記錄活動
|
// 記錄活動
|
||||||
activity()
|
activity()
|
||||||
->performedOn($doc)
|
->performedOn($doc)
|
||||||
@@ -239,10 +197,10 @@ class AdjustDocController extends Controller
|
|||||||
]
|
]
|
||||||
])
|
])
|
||||||
->log('deleted');
|
->log('deleted');
|
||||||
|
|
||||||
$doc->items()->delete();
|
$doc->items()->delete();
|
||||||
$doc->delete();
|
$doc->delete();
|
||||||
|
|
||||||
return redirect()->route('inventory.adjust.index')
|
return redirect()->route('inventory.adjust.index')
|
||||||
->with('success', '盤調單已刪除');
|
->with('success', '盤調單已刪除');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -183,23 +183,12 @@ class CountDocController extends Controller
|
|||||||
return redirect()->back()->with('success', '暫存成功');
|
return redirect()->back()->with('success', '暫存成功');
|
||||||
}
|
}
|
||||||
|
|
||||||
public function reopen(InventoryCountDoc $doc)
|
public function destroy(InventoryCountDoc $doc)
|
||||||
{
|
{
|
||||||
if ($doc->status !== 'completed') {
|
if ($doc->status === 'completed') {
|
||||||
return redirect()->back()->with('error', '只有已核准的盤點單可以取消核准');
|
return redirect()->back()->with('error', '已完成的盤點單無法刪除');
|
||||||
}
|
}
|
||||||
|
|
||||||
// TODO: Move logic to Service if complex
|
|
||||||
$doc->update([
|
|
||||||
'status' => 'counting', // Revert to counting (draft)
|
|
||||||
'completed_at' => null,
|
|
||||||
'completed_by' => null,
|
|
||||||
]);
|
|
||||||
|
|
||||||
return redirect()->route('inventory.count.show', [$doc->id])
|
|
||||||
->with('success', '已取消核准,單據回復為盤點中狀態');
|
|
||||||
}
|
|
||||||
|
|
||||||
// 記錄活動
|
// 記錄活動
|
||||||
activity()
|
activity()
|
||||||
->performedOn($doc)
|
->performedOn($doc)
|
||||||
@@ -212,10 +201,10 @@ class CountDocController extends Controller
|
|||||||
]
|
]
|
||||||
])
|
])
|
||||||
->log('deleted');
|
->log('deleted');
|
||||||
|
|
||||||
$doc->items()->delete();
|
$doc->items()->delete();
|
||||||
$doc->delete();
|
$doc->delete();
|
||||||
|
|
||||||
return redirect()->route('inventory.count.index')
|
return redirect()->route('inventory.count.index')
|
||||||
->with('success', '盤點單已刪除');
|
->with('success', '盤點單已刪除');
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -226,6 +226,20 @@ class TransferOrderController extends Controller
|
|||||||
|
|
||||||
$order->update($request->only(['remarks']));
|
$order->update($request->only(['remarks']));
|
||||||
|
|
||||||
|
// 記錄暫存活動
|
||||||
|
activity()
|
||||||
|
->performedOn($order)
|
||||||
|
->causedBy(auth()->user())
|
||||||
|
->event('updated')
|
||||||
|
->withProperties([
|
||||||
|
'snapshot' => [
|
||||||
|
'doc_no' => $order->doc_no,
|
||||||
|
'from_warehouse_name' => $order->fromWarehouse?->name,
|
||||||
|
'to_warehouse_name' => $order->toWarehouse?->name,
|
||||||
|
]
|
||||||
|
])
|
||||||
|
->log('updated_items');
|
||||||
|
|
||||||
return redirect()->back()->with('success', '儲存成功');
|
return redirect()->back()->with('success', '儲存成功');
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -234,6 +248,21 @@ class TransferOrderController extends Controller
|
|||||||
if ($order->status !== 'draft') {
|
if ($order->status !== 'draft') {
|
||||||
return redirect()->back()->with('error', '只能刪除草稿狀態的單據');
|
return redirect()->back()->with('error', '只能刪除草稿狀態的單據');
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// 記錄活動
|
||||||
|
activity()
|
||||||
|
->performedOn($order)
|
||||||
|
->causedBy(auth()->user())
|
||||||
|
->event('deleted')
|
||||||
|
->withProperties([
|
||||||
|
'snapshot' => [
|
||||||
|
'doc_no' => $order->doc_no,
|
||||||
|
'from_warehouse_name' => $order->fromWarehouse?->name,
|
||||||
|
'to_warehouse_name' => $order->toWarehouse?->name,
|
||||||
|
]
|
||||||
|
])
|
||||||
|
->log('deleted');
|
||||||
|
|
||||||
$order->items()->delete();
|
$order->items()->delete();
|
||||||
$order->delete();
|
$order->delete();
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user