fix:개발 승인 화면 영업/매니저 이름 표시 개선

- 가망고객(prospect) 모드에서 영업담당자 이름이 나오도록 수정
- tenantProspect.registeredBy 관계 eager loading 추가
- 매니저가 없으면 영업담당자 이름으로 표시

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
김보곤
2026-01-31 20:58:50 +09:00
parent d17b1de03d
commit 7830c0b38f
4 changed files with 21 additions and 9 deletions

View File

@@ -65,7 +65,7 @@ public function getStats(): array
public function getPendingApprovals(?string $search = null, int $perPage = 10): LengthAwarePaginator
{
$query = SalesTenantManagement::query()
->with(['tenant', 'tenantProspect', 'salesPartner.user', 'manager'])
->with(['tenant', 'tenantProspect.registeredBy', 'salesPartner.user', 'manager'])
->where('sales_progress', 100)
->where('manager_progress', 100)
->where('hq_status', SalesTenantManagement::HQ_STATUS_PENDING);
@@ -96,7 +96,7 @@ public function getInProgressItems(?string $search = null, int $perPage = 10): L
];
$query = SalesTenantManagement::query()
->with(['tenant', 'tenantProspect', 'salesPartner.user', 'manager'])
->with(['tenant', 'tenantProspect.registeredBy', 'salesPartner.user', 'manager'])
->where('sales_progress', 100)
->where('manager_progress', 100)
->whereIn('hq_status', $progressStatuses);
@@ -118,7 +118,7 @@ public function getInProgressItems(?string $search = null, int $perPage = 10): L
public function getCompletedItems(?string $search = null, int $perPage = 10): LengthAwarePaginator
{
$query = SalesTenantManagement::query()
->with(['tenant', 'tenantProspect', 'salesPartner.user', 'manager'])
->with(['tenant', 'tenantProspect.registeredBy', 'salesPartner.user', 'manager'])
->where('hq_status', SalesTenantManagement::HQ_STATUS_HANDOVER);
// 검색

View File

@@ -16,6 +16,10 @@
$companyName = $tenant?->company_name ?? $prospect?->company_name ?? '알 수 없음';
$representativeName = $tenant?->representative_name ?? $prospect?->ceo_name ?? '-';
$businessNumber = $tenant?->business_number ?? $prospect?->business_number ?? '-';
// 담당자 정보 (영업파트너 또는 가망고객 등록자)
$salesPersonName = $item->salesPartner?->user?->name ?? $prospect?->registeredBy?->name ?? '-';
$managerName = $item->manager?->name ?? $salesPersonName; // 매니저 없으면 영업담당자와 동일
@endphp
<div class="p-4 hover:bg-emerald-50 transition" id="completed-row-{{ $item->id }}">
<div class="flex justify-between items-start mb-2">
@@ -62,11 +66,11 @@
<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" />
</svg>
영업: {{ $item->salesPartner?->user?->name ?? '-' }}
영업: {{ $salesPersonName }}
</span>
<span class="mx-2">|</span>
<span class="inline-flex items-center gap-1">
매니저: {{ $item->manager?->name ?? '-' }}
매니저: {{ $managerName }}
</span>
</div>

View File

@@ -16,6 +16,10 @@
$companyName = $tenant?->company_name ?? $prospect?->company_name ?? '알 수 없음';
$representativeName = $tenant?->representative_name ?? $prospect?->ceo_name ?? '-';
$businessNumber = $tenant?->business_number ?? $prospect?->business_number ?? '-';
// 담당자 정보 (영업파트너 또는 가망고객 등록자)
$salesPersonName = $item->salesPartner?->user?->name ?? $prospect?->registeredBy?->name ?? '-';
$managerName = $item->manager?->name ?? $salesPersonName; // 매니저 없으면 영업담당자와 동일
@endphp
<div class="p-4 hover:bg-yellow-50 transition" id="pending-row-{{ $item->id }}">
<div class="flex justify-between items-start mb-2">
@@ -52,11 +56,11 @@
<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" />
</svg>
영업: {{ $item->salesPartner?->user?->name ?? '-' }}
영업: {{ $salesPersonName }}
</span>
<span class="mx-2">|</span>
<span class="inline-flex items-center gap-1">
매니저: {{ $item->manager?->name ?? '-' }}
매니저: {{ $managerName }}
</span>
</div>

View File

@@ -17,6 +17,10 @@
$representativeName = $tenant?->representative_name ?? $prospect?->ceo_name ?? '-';
$businessNumber = $tenant?->business_number ?? $prospect?->business_number ?? '-';
$currentHqStep = $hqStatusOrder[$item->hq_status ?? 'pending'] ?? 0;
// 담당자 정보 (영업파트너 또는 가망고객 등록자)
$salesPersonName = $item->salesPartner?->user?->name ?? $prospect?->registeredBy?->name ?? '-';
$managerName = $item->manager?->name ?? $salesPersonName; // 매니저 없으면 영업담당자와 동일
@endphp
<div class="p-4 hover:bg-purple-50 transition" id="progress-row-{{ $item->id }}">
<div class="flex justify-between items-start mb-2">
@@ -74,11 +78,11 @@ class="px-2 py-1 bg-purple-500 hover:bg-purple-600 text-white text-xs font-mediu
<svg class="w-3 h-3" fill="none" stroke="currentColor" viewBox="0 0 24 24">
<path stroke-linecap="round" stroke-linejoin="round" stroke-width="2" d="M16 7a4 4 0 11-8 0 4 4 0 018 0zM12 14a7 7 0 00-7 7h14a7 7 0 00-7-7z" />
</svg>
영업: {{ $item->salesPartner?->user?->name ?? '-' }}
영업: {{ $salesPersonName }}
</span>
<span class="mx-2">|</span>
<span class="inline-flex items-center gap-1">
매니저: {{ $item->manager?->name ?? '-' }}
매니저: {{ $managerName }}
</span>
</div>