fix(API): 작업지시 상태 자동 동기화 - pending 상태도 포함

- syncWorkOrderStatusFromItems()에서 pending 상태도 자동 전환 허용
- 품목 상태가 in_progress로 변경 시 작업지시 상태도 자동 변경
- 미배정(unassigned) 상태만 제외하도록 변경
- 기존: waiting, in_progress, completed만 동기화 대상
- 변경: unassigned만 제외, pending도 동기화 가능

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
2026-01-14 15:37:28 +09:00
parent a8ae5e177f
commit 85542293df

View File

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