diff --git a/app/Http/Controllers/Sales/AdminProspectController.php b/app/Http/Controllers/Sales/AdminProspectController.php
index 5d8544fa..c2ac1a1b 100644
--- a/app/Http/Controllers/Sales/AdminProspectController.php
+++ b/app/Http/Controllers/Sales/AdminProspectController.php
@@ -292,9 +292,18 @@ public function updateCommissionDate(int $id, Request $request)
$field = $request->input('field');
$date = $request->input('date') ?: now()->format('Y-m-d');
+ // 수당지급일 필드는 개발상태가 '인계'일 때만 저장 가능
+ $paidFields = ['first_partner_paid_at', 'second_partner_paid_at', 'manager_paid_at'];
+ if (in_array($field, $paidFields) && $management->hq_status !== 'handover') {
+ return response()->json([
+ 'success' => false,
+ 'message' => '개발상태가 인계일 때만 수당이 지급됩니다.',
+ ], 422);
+ }
+
$updateData = [$field => $date];
- // 납입일 입력 시 수당지급일 자동 계산 (익월 10일)
+ // 납입일 입력 시 수당지급일 자동 계산 (익월 10일) - 인계 상태일 때만
$autoFields = [
'first_payment_at' => 'first_partner_paid_at',
'second_payment_at' => 'second_partner_paid_at',
@@ -302,7 +311,7 @@ public function updateCommissionDate(int $id, Request $request)
$autoField = null;
$autoDate = null;
- if (isset($autoFields[$field])) {
+ if (isset($autoFields[$field]) && $management->hq_status === 'handover') {
$autoField = $autoFields[$field];
$autoDate = \Carbon\Carbon::parse($date)->addMonth()->day(10)->format('Y-m-d');
$updateData[$autoField] = $autoDate;
diff --git a/resources/views/sales/admin-prospects/index.blade.php b/resources/views/sales/admin-prospects/index.blade.php
index ee882723..ebe7e2fe 100644
--- a/resources/views/sales/admin-prospects/index.blade.php
+++ b/resources/views/sales/admin-prospects/index.blade.php
@@ -52,6 +52,27 @@ class="refresh-btn inline-flex items-center gap-1.5 px-4 py-2 text-sm text-gray-
+
+
+
+
+
+
+
+
수당 지급 불가
+
개발상태가 인계일 때만
수당이 지급됩니다.
+
+
+
+
+
+
@if(auth()->user()->isSuperAdmin())
@@ -244,6 +265,30 @@ function confirmDelete() {
});
}
+// 인계 상태 체크 (수당지급 필드만)
+const commissionPaidFields = ['first_partner_paid_at', 'second_partner_paid_at', 'manager_paid_at'];
+
+function checkHandoverStatus(prospectId, field) {
+ if (!commissionPaidFields.includes(field)) return true;
+
+ const hqSelect = document.querySelector(`select[data-hq-status="${prospectId}"]`);
+ if (hqSelect && hqSelect.value !== 'handover') {
+ openHandoverWarningModal();
+ return false;
+ }
+ return true;
+}
+
+function openHandoverWarningModal() {
+ document.getElementById('handoverWarningModal').classList.remove('hidden');
+ document.body.style.overflow = 'hidden';
+}
+
+function closeHandoverWarningModal() {
+ document.getElementById('handoverWarningModal').classList.add('hidden');
+ document.body.style.overflow = '';
+}
+
// 수당 날짜 저장 (date input에서 호출)
function saveCommissionDate(prospectId, field, date) {
const input = document.querySelector(`input[data-prospect-id="${prospectId}"][data-field="${field}"]`);
@@ -254,6 +299,12 @@ function saveCommissionDate(prospectId, field, date) {
return;
}
+ // 수당지급일 입력 시 인계 상태 체크
+ if (!checkHandoverStatus(prospectId, field)) {
+ input.value = '';
+ return;
+ }
+
fetch(`/sales/admin-prospects/${prospectId}/commission-date`, {
method: 'POST',
headers: {
diff --git a/resources/views/sales/admin-prospects/partials/content.blade.php b/resources/views/sales/admin-prospects/partials/content.blade.php
index d4d69593..f04041e6 100644
--- a/resources/views/sales/admin-prospects/partials/content.blade.php
+++ b/resources/views/sales/admin-prospects/partials/content.blade.php
@@ -192,6 +192,7 @@ class="w-28 h-7 text-xs px-1 border-2 border-gray-300 rounded {{ $commissionDisa
|