diff --git a/app/Http/Controllers/Api/Admin/Barobill/BarobillSettingController.php b/app/Http/Controllers/Api/Admin/Barobill/BarobillSettingController.php index 6b582fca..a33cbe0e 100644 --- a/app/Http/Controllers/Api/Admin/Barobill/BarobillSettingController.php +++ b/app/Http/Controllers/Api/Admin/Barobill/BarobillSettingController.php @@ -102,6 +102,53 @@ public function store(Request $request): JsonResponse } } + /** + * 서비스 설정 개별 저장 (체크박스 변경 시 즉시 저장) + */ + public function updateService(Request $request): JsonResponse + { + $tenantId = session('selected_tenant_id', 1); + + $validated = $request->validate([ + 'field' => 'required|in:use_tax_invoice,use_bank_account,use_card_usage,use_hometax', + 'value' => 'required|boolean', + ]); + + try { + $setting = BarobillSetting::updateOrCreate( + ['tenant_id' => $tenantId], + [ + $validated['field'] => $validated['value'], + 'corp_name' => '미설정', + 'ceo_name' => '미설정', + 'corp_num' => '0000000000', + ] + ); + + $serviceNames = [ + 'use_tax_invoice' => '전자세금계산서', + 'use_bank_account' => '계좌조회', + 'use_card_usage' => '카드사용내역', + 'use_hometax' => '홈텍스매입/매출', + ]; + + $serviceName = $serviceNames[$validated['field']] ?? $validated['field']; + $status = $validated['value'] ? '활성화' : '비활성화'; + + return response()->json([ + 'success' => true, + 'message' => "{$serviceName} 서비스가 {$status}되었습니다.", + ]); + } catch (\Exception $e) { + Log::error('바로빌 서비스 설정 저장 실패', ['error' => $e->getMessage()]); + + return response()->json([ + 'success' => false, + 'message' => '설정 저장에 실패했습니다.', + ], 500); + } + } + /** * 서비스 이용 여부 확인 (다른 메뉴에서 참조용) */ diff --git a/resources/views/barobill/settings/index.blade.php b/resources/views/barobill/settings/index.blade.php index bdffe04a..c80d73ce 100644 --- a/resources/views/barobill/settings/index.blade.php +++ b/resources/views/barobill/settings/index.blade.php @@ -83,7 +83,7 @@