diff --git a/app/Http/Controllers/Sales/PriceSimulatorController.php b/app/Http/Controllers/Sales/PriceSimulatorController.php new file mode 100644 index 00000000..b11aa3b3 --- /dev/null +++ b/app/Http/Controllers/Sales/PriceSimulatorController.php @@ -0,0 +1,35 @@ +header('HX-Request')) { + return response('', 200)->header('HX-Redirect', route('sales.price-simulator.index')); + } + + $categories = SalesProductCategory::active() + ->ordered() + ->with(['products' => fn ($q) => $q->active()->ordered()]) + ->get(); + + return view('sales.price-simulator.index', compact('categories')); + } +} diff --git a/resources/views/sales/price-simulator/index.blade.php b/resources/views/sales/price-simulator/index.blade.php new file mode 100644 index 00000000..d70b23b2 --- /dev/null +++ b/resources/views/sales/price-simulator/index.blade.php @@ -0,0 +1,483 @@ +@extends('layouts.app') + +@section('title', '가격 시뮬레이터') + +@section('content') +
+ + {{-- 헤더 --}} +
+
+
+ + + +
+
+

가격 시뮬레이터

+

상품 조합별 예상 비용과 수당을 실시간으로 확인합니다

+
+
+
+ +
+
+ +
+ {{-- 좌측: 상품 선택 영역 --}} +
+ {{-- 가입유형 선택 --}} +
+

가입 유형

+
+ + +
+ {{-- 유치파트너(협업지원금) 토글 --}} + +
+ + {{-- 카테고리별 상품 목록 --}} + @foreach($categories as $category) +
+
+
+

{{ $category->name }}

+

기본 제공: {{ $category->base_storage }}

+
+ + {{ $category->products->count() }}개 상품 + +
+
+ @foreach($category->products as $product) +
+
+ {{-- 체크박스 --}} + +
+
+ {{ $product->name }} + @if($product->is_required) + 필수 + @endif + @if($product->allow_flexible_pricing) + 재량권 + @endif +
+ @if($product->description) +

{{ $product->description }}

+ @endif +
+ 개발비: {{ number_format($product->development_fee) }}원 + 가입비: {{ number_format($product->registration_fee) }}원 + 구독료: {{ number_format($product->subscription_fee) }}원/월 +
+ + {{-- 선택 시 가격 조정 슬라이더 --}} + +
+
+
+ @endforeach +
+
+ @endforeach +
+ + {{-- 우측: 시뮬레이션 결과 패널 (sticky) --}} +
+ {{-- 고객 비용 요약 --}} +
+
+

고객 비용 요약

+

선택한 상품 기준 예상 비용

+
+
+ {{-- 선택 상품 수 --}} +
+ 선택 상품 + +
+ +
+ {{-- 개발비 원가 합계 --}} +
+ 개발비 (원가) + +
+ {{-- 적용 가입비 합계 --}} +
+ 가입비 (적용가) + +
+ {{-- 할인율 --}} +
+ 할인율 + +
+
+ +
+ {{-- 월 구독료 --}} +
+ 월 구독료 + +
+ {{-- 연 구독료 --}} +
+ 연 구독료 + +
+
+ + {{-- 총 1년 비용 --}} +
+
+ 1년차 총 비용 + +
+

가입비 + 12개월 구독료 (VAT 별도)

+
+
+
+ + {{-- 수당 시뮬레이션 --}} +
+
+

수당 시뮬레이션

+

+ 기준 +

+
+
+ {{-- 수당 기준액 --}} +
+ 수당 기준액 (가입비) + +
+ +
+ {{-- 영업파트너 수당 --}} +
+
+ + +
+
+ + +
+
+ {{-- 매니저 수당 --}} +
+
+ + 매니저 수당 +
+
+ + +
+
+ {{-- 유치 수당 --}} +
+
+ + 협업지원금 (유치) +
+
+ + (3%) +
+
+
+ + {{-- 총 수당 / 본사 수익 --}} +
+
+ 총 수당 지급 + +
+
+ 본사 순수익 + +
+
+ 본사 마진율 + +
+
+
+
+ + {{-- 선택 상품 내역 --}} +
+
+

선택 상품 내역

+
+
+ +
+
+
+
+
+ +@push('scripts') + +@endpush +@endsection diff --git a/routes/web.php b/routes/web.php index 8da781ad..f2ce9bc5 100644 --- a/routes/web.php +++ b/routes/web.php @@ -69,6 +69,7 @@ use App\Http\Controllers\RoadmapController; use App\Http\Controllers\RoleController; use App\Http\Controllers\RolePermissionController; +use App\Http\Controllers\Sales\PriceSimulatorController; use App\Http\Controllers\Sales\SalesProductController; use App\Http\Controllers\Stats\StatDashboardController; use App\Http\Controllers\System\AiConfigController; @@ -1668,6 +1669,9 @@ // 매니저 목록/검색은 리소스 라우트 앞에 정의됨 (912줄 위치) + // 가격 시뮬레이터 + Route::get('price-simulator', [PriceSimulatorController::class, 'index'])->name('price-simulator.index'); + // 상품관리 (HQ 전용) Route::prefix('products')->name('products.')->group(function () { Route::get('/', [SalesProductController::class, 'index'])->name('index');