diff --git a/app/Http/Controllers/Sales/SalesDashboardController.php b/app/Http/Controllers/Sales/SalesDashboardController.php index e9c92520..011fb592 100644 --- a/app/Http/Controllers/Sales/SalesDashboardController.php +++ b/app/Http/Controllers/Sales/SalesDashboardController.php @@ -658,11 +658,49 @@ private function calculatePartnerSummaryStats(array $partnerIds, int $currentUse // 최종 예상 수당 (확정 + 예상 중 큰 값) $expectedCommission = max($confirmedCommission, $expectedFromFee); + // 지급 완료된 매니저 수당 + $paidManagerCommission = SalesCommission::where('manager_user_id', $currentUserId) + ->whereHas('partner', function ($query) use ($partnerIds) { + $query->whereIn('user_id', $partnerIds); + }) + ->where('status', SalesCommission::STATUS_PAID) + ->sum('manager_commission'); + + // 지급예정 (승인됨) + $scheduledManagerCommission = SalesCommission::where('manager_user_id', $currentUserId) + ->whereHas('partner', function ($query) use ($partnerIds) { + $query->whereIn('user_id', $partnerIds); + }) + ->where('status', SalesCommission::STATUS_APPROVED) + ->sum('manager_commission'); + + // 납입대기 = 총 예상 - 지급완료 - 지급예정 + $pendingManagerCommission = max(0, $expectedCommission - $paidManagerCommission - $scheduledManagerCommission); + + // 1차/2차 분할 (각 50%) + $halfExpected = $expectedCommission / 2; + $halfPending = $pendingManagerCommission / 2; + $halfScheduled = $scheduledManagerCommission / 2; + $halfPaid = $paidManagerCommission / 2; + return [ 'partner_count' => $partnerCount, 'total_prospects' => $totalProspects, 'total_conversions' => $totalConversions, 'expected_commission' => $expectedCommission, + 'paid_commission' => $paidManagerCommission, + 'first_commission' => [ + 'total' => (int)$halfExpected, + 'pending' => (int)$halfPending, + 'scheduled' => (int)$halfScheduled, + 'paid' => (int)$halfPaid, + ], + 'second_commission' => [ + 'total' => (int)$halfExpected, + 'pending' => (int)$halfPending, + 'scheduled' => (int)$halfScheduled, + 'paid' => (int)$halfPaid, + ], ]; } diff --git a/resources/views/sales/dashboard/partials/partner-activity.blade.php b/resources/views/sales/dashboard/partials/partner-activity.blade.php index 9ac87e11..5a9549a5 100644 --- a/resources/views/sales/dashboard/partials/partner-activity.blade.php +++ b/resources/views/sales/dashboard/partials/partner-activity.blade.php @@ -1,61 +1,161 @@ {{-- 유치 파트너 활동 현황 --}} +@php + $first = $summaryStats['first_commission'] ?? ['total' => 0, 'pending' => 0, 'scheduled' => 0, 'paid' => 0]; + $second = $summaryStats['second_commission'] ?? ['total' => 0, 'pending' => 0, 'scheduled' => 0, 'paid' => 0]; + $totalCommissionAmount = $first['total'] + $second['total']; + $totalPending = $first['pending'] + $second['pending']; + $totalScheduled = $first['scheduled'] + $second['scheduled']; + $totalPaid = $first['paid'] + $second['paid']; + $paidPercent = $totalCommissionAmount > 0 ? round(($totalPaid / $totalCommissionAmount) * 100) : 0; +@endphp