diff --git a/app/Http/Controllers/Sales/AdminProspectController.php b/app/Http/Controllers/Sales/AdminProspectController.php
index 67ecc57d..b7d3c9cf 100644
--- a/app/Http/Controllers/Sales/AdminProspectController.php
+++ b/app/Http/Controllers/Sales/AdminProspectController.php
@@ -224,7 +224,9 @@ private function getIndexData(Request $request): array
];
});
- return compact('prospects', 'stats', 'salesPartners', 'partnerStats', 'filters');
+ $isSuperAdmin = auth()->user()->isSuperAdmin();
+
+ return compact('prospects', 'stats', 'salesPartners', 'partnerStats', 'filters', 'isSuperAdmin');
}
/**
@@ -302,6 +304,29 @@ public function updateCommissionDate(int $id, Request $request)
]);
}
+ /**
+ * 가망고객 삭제 (슈퍼관리자 전용)
+ */
+ public function destroy(int $id)
+ {
+ $prospect = TenantProspect::findOrFail($id);
+
+ // 연관 데이터 삭제
+ $management = SalesTenantManagement::where('tenant_prospect_id', $prospect->id)->first();
+ if ($management) {
+ SalesCommission::where('management_id', $management->id)->delete();
+ $management->delete();
+ }
+ SalesScenarioChecklist::where('tenant_prospect_id', $prospect->id)->delete();
+
+ $prospect->delete();
+
+ return response()->json([
+ 'success' => true,
+ 'message' => "'{$prospect->company_name}' 가망고객이 삭제되었습니다.",
+ ]);
+ }
+
/**
* 수당 날짜 삭제 (초기화)
*/
diff --git a/resources/views/sales/admin-prospects/index.blade.php b/resources/views/sales/admin-prospects/index.blade.php
index eb6f5158..df28dcd6 100644
--- a/resources/views/sales/admin-prospects/index.blade.php
+++ b/resources/views/sales/admin-prospects/index.blade.php
@@ -52,6 +52,36 @@ class="refresh-btn inline-flex items-center gap-1.5 px-4 py-2 text-sm text-gray-
+
+@if(auth()->user()->isSuperAdmin())
+
+
+
+
+
+
+
가망고객 삭제
+
다음 가망고객을 삭제하시겠습니까?
+
+
관련된 시나리오 체크리스트, 관리 정보, 수당 정보가 함께 삭제됩니다.
+
+
+
+
+
+
+
+
+@endif
+
@@ -165,6 +195,55 @@ function closeDetailModal() {
}
});
+// 삭제 모달
+let deleteProspectId = null;
+
+function openDeleteModal(id, companyName) {
+ deleteProspectId = id;
+ document.getElementById('deleteTargetName').textContent = companyName;
+ document.getElementById('deleteModal').classList.remove('hidden');
+ document.body.style.overflow = 'hidden';
+}
+
+function closeDeleteModal() {
+ document.getElementById('deleteModal').classList.add('hidden');
+ document.body.style.overflow = '';
+ deleteProspectId = null;
+}
+
+function confirmDelete() {
+ if (!deleteProspectId) return;
+
+ const btn = document.getElementById('confirmDeleteBtn');
+ btn.disabled = true;
+ btn.textContent = '삭제 중...';
+
+ fetch(`/sales/admin-prospects/${deleteProspectId}`, {
+ method: 'DELETE',
+ headers: {
+ 'X-CSRF-TOKEN': document.querySelector('meta[name="csrf-token"]').content,
+ 'Accept': 'application/json'
+ }
+ })
+ .then(response => response.json())
+ .then(result => {
+ if (result.success) {
+ closeDeleteModal();
+ window.location.reload();
+ } else {
+ alert(result.message || '삭제에 실패했습니다.');
+ btn.disabled = false;
+ btn.textContent = '삭제';
+ }
+ })
+ .catch(error => {
+ console.error('Error:', error);
+ alert('삭제 중 오류가 발생했습니다.');
+ btn.disabled = false;
+ btn.textContent = '삭제';
+ });
+}
+
// 수당 날짜 저장 (date input에서 호출)
function saveCommissionDate(prospectId, field, date) {
const input = document.querySelector(`input[data-prospect-id="${prospectId}"][data-field="${field}"]`);
diff --git a/resources/views/sales/admin-prospects/partials/content.blade.php b/resources/views/sales/admin-prospects/partials/content.blade.php
index c3514480..d4d69593 100644
--- a/resources/views/sales/admin-prospects/partials/content.blade.php
+++ b/resources/views/sales/admin-prospects/partials/content.blade.php
@@ -213,7 +213,19 @@ class="text-xs font-medium rounded-lg px-2 py-1 border cursor-pointer
{{ $prospect->created_at->format('Y-m-d') }}
-
+
+
+ @if($isSuperAdmin)
+
+ @endif
+
|
@empty
diff --git a/routes/web.php b/routes/web.php
index d9b165cd..732688ab 100644
--- a/routes/web.php
+++ b/routes/web.php
@@ -1151,6 +1151,7 @@
Route::post('admin-prospects/{id}/hq-status', [\App\Http\Controllers\Sales\AdminProspectController::class, 'updateHqStatus'])->name('admin-prospects.update-hq-status');
Route::post('admin-prospects/{id}/commission-date', [\App\Http\Controllers\Sales\AdminProspectController::class, 'updateCommissionDate'])->name('admin-prospects.update-commission-date');
Route::delete('admin-prospects/{id}/commission-date', [\App\Http\Controllers\Sales\AdminProspectController::class, 'clearCommissionDate'])->name('admin-prospects.clear-commission-date');
+ Route::delete('admin-prospects/{id}', [\App\Http\Controllers\Sales\AdminProspectController::class, 'destroy'])->name('admin-prospects.destroy')->middleware('super.admin');
// 영업 시나리오 관리
Route::prefix('scenarios')->name('scenarios.')->group(function () {