feat:단체(그룹) 수당 체계 통합 (단체 30%, 유치 3%, 매니저 0%)
- SalesPartner: referrer_partner_id, referrer/referredGroups 관계, isGroup() 헬퍼 - SalesCommission: 유치수당 필드, referrerPartner 관계, 지급 추적 메서드 - SalesCommissionService: 단체/개인 분기 수당 계산 로직 - SalesManagerService: 단체 등록 시 수당률 자동 설정 - SalesManagerController: 유형 선택 및 유치 파트너 지정 기능 - 대시보드: 유치수당 카드 표시 및 합산 - UI: purple 색상 처리 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -84,6 +84,15 @@ private function getDashboardData(Request $request): array
|
||||
: collect();
|
||||
$myCommissionsAsManager = SalesCommission::forManager($currentUserId)->get();
|
||||
|
||||
// 유치수당 계산 (내가 유치 파트너인 건)
|
||||
$myCommissionsAsReferrer = $partnerId
|
||||
? SalesCommission::where('referrer_partner_id', $partnerId)->get()
|
||||
: collect();
|
||||
$referrerCommissionTotal = $myCommissionsAsReferrer->sum('referrer_commission');
|
||||
$referrerCommissionPaid = $myCommissionsAsReferrer->where('status', SalesCommission::STATUS_PAID)->sum('referrer_commission');
|
||||
$referrerCommissionPending = $myCommissionsAsReferrer->where('status', SalesCommission::STATUS_PENDING)->sum('referrer_commission');
|
||||
$referrerCommissionApproved = $myCommissionsAsReferrer->where('status', SalesCommission::STATUS_APPROVED)->sum('referrer_commission');
|
||||
|
||||
// 판매자(영업파트너) 수당 계산
|
||||
$partnerCommissionTotal = $myCommissionsAsPartner->sum('partner_commission');
|
||||
$partnerCommissionPaid = $myCommissionsAsPartner->where('status', SalesCommission::STATUS_PAID)->sum('partner_commission');
|
||||
@@ -102,8 +111,8 @@ private function getDashboardData(Request $request): array
|
||||
|
||||
// 통계 데이터 (실제 데이터)
|
||||
$totalMembershipFee = $myCommissionsAsPartner->sum('payment_amount') + $myCommissionsAsManager->sum('payment_amount');
|
||||
$totalCommission = $partnerCommissionTotal + $managerCommissionTotal;
|
||||
$paidCommission = $partnerCommissionPaid + $managerCommissionPaid;
|
||||
$totalCommission = $partnerCommissionTotal + $managerCommissionTotal + $referrerCommissionTotal;
|
||||
$paidCommission = $partnerCommissionPaid + $managerCommissionPaid + $referrerCommissionPaid;
|
||||
$commissionRate = $totalCommission > 0 ? round(($paidCommission / $totalCommission) * 100, 1) : 0;
|
||||
|
||||
$stats = [
|
||||
@@ -139,9 +148,12 @@ private function getDashboardData(Request $request): array
|
||||
'color' => 'blue',
|
||||
],
|
||||
[
|
||||
'name' => '협업지원금',
|
||||
'rate' => null, // 메뉴당 2,000원
|
||||
'amount' => null, // 개발비 완납 시 계산
|
||||
'name' => '유치수당',
|
||||
'rate' => 3,
|
||||
'amount' => $referrerCommissionTotal,
|
||||
'paid' => $referrerCommissionPaid,
|
||||
'pending' => $referrerCommissionPending,
|
||||
'approved' => $referrerCommissionApproved,
|
||||
'color' => 'purple',
|
||||
],
|
||||
];
|
||||
|
||||
Reference in New Issue
Block a user