feat:E-Sign 계약 생성 영업파트너 검색 모달 추가
- EsignApiController에 searchPartners() 검색 API 추가 - SalesPartner 모델 $fillable에 company_name, biz_no, address 추가 - User 모델에 salesPartner() HasOne 관계 추가 - create.blade.php에 PartnerSearchModal 컴포넌트 + 자동채우기 로직 추가 - web.php에 search-partners 라우트 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -5,6 +5,7 @@
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Mail\EsignRequestMail;
|
||||
use App\Models\ESign\EsignContract;
|
||||
use App\Models\User;
|
||||
use App\Services\ESign\DocxToPdfConverter;
|
||||
use App\Models\ESign\EsignFieldTemplate;
|
||||
use App\Models\ESign\EsignFieldTemplateItem;
|
||||
@@ -22,6 +23,43 @@
|
||||
|
||||
class EsignApiController extends Controller
|
||||
{
|
||||
/**
|
||||
* 영업파트너 검색
|
||||
*/
|
||||
public function searchPartners(Request $request): JsonResponse
|
||||
{
|
||||
$q = trim($request->input('q', ''));
|
||||
|
||||
$query = User::where('is_active', true)
|
||||
->whereIn('role', ['sales', 'manager'])
|
||||
->with('salesPartner');
|
||||
|
||||
if ($q !== '') {
|
||||
$query->where(function ($w) use ($q) {
|
||||
$w->where('name', 'like', "%{$q}%")
|
||||
->orWhere('email', 'like', "%{$q}%")
|
||||
->orWhere('phone', 'like', "%{$q}%");
|
||||
});
|
||||
}
|
||||
|
||||
$users = $query->orderBy('name')->limit(20)->get();
|
||||
|
||||
$data = $users->map(function ($user) {
|
||||
$sp = $user->salesPartner;
|
||||
return [
|
||||
'id' => $user->id,
|
||||
'name' => $user->name,
|
||||
'phone' => $user->phone,
|
||||
'email' => $user->email,
|
||||
'company_name' => $sp?->company_name,
|
||||
'biz_no' => $sp?->biz_no,
|
||||
'address' => $sp?->address,
|
||||
];
|
||||
});
|
||||
|
||||
return response()->json(['success' => true, 'data' => $data]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 법인도장 조회
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user