refactor:용어 변경 - 가입비 → 개발비

영업 관련 코드 및 문서 전체에서 "가입비"를 "개발비"로 변경
- 컨트롤러, 서비스, 모델
- 뷰 템플릿 (blade 파일)
- 가이드북 문서 (마크다운)
- 설정 파일

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-02-03 16:20:09 +09:00
parent 4c5a80b456
commit 12c6175470
18 changed files with 67 additions and 67 deletions

View File

@@ -75,7 +75,7 @@ public function saveProducts(Request $request): JsonResponse
]);
}
// 총 가입비 업데이트
// 총 개발비 업데이트
$totalRegistrationFee = SalesContractProduct::where('management_id', $management->id)
->sum('registration_fee');
$management->update(['total_registration_fee' => $totalRegistrationFee]);

View File

@@ -107,7 +107,7 @@ private function getDashboardData(Request $request): array
$commissionRate = $totalCommission > 0 ? round(($paidCommission / $totalCommission) * 100, 1) : 0;
$stats = [
'total_membership_fee' => $totalMembershipFee, // 총 가입
'total_membership_fee' => $totalMembershipFee, // 총 개발
'total_commission' => $totalCommission, // 총 수당
'commission_rate' => $commissionRate, // 지급 완료 비율
'total_contracts' => $totalContracts, // 전체 건수
@@ -141,7 +141,7 @@ private function getDashboardData(Request $request): array
[
'name' => '협업지원금',
'rate' => null, // 메뉴당 2,000원
'amount' => null, // 가입비 완납 시 계산
'amount' => null, // 개발비 완납 시 계산
'color' => 'purple',
],
];
@@ -157,12 +157,12 @@ private function getDashboardData(Request $request): array
->where('hq_status', SalesTenantManagement::HQ_STATUS_HANDOVER)
->get();
// 인계 완료된 계약의 가입비 합계
// 인계 완료된 계약의 개발비 합계
$handoverManagementIds = $handoverManagements->pluck('id')->toArray();
$handoverTotalRegFee = SalesContractProduct::whereIn('management_id', $handoverManagementIds)
->sum('registration_fee');
// 수당 계산: 가입× 50% × 20% = 가입× 10%
// 수당 계산: 개발× 50% × 20% = 개발× 10%
$handoverPartnerCommission = (int)($handoverTotalRegFee * 0.10);
// 내가 매니저로 지정된 인계 완료 건의 수당 계산
@@ -185,7 +185,7 @@ private function getDashboardData(Request $request): array
$commissionByRole[0]['amount'] = $partnerCommissionTotal;
$commissionByRole[1]['amount'] = $managerCommissionTotal;
// 총 가입비 대비 수당 비율
// 총 개발비 대비 수당 비율
$totalCommissionRatio = $totalMembershipFee > 0 ? round(($totalCommission / $totalMembershipFee) * 100, 1) : 0;
// 1) 내가 등록한 가망고객에서 전환된 tenant_id (20% 수당)
@@ -231,7 +231,7 @@ private function getDashboardData(Request $request): array
$tenantStats = [
'total_tenants' => count($convertedTenantIds) + $handoverProspectCount, // 관리 테넌트 + 인계완료
'total_prospects' => $prospects->count(), // 진행중 가망고객
'total_membership_revenue' => $totalMembershipFee, // 총 가입비 실적
'total_membership_revenue' => $totalMembershipFee, // 총 개발비 실적
'total_commission_accumulated' => $totalCommission, // 누적 수당
'confirmed_commission' => $paidCommission, // 확정(지급완료) 수당
];
@@ -257,7 +257,7 @@ private function getDashboardData(Request $request): array
->toArray();
$devInProgressRegFee = SalesContractProduct::whereIn('management_id', $devInProgressManagementIds)
->sum('registration_fee');
$expectedFromDevInProgress = (int)($devInProgressRegFee * 0.10); // 가입× 10%
$expectedFromDevInProgress = (int)($devInProgressRegFee * 0.10); // 개발× 10%
// 2) 인계 완료 중 지급 미완료 건
$handoverUnpaidRegFee = SalesContractProduct::whereIn('management_id', $handoverManagementIds)
@@ -614,11 +614,11 @@ private function calculatePartnerSummaryStats(array $partnerIds, int $currentUse
// 하위 파트너들이 등록한 총 영업권(명함) 수
$totalProspects = TenantProspect::whereIn('registered_by', $partnerIds)->count();
// 예상 수당 계산을 위해 먼저 가입비/구독료 정보 조회
// 예상 수당 계산을 위해 먼저 개발비/구독료 정보 조회
$prospectIds = TenantProspect::whereIn('registered_by', $partnerIds)->pluck('id')->toArray();
$managementIds = SalesTenantManagement::whereIn('tenant_prospect_id', $prospectIds)->pluck('id')->toArray();
// 하위 파트너들의 계약 건수 (가입비가 설정된 건수)
// 하위 파트너들의 계약 건수 (개발비가 설정된 건수)
$contractedManagementCount = SalesContractProduct::whereIn('management_id', $managementIds)
->where('registration_fee', '>', 0)
->distinct('management_id')

View File

@@ -89,7 +89,7 @@ public function creator(): BelongsTo
}
/**
* 테넌트별 총 가입
* 테넌트별 총 개발
*/
public static function getTotalRegistrationFee(int $tenantId): float
{

View File

@@ -108,7 +108,7 @@ public function getFormattedDevelopmentFeeAttribute(): string
}
/**
* 포맷된 가입
* 포맷된 개발
*/
public function getFormattedRegistrationFeeAttribute(): string
{

View File

@@ -116,7 +116,7 @@ public function createCommission(int $managementId, string $paymentType, float $
// 계약 상품이 없으면 기본 계산
$contractProducts = $management->contractProducts;
$totalRegistrationFee = $contractProducts->sum('registration_fee') ?: $paymentAmount * 2;
$baseAmount = $totalRegistrationFee / 2; // 가입비의 50%
$baseAmount = $totalRegistrationFee / 2; // 개발비의 50%
// 수당률 (영업파트너 설정 또는 기본값)
$partnerRate = $partner->commission_rate ?? self::DEFAULT_PARTNER_RATE;
@@ -183,7 +183,7 @@ public function createCommission(int $managementId, string $paymentType, float $
];
}
// 총 가입비 업데이트
// 총 개발비 업데이트
$updateData['total_registration_fee'] = $totalRegistrationFee;
$management->update($updateData);

View File

@@ -227,7 +227,7 @@ public static function getScenarioSteps(): array
],
[
'title' => '세금계산서 및 입금',
'detail' => '가입비(초기 도입비)에 대한 세금계산서를 발행하고, 입금 기한 내 수금을 확인하세요.',
'detail' => '개발비(초기 도입비)에 대한 세금계산서를 발행하고, 입금 기한 내 수금을 확인하세요.',
'pro_tip' => '세금계산서 발행 시 사업자등록증 사본과 이메일 주소를 다시 한번 정확히 확인하세요.',
],
[

View File

@@ -178,7 +178,7 @@
'id' => 'close_1',
'title' => '계약 체결 완료',
'detail' => '계약서 날인/교부, 세금계산서 발행, 후속 지원 일정까지 한 번에 진행하세요.',
'pro_tip' => '가입비 입금이 완료되어야 매니저에게 프로젝트가 이관됩니다.',
'pro_tip' => '개발비 입금이 완료되어야 매니저에게 프로젝트가 이관됩니다.',
],
],
],

View File

@@ -49,7 +49,7 @@ #### [내 활동] 탭
| 항목 | 설명 |
| ----------- | ---------------------------------- |
| 관리 테넌트 | 본인이 담당하는 업체 수 |
| 총 가입비 | 계약된 가입비 합계 |
| 총 개발비 | 계약된 개발비 합계 |
| 확정 수당 | 받을 수당 총액 (클릭 시 상세 보기) |
| 승인 대기 | 가입/지급 승인 대기 건수 |
@@ -57,7 +57,7 @@ #### [내 활동] 탭
- 본인이 담당하는 테넌트(업체) 목록
- 각 업체의 영업/매니저 진행률 확인
- 계약 금액(가입비, 월 구독료) 확인
- 계약 금액(개발비, 월 구독료) 확인
#### [유치 파트너 현황] 탭
@@ -139,7 +139,7 @@ #### 영업 시나리오 (영업파트너 담당)
| 5. 협상 및 조율 | Negotiation | 가격/조건 협상, 의사결정권자 설득 |
| 6. 계약 체결 | Closing | 계약서 날인/교부, 세금계산서 발행, 후속 지원 일정 |
> **Tip:** 가입비 입금이 완료되어야 매니저에게 프로젝트가 이관됩니다.
> **Tip:** 개발비 입금이 완료되어야 매니저에게 프로젝트가 이관됩니다.
#### 매니저 시나리오 (매니저 담당)
@@ -238,7 +238,7 @@ ### 상세 정보 확인
- 개발 진행 상태 (8단계 프로그레스 바)
- 영업/매니저 진행률
- 고객 정보 (업체명, 사업자번호, 대표자, 연락처, 주소)
- 계약 상품 목록 (가입비, 월 구독료)
- 계약 상품 목록 (개발비, 월 구독료)
- 메모 (반려 사유 등)
---
@@ -255,21 +255,21 @@ ### 수당 구조
### 수당 계산 기준
- **기준 금액**: 가입비의 50%
- **기준 금액**: 개발비의 50%
- **판매자 수당**: 기준금액 × 20%
- **관리자 수당**: 기준금액 × 5%
### 1차/2차 수당 분할 지급
가입비 수당은 **1차/2차로 50%씩 분할 지급**됩니다.
개발비 수당은 **1차/2차로 50%씩 분할 지급**됩니다.
| 구분 | 지급 시점 | 금액 |
|------|----------|------|
| 1차 수당 | 가입비 1차 입금 완료 후 익월 10일 | 수당의 50% |
| 2차 수당 | 가입비 2차(잔금) 입금 완료 후 익월 10일 | 수당의 50% |
| 1차 수당 | 개발비 1차 입금 완료 후 익월 10일 | 수당의 50% |
| 2차 수당 | 개발비 2차(잔금) 입금 완료 후 익월 10일 | 수당의 50% |
**예시**: 가입비 1,000만원 계약 시
- 기준 금액: 500만원 (가입비의 50%)
**예시**: 개발비 1,000만원 계약 시
- 기준 금액: 500만원 (개발비의 50%)
- 판매자 수당: 100만원 (기준금액의 20%)
- 1차 수당: 50만원 (1차 입금 후)
- 2차 수당: 50만원 (2차 입금 후)
@@ -280,21 +280,21 @@ ### 수당 상태 구분
| 상태 | 색상 | 설명 |
|------|------|------|
| 납입대기 | 회색 | 고객의 가입비 입금 대기 중 |
| 지급예정 | 노란색 | 가입비 입금 완료, 익월 10일 지급 예정 |
| 납입대기 | 회색 | 고객의 개발비 입금 대기 중 |
| 지급예정 | 노란색 | 개발비 입금 완료, 익월 10일 지급 예정 |
| 지급완료 | 초록색 | 수당 지급 완료 |
### 수당 지급 프로세스
```
납입대기 → 가입비 입금 → 지급예정 → 익월 10일 → 지급완료
납입대기 → 개발비 입금 → 지급예정 → 익월 10일 → 지급완료
```
1. **납입대기**: 고객의 가입비 입금을 기다리는 상태
2. **지급예정**: 가입비가 입금되면 자동으로 지급예정 상태로 변경
1. **납입대기**: 고객의 개발비 입금을 기다리는 상태
2. **지급예정**: 개발비가 입금되면 자동으로 지급예정 상태로 변경
3. **지급완료**: 매월 10일에 지급예정 건을 일괄 지급
> **중요**: 가입비 수당은 가입비 완료 후 지급됩니다. 1차/2차 분할 입금 시 각각의 입금 완료 후 해당 차수 수당이 지급됩니다.
> **중요**: 개발비 수당은 개발비 완료 후 지급됩니다. 1차/2차 분할 입금 시 각각의 입금 완료 후 해당 차수 수당이 지급됩니다.
### 수당 현황 확인
@@ -383,7 +383,7 @@ ### 지급 승인 프로세스
영업 수당 지급도 본사 승인이 필요합니다.
**1. 수당 발생**
- 테넌트 계약 완료 및 가입비 입금
- 테넌트 계약 완료 및 개발비 입금
- 수당이 자동 계산되어 지급 대기 상태
**2. 지급 승인 (관리자)**
@@ -432,7 +432,7 @@ ### Q. 같은 업체를 다른 파트너가 이미 등록했어요
### Q. 수당은 언제 지급되나요?
> 가입비 입금 완료 후 본사 승인을 거쳐 **익월 10일**에 지급됩니다.
> 개발비 입금 완료 후 본사 승인을 거쳐 **익월 10일**에 지급됩니다.
### Q. 유치한 파트너가 비활동 상태입니다

View File

@@ -54,7 +54,7 @@
<span class="font-medium">{{ number_format($commission->payment_amount) }}</span>
</div>
<div class="flex justify-between">
<span class="text-gray-600">수당 기준액 (가입 50%)</span>
<span class="text-gray-600">수당 기준액 (개발 50%)</span>
<span class="font-medium">{{ number_format($commission->base_amount) }}</span>
</div>
</div>
@@ -142,7 +142,7 @@
<thead class="bg-gray-50">
<tr>
<th class="px-4 py-2 text-left text-xs font-medium text-gray-500">상품</th>
<th class="px-4 py-2 text-right text-xs font-medium text-gray-500">가입</th>
<th class="px-4 py-2 text-right text-xs font-medium text-gray-500">개발</th>
<th class="px-4 py-2 text-right text-xs font-medium text-gray-500">파트너수당</th>
<th class="px-4 py-2 text-right text-xs font-medium text-gray-500">매니저수당</th>
</tr>

View File

@@ -41,7 +41,7 @@ class="w-full rounded-lg border-gray-300 focus:border-emerald-500 focus:ring-eme
<thead class="bg-gray-50">
<tr>
<th class="px-4 py-2 text-left text-xs font-medium text-gray-500">상품명</th>
<th class="px-4 py-2 text-right text-xs font-medium text-gray-500">가입</th>
<th class="px-4 py-2 text-right text-xs font-medium text-gray-500">개발</th>
</tr>
</thead>
<tbody class="divide-y divide-gray-200">
@@ -54,7 +54,7 @@ class="w-full rounded-lg border-gray-300 focus:border-emerald-500 focus:ring-eme
</tbody>
<tfoot class="bg-gray-50">
<tr>
<td class="px-4 py-2 text-sm font-medium text-gray-900"> 가입</td>
<td class="px-4 py-2 text-sm font-medium text-gray-900"> 개발</td>
<td class="px-4 py-2 text-sm text-right font-bold text-emerald-600">
{{ number_format($management->contractProducts->sum('registration_fee')) }}
</td>
@@ -124,7 +124,7 @@ class="text-emerald-600 focus:ring-emerald-500">
class="w-full rounded-lg border-gray-300 focus:border-emerald-500 focus:ring-emerald-500 pr-12">
<span class="absolute inset-y-0 right-0 flex items-center pr-4 text-gray-500"></span>
</div>
<p class="text-xs text-gray-500 mt-1"> 가입비의 50% 입금받습니다.</p>
<p class="text-xs text-gray-500 mt-1"> 개발비의 50% 입금받습니다.</p>
</div>
{{-- 입금일 --}}
@@ -151,7 +151,7 @@ class="w-full rounded-lg border-gray-300 focus:border-emerald-500 focus:ring-eme
<h4 class="text-sm font-medium text-emerald-800 mb-2">수당 미리보기</h4>
<div class="space-y-1 text-sm">
<div class="flex justify-between">
<span class="text-gray-600">기준액 (가입비의 50%)</span>
<span class="text-gray-600">기준액 (개발비의 50%)</span>
<span class="font-medium">{{ number_format($baseAmount) }}</span>
</div>
<div class="flex justify-between">

View File

@@ -53,8 +53,8 @@ class="text-sm text-emerald-600 hover:text-emerald-700">
<svg class="w-5 h-5 text-blue-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2" />
</svg>
가입 수당 지급 현황
<span class="text-xs text-gray-400 font-normal">(가입비의 50% 1/2 분할 지급)</span>
개발 수당 지급 현황
<span class="text-xs text-gray-400 font-normal">(개발비의 50% 1/2 분할 지급)</span>
</h4>
<div class="grid grid-cols-1 md:grid-cols-2 gap-4">
@@ -143,8 +143,8 @@ class="text-sm text-emerald-600 hover:text-emerald-700">
</svg>
<div>
<p class="mb-1"><strong>수당 지급 프로세스:</strong></p>
<p> <span class="text-gray-500">납입대기</span>: 고객의 가입 입금 대기 </p>
<p> <span class="text-amber-600">지급예정</span>: 가입 입금 완료, 익월 10 수당 지급 예정</p>
<p> <span class="text-gray-500">납입대기</span>: 고객의 개발 입금 대기 </p>
<p> <span class="text-amber-600">지급예정</span>: 개발 입금 완료, 익월 10 수당 지급 예정</p>
<p> <span class="text-emerald-600">지급완료</span>: 수당 지급 완료</p>
</div>
</div>

View File

@@ -44,10 +44,10 @@
<p class="text-xl font-bold text-slate-800 mt-1">{{ $tenantStats['total_tenants'] ?? 0 }}<span class="text-sm font-normal"></span></p>
</div>
{{-- 가입 --}}
{{-- 개발 --}}
<div class="bg-slate-50 border border-slate-200 rounded-lg p-3">
<div class="flex items-center justify-between">
<span class="text-xs text-slate-500"> 가입</span>
<span class="text-xs text-slate-500"> 개발</span>
<svg class="w-4 h-4 text-slate-400" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
</svg>
@@ -84,8 +84,8 @@ class="bg-emerald-50 border border-emerald-200 rounded-lg p-3 text-left hover:bg
<svg class="w-4 h-4 text-emerald-500" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 5H7a2 2 0 00-2 2v12a2 2 0 002 2h10a2 2 0 002-2V7a2 2 0 00-2-2h-2M9 5a2 2 0 002 2h2a2 2 0 002-2M9 5a2 2 0 012-2h2a2 2 0 012 2m-6 9l2 2 4-4" />
</svg>
가입 수당 지급 현황
<span class="text-xs text-gray-400 font-normal">(가입비의 50% 1/2 분할)</span>
개발 수당 지급 현황
<span class="text-xs text-gray-400 font-normal">(개발비의 50% 1/2 분할)</span>
</h3>
</div>
@@ -150,7 +150,7 @@ class="bg-emerald-50 border border-emerald-200 rounded-lg p-3 text-left hover:bg
</svg>
<span>
<span class="text-gray-500">납입대기</span>
가입 입금
개발 입금
<span class="text-amber-600 font-medium">지급예정</span>
익월 10
<span class="text-emerald-600 font-medium">지급완료</span>

View File

@@ -239,7 +239,7 @@ class="inline-flex items-center gap-1 px-2 py-1 rounded text-xs font-medium bg-g
@if($prospectProductCount > 0)
<div class="space-y-0.5">
<div>
<p class="text-xs text-gray-400">가입</p>
<p class="text-xs text-gray-400">개발</p>
<p class="text-sm font-bold text-indigo-600">{{ number_format($prospectTotalRegFee) }}</p>
</div>
<div>
@@ -399,7 +399,7 @@ class="inline-flex items-center gap-1 px-2 py-1 rounded text-xs font-medium bg-g
@if($prospectProductCount > 0)
<div class="space-y-0.5">
<div>
<p class="text-xs text-gray-400">가입</p>
<p class="text-xs text-gray-400">개발</p>
<p class="text-sm font-bold text-indigo-600">{{ number_format($prospectTotalRegFee) }}</p>
</div>
<div>
@@ -619,7 +619,7 @@ class="inline-flex items-center gap-1 px-2 py-1 rounded text-xs font-medium bg-g
@if($productCount > 0)
<div class="space-y-1">
<div>
<p class="text-xs text-gray-400">가입</p>
<p class="text-xs text-gray-400">개발</p>
<p class="text-lg font-bold text-indigo-600">{{ number_format($totalRegFee) }}</p>
</div>
<div>
@@ -630,7 +630,7 @@ class="inline-flex items-center gap-1 px-2 py-1 rounded text-xs font-medium bg-g
@else
<div class="space-y-1">
<div>
<p class="text-xs text-gray-400">가입</p>
<p class="text-xs text-gray-400">개발</p>
<p class="text-lg font-bold text-gray-300">-</p>
</div>
<div>

View File

@@ -24,10 +24,10 @@
<p class="text-xs text-gray-400 mt-1">등록된 업체 </p>
</div>
<!-- 가입 실적 -->
<!-- 개발 실적 -->
<div class="bg-white border border-gray-200 rounded-xl p-5 hover:shadow-md transition-shadow">
<div class="flex items-start justify-between mb-3">
<span class="text-sm text-gray-500"> 가입 실적</span>
<span class="text-sm text-gray-500"> 개발 실적</span>
<div class="p-2 bg-blue-50 rounded-lg">
<svg class="w-5 h-5 text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 19v-6a2 2 0 00-2-2H5a2 2 0 00-2 2v6a2 2 0 002 2h2a2 2 0 002-2zm0 0V9a2 2 0 012-2h2a2 2 0 012 2v10m-6 0a2 2 0 002 2h2a2 2 0 002-2m0 0V5a2 2 0 012-2h2a2 2 0 012 2v14a2 2 0 01-2 2h-2a2 2 0 01-2-2z" />
@@ -35,13 +35,13 @@
</div>
</div>
<p class="text-3xl font-bold text-gray-900">{{ number_format($tenantStats['total_membership_revenue'] ?? 0) }}</p>
<p class="text-xs text-gray-400 mt-1">전체 가입 합계</p>
<p class="text-xs text-gray-400 mt-1">전체 개발 합계</p>
</div>
<!-- 누적 가입 수당 -->
<!-- 누적 개발 수당 -->
<div class="bg-white border border-gray-200 rounded-xl p-5 hover:shadow-md transition-shadow">
<div class="flex items-start justify-between mb-3">
<span class="text-sm text-gray-500">누적 가입 수당</span>
<span class="text-sm text-gray-500">누적 개발 수당</span>
<div class="p-2 bg-blue-50 rounded-lg">
<svg class="w-5 h-5 text-blue-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M12 8c-1.657 0-3 .895-3 2s1.343 2 3 2 3 .895 3 2-1.343 2-3 2m0-8c1.11 0 2.08.402 2.599 1M12 8V7m0 1v8m0 0v1m0-1c-1.11 0-2.08-.402-2.599-1M21 12a9 9 0 11-18 0 9 9 0 0118 0z" />
@@ -49,13 +49,13 @@
</div>
</div>
<p class="text-3xl font-bold text-gray-900">{{ number_format($tenantStats['total_commission_accumulated'] ?? 0) }}</p>
<p class="text-xs text-gray-400 mt-1">전체 가입 수당 합계</p>
<p class="text-xs text-gray-400 mt-1">전체 개발 수당 합계</p>
</div>
<!-- 확정 가입 수당 (지급대상) -->
<!-- 확정 개발 수당 (지급대상) -->
<div class="bg-green-50 border border-green-200 rounded-xl p-5 hover:shadow-md transition-shadow">
<div class="flex items-start justify-between mb-3">
<span class="text-sm text-green-700">확정 가입 수당 (지급대상)</span>
<span class="text-sm text-green-700">확정 개발 수당 (지급대상)</span>
<div class="p-2 bg-green-100 rounded-lg">
<svg class="w-5 h-5 text-green-600" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M9 12l2 2 4-4m6 2a9 9 0 11-18 0 9 9 0 0118 0z" />

View File

@@ -131,7 +131,7 @@ class="text-gray-400 hover:text-gray-600 transition">
<thead class="bg-gray-100">
<tr>
<th class="px-4 py-2 text-left text-xs font-medium text-gray-500 uppercase">상품명</th>
<th class="px-4 py-2 text-right text-xs font-medium text-gray-500 uppercase">가입</th>
<th class="px-4 py-2 text-right text-xs font-medium text-gray-500 uppercase">개발</th>
<th class="px-4 py-2 text-right text-xs font-medium text-gray-500 uppercase"> 구독료</th>
</tr>
</thead>

View File

@@ -104,7 +104,7 @@ class="w-3 h-3 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"
<p class="text-sm text-gray-500 mt-0.5">{{ $product->description }}</p>
@endif
<div class="flex items-center gap-4 mt-2 text-sm">
<span class="text-gray-500">가입:
<span class="text-gray-500">개발:
<span class="text-gray-400 line-through text-xs">{{ $product->formatted_development_fee }}</span>
<span class="font-semibold text-indigo-600">{{ $product->formatted_registration_fee }}</span>
</span>
@@ -128,7 +128,7 @@ class="w-3 h-3 text-white" fill="none" stroke="currentColor" viewBox="0 0 24 24"
<p class="text-xl font-bold text-gray-900" x-text="selectedCount + '개'"></p>
</div>
<div>
<p class="text-xs text-gray-500 mb-1"> 가입</p>
<p class="text-xs text-gray-500 mb-1"> 개발</p>
<p class="text-xl font-bold text-indigo-600" x-text="formatCurrency(totalDevFee)"></p>
</div>
<div>

View File

@@ -125,7 +125,7 @@ class="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:rin
placeholder="0" required>
</div>
<div>
<label class="block text-sm font-medium text-gray-700 mb-1">가입 (할인가)</label>
<label class="block text-sm font-medium text-gray-700 mb-1">개발 (할인가)</label>
<input type="text"
:value="formatNumber(productForm.registration_fee)"
x-on:input="productForm.registration_fee = parseNumber($event.target.value); $event.target.value = formatNumber(productForm.registration_fee)"
@@ -408,7 +408,7 @@ function productManager() {
updateDevelopmentFee(value) {
const fee = this.parseNumber(value);
this.productForm.development_fee = fee;
// 가입비 자동 계산 (개발비의 25%)
// 개발비 자동 계산 (개발비의 25%)
this.productForm.registration_fee = Math.floor(fee * 0.25);
}
};

View File

@@ -32,7 +32,7 @@ class="p-1 text-gray-400 hover:text-indigo-600 transition-colors">
{{-- 가격 정보 --}}
<div class="space-y-2 pt-3 border-t border-gray-100">
<div class="flex items-center justify-between">
<span class="text-sm text-gray-500">가입</span>
<span class="text-sm text-gray-500">개발</span>
<div class="text-right">
<span class="text-sm text-gray-400 line-through">{{ $product->formatted_development_fee }}</span>
<span class="ml-2 font-bold text-indigo-600">{{ $product->formatted_registration_fee }}</span>