feat:단체(Corporate) 파트너 UI 접근 제한 구현

- User 모델에 isGroupPartner() 헬퍼 추가
- 대시보드에서 단체 파트너는 판매자 카드만 표시 (관리자/협업지원금 카드 제외)
- 유치 파트너 현황 탭 단체 파트너에게 숨김
- 파트너 등록 create/store 접근 차단 (403)
- 파트너 목록에서 등록 버튼 숨김
- SidebarMenuService에 hide_for_group_partner 옵션 기반 메뉴 필터링 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-02-19 08:00:58 +09:00
parent 28c6c40f54
commit 81bcd617fe
7 changed files with 42 additions and 7 deletions

View File

@@ -139,7 +139,10 @@ private function getDashboardData(Request $request): array
'approved' => $partnerCommissionApproved,
'color' => 'green',
],
[
];
if (!$isGroupPartner) {
$commissionByRole[] = [
'name' => '관리자',
'rate' => null, // 1개월 구독료 (퍼센트가 아닌 고정 금액)
'rate_label' => '1개월 구독료',
@@ -148,8 +151,8 @@ private function getDashboardData(Request $request): array
'pending' => $managerCommissionPending,
'approved' => $managerCommissionApproved,
'color' => 'blue',
],
[
];
$commissionByRole[] = [
'name' => '협업지원금',
'rate' => 3,
'amount' => $referrerCommissionTotal,
@@ -157,8 +160,8 @@ private function getDashboardData(Request $request): array
'pending' => $referrerCommissionPending,
'approved' => $referrerCommissionApproved,
'color' => 'purple',
],
];
];
}
// === 인계(handover) 완료된 가망고객의 수당 계산 ===
// 내가 등록한 가망고객 중 인계 완료된 것들의 계약 금액 조회
@@ -199,7 +202,9 @@ private function getDashboardData(Request $request): array
// 역할별 수당 업데이트 (실제 지급된 수당 기준)
// 참고: 예상 수당은 나중에 $totalExpectedCommission으로 별도 계산됨
$commissionByRole[0]['amount'] = $partnerCommissionTotal;
$commissionByRole[1]['amount'] = $managerCommissionTotal;
if (!$isGroupPartner) {
$commissionByRole[1]['amount'] = $managerCommissionTotal;
}
// 총 개발비 대비 수당 비율
$totalCommissionRatio = $totalMembershipFee > 0 ? round(($totalCommission / $totalMembershipFee) * 100, 1) : 0;
@@ -345,6 +350,7 @@ private function getDashboardData(Request $request): array
'allManagers',
'managerOnlyProspects',
'commissionSummary',
'isGroupPartner',
'period',
'year',
'month',