@extends('layouts.app') @section('title', 'Admin Dashboard') @section('page-title', 'Dashboard') @section('content') {{-- ── Summary Cards ──────────────────────────────────────────────────────────────── --}}
{{-- Active Properties --}}
Active Properties
{{ $activeProperties }}
{{ $forSaleCount }} For Sale  ·  {{ $forRentCount }} For Rent
{{-- Total Owners --}}
Property Owners
{{ $totalOwners }}
{{-- Total Clients --}}
Total Clients
{{ $totalClients }}
Buyers & Tenants
{{-- Open Leads --}}
Open Leads
{{ $openLeads }}
Active in pipeline
{{-- Leads Closed This Month --}}
Closed This Month
{{ $closedThisMonth }}
@if($closedLastMonth === 0 && $closedThisMonth === 0) No data @elseif($closedLastMonth === 0) New this month @else @php $diff = $closedThisMonth - $closedLastMonth; @endphp {{ $diff >= 0 ? '▲' : '▼' }} {{ abs($diff) }} vs last month ({{ $closedLastMonth }}) @endif
{{-- /summary cards --}} {{-- ── Lead Pipeline Funnel + Upcoming Reminders ──────────────────────────────────── --}}
{{-- Pipeline Funnel --}}
Lead Pipeline
Full Report
@if($stages->isEmpty())
No pipeline stages configured.
@else @php $maxCount = $stages->max('leads_count') ?: 1; @endphp @foreach($stages as $stage) @php $pct = $maxCount > 0 ? round(($stage->leads_count / $maxCount) * 100) : 0; $barWidth = max($pct, $stage->leads_count > 0 ? 2 : 0); $colorClass = $stage->is_closed_won ? 'text-success' : ($stage->is_closed_lost ? 'text-danger' : 'text-primary'); $bgClass = $stage->is_closed_won ? 'bg-success' : ($stage->is_closed_lost ? 'bg-danger' : 'bg-primary'); @endphp @endforeach @endif
{{-- Upcoming Reminders --}}
Upcoming Reminders
All
@if($upcomingReminders->isEmpty())
No pending reminders.
@else
@foreach($upcomingReminders as $reminder) @php $rClient = null; if ($reminder->lead && $reminder->lead->requirement) { $rClient = $reminder->lead->requirement->client; } $isOverdue = $reminder->remind_at->isPast(); @endphp
{{ $reminder->message }}
@if($rClient) @endif
{{ optional($reminder->assignedTo)->name ?? '—' }}
{{ $reminder->remind_at->format('d M') }}
{{ $reminder->remind_at->format('h:i A') }}
@if($isOverdue) Overdue @endif
@endforeach
@endif
{{-- /funnel + reminders --}} {{-- ── Rental Agreement Status Panel ─────────────────────────────────────────────── --}}
Rental Agreements {{ $totalActiveRentals }}
@if($expiringSoonCount > 0) {{ $expiringSoonCount }} expiring within {{ $reminderDays }}d @endif View All
@if($activeRentalAgreements->isEmpty())
No active rental agreements.
@else
@foreach($activeRentalAgreements as $ra) @php $raLead = $ra->lead; $raClient = ($raLead && $raLead->requirement && $raLead->requirement->client) ? $raLead->requirement->client : null; $raStaff = ($raLead && $raLead->assignedTo) ? $raLead->assignedTo : null; $daysLeft = $ra->agreement_end_date ? (int) \Carbon\Carbon::today()->diffInDays($ra->agreement_end_date) : null; $rowClass = ''; $badgeClass = 'bg-success bg-opacity-75'; $badgeLabel = 'Active'; $daysColorClass = 'text-success'; if ($daysLeft !== null) { if ($daysLeft <= $reminderDays) { $rowClass = 'table-danger'; $badgeClass = 'bg-danger'; $badgeLabel = 'Critical'; $daysColorClass = 'text-danger'; } elseif ($daysLeft <= 60) { $rowClass = 'table-warning'; $badgeClass = 'bg-warning text-dark'; $badgeLabel = 'Expiring Soon'; $daysColorClass = 'text-warning'; } } @endphp @endforeach
Client Property End Date Days Left Monthly Rent Assigned Staff Status
@if($raClient) {{ $raClient->full_name }} @else {{ $ra->client_name ?: '—' }} @endif @if($ra->property) {{ $ra->property->title }} @if($ra->property->city)
{{ $ra->property->city }}
@endif @else — @endif
{{ $ra->agreement_end_date ? $ra->agreement_end_date->format('d M Y') : '—' }} @if($daysLeft !== null) {{ $daysLeft }}d @else — @endif ₹{{ number_format((float) $ra->monthly_rent, 0) }} {{ $raStaff ? $raStaff->name : '—' }} {{ $badgeLabel }}
@if($totalActiveRentals > 10) @endif @endif
@endsection