From 8a9c6dc7991c7a555fe5cda64678dc7bc4eb24d7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Sun, 22 Mar 2026 15:43:59 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20[=EC=9E=AC=EA=B3=B5=ED=92=88]=20?= =?UTF-8?q?=EC=88=98=EC=A3=BC=20=EC=88=98=EC=A0=95=20=EC=8B=9C=20item=5Fid?= =?UTF-8?q?=20=EB=AF=B8=ED=95=B4=EC=84=9D=20+=20=EC=9E=91=EC=97=85?= =?UTF-8?q?=EC=9E=90=ED=99=94=EB=A9=B4=20BD=EC=BD=94=EB=93=9C=20fallback?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - OrderService::update()에 item_code→item_id 해석 로직 추가 (store()에만 있던 것) - WorkOrderService: sourceOrderItem에 item_code 필드 포함 (BD코드 fallback용) --- app/Services/OrderService.php | 12 ++++++++++++ app/Services/WorkOrderService.php | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) 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',