diff --git a/app/Http/Controllers/Sales/AdminProspectController.php b/app/Http/Controllers/Sales/AdminProspectController.php index 4360dd7d..ead104c8 100644 --- a/app/Http/Controllers/Sales/AdminProspectController.php +++ b/app/Http/Controllers/Sales/AdminProspectController.php @@ -82,7 +82,7 @@ private function getIndexData(Request $request): array // 영업 역할을 가진 사용자 목록 (영업파트너) $salesPartners = User::whereHas('userRoles', function ($q) { $q->whereHas('role', function ($rq) { - $rq->whereIn('name', ['sales', 'manager', 'recruiter']); + $rq->whereIn('name', ['sales', 'manager']); }); })->orderBy('name')->get(); diff --git a/app/Http/Controllers/Sales/SalesManagerController.php b/app/Http/Controllers/Sales/SalesManagerController.php index 3d0e1e3b..c78ec003 100644 --- a/app/Http/Controllers/Sales/SalesManagerController.php +++ b/app/Http/Controllers/Sales/SalesManagerController.php @@ -261,7 +261,7 @@ public function delegateRole(Request $request, int $id) { $validated = $request->validate([ 'to_user_id' => 'required|exists:users,id', - 'role_name' => 'required|string|in:manager,recruiter', + 'role_name' => 'required|string|in:manager', ]); $fromUser = User::findOrFail($id); @@ -270,7 +270,7 @@ public function delegateRole(Request $request, int $id) try { $this->service->delegateRole($fromUser, $toUser, $validated['role_name']); - $roleLabel = $validated['role_name'] === 'manager' ? '매니저' : '유치담당'; + $roleLabel = '상담매니저'; return redirect()->back() ->with('success', "{$roleLabel} 역할이 {$toUser->name}님에게 위임되었습니다."); } catch (\InvalidArgumentException $e) { @@ -285,13 +285,13 @@ public function delegateRole(Request $request, int $id) public function assignRole(Request $request, int $id) { $validated = $request->validate([ - 'role_name' => 'required|string|in:sales,manager,recruiter', + 'role_name' => 'required|string|in:sales,manager', ]); $partner = User::findOrFail($id); $this->service->assignRole($partner, $validated['role_name']); - $roleLabels = ['sales' => '영업', 'manager' => '매니저', 'recruiter' => '유치담당']; + $roleLabels = ['sales' => '영업파트너', 'manager' => '상담매니저']; return redirect()->back() ->with('success', "{$roleLabels[$validated['role_name']]} 역할이 부여되었습니다."); } @@ -302,13 +302,13 @@ public function assignRole(Request $request, int $id) public function removeRole(Request $request, int $id) { $validated = $request->validate([ - 'role_name' => 'required|string|in:sales,manager,recruiter', + 'role_name' => 'required|string|in:sales,manager', ]); $partner = User::findOrFail($id); $this->service->removeRole($partner, $validated['role_name']); - $roleLabels = ['sales' => '영업', 'manager' => '매니저', 'recruiter' => '유치담당']; + $roleLabels = ['sales' => '영업파트너', 'manager' => '상담매니저']; return redirect()->back() ->with('success', "{$roleLabels[$validated['role_name']]} 역할이 제거되었습니다."); } diff --git a/app/Services/Sales/SalesManagerService.php b/app/Services/Sales/SalesManagerService.php index c111b3e6..d3d1d54d 100644 --- a/app/Services/Sales/SalesManagerService.php +++ b/app/Services/Sales/SalesManagerService.php @@ -19,7 +19,7 @@ class SalesManagerService /** * 영업파트너 역할 이름 목록 */ - public const SALES_ROLES = ['sales', 'manager', 'recruiter']; + public const SALES_ROLES = ['sales', 'manager']; /** * 영업파트너 생성 @@ -510,9 +510,6 @@ public function getStats(?int $parentId = null): array 'manager' => (clone $baseQuery) ->whereHas('userRoles.role', fn($q) => $q->where('name', 'manager')) ->count(), - 'recruiter' => (clone $baseQuery) - ->whereHas('userRoles.role', fn($q) => $q->where('name', 'recruiter')) - ->count(), ]; } diff --git a/database/seeders/SalesRoleSeeder.php b/database/seeders/SalesRoleSeeder.php index 3fc3e9a4..1744bc5b 100644 --- a/database/seeders/SalesRoleSeeder.php +++ b/database/seeders/SalesRoleSeeder.php @@ -20,15 +20,11 @@ public function run(): void $roles = [ [ 'name' => 'sales', - 'description' => '영업 - 가망고객 발굴, 상담, 계약 체결', + 'description' => '영업파트너 - 고객 발굴, 계약 체결', ], [ 'name' => 'manager', - 'description' => '매니저 - 하위 파트너 관리, 실적 취합, 승인 처리', - ], - [ - 'name' => 'recruiter', - 'description' => '유치담당 - 새로운 영업파트너 유치 활동', + 'description' => '상담매니저 - 고객 상담, 인터뷰 정리', ], ]; @@ -45,6 +41,6 @@ public function run(): void ); } - $this->command->info('영업파트너 역할이 생성되었습니다: sales, manager, recruiter'); + $this->command->info('영업파트너 역할이 생성되었습니다: sales, manager'); } } diff --git a/resources/views/sales/managers/approvals.blade.php b/resources/views/sales/managers/approvals.blade.php index 0b177676..2561433e 100644 --- a/resources/views/sales/managers/approvals.blade.php +++ b/resources/views/sales/managers/approvals.blade.php @@ -80,13 +80,11 @@ class="w-full px-4 py-2 border border-gray-300 rounded-lg focus:outline-none foc $roleColor = match($userRole->role->name ?? '') { 'sales' => 'bg-blue-100 text-blue-800', 'manager' => 'bg-purple-100 text-purple-800', - 'recruiter' => 'bg-green-100 text-green-800', default => 'bg-gray-100 text-gray-800', }; $roleLabel = match($userRole->role->name ?? '') { - 'sales' => '영업', - 'manager' => '매니저', - 'recruiter' => '유치담당', + 'sales' => '영업파트너', + 'manager' => '상담매니저', default => $userRole->role->name ?? '-', }; @endphp @@ -177,13 +175,11 @@ class="px-2 py-1 bg-gray-400 hover:bg-gray-500 text-white text-xs font-medium ro $roleColor = match($userRole->role->name ?? '') { 'sales' => 'bg-blue-100 text-blue-800', 'manager' => 'bg-purple-100 text-purple-800', - 'recruiter' => 'bg-green-100 text-green-800', default => 'bg-gray-100 text-gray-800', }; $roleLabel = match($userRole->role->name ?? '') { - 'sales' => '영업', - 'manager' => '매니저', - 'recruiter' => '유치담당', + 'sales' => '영업파트너', + 'manager' => '상담매니저', default => $userRole->role->name ?? '-', }; @endphp diff --git a/resources/views/sales/managers/index.blade.php b/resources/views/sales/managers/index.blade.php index 577c5245..5b3aee2c 100644 --- a/resources/views/sales/managers/index.blade.php +++ b/resources/views/sales/managers/index.blade.php @@ -20,7 +20,7 @@ class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg transition -
+
전체
{{ number_format($stats['total']) }}명
@@ -34,17 +34,13 @@ class="bg-blue-600 hover:bg-blue-700 text-white px-4 py-2 rounded-lg transition
{{ number_format($stats['approved']) }}명
-
영업
+
영업파트너
{{ number_format($stats['sales']) }}명
-
매니저
+
상담매니저
{{ number_format($stats['manager']) }}명
-
-
유치담당
-
{{ number_format($stats['recruiter']) }}명
-
@@ -87,9 +83,8 @@ class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none foc
@@ -135,13 +130,11 @@ class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none foc $roleColor = match($userRole->role->name ?? '') { 'sales' => 'bg-blue-100 text-blue-800', 'manager' => 'bg-purple-100 text-purple-800', - 'recruiter' => 'bg-green-100 text-green-800', default => 'bg-gray-100 text-gray-800', }; $roleLabel = match($userRole->role->name ?? '') { - 'sales' => '영업', - 'manager' => '매니저', - 'recruiter' => '유치담당', + 'sales' => '영업파트너', + 'manager' => '상담매니저', default => $userRole->role->name ?? '-', }; @endphp diff --git a/resources/views/sales/managers/partials/show-modal.blade.php b/resources/views/sales/managers/partials/show-modal.blade.php index c03f17bb..fe4d941e 100644 --- a/resources/views/sales/managers/partials/show-modal.blade.php +++ b/resources/views/sales/managers/partials/show-modal.blade.php @@ -151,11 +151,10 @@ class="w-full px-3 py-2 border border-gray-300 rounded-lg text-sm focus:outline-

역할 관리

@php $currentRoles = $partner->userRoles->pluck('role.name')->toArray(); - $roleLabels = ['sales' => '영업', 'manager' => '매니저', 'recruiter' => '유치담당']; + $roleLabels = ['sales' => '영업파트너', 'manager' => '상담매니저']; $roleColors = [ 'sales' => 'bg-blue-100 text-blue-800 border-blue-200', 'manager' => 'bg-purple-100 text-purple-800 border-purple-200', - 'recruiter' => 'bg-green-100 text-green-800 border-green-200', ]; @endphp
@@ -180,7 +179,7 @@ class="ml-1 text-gray-400 hover:text-red-500"> @endforelse
- @foreach(['sales' => '영업', 'manager' => '매니저', 'recruiter' => '유치담당'] as $roleName => $label) + @foreach(['sales' => '영업파트너', 'manager' => '상담매니저'] as $roleName => $label) @if(!in_array($roleName, $currentRoles))
@csrf @@ -229,13 +228,11 @@ class="text-xs text-blue-600 hover:underline">다운로드 $roleColor = match($userRole->role->name ?? '') { 'sales' => 'bg-blue-100 text-blue-800', 'manager' => 'bg-purple-100 text-purple-800', - 'recruiter' => 'bg-green-100 text-green-800', default => 'bg-gray-100 text-gray-800', }; $roleLabel = match($userRole->role->name ?? '') { - 'sales' => '영업', - 'manager' => '매니저', - 'recruiter' => '유치담당', + 'sales' => '영업파트너', + 'manager' => '상담매니저', default => $userRole->role->name ?? '-', }; @endphp diff --git a/resources/views/sales/managers/show.blade.php b/resources/views/sales/managers/show.blade.php index 0956df2c..8223a702 100644 --- a/resources/views/sales/managers/show.blade.php +++ b/resources/views/sales/managers/show.blade.php @@ -21,13 +21,11 @@ $roleColor = match($userRole->role->name ?? '') { 'sales' => 'bg-blue-100 text-blue-800', 'manager' => 'bg-purple-100 text-purple-800', - 'recruiter' => 'bg-green-100 text-green-800', default => 'bg-gray-100 text-gray-800', }; $roleLabel = match($userRole->role->name ?? '') { - 'sales' => '영업', - 'manager' => '매니저', - 'recruiter' => '유치담당', + 'sales' => '영업파트너', + 'manager' => '상담매니저', default => $userRole->role->name ?? '-', }; @endphp @@ -169,11 +167,10 @@ class="px-4 py-2 bg-red-600 text-white rounded-lg hover:bg-red-700 transition te
@php $currentRoles = $partner->userRoles->pluck('role.name')->toArray(); - $roleLabels = ['sales' => '영업', 'manager' => '매니저', 'recruiter' => '유치담당']; + $roleLabels = ['sales' => '영업파트너', 'manager' => '상담매니저']; $roleColors = [ 'sales' => 'bg-blue-100 text-blue-800 border-blue-200', 'manager' => 'bg-purple-100 text-purple-800 border-purple-200', - 'recruiter' => 'bg-green-100 text-green-800 border-green-200', ]; @endphp @forelse($currentRoles as $roleName) @@ -202,7 +199,7 @@ class="ml-1 text-gray-400 hover:text-red-500">

역할 부여

- @foreach(['sales' => '영업', 'manager' => '매니저', 'recruiter' => '유치담당'] as $roleName => $label) + @foreach(['sales' => '영업파트너', 'manager' => '상담매니저'] as $roleName => $label) @if(!in_array($roleName, $currentRoles)) @csrf @@ -217,8 +214,8 @@ class="px-3 py-1 text-sm border border-gray-300 rounded-full hover:bg-gray-50 tr
- - @if((in_array('manager', $currentRoles) || in_array('recruiter', $currentRoles)) && $delegationCandidates->isNotEmpty()) + + @if(in_array('manager', $currentRoles) && $delegationCandidates->isNotEmpty())

역할 위임

보유 중인 역할을 하위 파트너에게 위임할 수 있습니다. 위임하면 해당 역할이 제거됩니다.

@@ -230,10 +227,7 @@ class="px-3 py-1 text-sm border border-gray-300 rounded-full hover:bg-gray-50 tr
@@ -322,13 +316,11 @@ class="text-sm text-blue-600 hover:underline">다운로드 $roleColor = match($userRole->role->name ?? '') { 'sales' => 'bg-blue-100 text-blue-800', 'manager' => 'bg-purple-100 text-purple-800', - 'recruiter' => 'bg-green-100 text-green-800', default => 'bg-gray-100 text-gray-800', }; $roleLabel = match($userRole->role->name ?? '') { - 'sales' => '영업', - 'manager' => '매니저', - 'recruiter' => '유치담당', + 'sales' => '영업파트너', + 'manager' => '상담매니저', default => $userRole->role->name ?? '-', }; @endphp