[REFACTOR] 移除機台管理與庫存設定中的貨道同步套用功能與日誌面板冗餘分頁
All checks were successful
star-cloud-deploy-demo / deploy-demo (push) Successful in 46s

1. 移除 MachineController 貨道更新 API 的 apply_all_same_product 驗證規則。
2. 簡化 MachineService 的 updateSlot 邏輯,取消「同步套用至同機台其他相同商品」的批次異動功能以確保資料準確性。
3. 清理 index.blade.php 機台管理頁面中的「貨道狀態 (Slot Status)」分頁、相關 Alpine.js 函式與專用的貨道編輯 Modal。
4. 修正 stock.blade.php 庫存管理介面,移除編輯 Modal 內的同步切換開關。
This commit is contained in:
2026-04-01 16:10:40 +08:00
parent 969e4df629
commit 3dbb394862
4 changed files with 11 additions and 280 deletions

View File

@@ -105,26 +105,15 @@ class MachineService
$stock = $data['stock'] ?? null;
$expiryDate = $data['expiry_date'] ?? null;
$batchNo = $data['batch_no'] ?? null;
$applyAllSame = $data['apply_all_same_product'] ?? false;
$slot = $machine->slots()->where('slot_no', $slotNo)->firstOrFail();
$slot = $machine->slots()->where('slot_no', $slotNo)->with('product')->firstOrFail();
if ($applyAllSame && $slot->product_id) {
// 更新該機台內所有相同商品的貨道
$machine->slots()->where('product_id', $slot->product_id)->update([
'stock' => $stock !== null ? (int)$stock : DB::raw('stock'),
'expiry_date' => $expiryDate,
'batch_no' => $batchNo,
]);
} else {
// 僅更新單一貨道
$updateData = [
'expiry_date' => $expiryDate,
'batch_no' => $batchNo,
];
if ($stock !== null) $updateData['stock'] = (int)$stock;
$slot->update($updateData);
}
$updateData = [
'expiry_date' => $expiryDate,
'batch_no' => $batchNo,
];
if ($stock !== null) $updateData['stock'] = (int)$stock;
$slot->update($updateData);
});
}