diff --git a/app/Services/OrderService.php b/app/Services/OrderService.php index bad0a47c..314b0e9c 100644 --- a/app/Services/OrderService.php +++ b/app/Services/OrderService.php @@ -401,6 +401,18 @@ public function update(int $id, array $data) } $this->calculateItemAmounts($item); + + // item_id가 없고 item_code가 있으면 item_code로 조회하여 보완 + if (empty($item['item_id']) && ! empty($item['item_code'])) { + $foundItem = Item::withoutGlobalScopes() + ->where('tenant_id', $tenantId) + ->where('code', $item['item_code']) + ->first(); + if ($foundItem) { + $item['item_id'] = $foundItem->id; + } + } + $order->items()->create($item); } diff --git a/app/Services/WorkOrderService.php b/app/Services/WorkOrderService.php index ca2d422c..5aeea12a 100644 --- a/app/Services/WorkOrderService.php +++ b/app/Services/WorkOrderService.php @@ -63,7 +63,7 @@ public function index(array $params) 'process:id,process_name,process_code,department,options', 'items:id,work_order_id,item_id,item_name,specification,quantity,unit,status,options,sort_order,source_order_item_id', 'items.item:id,code', - 'items.sourceOrderItem:id,order_node_id,floor_code,symbol_code', + 'items.sourceOrderItem:id,order_node_id,floor_code,symbol_code,item_code', 'items.sourceOrderItem.node:id,name,code', 'items.materialInputs:id,work_order_id,work_order_item_id,stock_lot_id,item_id,qty,input_by,input_at', 'items.materialInputs.stockLot:id,lot_no', @@ -347,7 +347,7 @@ public function show(int $id) 'process:id,process_name,process_code,work_steps,department,options', 'process.steps' => fn ($q) => $q->where('is_active', true)->orderBy('sort_order'), 'items.item:id,code', - 'items.sourceOrderItem:id,order_node_id,floor_code,symbol_code', + 'items.sourceOrderItem:id,order_node_id,floor_code,symbol_code,item_code', 'items.sourceOrderItem.node:id,name,code', 'items.materialInputs:id,work_order_id,work_order_item_id,stock_lot_id,item_id,qty,input_by,input_at', 'items.materialInputs.stockLot:id,lot_no',