diff --git a/app/Http/Controllers/Barobill/BarobillController.php b/app/Http/Controllers/Barobill/BarobillController.php index acae8706..886d5fad 100644 --- a/app/Http/Controllers/Barobill/BarobillController.php +++ b/app/Http/Controllers/Barobill/BarobillController.php @@ -4,7 +4,9 @@ use App\Http\Controllers\Controller; use App\Models\Barobill\BarobillMember; +use App\Models\Finance\TradingPartner; use App\Models\Tenants\Tenant; +use Illuminate\Http\JsonResponse; use Illuminate\Http\Request; use Illuminate\Http\Response; use Illuminate\View\View; @@ -141,6 +143,31 @@ public function usage(Request $request): View|Response return view('barobill.usage.index', compact('currentTenant', 'barobillMember', 'isHeadquarters')); } + /** + * 거래처 검색 (전자세금계산서 공급받는자 검색용) + */ + public function searchTradingPartners(Request $request): JsonResponse + { + $tenantId = session('selected_tenant_id', 1); + $keyword = $request->input('keyword', ''); + + $query = TradingPartner::forTenant($tenantId)->active(); + + if ($keyword) { + $query->where(function ($q) use ($keyword) { + $q->where('name', 'like', "%{$keyword}%") + ->orWhere('biz_no', 'like', "%{$keyword}%") + ->orWhere('manager', 'like', "%{$keyword}%"); + }); + } + + $partners = $query->orderBy('name') + ->limit(50) + ->get(['id', 'name', 'biz_no', 'contact', 'email', 'manager', 'manager_phone']); + + return response()->json($partners); + } + /** * 과금관리 페이지 (본사 전용) */ diff --git a/resources/views/barobill/tax-invoice/index.blade.php b/resources/views/barobill/tax-invoice/index.blade.php index 0c0b21af..67af2ac9 100644 --- a/resources/views/barobill/tax-invoice/index.blade.php +++ b/resources/views/barobill/tax-invoice/index.blade.php @@ -193,16 +193,199 @@ } +{{-- 거래처 검색 모달 --}} + + @push('scripts') @endpush diff --git a/routes/web.php b/routes/web.php index de79167b..e1bf729f 100644 --- a/routes/web.php +++ b/routes/web.php @@ -428,6 +428,7 @@ Route::get('/settings', [\App\Http\Controllers\Barobill\BarobillController::class, 'settings'])->name('settings.index'); Route::get('/members', [\App\Http\Controllers\Barobill\BarobillController::class, 'members'])->name('members.index'); Route::get('/tax-invoice', [\App\Http\Controllers\Barobill\BarobillController::class, 'taxInvoice'])->name('tax-invoice.index'); + Route::get('/tax-invoice/search-partners', [\App\Http\Controllers\Barobill\BarobillController::class, 'searchTradingPartners'])->name('tax-invoice.search-partners'); Route::get('/bank-account', [\App\Http\Controllers\Barobill\BarobillController::class, 'bankAccount'])->name('bank-account.index'); Route::get('/card-usage', [\App\Http\Controllers\Barobill\BarobillController::class, 'cardUsage'])->name('card-usage.index'); // Route::get('/hometax', ...) - 아래 hometax 그룹으로 이동됨