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:
김보곤
2026-02-19 13:14:36 +09:00
parent 54dcd610bf
commit e63b6f1512
4 changed files with 116 additions and 1 deletions

View File

@@ -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,
]);
}
/**
* 수당 날짜 삭제 (초기화)
*/