From 7f0bbc1a95c847c090bc0e15408c8dfb77eb34a8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=EA=B9=80=EB=B3=B4=EA=B3=A4?= Date: Thu, 5 Feb 2026 20:46:35 +0900 Subject: [PATCH] =?UTF-8?q?feat:=EC=A0=84=EC=9E=90=EC=84=B8=EA=B8=88?= =?UTF-8?q?=EA=B3=84=EC=82=B0=EC=84=9C=20=EA=B3=B5=EA=B8=89=EB=B0=9B?= =?UTF-8?q?=EB=8A=94=EC=9E=90=20=EA=B1=B0=EB=9E=98=EC=B2=98=20=EA=B2=80?= =?UTF-8?q?=EC=83=89=20=EB=AA=A8=EB=8B=AC=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Opus 4.5 --- .../Barobill/BarobillController.php | 27 +++ .../barobill/tax-invoice/index.blade.php | 195 +++++++++++++++++- routes/web.php | 1 + 3 files changed, 217 insertions(+), 6 deletions(-) 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 그룹으로 이동됨