diff --git a/app/Http/Controllers/Sales/SalesManagerController.php b/app/Http/Controllers/Sales/SalesManagerController.php index 0b690ee7..1ad4d605 100644 --- a/app/Http/Controllers/Sales/SalesManagerController.php +++ b/app/Http/Controllers/Sales/SalesManagerController.php @@ -196,6 +196,7 @@ public function update(Request $request, int $id) 'password' => 'nullable|string|min:4|confirmed', 'role_ids' => 'required|array|min:1', 'role_ids.*' => 'exists:roles,id', + 'partner_type' => 'nullable|in:individual,corporate', 'company_name' => 'nullable|string|max:100', 'biz_no' => 'nullable|string|max:20', 'address' => 'nullable|string|max:255', diff --git a/app/Services/Sales/SalesManagerService.php b/app/Services/Sales/SalesManagerService.php index dbee9ecd..4b44d543 100644 --- a/app/Services/Sales/SalesManagerService.php +++ b/app/Services/Sales/SalesManagerService.php @@ -123,13 +123,27 @@ public function updateSalesPartner(User $user, array $data, array $documents = [ $hasBizInfo = !empty($data['company_name']) || !empty($data['biz_no']) || !empty($data['address']); $existingSp = SalesPartner::where('user_id', $user->id)->first(); - if ($hasBizInfo || $existingSp) { + $hasPartnerType = !empty($data['partner_type']); + if ($hasBizInfo || $existingSp || $hasPartnerType) { $sp = $existingSp ?? new SalesPartner(['user_id' => $user->id]); if (!$sp->exists) { $sp->partner_code = SalesPartner::generatePartnerCode(); - $sp->partner_type = 'individual'; + $sp->partner_type = $data['partner_type'] ?? 'individual'; $sp->status = 'active'; } + // 승인 전에만 파트너 유형 변경 허용 + if ($hasPartnerType && $user->approval_status === 'pending') { + $newType = $data['partner_type']; + $sp->partner_type = $newType; + // 단체 → 수당률 설정, 개인 → 수당률 초기화 + if ($newType === 'corporate') { + $sp->commission_rate = 30.00; + $sp->manager_commission_rate = 0; + } else { + $sp->commission_rate = $sp->getOriginal('commission_rate') ?? null; + $sp->manager_commission_rate = $sp->getOriginal('manager_commission_rate') ?? null; + } + } $sp->company_name = $data['company_name'] ?? null; $sp->biz_no = $data['biz_no'] ?? null; $sp->address = $data['address'] ?? null; diff --git a/resources/views/sales/managers/partials/edit-modal.blade.php b/resources/views/sales/managers/partials/edit-modal.blade.php index 05980ac6..e5882c34 100644 --- a/resources/views/sales/managers/partials/edit-modal.blade.php +++ b/resources/views/sales/managers/partials/edit-modal.blade.php @@ -92,6 +92,36 @@ class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:outline-none foc + +