diff --git a/app/Modules/Production/Controllers/ProductionOrderController.php b/app/Modules/Production/Controllers/ProductionOrderController.php index 8a5e571..dca13f8 100644 --- a/app/Modules/Production/Controllers/ProductionOrderController.php +++ b/app/Modules/Production/Controllers/ProductionOrderController.php @@ -436,6 +436,21 @@ class ProductionOrderController extends Controller throw new \Exception('必須提供成品批號'); } + // --- 新增:計算原物料投入總成本 --- + $totalCost = 0; + $items = $productionOrder->items()->with('inventory')->get(); + foreach ($items as $item) { + if ($item->inventory) { + $totalCost += ($item->quantity_used * ($item->inventory->unit_cost ?? 0)); + } + } + + // 計算單位成本 (若產出數量為 0 則設為 0 避免除以零錯誤) + $unitCost = $productionOrder->output_quantity > 0 + ? $totalCost / $productionOrder->output_quantity + : 0; + // -------------------------------- + // 更新單據資訊:批號、效期與自動記錄生產日期 $productionOrder->output_batch_number = $batchNumber; $productionOrder->expiry_date = $expiryDate; @@ -446,6 +461,7 @@ class ProductionOrderController extends Controller 'warehouse_id' => $warehouseId, 'product_id' => $productionOrder->product_id, 'quantity' => $productionOrder->output_quantity, + 'unit_cost' => $unitCost, // 傳入計算後的單位成本 'batch_number' => $batchNumber, 'box_number' => $productionOrder->output_box_count, 'arrival_date' => now()->toDateString(),