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:
@@ -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;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user