수당 시뮬레이터 영업 유형(직접영업/영업사원) 선택 기능 추가 및 계산 로직 반영
This commit is contained in:
@@ -5096,8 +5096,8 @@
|
||||
|
||||
// 1차 선택: 동적 패키지 관리
|
||||
const [selectedPackageIds, setSelectedPackageIds] = useState([]);
|
||||
// 2차 선택: 선택모델의 세부 모델들
|
||||
const [selectedModels, setSelectedModels] = useState([]);
|
||||
const [salesMode, setSalesMode] = useState('direct'); // 'direct' (직접영업) or 'manager' (영업사원 실적관리)
|
||||
|
||||
// DB에서 가격 정보 가져오기
|
||||
useEffect(() => {
|
||||
@@ -5173,7 +5173,8 @@
|
||||
}
|
||||
});
|
||||
|
||||
const totalCommission = totalSellerCommission + totalManagerCommission + totalEducatorCommission;
|
||||
const displayCommission = salesMode === 'direct' ? totalSellerCommission : totalManagerCommission;
|
||||
const totalCommission = displayCommission + totalEducatorCommission;
|
||||
const totalRevenue = totalJoinFee; // 구독료 제거
|
||||
const commissionRate = totalRevenue > 0 ? ((totalCommission / totalRevenue) * 100).toFixed(1) : 0;
|
||||
|
||||
@@ -5271,12 +5272,46 @@
|
||||
<LucideIcon name="help-circle" className="w-5 h-5" />
|
||||
</button>
|
||||
</div>
|
||||
|
||||
<div className="space-y-6">
|
||||
{/* 1차 선택 */}
|
||||
{/* Left Column: Selection */}
|
||||
<div className="space-y-8">
|
||||
{/* 영업 모드 선택 (Radio Buttons) */}
|
||||
<div>
|
||||
<label className="block text-sm font-medium text-slate-700 mb-3">패키지 선택</label>
|
||||
<div className="space-y-3">
|
||||
<label className="block text-sm font-bold text-slate-700 mb-3 flex items-center gap-2">
|
||||
<LucideIcon name="user-check" className="w-4 h-4 text-blue-600" />
|
||||
영업 유형 선택
|
||||
</label>
|
||||
<div className="grid grid-cols-2 gap-3 p-1 bg-slate-100 rounded-xl">
|
||||
<button
|
||||
onClick={() => setSalesMode('direct')}
|
||||
className={`flex items-center justify-center gap-2 py-2.5 rounded-lg text-sm font-bold transition-all ${
|
||||
salesMode === 'direct'
|
||||
? 'bg-white text-blue-600 shadow-sm border-blue-100'
|
||||
: 'text-slate-500 hover:text-slate-700'
|
||||
}`}
|
||||
>
|
||||
<LucideIcon name="user" className="w-4 h-4" />
|
||||
직접영업
|
||||
</button>
|
||||
<button
|
||||
onClick={() => setSalesMode('manager')}
|
||||
className={`flex items-center justify-center gap-2 py-2.5 rounded-lg text-sm font-bold transition-all ${
|
||||
salesMode === 'manager'
|
||||
? 'bg-white text-blue-600 shadow-sm border-blue-100'
|
||||
: 'text-slate-500 hover:text-slate-700'
|
||||
}`}
|
||||
>
|
||||
<LucideIcon name="users" className="w-4 h-4" />
|
||||
영업사원
|
||||
</button>
|
||||
</div>
|
||||
<p className="text-[11px] text-slate-400 mt-2 px-1">
|
||||
* 직접영업: 본인이 직접 계약 시 (판매자 수당 발생)<br/>
|
||||
* 영업사원: 소속 사원이 계약 시 (관리자 수당 발생)
|
||||
</p>
|
||||
</div>
|
||||
|
||||
<div>
|
||||
<label className="block text-sm font-bold text-slate-700 mb-3">패키지 선택</label>
|
||||
<div className="space-y-3">
|
||||
{packageTypes.map(pkg => {
|
||||
if (pkg.id === 'select_models') {
|
||||
@@ -5334,7 +5369,6 @@
|
||||
}
|
||||
})}
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
{/* 2차 선택: 선택모델의 세부 모델들 */}
|
||||
@@ -5403,14 +5437,27 @@
|
||||
<span className="text-slate-600">총 가입비</span>
|
||||
<span className="font-bold text-slate-900">{formatCurrency(totalRevenue)}</span>
|
||||
</div>
|
||||
<div className="flex justify-between items-center p-3 bg-slate-50 rounded-lg">
|
||||
<span className="text-slate-600">판매자 수당 (20%)</span>
|
||||
<span className="font-bold text-slate-900">{formatCurrency(totalSellerCommission)}</span>
|
||||
</div>
|
||||
<div className="flex justify-between items-center p-3 bg-slate-50 rounded-lg">
|
||||
<span className="text-slate-600">관리자 수당 (5%)</span>
|
||||
<span className="font-bold text-slate-900">{formatCurrency(totalManagerCommission)}</span>
|
||||
</div>
|
||||
|
||||
{salesMode === 'direct' && (
|
||||
<div className="flex justify-between items-center p-3 bg-blue-50/50 rounded-lg border border-blue-100/50">
|
||||
<span className="text-slate-600 font-medium text-sm flex items-center gap-2">
|
||||
<span className="w-2 h-2 bg-blue-500 rounded-full"></span>
|
||||
판매자 수당 (20%)
|
||||
</span>
|
||||
<span className="font-bold text-blue-700">{formatCurrency(totalSellerCommission)}</span>
|
||||
</div>
|
||||
)}
|
||||
|
||||
{salesMode === 'manager' && (
|
||||
<div className="flex justify-between items-center p-3 bg-indigo-50/50 rounded-lg border border-indigo-100/50">
|
||||
<span className="text-slate-600 font-medium text-sm flex items-center gap-2">
|
||||
<span className="w-2 h-2 bg-indigo-500 rounded-full"></span>
|
||||
관리자 수당 (5%)
|
||||
</span>
|
||||
<span className="font-bold text-indigo-700">{formatCurrency(totalManagerCommission)}</span>
|
||||
</div>
|
||||
)}
|
||||
|
||||
<div className="flex justify-between items-center p-3 bg-slate-50 rounded-lg">
|
||||
<span className="text-slate-600">메뉴제작 협업수당</span>
|
||||
<span className="font-bold text-slate-900">운영팀 별도 산정</span>
|
||||
|
||||
Reference in New Issue
Block a user