From 85542293df477794a7d520d83b8931bc0743a67c Mon Sep 17 00:00:00 2001 From: kent Date: Wed, 14 Jan 2026 15:37:28 +0900 Subject: [PATCH] =?UTF-8?q?fix(API):=20=EC=9E=91=EC=97=85=EC=A7=80?= =?UTF-8?q?=EC=8B=9C=20=EC=83=81=ED=83=9C=20=EC=9E=90=EB=8F=99=20=EB=8F=99?= =?UTF-8?q?=EA=B8=B0=ED=99=94=20-=20pending=20=EC=83=81=ED=83=9C=EB=8F=84?= =?UTF-8?q?=20=ED=8F=AC=ED=95=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - syncWorkOrderStatusFromItems()에서 pending 상태도 자동 전환 허용 - 품목 상태가 in_progress로 변경 시 작업지시 상태도 자동 변경 - 미배정(unassigned) 상태만 제외하도록 변경 - 기존: waiting, in_progress, completed만 동기화 대상 - 변경: unassigned만 제외, pending도 동기화 가능 Co-Authored-By: Claude --- app/Services/WorkOrderService.php | 12 ++++-------- 1 file changed, 4 insertions(+), 8 deletions(-) diff --git a/app/Services/WorkOrderService.php b/app/Services/WorkOrderService.php index 85e9ed9..461ce52 100644 --- a/app/Services/WorkOrderService.php +++ b/app/Services/WorkOrderService.php @@ -651,9 +651,10 @@ public function updateItemStatus(int $workOrderId, int $itemId, string $status) * 품목 상태 기반으로 작업지시 상태 자동 동기화 * * 규칙: - * - 품목 중 하나라도 in_progress → 작업지시 in_progress + * - 품목 중 하나라도 in_progress → 작업지시 in_progress (pending에서도 자동 전환) * - 모든 품목이 completed → 작업지시 completed * - 모든 품목이 waiting → 작업지시 waiting (단, waiting 이상인 경우만) + * - 미배정(unassigned) 상태에서는 동기화하지 않음 * * @return bool 상태 변경 여부 */ @@ -665,13 +666,8 @@ private function syncWorkOrderStatusFromItems(WorkOrder $workOrder): bool return false; } - // 작업 가능 상태가 아니면 동기화하지 않음 (unassigned, pending은 제외) - $syncableStatuses = [ - WorkOrder::STATUS_WAITING, - WorkOrder::STATUS_IN_PROGRESS, - WorkOrder::STATUS_COMPLETED, - ]; - if (! in_array($workOrder->status, $syncableStatuses)) { + // 미배정(unassigned) 상태에서는 동기화하지 않음 (배정 없이 작업 시작 불가) + if ($workOrder->status === WorkOrder::STATUS_UNASSIGNED) { return false; }