From af69f2df0c37d45542c94988962c69d07974351b 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 13:00:37 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20[status]=20=EC=A0=88=EA=B3=A1=20?= =?UTF-8?q?=EA=B3=B5=EC=A0=95=20=EA=B2=80=EC=82=AC=EC=99=84=EB=A3=8C=20?= =?UTF-8?q?=EC=8B=9C=20=EC=A0=84=EC=B2=B4=20item=20step=20=EC=9D=BC?= =?UTF-8?q?=EA=B4=84=20=EC=99=84=EB=A3=8C=20=E2=86=92=20WO=20=EC=9E=90?= =?UTF-8?q?=EB=8F=99=20=EC=99=84=EB=A3=8C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/Services/WorkOrderService.php | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/app/Services/WorkOrderService.php b/app/Services/WorkOrderService.php index 32d2119f..d6e9f774 100644 --- a/app/Services/WorkOrderService.php +++ b/app/Services/WorkOrderService.php @@ -2495,7 +2495,10 @@ public function storeItemInspection(int $workOrderId, int $itemId, array $data): : null; $isStock = $order && $order->order_type_code === 'STOCK'; - if ($isStock) { + // 절곡(bending) 공정: 모든 item이 한 단위 → 검사 완료 시 전체 step 일괄 완료 + $isBending = in_array($processType, ['bending', 'bending_wip']); + + if ($isStock || $isBending) { // 미완료 단계 일괄 완료 WorkOrderStepProgress::where('work_order_id', $workOrder->id) ->where('status', '!=', 'completed') @@ -2510,14 +2513,14 @@ public function storeItemInspection(int $workOrderId, int $itemId, array $data): $this->updateStatus($workOrder->id, WorkOrder::STATUS_COMPLETED); } } else { - // 일반 수주: 모든 공정 단계 완료 확인 → WO 자동 완료 + // 일반 수주 (비절곡): 모든 공정 단계 완료 확인 → WO 자동 완료 $this->autoCompleteWorkOrderIfAllStepsDone($workOrder, $tenantId, $userId); } return [ 'item_id' => $item->id, 'inspection_data' => $item->getInspectionData(), - 'work_order_completed' => $isStock && $workOrder->fresh()->status === WorkOrder::STATUS_COMPLETED, + 'work_order_completed' => $workOrder->fresh()->status === WorkOrder::STATUS_COMPLETED, ]; }