Booking Report
- ›
- Reports
- ›
- Bookings
🏠 Confirmed by Plot Type
📊 Status Breakdown
📅 Daily Trend
All Bookings ({{ $bookingsList->total() }})
| # | Date | Client | Unit | Type | Source / Payment | Payment Plan | Booking Status | Total Amount | Paid | Balance | |
|---|---|---|---|---|---|---|---|---|---|---|---|
| #{{ $b->id }} |
{{ $b->created_at->format('d M Y') }} {{ $b->created_at->format('H:i') }} |
{{ $b->client_name ?: $b->user?->name ?: '—' }}
{{ $b->client_phone ?: $b->user?->phone }}
|
Unit {{ $b->plot_number }} | {{ $b->plot_type }} |
@if($isInstant)
Walk-in
{{ ucfirst($txn->mode) }}
@if($txn->gateway && !in_array($txn->gateway,['cash','manual']))
• {{ ucfirst($txn->gateway) }}
@endif
@elseif($isOnline)
{{ ucfirst($txn->gateway) }}
Online
@elseif($b->gateway_order_id)
Gateway ref
{{ Str::limit($b->gateway_order_id, 20) }}
@else
— No payment yet
@endif
|
{{-- Payment Plan + Milestone Progress --}}
@if($b->paymentPlan)
{{ $b->paymentPlan->name }}
@if($hasMilestones)
@php
$total_ms = $b->milestones->count();
$paid_ms = $paidMilestones->count();
$pct = $total_ms > 0 ? ($paid_ms / $total_ms) * 100 : 0;
$overdue_ms = $b->milestones->where('status','overdue')->count();
@endphp
{{-- Progress bar --}}
@endif
@else
Full payment
@endif
{{ $paid_ms }}/{{ $total_ms }} paid
@if($overdue_ms > 0)
• {{ $overdue_ms }} overdue
@endif
{{-- Milestone rows (collapsible via toggle) --}}
|
{{ ucfirst($b->booking_status) }} | {{ $currency }}{{ $b->total_amount }} | {{-- FIX: Paid column now uses milestone paid sum --}}
@if($paidAmt > 0)
{{ $currency }}{{ $paidAmt }}
@if($isFullyPaid)
✓ Fully paid
@elseif($hasMilestones && $paidMilestones->count() > 0)
{{ $paidMilestones->count() }} milestone{{ $paidMilestones->count() > 1 ? 's' : '' }}
@endif
@if($txn?->paid_at)
{{ $txn->paid_at->format('d M Y') }}
@endif
@else
—
@endif
|
{{-- Balance due --}}
@if($b->booking_status === 'confirmed' && $balanceAmt > 0)
{{ $currency }}{{ $balanceAmt }}
@php
$nextDue = $b->milestones->whereIn('status', ['pending','overdue'])->first();
@endphp
@if($nextDue?->due_date)
{{ $nextDue->status === 'overdue' ? '⚠ ' : '' }}Due {{ \Carbon\Carbon::parse($nextDue->due_date)->format('d M') }}
@endif
@elseif($b->booking_status === 'confirmed' && $balanceAmt <= 0 && $paidAmt > 0)
✓ Clear
@else
—
@endif
|
|
|
No bookings found.
@if($from || $to)
Clear date filter to see all bookings @endif |
|||||||||||