From 016366407c2a8817c73e110d761178c8cd31e752 Mon Sep 17 00:00:00 2001 From: sky121113 Date: Thu, 5 Mar 2026 13:34:02 +0800 Subject: [PATCH] =?UTF-8?q?[FIX]=20=E4=BF=AE=E6=AD=A3=E7=94=9F=E7=94=A2?= =?UTF-8?q?=E5=B7=A5=E5=96=AE=E5=AE=8C=E6=88=90=E5=85=A5=E5=BA=AB=E6=99=82?= =?UTF-8?q?=E6=9C=AA=E5=AF=AB=E5=85=A5=E6=88=90=E6=9C=AC=E8=88=87=E7=B8=BD?= =?UTF-8?q?=E5=83=B9=E5=80=BC=E7=9A=84=E5=95=8F=E9=A1=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Controllers/ProductionOrderController.php | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) 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(),