@extends('layouts.app') @section('title', 'Lead — ' . ($lead->requirement ? $lead->requirement->title : 'Detail')) @section('page-title', 'Lead Detail') @push('styles') @endpush @section('content') @php $req = $lead->requirement; $client = $req ? $req->client : null; $shortlisted = $lead->shortlistedProperties; $removalReasons = \App\Models\PropertyShortlist::REMOVAL_REASONS; $siteVisits = $lead->siteVisits; $pendingReminders = $lead->reminders->where('is_done', false); $quotes = $lead->quotes; $agreement = $lead->agreement; $defaultDealType = ($req && $req->interest_type === 'rent') ? 'rental' : 'sale'; @endphp
Back to Leads
@if(! $agreement) @endif @if($lead->isOpen()) @endif
{{-- Client & Requirement Header --}}
Client
@if($client)
{{ $client->mobile }}{{ $client->email ? ' · ' . $client->email : '' }}
@else @endif
Requirement
@if($req)
{{ $req->title }}
{{ \App\Services\ClientRequirementService::formatBudget($req->min_budget, $req->max_budget) }} @if($req->preferred_location) · {{ $req->preferred_location }} @endif
{{ ucfirst($req->status) }}
@else @endif

Assigned: {{ $lead->assignedTo ? $lead->assignedTo->name : 'Unassigned' }}
Created: {{ $lead->created_at->format('d M Y') }}
Last Activity: {{ $lead->last_activity_at ? $lead->last_activity_at->diffForHumans() : '—' }}
{{-- Stage Progress Bar --}}
Pipeline Progress
@foreach($stages as $stage) @php $isCurrent = $lead->current_stage_id === $stage->id; $currentOrder = $lead->currentStage ? $lead->currentStage->order : 0; $isDone = $stage->order < $currentOrder; $activeColor = $isCurrent ? $stage->color : ($isDone ? $stage->color : null); @endphp
{{ $stage->name }}
@endforeach
@if($lead->currentStage) {{ $lead->currentStage->name }} {{ $lead->days_in_stage }} day{{ $lead->days_in_stage == 1 ? '' : 's' }} in this stage @else No stage assigned @endif
{{-- Stage Transition History --}}
Stage History
@forelse($lead->transitions as $transition) @empty @endforelse
From To Changed By Note Date / Time
@if($transition->fromStage) {{ $transition->fromStage->name }} @else — (Created) @endif {{ $transition->toStage->name }} {{ $transition->changedBy ? $transition->changedBy->name : '—' }} {{ $transition->note }} {{ $transition->created_at->format('d M Y, h:i A') }}
No stage transitions recorded.
{{-- Shortlisted Properties --}}
Shortlisted Properties {{ $shortlisted->count() }}
@if($lead->isOpen()) @endif
@if($lead->isOpen()) {{-- AJAX search panel --}}
No properties found.
Searching…
@endif
@if($shortlisted->isEmpty())
No properties shortlisted yet.
@else
@if($lead->isOpen()) @endif @foreach($shortlisted as $sl) @if($lead->isOpen()) @endif @endforeach
Property Type Location Price Added By Added On
{{ $sl->property->title }} {{ (\App\Models\Property::typeLabels())[$sl->property->type] ?? $sl->property->type }} {{ $sl->property->city ?: $sl->property->location }} {{ $sl->property->formattedPrice() }} {{ optional($sl->shortlistedBy)->name ?? '—' }} {{ $sl->created_at->format('d M Y') }}
@endif
{{-- Site Visits --}}
Site Visits {{ $siteVisits->count() }}
@if($lead->isOpen()) @endif
@if($siteVisits->isEmpty())
No site visits logged yet.
@else
@foreach($siteVisits as $visit) @endforeach
Property Date & Time Stage at Visit Accompanying Staff Notes Logged By
{{ $visit->property->title }} {{ $visit->formattedVisitDateTime() }} @if($visit->stageSnapshot) {{ $visit->stageSnapshot->name }} @else @endif {{ $visit->accompanying_staff }} {{ $visit->notes ?: '—' }} {{ optional($visit->loggedBy)->name ?? '—' }}
@endif
{{-- Active Reminders for this Lead --}} @if($pendingReminders->isNotEmpty())
Active Reminders {{ $pendingReminders->count() }}
@endif {{-- Quotes --}}
Quotes {{ $quotes->count() }}
@if($quotes->isEmpty())
No quotes logged yet.
@else
@foreach($quotes as $quote) @endforeach
Property Quoted Price Date Shared By Notes Logged By
{{ optional($quote->property)->title ?? '—' }} ₹ {{ number_format((float)$quote->quoted_price, 0) }} {{ $quote->quote_date ? $quote->quote_date->format('d M Y') : '—' }} {{ $quote->shared_by }} {{ $quote->notes ?: '—' }} {{ optional($quote->createdBy)->name ?? '—' }}
@endif
{{-- Final Deal --}}
Final Deal
@if(! $agreement) @endif
@if(! $agreement)
No deal recorded yet.
@else
Deal Type
{{ $agreement->isRental() ? 'Rental' : 'Sale' }}
Property
{{ optional($agreement->property)->title ?? '—' }}
Deal Date
{{ $agreement->deal_date ? $agreement->deal_date->format('d M Y') : '—' }}
Client Name
{{ $agreement->client_name }}
Owner Name
{{ $agreement->owner_name }}
Agreed Price
₹ {{ number_format((float)$agreement->agreed_price, 0) }}
@if($agreement->isRental())
Agreement Period
{{ $agreement->agreement_start_date ? $agreement->agreement_start_date->format('d M Y') : '—' }} → {{ $agreement->agreement_end_date ? $agreement->agreement_end_date->format('d M Y') : '—' }}
Monthly Rent
₹ {{ number_format((float)$agreement->monthly_rent, 0) }}
Escalation Clause
{{ $agreement->rent_escalation_clause ?: '—' }}
@if($agreement->document_path)
Agreement Document
Download PDF
@endif @endif @if($agreement->notes)
Notes
{{ $agreement->notes }}
@endif @if($agreement->correction_note)
Correction Note: {{ $agreement->correction_note }}
@endif
@if(auth()->user()->isAdmin())
@csrf @method('PATCH') @error('correction_note')
{{ $message }}
@enderror
@endif @endif
{{-- Activity Log --}}
Activity Log
@if($lead->activityLogs->isEmpty())
No activity recorded yet.
@else @endif
{{-- Add Note form --}}
@if($lead->isOpen()) {{-- Log Visit Modal --}} @endif {{-- Create Reminder Modal --}} {{-- Change Stage Modal --}} @if($lead->isOpen()) {{-- Remove from Shortlist Modal --}} @endif {{-- Log Quote Modal --}} @if(! $agreement) {{-- Record Deal Modal --}} @endif @endsection @push('scripts') @endpush