feat: [status] 자재투입/검사완료 시 WO→수주 상태 자동 전이 추가
This commit is contained in:
@@ -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,
|
||||
|
||||
Reference in New Issue
Block a user