feat: [esign] 사원 불러오기 기능 추가 및 랜덤 데이터 품질 개선
- 근로계약서 시 '사원 불러오기' 버튼으로 직원 검색/선택 기능 - fillRandomVariables 스마트 기본값 생성 (테스트_ 접두사 제거) - searchEmployees API 엔드포인트 추가
This commit is contained in:
@@ -75,6 +75,45 @@ public function searchPartners(Request $request): JsonResponse
|
||||
return response()->json(['success' => true, 'data' => $data]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 사원 검색 (근로계약서용)
|
||||
*/
|
||||
public function searchEmployees(Request $request): JsonResponse
|
||||
{
|
||||
$q = trim($request->input('q', ''));
|
||||
$tenantId = session('selected_tenant_id', 1);
|
||||
|
||||
$query = \App\Models\HR\Employee::where('tenant_id', $tenantId)
|
||||
->where('employee_status', 'active')
|
||||
->with(['user', 'department']);
|
||||
|
||||
if ($q !== '') {
|
||||
$query->where(function ($w) use ($q) {
|
||||
$w->whereHas('user', fn ($u) => $u->where('name', 'like', "%{$q}%")
|
||||
->orWhere('phone', 'like', "%{$q}%")
|
||||
->orWhere('email', 'like', "%{$q}%"))
|
||||
->orWhereHas('department', fn ($d) => $d->where('name', 'like', "%{$q}%"));
|
||||
});
|
||||
}
|
||||
|
||||
$employees = $query->limit(20)->get();
|
||||
|
||||
$data = $employees->map(fn ($emp) => [
|
||||
'id' => $emp->id,
|
||||
'name' => $emp->user?->name,
|
||||
'phone' => $emp->user?->phone,
|
||||
'email' => $emp->user?->email,
|
||||
'department' => $emp->department?->name,
|
||||
'position' => $emp->position_label,
|
||||
'job_title' => $emp->job_title_label,
|
||||
'address' => $emp->address,
|
||||
'hire_date' => $emp->hire_date,
|
||||
'birth_year' => $emp->resident_number ? ('19'.substr($emp->resident_number, 0, 2)) : null,
|
||||
]);
|
||||
|
||||
return response()->json(['success' => true, 'data' => $data]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 고객(명함 등록 고객) 검색
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user