All Projects — Bookings
@php
$groups = $rows->getCollection()->groupBy(fn($b) => $b->project?->name ?? 'Unknown Project');
@endphp
@foreach($groups as $projectName => $items)
@php
$totals = [
'total' => (float) $items->sum('total_price'),
'token' => (float) $items->flatMap->payments->where('payment_category','token')->sum('amount'),
'down' => (float) $items->flatMap->payments->where('payment_category','down_payment')->sum('amount'),
'inst' => (float) $items->flatMap->payments->where('payment_category','installment')->sum('amount'),
];
$paidAll = $totals['token'] + $totals['down'] + $totals['inst'];
$balanceAll = max(0, $totals['total'] - $paidAll);
@endphp
{{ $projectName }}
Total: {{ number_format($totals['total'],2) }} · Paid: {{ number_format($paidAll,2) }} · Balance: {{ number_format($balanceAll,2) }}
| Booking # |
Customer |
Unit |
Total |
Token Paid |
Down Paid |
Installments Paid |
Balance |
Status |
Actions |
@foreach($items as $b)
@php
$tokenPaid = (float) $b->payments->where('status','cleared')->where('payment_category','token')->sum('amount');
$downPaid = (float) $b->payments->where('status','cleared')->where('payment_category','down_payment')->sum('amount');
$instPaid = (float) $b->payments->where('status','cleared')->where('payment_category','installment')->sum('amount');
$paid = $tokenPaid + $downPaid + $instPaid;
$balance = max(0, (float) $b->total_price - $paid);
@endphp
| {{ $b->booking_number }} |
{{ $b->customer?->name }} |
{{ $b->unit?->unit_number }} |
{{ number_format($b->total_price, 2) }} |
{{ number_format($tokenPaid, 2) }} |
{{ number_format($downPaid, 2) }} |
{{ number_format($instPaid, 2) }} |
{{ number_format($balance, 2) }} |
{{ $b->status }} |
Open
|
@endforeach
@endforeach
{{ $rows->links() }}
Balance = Total Price − Cleared Payments (token, down payment, installments).
@endsection