feat:영업파트너 고객관리에 협업지원금 수동 입력 기능 추가
- 개인 파트너: 협업지원금 금액 수정 가능한 number input 추가 - 단체 파트너: "-" 표시 (자동계산 3% 고정, 수동 수정 불가) - AdminProspectController에 updateReferrerCommission 메서드 추가 - firstOrCreate에 referrer_rate, referrer_commission 필드 추가 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -149,8 +149,10 @@ private function getIndexData(Request $request): array
|
||||
if ($management) {
|
||||
$commission = SalesCommission::where('management_id', $management->id)->first();
|
||||
$prospect->commission = $commission;
|
||||
$prospect->partner_type = $management->salesPartner?->partner_type ?? 'individual';
|
||||
} else {
|
||||
$prospect->commission = null;
|
||||
$prospect->partner_type = 'individual';
|
||||
}
|
||||
}
|
||||
|
||||
@@ -194,8 +196,10 @@ private function getIndexData(Request $request): array
|
||||
if ($management) {
|
||||
$commission = SalesCommission::where('management_id', $management->id)->first();
|
||||
$prospect->commission = $commission;
|
||||
$prospect->partner_type = $management->salesPartner?->partner_type ?? 'individual';
|
||||
} else {
|
||||
$prospect->commission = null;
|
||||
$prospect->partner_type = 'individual';
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -288,6 +292,8 @@ public function updateCommissionDate(int $id, Request $request)
|
||||
'manager_rate' => 0,
|
||||
'partner_commission' => 0,
|
||||
'manager_commission' => 0,
|
||||
'referrer_rate' => 3,
|
||||
'referrer_commission' => 0,
|
||||
'scheduled_payment_date' => now()->addMonth()->day(10),
|
||||
'status' => SalesCommission::STATUS_PENDING,
|
||||
'partner_id' => $management->sales_partner_id ?? 0,
|
||||
@@ -391,6 +397,61 @@ public function destroy(int $id)
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 협업지원금(referrer_commission) 금액 수정
|
||||
*/
|
||||
public function updateReferrerCommission(int $id, Request $request)
|
||||
{
|
||||
$this->checkAdminAccess();
|
||||
|
||||
$request->validate([
|
||||
'amount' => 'required|numeric|min:0',
|
||||
]);
|
||||
|
||||
$prospect = TenantProspect::findOrFail($id);
|
||||
$management = SalesTenantManagement::findOrCreateByProspect($prospect->id);
|
||||
|
||||
// 단체 파트너는 수동 수정 불가
|
||||
$partner = $management->salesPartner;
|
||||
if ($partner && $partner->isGroup()) {
|
||||
return response()->json([
|
||||
'success' => false,
|
||||
'message' => '단체 파트너는 협업지원금을 수동 변경할 수 없습니다.',
|
||||
], 422);
|
||||
}
|
||||
|
||||
// Commission 레코드 조회 또는 생성
|
||||
$commission = SalesCommission::firstOrCreate(
|
||||
['management_id' => $management->id],
|
||||
[
|
||||
'tenant_id' => $prospect->tenant_id ?? 1,
|
||||
'payment_type' => 'deposit',
|
||||
'payment_amount' => 0,
|
||||
'payment_date' => now(),
|
||||
'base_amount' => 0,
|
||||
'partner_rate' => 0,
|
||||
'manager_rate' => 0,
|
||||
'partner_commission' => 0,
|
||||
'manager_commission' => 0,
|
||||
'referrer_rate' => 3,
|
||||
'referrer_commission' => 0,
|
||||
'scheduled_payment_date' => now()->addMonth()->day(10),
|
||||
'status' => SalesCommission::STATUS_PENDING,
|
||||
'partner_id' => $management->sales_partner_id ?? 0,
|
||||
'manager_user_id' => $management->manager_user_id,
|
||||
]
|
||||
);
|
||||
|
||||
$commission->update([
|
||||
'referrer_commission' => $request->input('amount'),
|
||||
]);
|
||||
|
||||
return response()->json([
|
||||
'success' => true,
|
||||
'amount' => (int) $commission->referrer_commission,
|
||||
]);
|
||||
}
|
||||
|
||||
/**
|
||||
* 수당 날짜 삭제 (초기화)
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user