fix: [work-order] 생산지시 생성 시 부서/우선순위 자동 매핑
- team_id 미지정 시 공정 담당부서에서 자동 매핑 - priority 문자열→숫자 변환 (urgent=1, high=4, normal=7) - 부서/담당자 배정 시 작업대기(waiting) 상태로 설정
This commit is contained in:
@@ -1346,6 +1346,21 @@ public function createProductionOrder(int $orderId, array $data)
|
||||
}
|
||||
}
|
||||
|
||||
// team_id 결정: 명시적 전달값 > 공정 담당부서 자동 매핑
|
||||
$teamId = $data['team_id'] ?? null;
|
||||
if (! $teamId && $process && $process->department) {
|
||||
$teamId = DB::table('departments')
|
||||
->where('tenant_id', $tenantId)
|
||||
->where('name', $process->department)
|
||||
->value('id');
|
||||
}
|
||||
|
||||
// priority 결정: 문자열 → 숫자 변환 (urgent=1, high=4, normal=7)
|
||||
$priorityMap = ['urgent' => 1, 'high' => 4, 'normal' => 7];
|
||||
$priority = is_numeric($data['priority'] ?? null)
|
||||
? (int) $data['priority']
|
||||
: ($priorityMap[$data['priority'] ?? 'normal'] ?? 7);
|
||||
|
||||
// 작업지시 생성
|
||||
$workOrder = WorkOrder::create([
|
||||
'tenant_id' => $tenantId,
|
||||
@@ -1353,9 +1368,10 @@ public function createProductionOrder(int $orderId, array $data)
|
||||
'sales_order_id' => $order->id,
|
||||
'project_name' => $order->site_name ?? $order->client_name,
|
||||
'process_id' => $processId,
|
||||
'status' => ! empty($assigneeIds) ? WorkOrder::STATUS_PENDING : WorkOrder::STATUS_UNASSIGNED,
|
||||
'status' => (! empty($assigneeIds) || $teamId) ? WorkOrder::STATUS_WAITING : WorkOrder::STATUS_UNASSIGNED,
|
||||
'priority' => $priority,
|
||||
'assignee_id' => $primaryAssigneeId,
|
||||
'team_id' => $data['team_id'] ?? null,
|
||||
'team_id' => $teamId,
|
||||
'scheduled_date' => $data['scheduled_date'] ?? $order->delivery_date,
|
||||
'memo' => $data['memo'] ?? null,
|
||||
'options' => $workOrderOptions,
|
||||
|
||||
Reference in New Issue
Block a user