feat:바로빌 메뉴 그룹 및 하위메뉴 추가
- 바로빌본사 → 바로빌로 이름 변경 - 하위메뉴 추가: 설정, 전자세금계산서, 계좌조회, 카드사용내역, 홈텍스매입/매출, 사용량조회 - 설정 페이지 구현 (이메일, 동기화, API, 알림 설정) - 나머지 메뉴는 준비중 페이지로 생성
This commit is contained in:
@@ -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');
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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'],
|
||||
]);
|
||||
|
||||
// ========================================
|
||||
// 시스템 그룹
|
||||
|
||||
26
resources/views/barobill/bank-account/index.blade.php
Normal file
26
resources/views/barobill/bank-account/index.blade.php
Normal file
@@ -0,0 +1,26 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', '계좌조회')
|
||||
|
||||
@section('content')
|
||||
<div class="flex flex-col h-full">
|
||||
<div class="flex flex-col sm:flex-row sm:justify-between sm:items-center gap-4 mb-6">
|
||||
<div>
|
||||
<h1 class="text-2xl font-bold text-gray-800">계좌조회</h1>
|
||||
<p class="text-sm text-gray-500 mt-1">등록된 계좌의 입출금 내역 조회</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex-1 flex items-center justify-center">
|
||||
<div class="text-center">
|
||||
<div class="w-24 h-24 bg-green-100 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<svg class="w-12 h-12 text-green-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z" />
|
||||
</svg>
|
||||
</div>
|
||||
<h2 class="text-xl font-semibold text-gray-800 mb-2">준비중입니다</h2>
|
||||
<p class="text-gray-500">계좌조회 기능이 곧 제공됩니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
26
resources/views/barobill/card-usage/index.blade.php
Normal file
26
resources/views/barobill/card-usage/index.blade.php
Normal file
@@ -0,0 +1,26 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', '카드사용내역')
|
||||
|
||||
@section('content')
|
||||
<div class="flex flex-col h-full">
|
||||
<div class="flex flex-col sm:flex-row sm:justify-between sm:items-center gap-4 mb-6">
|
||||
<div>
|
||||
<h1 class="text-2xl font-bold text-gray-800">카드사용내역</h1>
|
||||
<p class="text-sm text-gray-500 mt-1">등록된 카드의 사용 내역 조회</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex-1 flex items-center justify-center">
|
||||
<div class="text-center">
|
||||
<div class="w-24 h-24 bg-blue-100 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<svg class="w-12 h-12 text-blue-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 10h18M7 15h1m4 0h1m-7 4h12a3 3 0 003-3V8a3 3 0 00-3-3H6a3 3 0 00-3 3v8a3 3 0 003 3z" />
|
||||
</svg>
|
||||
</div>
|
||||
<h2 class="text-xl font-semibold text-gray-800 mb-2">준비중입니다</h2>
|
||||
<p class="text-gray-500">카드사용내역 조회 기능이 곧 제공됩니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
26
resources/views/barobill/hometax/index.blade.php
Normal file
26
resources/views/barobill/hometax/index.blade.php
Normal file
@@ -0,0 +1,26 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', '홈텍스매입/매출')
|
||||
|
||||
@section('content')
|
||||
<div class="flex flex-col h-full">
|
||||
<div class="flex flex-col sm:flex-row sm:justify-between sm:items-center gap-4 mb-6">
|
||||
<div>
|
||||
<h1 class="text-2xl font-bold text-gray-800">홈텍스매입/매출</h1>
|
||||
<p class="text-sm text-gray-500 mt-1">홈텍스 매입/매출 데이터 조회</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex-1 flex items-center justify-center">
|
||||
<div class="text-center">
|
||||
<div class="w-24 h-24 bg-orange-100 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<svg class="w-12 h-12 text-orange-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 17v-2m3 2v-4m3 4v-6m2 10H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" />
|
||||
</svg>
|
||||
</div>
|
||||
<h2 class="text-xl font-semibold text-gray-800 mb-2">준비중입니다</h2>
|
||||
<p class="text-gray-500">홈텍스매입/매출 조회 기능이 곧 제공됩니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
148
resources/views/barobill/settings/index.blade.php
Normal file
148
resources/views/barobill/settings/index.blade.php
Normal file
@@ -0,0 +1,148 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', '바로빌 설정')
|
||||
|
||||
@section('content')
|
||||
<div class="flex flex-col h-full">
|
||||
<!-- 페이지 헤더 -->
|
||||
<div class="flex flex-col sm:flex-row sm:justify-between sm:items-center gap-4 mb-6 flex-shrink-0">
|
||||
<div>
|
||||
<h1 class="text-2xl font-bold text-gray-800">바로빌 설정</h1>
|
||||
<p class="text-sm text-gray-500 mt-1">이메일 주소 및 기타 자료의 수정 및 동기화</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 설정 카드 -->
|
||||
<div class="grid grid-cols-1 lg:grid-cols-2 gap-6">
|
||||
<!-- 이메일 설정 -->
|
||||
<div class="bg-white rounded-lg shadow-sm p-6">
|
||||
<div class="flex items-center gap-3 mb-4">
|
||||
<div class="w-10 h-10 bg-blue-100 rounded-lg flex items-center justify-center">
|
||||
<svg class="w-5 h-5 text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M3 8l7.89 5.26a2 2 0 002.22 0L21 8M5 19h14a2 2 0 002-2V7a2 2 0 00-2-2H5a2 2 0 00-2 2v10a2 2 0 002 2z" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="font-semibold text-gray-800">이메일 설정</h3>
|
||||
<p class="text-xs text-gray-500">세금계산서 발송 이메일 설정</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="space-y-4">
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600 mb-1">발신 이메일 주소</label>
|
||||
<input type="email" class="w-full px-3 py-2 border border-gray-200 rounded-lg text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500" placeholder="noreply@company.com">
|
||||
</div>
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600 mb-1">담당자 이메일</label>
|
||||
<input type="email" class="w-full px-3 py-2 border border-gray-200 rounded-lg text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500" placeholder="manager@company.com">
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 동기화 설정 -->
|
||||
<div class="bg-white rounded-lg shadow-sm p-6">
|
||||
<div class="flex items-center gap-3 mb-4">
|
||||
<div class="w-10 h-10 bg-green-100 rounded-lg flex items-center justify-center">
|
||||
<svg class="w-5 h-5 text-green-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="font-semibold text-gray-800">데이터 동기화</h3>
|
||||
<p class="text-xs text-gray-500">바로빌 데이터 동기화 설정</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="space-y-4">
|
||||
<div class="flex items-center justify-between p-3 bg-gray-50 rounded-lg">
|
||||
<div>
|
||||
<p class="text-sm font-medium text-gray-700">자동 동기화</p>
|
||||
<p class="text-xs text-gray-500">매일 자정 자동 동기화</p>
|
||||
</div>
|
||||
<label class="relative inline-flex items-center cursor-pointer">
|
||||
<input type="checkbox" class="sr-only peer">
|
||||
<div class="w-11 h-6 bg-gray-200 peer-focus:ring-2 peer-focus:ring-blue-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-blue-600"></div>
|
||||
</label>
|
||||
</div>
|
||||
<button type="button" class="w-full px-4 py-2 bg-green-600 text-white rounded-lg hover:bg-green-700 transition flex items-center justify-center gap-2">
|
||||
<svg class="w-4 h-4" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M4 4v5h.582m15.356 2A8.001 8.001 0 004.582 9m0 0H9m11 11v-5h-.581m0 0a8.003 8.003 0 01-15.357-2m15.357 2H15" />
|
||||
</svg>
|
||||
지금 동기화
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- API 설정 -->
|
||||
<div class="bg-white rounded-lg shadow-sm p-6">
|
||||
<div class="flex items-center gap-3 mb-4">
|
||||
<div class="w-10 h-10 bg-purple-100 rounded-lg flex items-center justify-center">
|
||||
<svg class="w-5 h-5 text-purple-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M10 20l4-16m4 4l4 4-4 4M6 16l-4-4 4-4" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="font-semibold text-gray-800">API 설정</h3>
|
||||
<p class="text-xs text-gray-500">바로빌 API 연동 설정</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="space-y-4">
|
||||
<div>
|
||||
<label class="block text-sm font-medium text-gray-600 mb-1">API CERT KEY</label>
|
||||
<input type="password" class="w-full px-3 py-2 border border-gray-200 rounded-lg text-sm focus:ring-2 focus:ring-blue-500 focus:border-blue-500" placeholder="**********************">
|
||||
</div>
|
||||
<div class="flex items-center gap-2 p-3 bg-green-50 rounded-lg border border-green-200">
|
||||
<svg class="w-5 h-5 text-green-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" />
|
||||
</svg>
|
||||
<span class="text-sm text-green-700">API 연결 상태: 정상</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 알림 설정 -->
|
||||
<div class="bg-white rounded-lg shadow-sm p-6">
|
||||
<div class="flex items-center gap-3 mb-4">
|
||||
<div class="w-10 h-10 bg-yellow-100 rounded-lg flex items-center justify-center">
|
||||
<svg class="w-5 h-5 text-yellow-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M15 17h5l-1.405-1.405A2.032 2.032 0 0118 14.158V11a6.002 6.002 0 00-4-5.659V5a2 2 0 10-4 0v.341C7.67 6.165 6 8.388 6 11v3.159c0 .538-.214 1.055-.595 1.436L4 17h5m6 0v1a3 3 0 11-6 0v-1m6 0H9" />
|
||||
</svg>
|
||||
</div>
|
||||
<div>
|
||||
<h3 class="font-semibold text-gray-800">알림 설정</h3>
|
||||
<p class="text-xs text-gray-500">세금계산서 관련 알림</p>
|
||||
</div>
|
||||
</div>
|
||||
<div class="space-y-3">
|
||||
<div class="flex items-center justify-between p-3 bg-gray-50 rounded-lg">
|
||||
<span class="text-sm text-gray-700">발행 완료 알림</span>
|
||||
<label class="relative inline-flex items-center cursor-pointer">
|
||||
<input type="checkbox" checked class="sr-only peer">
|
||||
<div class="w-11 h-6 bg-gray-200 peer-focus:ring-2 peer-focus:ring-blue-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-blue-600"></div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="flex items-center justify-between p-3 bg-gray-50 rounded-lg">
|
||||
<span class="text-sm text-gray-700">수신 알림</span>
|
||||
<label class="relative inline-flex items-center cursor-pointer">
|
||||
<input type="checkbox" checked class="sr-only peer">
|
||||
<div class="w-11 h-6 bg-gray-200 peer-focus:ring-2 peer-focus:ring-blue-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-blue-600"></div>
|
||||
</label>
|
||||
</div>
|
||||
<div class="flex items-center justify-between p-3 bg-gray-50 rounded-lg">
|
||||
<span class="text-sm text-gray-700">만료 예정 알림</span>
|
||||
<label class="relative inline-flex items-center cursor-pointer">
|
||||
<input type="checkbox" class="sr-only peer">
|
||||
<div class="w-11 h-6 bg-gray-200 peer-focus:ring-2 peer-focus:ring-blue-300 rounded-full peer peer-checked:after:translate-x-full peer-checked:after:border-white after:content-[''] after:absolute after:top-[2px] after:left-[2px] after:bg-white after:border-gray-300 after:border after:rounded-full after:h-5 after:w-5 after:transition-all peer-checked:bg-blue-600"></div>
|
||||
</label>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<!-- 저장 버튼 -->
|
||||
<div class="mt-6 flex justify-end">
|
||||
<button type="button" class="px-6 py-2.5 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition font-medium">
|
||||
설정 저장
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
26
resources/views/barobill/tax-invoice/index.blade.php
Normal file
26
resources/views/barobill/tax-invoice/index.blade.php
Normal file
@@ -0,0 +1,26 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', '전자세금계산서')
|
||||
|
||||
@section('content')
|
||||
<div class="flex flex-col h-full">
|
||||
<div class="flex flex-col sm:flex-row sm:justify-between sm:items-center gap-4 mb-6">
|
||||
<div>
|
||||
<h1 class="text-2xl font-bold text-gray-800">전자세금계산서</h1>
|
||||
<p class="text-sm text-gray-500 mt-1">전자세금계산서 발행 및 조회</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex-1 flex items-center justify-center">
|
||||
<div class="text-center">
|
||||
<div class="w-24 h-24 bg-purple-100 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<svg class="w-12 h-12 text-purple-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12h6m-6 4h6m2 5H7a2 2 0 01-2-2V5a2 2 0 012-2h5.586a1 1 0 01.707.293l5.414 5.414a1 1 0 01.293.707V19a2 2 0 01-2 2z" />
|
||||
</svg>
|
||||
</div>
|
||||
<h2 class="text-xl font-semibold text-gray-800 mb-2">준비중입니다</h2>
|
||||
<p class="text-gray-500">전자세금계산서 기능이 곧 제공됩니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
26
resources/views/barobill/usage/index.blade.php
Normal file
26
resources/views/barobill/usage/index.blade.php
Normal file
@@ -0,0 +1,26 @@
|
||||
@extends('layouts.app')
|
||||
|
||||
@section('title', '사용량조회')
|
||||
|
||||
@section('content')
|
||||
<div class="flex flex-col h-full">
|
||||
<div class="flex flex-col sm:flex-row sm:justify-between sm:items-center gap-4 mb-6">
|
||||
<div>
|
||||
<h1 class="text-2xl font-bold text-gray-800">사용량조회</h1>
|
||||
<p class="text-sm text-gray-500 mt-1">바로빌 서비스 사용량 조회</p>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="flex-1 flex items-center justify-center">
|
||||
<div class="text-center">
|
||||
<div class="w-24 h-24 bg-indigo-100 rounded-full flex items-center justify-center mx-auto mb-4">
|
||||
<svg class="w-12 h-12 text-indigo-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
|
||||
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" />
|
||||
</svg>
|
||||
</div>
|
||||
<h2 class="text-xl font-semibold text-gray-800 mb-2">준비중입니다</h2>
|
||||
<p class="text-gray-500">사용량조회 기능이 곧 제공됩니다.</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
@endsection
|
||||
@@ -268,7 +268,15 @@
|
||||
|--------------------------------------------------------------------------
|
||||
*/
|
||||
Route::prefix('barobill')->name('barobill.')->group(function () {
|
||||
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('/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', [\App\Http\Controllers\Barobill\BarobillController::class, 'hometax'])->name('hometax.index');
|
||||
Route::get('/usage', [\App\Http\Controllers\Barobill\BarobillController::class, 'usage'])->name('usage.index');
|
||||
// 기존 config 라우트 (호환성)
|
||||
Route::get('/config', [\App\Http\Controllers\Barobill\BarobillController::class, 'config'])->name('config.index');
|
||||
});
|
||||
|
||||
// 대시보드
|
||||
|
||||
Reference in New Issue
Block a user