매니저 수익 로직 변경: 비율(%) 제거하고 1개월 구독료 전액 지급으로 확정 (익월 말일 지급 기준 반영)
This commit is contained in:
@@ -316,10 +316,10 @@ try {
|
||||
|
||||
if (!$tenant_id || !$product_name) throw new Exception("필수 정보가 누락되었습니다.");
|
||||
|
||||
$commission_amount = ($contract_amount * $commission_rate) / 100;
|
||||
$commission_amount = $contract_amount; // 매니저 수익은 1개월치 구독료 전액 (100%)
|
||||
|
||||
$stmt = $pdo->prepare("INSERT INTO sales_tenant_products (tenant_id, product_name, contract_amount, commission_rate, commission_amount, contract_date, sub_models) VALUES (?, ?, ?, ?, ?, ?, ?)");
|
||||
$stmt->execute([$tenant_id, $product_name, $contract_amount, $commission_rate, $commission_amount, $contract_date, $sub_models]);
|
||||
$stmt->execute([$tenant_id, $product_name, $contract_amount, 100, $commission_amount, $contract_date, $sub_models]);
|
||||
|
||||
echo json_encode(['success' => true, 'message' => '상품 계약 정보가 등록되었습니다.']);
|
||||
|
||||
@@ -574,10 +574,10 @@ try {
|
||||
$contract_date = $data['contract_date'] ?? date('Y-m-d');
|
||||
$sub_models = isset($data['sub_models']) ? json_encode($data['sub_models']) : null;
|
||||
|
||||
$commission_amount = ($contract_amount * $commission_rate) / 100;
|
||||
$commission_amount = $contract_amount; // 매니저 수익은 1개월치 구독료 전액 (100%)
|
||||
|
||||
$stmt = $pdo->prepare("UPDATE sales_tenant_products SET product_name = ?, contract_amount = ?, commission_rate = ?, commission_amount = ?, contract_date = ?, sub_models = ? WHERE id = ?");
|
||||
$stmt->execute([$product_name, $contract_amount, $commission_rate, $commission_amount, $contract_date, $sub_models, $product_id]);
|
||||
$stmt->execute([$product_name, $contract_amount, 100, $commission_amount, $contract_date, $sub_models, $product_id]);
|
||||
|
||||
echo json_encode(['success' => true, 'message' => '계약 정보가 수정되었습니다.']);
|
||||
|
||||
|
||||
@@ -2920,7 +2920,7 @@
|
||||
sales_manager_id: currentUser ? currentUser.id : ''
|
||||
});
|
||||
const [productFormData, setProductFormData] = useState({
|
||||
product_name: '', contract_amount: '', commission_rate: '20', contract_date: new Date().toISOString().split('T')[0]
|
||||
product_name: '', contract_amount: '', commission_rate: '100', contract_date: new Date().toISOString().split('T')[0]
|
||||
});
|
||||
|
||||
const fillRandomTenantData = () => {
|
||||
@@ -3277,7 +3277,7 @@
|
||||
</div>
|
||||
</div>
|
||||
<div className="text-2xl font-bold text-emerald-900 mb-1">{formatCurrency(stats.confirmed_commission)}</div>
|
||||
<div className="text-xs text-emerald-600 font-medium">운영팀 승인 완료된 금액</div>
|
||||
<div className="text-xs text-emerald-600 font-medium">운영팀 승인 완료된 금액 (지급: 계약 익월 말일)</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
@@ -3487,7 +3487,7 @@
|
||||
<tr>
|
||||
<th className="px-4 py-2">상품명</th>
|
||||
<th className="px-4 py-2 text-right">계약금액</th>
|
||||
<th className="px-4 py-2 text-center">수수료율</th>
|
||||
<th className="px-4 py-2 text-center">수익기준</th>
|
||||
<th className="px-4 py-2 text-right text-blue-600">내 수익</th>
|
||||
<th className="px-4 py-2 text-center">계약일</th>
|
||||
<th className="px-4 py-2 text-center">운영팀 승인</th>
|
||||
@@ -3503,7 +3503,7 @@
|
||||
<tr key={p.id} className="hover:bg-slate-50 transition-colors">
|
||||
<td className="px-4 py-3 font-medium text-slate-800">{p.product_name}</td>
|
||||
<td className="px-4 py-3 text-right text-slate-600 font-mono">{formatCurrency(p.contract_amount)}</td>
|
||||
<td className="px-4 py-3 text-center text-slate-500">{p.commission_rate}%</td>
|
||||
<td className="px-4 py-3 text-center text-slate-500">1개월분</td>
|
||||
<td className="px-4 py-3 text-right font-bold text-blue-600 font-mono">{formatCurrency(p.commission_amount)}</td>
|
||||
<td className="px-4 py-3 text-center text-slate-400">{p.contract_date}</td>
|
||||
<td className="px-4 py-3 text-center">
|
||||
@@ -3700,7 +3700,7 @@
|
||||
...productFormData,
|
||||
product_name: pkg.name,
|
||||
contract_amount: dbPrice.join_fee,
|
||||
commission_rate: '20' // 기본 20%
|
||||
commission_rate: '100' // 1개월치 전액
|
||||
});
|
||||
setSelectedSubModels([]);
|
||||
} else {
|
||||
@@ -3708,7 +3708,7 @@
|
||||
...productFormData,
|
||||
product_name: '선택모델 하이브리드',
|
||||
contract_amount: 0,
|
||||
commission_rate: '20'
|
||||
commission_rate: '100'
|
||||
});
|
||||
}
|
||||
}}
|
||||
@@ -3792,8 +3792,8 @@
|
||||
</div>
|
||||
<div className="grid grid-cols-2 gap-4">
|
||||
<div>
|
||||
<label className="block text-xs font-bold text-slate-500 mb-1">수수료율 (%)</label>
|
||||
<input type="number" value={productFormData.commission_rate} onChange={e => setProductFormData({...productFormData, commission_rate: e.target.value})} className="w-full px-3 py-2 border border-slate-200 rounded-lg outline-none focus:ring-2 focus:ring-blue-500" />
|
||||
<label className="block text-xs font-bold text-slate-500 mb-1">수익 기준</label>
|
||||
<div className="w-full px-3 py-2 bg-slate-100 border border-slate-200 rounded-lg text-slate-500 text-sm font-medium">1개월 구독료 (100%)</div>
|
||||
</div>
|
||||
<div>
|
||||
<label className="block text-xs font-bold text-slate-500 mb-1">계약일</label>
|
||||
@@ -3803,7 +3803,7 @@
|
||||
<div className="p-3 bg-indigo-50 rounded-lg border border-indigo-100 flex justify-between items-center">
|
||||
<span className="text-xs font-bold text-indigo-700">예상 내 수익:</span>
|
||||
<span className="text-lg font-black text-indigo-900">
|
||||
{formatCurrency((productFormData.contract_amount || 0) * (productFormData.commission_rate || 0) / 100)}
|
||||
{formatCurrency((productFormData.contract_amount || 0))}
|
||||
</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
Reference in New Issue
Block a user