diff --git a/app/Http/Controllers/Finance/SettlementController.php b/app/Http/Controllers/Finance/SettlementController.php index d2f77d4d..7b9a0ac1 100644 --- a/app/Http/Controllers/Finance/SettlementController.php +++ b/app/Http/Controllers/Finance/SettlementController.php @@ -32,30 +32,41 @@ public function index(Request $request): View|Response $initialTab = $request->input('tab', 'commission'); - // 수당 정산 탭 데이터 (기간 범위 방식) - $year = (int) $request->input('start_year', now()->year); - $month = (int) $request->input('start_month', now()->month); - $endYear = (int) $request->input('end_year', $year); - $endMonth = (int) $request->input('end_month', $month); + // 수당 정산 탭 데이터 (기본 탭이므로 즉시 로드) + $year = $request->input('year', now()->year); + $month = $request->input('month', now()->month); + $dateRange = $request->boolean('date_range'); $filters = [ - 'scheduled_start_year' => $year, - 'scheduled_start_month' => $month, - 'scheduled_end_year' => $endYear, - 'scheduled_end_month' => $endMonth, - 'start_year' => $year, - 'start_month' => $month, - 'end_year' => $endYear, - 'end_month' => $endMonth, 'status' => $request->input('status'), 'payment_type' => $request->input('payment_type'), 'partner_id' => $request->input('partner_id'), 'commission_type' => $request->input('commission_type'), 'search' => $request->input('search'), + 'date_range' => $dateRange, ]; + if ($dateRange) { + $filters['scheduled_start_year'] = (int) $request->input('start_year', $year); + $filters['scheduled_start_month'] = (int) $request->input('start_month', $month); + $filters['scheduled_end_year'] = (int) $request->input('end_year', $year); + $filters['scheduled_end_month'] = (int) $request->input('end_month', $month); + $filters['start_year'] = $filters['scheduled_start_year']; + $filters['start_month'] = $filters['scheduled_start_month']; + $filters['end_year'] = $filters['scheduled_end_year']; + $filters['end_month'] = $filters['scheduled_end_month']; + } else { + $filters['scheduled_year'] = $year; + $filters['scheduled_month'] = $month; + } + $commissions = $this->service->getCommissions($filters); - $stats = $this->service->getSettlementStatsForRange($year, $month, $endYear, $endMonth); + $stats = $dateRange + ? $this->service->getSettlementStatsForRange( + $filters['scheduled_start_year'], $filters['scheduled_start_month'], + $filters['scheduled_end_year'], $filters['scheduled_end_month'] + ) + : $this->service->getSettlementStats($year, $month); $partners = SalesPartner::with('user') ->active() @@ -85,11 +96,9 @@ public function index(Request $request): View|Response */ public function commissionStats(Request $request): View { - $year = (int) $request->input('start_year', now()->year); - $month = (int) $request->input('start_month', now()->month); - $endYear = (int) $request->input('end_year', $year); - $endMonth = (int) $request->input('end_month', $month); - $stats = $this->service->getSettlementStatsForRange($year, $month, $endYear, $endMonth); + $year = $request->input('year', now()->year); + $month = $request->input('month', now()->month); + $stats = $this->service->getSettlementStats($year, $month); return view('finance.settlement.partials.commission.stats-cards', compact('stats', 'year', 'month')); } @@ -99,23 +108,29 @@ public function commissionStats(Request $request): View */ public function commissionTable(Request $request): View { - $year = (int) $request->input('start_year', now()->year); - $month = (int) $request->input('start_month', now()->month); - $endYear = (int) $request->input('end_year', $year); - $endMonth = (int) $request->input('end_month', $month); + $year = $request->input('year', now()->year); + $month = $request->input('month', now()->month); + $dateRange = $request->boolean('date_range'); $filters = [ - 'scheduled_start_year' => $year, - 'scheduled_start_month' => $month, - 'scheduled_end_year' => $endYear, - 'scheduled_end_month' => $endMonth, 'status' => $request->input('status'), 'payment_type' => $request->input('payment_type'), 'partner_id' => $request->input('partner_id'), 'commission_type' => $request->input('commission_type'), 'search' => $request->input('search'), + 'date_range' => $dateRange, ]; + if ($dateRange) { + $filters['scheduled_start_year'] = (int) $request->input('start_year', $year); + $filters['scheduled_start_month'] = (int) $request->input('start_month', $month); + $filters['scheduled_end_year'] = (int) $request->input('end_year', $year); + $filters['scheduled_end_month'] = (int) $request->input('end_month', $month); + } else { + $filters['scheduled_year'] = $year; + $filters['scheduled_month'] = $month; + } + $commissions = $this->service->getCommissions($filters); return view('finance.settlement.partials.commission.table', compact('commissions')); diff --git a/resources/views/finance/settlement/partials/commission/filters.blade.php b/resources/views/finance/settlement/partials/commission/filters.blade.php index 641370f4..e9840f13 100644 --- a/resources/views/finance/settlement/partials/commission/filters.blade.php +++ b/resources/views/finance/settlement/partials/commission/filters.blade.php @@ -1,41 +1,69 @@ {{-- 수당 정산 필터 --}} -
+
-
- {{-- 시작 기간 --}} -
-
- - + 기간설정 + +
+ + {{-- 단일 년/월 (기본) --}} +
+
+ +
-
- @for ($m = 1; $m <= 12; $m++) - + @endfor
- ~ - - {{-- 종료 기간 --}} -
-
- - + @for ($y = now()->year - 2; $y <= now()->year + 1; $y++) + + @endfor + +
+
+ + +
+ ~ +
+ +
-
- @for ($m = 1; $m <= 12; $m++) @endfor @@ -43,12 +71,9 @@
-
- - {{-- 상태 --}} -
- - @@ -57,20 +82,18 @@
- {{-- 입금구분 --}} -
- -
- {{-- 영업파트너 --}} -
- - @foreach ($partners as $partner)
- {{-- 조회 / 초기화 --}} -
+
+ class="px-3 py-2 bg-gray-200 hover:bg-gray-300 text-gray-700 text-sm rounded-lg transition-colors"> 초기화
+ +