매니저 수익 로직 변경: 비율(%) 제거하고 1개월 구독료 전액 지급으로 확정 (익월 말일 지급 기준 반영)

This commit is contained in:
2026-01-04 20:23:18 +09:00
parent da9b0445f7
commit 6ebb692000
2 changed files with 13 additions and 13 deletions

View File

@@ -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' => '계약 정보가 수정되었습니다.']);

View File

@@ -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>