feat: [status] 자재투입/검사완료 시 WO→수주 상태 자동 전이 추가

This commit is contained in:
김보곤
2026-03-22 11:14:18 +09:00
parent f7decfb76e
commit a9817b3fd9

View File

@@ -2479,6 +2479,20 @@ public function storeItemInspection(int $workOrderId, int $itemId, array $data):
['item_id' => $itemId, 'inspection_data' => $inspectionData]
);
// 검사 완료 시 WO 상태 자동 전이
// 1. waiting/pending → in_progress (아직 진행중 아니면)
$workOrder->refresh();
if (in_array($workOrder->status, [WorkOrder::STATUS_PENDING, WorkOrder::STATUS_WAITING])) {
$workOrder->status = WorkOrder::STATUS_IN_PROGRESS;
$workOrder->started_at = $workOrder->started_at ?? now();
$workOrder->updated_by = $userId;
$workOrder->save();
$this->syncOrderStatus($workOrder, $tenantId);
}
// 2. 모든 공정 단계 완료 확인 → WO 자동 완료
$this->autoCompleteWorkOrderIfAllStepsDone($workOrder, $tenantId, $userId);
return [
'item_id' => $item->id,
'inspection_data' => $item->getInspectionData(),
@@ -4256,6 +4270,18 @@ public function registerMaterialInputForItem(int $workOrderId, int $itemId, arra
]
);
// 자재 투입 시 WO 상태 자동 전이: waiting/pending → in_progress
$workOrder->refresh();
if (in_array($workOrder->status, [WorkOrder::STATUS_PENDING, WorkOrder::STATUS_WAITING])) {
$workOrder->status = WorkOrder::STATUS_IN_PROGRESS;
$workOrder->started_at = $workOrder->started_at ?? now();
$workOrder->updated_by = $userId;
$workOrder->save();
// 수주 상태 동기화 (IN_PRODUCTION)
$this->syncOrderStatus($workOrder, $tenantId);
}
return [
'work_order_id' => $workOrderId,
'work_order_item_id' => $itemId,