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; }