diff --git a/app/Http/Controllers/Finance/TradingPartnerController.php b/app/Http/Controllers/Finance/TradingPartnerController.php index ddac7e66..9ea40229 100644 --- a/app/Http/Controllers/Finance/TradingPartnerController.php +++ b/app/Http/Controllers/Finance/TradingPartnerController.php @@ -19,6 +19,7 @@ public function index(Request $request): JsonResponse if ($search = $request->input('search')) { $query->where(function ($q) use ($search) { $q->where('name', 'like', "%{$search}%") + ->orWhere('ceo', 'like', "%{$search}%") ->orWhere('manager', 'like', "%{$search}%"); }); } @@ -50,9 +51,11 @@ public function index(Request $request): JsonResponse 'type' => $partner->type, 'category' => $partner->category, 'bizNo' => $partner->biz_no, + 'ceo' => $partner->ceo, 'bankAccount' => $partner->bank_account, 'contact' => $partner->contact, 'email' => $partner->email, + 'address' => $partner->address, 'manager' => $partner->manager, 'managerPhone' => $partner->manager_phone, 'status' => $partner->status, @@ -90,9 +93,11 @@ public function store(Request $request): JsonResponse 'type' => $request->input('type'), 'category' => $request->input('category'), 'biz_no' => $request->input('bizNo'), + 'ceo' => $request->input('ceo'), 'bank_account' => $request->input('bankAccount'), 'contact' => $request->input('contact'), 'email' => $request->input('email'), + 'address' => $request->input('address'), 'manager' => $request->input('manager'), 'manager_phone' => $request->input('managerPhone'), 'status' => $request->input('status', 'active'), @@ -108,9 +113,11 @@ public function store(Request $request): JsonResponse 'type' => $partner->type, 'category' => $partner->category, 'bizNo' => $partner->biz_no, + 'ceo' => $partner->ceo, 'bankAccount' => $partner->bank_account, 'contact' => $partner->contact, 'email' => $partner->email, + 'address' => $partner->address, 'manager' => $partner->manager, 'managerPhone' => $partner->manager_phone, 'status' => $partner->status, @@ -135,9 +142,11 @@ public function update(Request $request, int $id): JsonResponse 'type' => $request->input('type'), 'category' => $request->input('category'), 'biz_no' => $request->input('bizNo'), + 'ceo' => $request->input('ceo'), 'bank_account' => $request->input('bankAccount'), 'contact' => $request->input('contact'), 'email' => $request->input('email'), + 'address' => $request->input('address'), 'manager' => $request->input('manager'), 'manager_phone' => $request->input('managerPhone'), 'status' => $request->input('status', 'active'), @@ -153,9 +162,11 @@ public function update(Request $request, int $id): JsonResponse 'type' => $partner->type, 'category' => $partner->category, 'bizNo' => $partner->biz_no, + 'ceo' => $partner->ceo, 'bankAccount' => $partner->bank_account, 'contact' => $partner->contact, 'email' => $partner->email, + 'address' => $partner->address, 'manager' => $partner->manager, 'managerPhone' => $partner->manager_phone, 'status' => $partner->status, diff --git a/app/Models/Finance/TradingPartner.php b/app/Models/Finance/TradingPartner.php index b9c11c81..b0276d8d 100644 --- a/app/Models/Finance/TradingPartner.php +++ b/app/Models/Finance/TradingPartner.php @@ -17,9 +17,11 @@ class TradingPartner extends Model 'type', 'category', 'biz_no', + 'ceo', 'bank_account', 'contact', 'email', + 'address', 'manager', 'manager_phone', 'status', diff --git a/app/Services/TradingPartnerOcrService.php b/app/Services/TradingPartnerOcrService.php index 419136b9..ba25f4ed 100644 --- a/app/Services/TradingPartnerOcrService.php +++ b/app/Services/TradingPartnerOcrService.php @@ -288,12 +288,12 @@ private function normalizeData(array $data): array return [ 'name' => trim($data['company_name'] ?? ''), 'bizNo' => trim($data['business_number'] ?? ''), - 'manager' => trim($data['ceo_name'] ?? ''), + 'ceo' => trim($data['ceo_name'] ?? ''), 'contact' => trim($data['contact_phone'] ?? ''), 'email' => trim($data['email'] ?? ''), + 'address' => $address, 'type' => trim($data['biz_type'] ?? ''), 'category' => trim($data['biz_item'] ?? ''), - 'memo' => $address ? "[주소] {$address}" : '', ]; } } diff --git a/resources/views/finance/partners.blade.php b/resources/views/finance/partners.blade.php index cc346378..292ec702 100644 --- a/resources/views/finance/partners.blade.php +++ b/resources/views/finance/partners.blade.php @@ -71,9 +71,11 @@ function PartnersManagement() { type: '', category: '', bizNo: '', + ceo: '', bankAccount: '', contact: '', email: '', + address: '', manager: '', managerPhone: '', status: 'active', @@ -101,6 +103,7 @@ function PartnersManagement() { const filteredPartners = partners.filter(item => { const matchesSearch = item.name.toLowerCase().includes(searchTerm.toLowerCase()) || + (item.ceo || '').toLowerCase().includes(searchTerm.toLowerCase()) || (item.manager || '').toLowerCase().includes(searchTerm.toLowerCase()); const matchesType = filterType === 'all' || item.type === filterType; const matchesCategory = filterCategory === 'all' || item.category === filterCategory; @@ -184,12 +187,13 @@ function PartnersManagement() { ...prev, name: d.name || prev.name, bizNo: d.bizNo || prev.bizNo, + ceo: d.ceo || prev.ceo, type: d.type || prev.type, category: d.category || prev.category, - manager: d.manager || prev.manager, contact: d.contact || prev.contact, email: d.email || prev.email, - memo: d.memo || prev.memo, + address: d.address || prev.address, + manager: d.manager || prev.manager, })); } else { alert(data.message || 'OCR 처리에 실패했습니다.'); @@ -206,8 +210,8 @@ function PartnersManagement() { }; const handleDownload = () => { - const rows = [['거래처 관리'], [], ['거래처명', '업태', '종목', '사업자번호', '연락처', '이메일', '담당자', '상태'], - ...filteredPartners.map(item => [item.name, item.type || '', item.category || '', item.bizNo, item.contact, item.email, item.manager, item.status === 'active' ? '활성' : '비활성'])]; + const rows = [['거래처 관리'], [], ['거래처명', '대표자', '업태', '종목', '사업자번호', '주소', '연락처', '이메일', '담당자', '상태'], + ...filteredPartners.map(item => [item.name, item.ceo || '', item.type || '', item.category || '', item.bizNo, item.address || '', item.contact, item.email, item.manager, item.status === 'active' ? '활성' : '비활성'])]; const csvContent = rows.map(row => row.join(',')).join('\n'); const blob = new Blob(['\uFEFF' + csvContent], { type: 'text/csv;charset=utf-8;' }); const link = document.createElement('a'); link.href = URL.createObjectURL(blob); link.download = '거래처목록.csv'; link.click(); @@ -248,7 +252,7 @@ function PartnersManagement() {
{item.name}
{item.bizNo &&{item.bizNo}
}{item.category}
}{item.contact || item.email}
{item.manager}
{item.managerPhone &&{item.managerPhone}
}