[FIX] 修正生產工單完成入庫時未寫入成本與總價值的問題
This commit is contained in:
@@ -436,6 +436,21 @@ class ProductionOrderController extends Controller
|
|||||||
throw new \Exception('必須提供成品批號');
|
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->output_batch_number = $batchNumber;
|
||||||
$productionOrder->expiry_date = $expiryDate;
|
$productionOrder->expiry_date = $expiryDate;
|
||||||
@@ -446,6 +461,7 @@ class ProductionOrderController extends Controller
|
|||||||
'warehouse_id' => $warehouseId,
|
'warehouse_id' => $warehouseId,
|
||||||
'product_id' => $productionOrder->product_id,
|
'product_id' => $productionOrder->product_id,
|
||||||
'quantity' => $productionOrder->output_quantity,
|
'quantity' => $productionOrder->output_quantity,
|
||||||
|
'unit_cost' => $unitCost, // 傳入計算後的單位成本
|
||||||
'batch_number' => $batchNumber,
|
'batch_number' => $batchNumber,
|
||||||
'box_number' => $productionOrder->output_box_count,
|
'box_number' => $productionOrder->output_box_count,
|
||||||
'arrival_date' => now()->toDateString(),
|
'arrival_date' => now()->toDateString(),
|
||||||
|
|||||||
Reference in New Issue
Block a user