diff --git a/app/Http/Controllers/Barobill/BarobillController.php b/app/Http/Controllers/Barobill/BarobillController.php index 7079fda1..26a2cd49 100644 --- a/app/Http/Controllers/Barobill/BarobillController.php +++ b/app/Http/Controllers/Barobill/BarobillController.php @@ -12,6 +12,19 @@ */ class BarobillController extends Controller { + /** + * 바로빌 설정 페이지 + * HTMX 요청 시 전체 페이지 리로드 (스크립트 로딩을 위해) + */ + public function config(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('barobill.config.index')); + } + + return view('barobill.config.index'); + } + /** * 회원사관리 페이지 * HTMX 요청 시 전체 페이지 리로드 (스크립트 로딩을 위해) @@ -24,4 +37,76 @@ public function members(Request $request): View|Response return view('barobill.members.index'); } + + /** + * 바로빌 설정 페이지 (이메일 주소 및 기타 자료 수정/동기화) + */ + public function settings(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('barobill.settings.index')); + } + + return view('barobill.settings.index'); + } + + /** + * 전자세금계산서 페이지 + */ + public function taxInvoice(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('barobill.tax-invoice.index')); + } + + return view('barobill.tax-invoice.index'); + } + + /** + * 계좌조회 페이지 + */ + public function bankAccount(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('barobill.bank-account.index')); + } + + return view('barobill.bank-account.index'); + } + + /** + * 카드사용내역 페이지 + */ + public function cardUsage(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('barobill.card-usage.index')); + } + + return view('barobill.card-usage.index'); + } + + /** + * 홈텍스매입/매출 페이지 + */ + public function hometax(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('barobill.hometax.index')); + } + + return view('barobill.hometax.index'); + } + + /** + * 사용량조회 페이지 + */ + public function usage(Request $request): View|Response + { + if ($request->header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('barobill.usage.index')); + } + + return view('barobill.usage.index'); + } } diff --git a/database/seeders/MngMenuSeeder.php b/database/seeders/MngMenuSeeder.php index 00ab6579..99b29766 100644 --- a/database/seeders/MngMenuSeeder.php +++ b/database/seeders/MngMenuSeeder.php @@ -314,6 +314,8 @@ protected function seedMainMenus(): void ]); $financeSubOrder = 0; + + // 대시보드/일보 $this->createMenu([ 'parent_id' => $financeGroup->id, 'name' => '재무 대시보드', @@ -322,6 +324,24 @@ protected function seedMainMenus(): void 'sort_order' => $financeSubOrder++, 'options' => ['route_name' => 'finance.dashboard', 'section' => 'main'], ]); + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '일일자금일보', + 'url' => '/finance/daily-fund', + 'icon' => 'newspaper', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.daily-fund', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '자금계획일정', + 'url' => '/finance/fund-schedules', + 'icon' => 'calendar', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.fund-schedules.index', 'section' => 'main'], + ]); + + // 계좌관리 $this->createMenu([ 'parent_id' => $financeGroup->id, 'name' => '계좌관리', @@ -338,21 +358,165 @@ protected function seedMainMenus(): void 'sort_order' => $financeSubOrder++, 'options' => ['route_name' => 'finance.account-transactions', 'section' => 'main'], ]); + + // 카드관리 $this->createMenu([ 'parent_id' => $financeGroup->id, - 'name' => '자금계획일정', - 'url' => '/finance/fund-schedules', - 'icon' => 'calendar', + 'name' => '법인카드관리', + 'url' => '/finance/corporate-cards', + 'icon' => 'credit-card', 'sort_order' => $financeSubOrder++, - 'options' => ['route_name' => 'finance.fund-schedules.index', 'section' => 'main'], + 'options' => ['route_name' => 'finance.corporate-cards', 'section' => 'main'], ]); $this->createMenu([ 'parent_id' => $financeGroup->id, - 'name' => '일일자금일보', - 'url' => '/finance/daily-fund', - 'icon' => 'newspaper', + 'name' => '카드사용내역', + 'url' => '/finance/card-transactions', + 'icon' => 'document-text', 'sort_order' => $financeSubOrder++, - 'options' => ['route_name' => 'finance.daily-fund', 'section' => 'main'], + 'options' => ['route_name' => 'finance.card-transactions', 'section' => 'main'], + ]); + + // 수입/지출 + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '수입관리', + 'url' => '/finance/income', + 'icon' => 'arrow-down', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.income', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '지출관리', + 'url' => '/finance/expense', + 'icon' => 'arrow-up', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.expense', 'section' => 'main'], + ]); + + // 매출/매입 + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '매출관리', + 'url' => '/finance/sales', + 'icon' => 'trending-up', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.sales', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '매입관리', + 'url' => '/finance/purchase', + 'icon' => 'shopping-cart', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.purchase', 'section' => 'main'], + ]); + + // 정산관리 + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '영업수수료 정산', + 'url' => '/finance/sales-commission', + 'icon' => 'cash', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.sales-commission', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '컨설팅비용 정산', + 'url' => '/finance/consulting-fee', + 'icon' => 'briefcase', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.consulting-fee', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '고객사 정산', + 'url' => '/finance/customer-settlement', + 'icon' => 'users', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.customer-settlement', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '구독료 정산', + 'url' => '/finance/subscription', + 'icon' => 'refresh', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.subscription', 'section' => 'main'], + ]); + + // 차량관리 + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '법인차량관리', + 'url' => '/finance/corporate-vehicles', + 'icon' => 'truck', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.corporate-vehicles', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '차량정비이력', + 'url' => '/finance/vehicle-maintenance', + 'icon' => 'wrench', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.vehicle-maintenance', 'section' => 'main'], + ]); + + // 거래처관리 + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '고객사관리', + 'url' => '/finance/customers', + 'icon' => 'user-group', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.customers', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '협력사관리', + 'url' => '/finance/partners', + 'icon' => 'office-building', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.partners', 'section' => 'main'], + ]); + + // 채권/채무 + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '채권관리', + 'url' => '/finance/receivables', + 'icon' => 'document-add', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.receivables', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '채무관리', + 'url' => '/finance/payables', + 'icon' => 'document-remove', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.payables', 'section' => 'main'], + ]); + + // 기타 + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '환불관리', + 'url' => '/finance/refunds', + 'icon' => 'receipt-refund', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.refunds', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $financeGroup->id, + 'name' => '부가세관리', + 'url' => '/finance/vat', + 'icon' => 'calculator', + 'sort_order' => $financeSubOrder++, + 'options' => ['route_name' => 'finance.vat', 'section' => 'main'], ]); // ======================================== @@ -370,6 +534,14 @@ protected function seedMainMenus(): void ]); $barobillSubOrder = 0; + $this->createMenu([ + 'parent_id' => $barobillGroup->id, + 'name' => '설정', + 'url' => '/barobill/settings', + 'icon' => 'cog', + 'sort_order' => $barobillSubOrder++, + 'options' => ['route_name' => 'barobill.settings.index', 'section' => 'main'], + ]); $this->createMenu([ 'parent_id' => $barobillGroup->id, 'name' => '회원사관리', @@ -378,6 +550,46 @@ protected function seedMainMenus(): void 'sort_order' => $barobillSubOrder++, 'options' => ['route_name' => 'barobill.members.index', 'section' => 'main'], ]); + $this->createMenu([ + 'parent_id' => $barobillGroup->id, + 'name' => '전자세금계산서', + 'url' => '/barobill/tax-invoice', + 'icon' => 'document-text', + 'sort_order' => $barobillSubOrder++, + 'options' => ['route_name' => 'barobill.tax-invoice.index', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $barobillGroup->id, + 'name' => '계좌조회', + 'url' => '/barobill/bank-account', + 'icon' => 'credit-card', + 'sort_order' => $barobillSubOrder++, + 'options' => ['route_name' => 'barobill.bank-account.index', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $barobillGroup->id, + 'name' => '카드사용내역', + 'url' => '/barobill/card-usage', + 'icon' => 'credit-card', + 'sort_order' => $barobillSubOrder++, + 'options' => ['route_name' => 'barobill.card-usage.index', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $barobillGroup->id, + 'name' => '홈텍스매입/매출', + 'url' => '/barobill/hometax', + 'icon' => 'document-report', + 'sort_order' => $barobillSubOrder++, + 'options' => ['route_name' => 'barobill.hometax.index', 'section' => 'main'], + ]); + $this->createMenu([ + 'parent_id' => $barobillGroup->id, + 'name' => '사용량조회', + 'url' => '/barobill/usage', + 'icon' => 'chart-bar', + 'sort_order' => $barobillSubOrder++, + 'options' => ['route_name' => 'barobill.usage.index', 'section' => 'main'], + ]); // ======================================== // 시스템 그룹 diff --git a/resources/views/barobill/bank-account/index.blade.php b/resources/views/barobill/bank-account/index.blade.php new file mode 100644 index 00000000..e9abafe4 --- /dev/null +++ b/resources/views/barobill/bank-account/index.blade.php @@ -0,0 +1,26 @@ +@extends('layouts.app') + +@section('title', '계좌조회') + +@section('content') +
등록된 계좌의 입출금 내역 조회
+계좌조회 기능이 곧 제공됩니다.
+등록된 카드의 사용 내역 조회
+카드사용내역 조회 기능이 곧 제공됩니다.
+홈텍스 매입/매출 데이터 조회
+홈텍스매입/매출 조회 기능이 곧 제공됩니다.
+이메일 주소 및 기타 자료의 수정 및 동기화
+세금계산서 발송 이메일 설정
+바로빌 데이터 동기화 설정
+자동 동기화
+매일 자정 자동 동기화
+바로빌 API 연동 설정
+세금계산서 관련 알림
+전자세금계산서 발행 및 조회
+전자세금계산서 기능이 곧 제공됩니다.
+바로빌 서비스 사용량 조회
+사용량조회 기능이 곧 제공됩니다.
+