@php $kpis = $ageing['kpis'] ?? []; $register = $ageing['exception_register'] ?? []; $modal = $ageing['modal'] ?? ['alarm' => 'red', 'rows' => [], 'total' => 0]; $matrixRows = $ageing['stage_bottleneck_matrix'] ?? []; $total = (int) ($register['total'] ?? 0); $currentPage = (int) ($register['current_page'] ?? 1); $lastPage = (int) ($register['last_page'] ?? 1); $from = (int) ($register['from'] ?? 0); $to = (int) ($register['to'] ?? 0); $baseQuery = request()->except('page', 'ajax', 'per_page'); $pageUrl = fn(int $p) => url()->current() . '?' . http_build_query(array_merge($baseQuery, ['page' => $p])); @endphp @if(!empty($pageMessages ?? []))
{{ implode(' ', $pageMessages) }}
@endif

Stage Bottleneck Matrix

Under-progress only
@forelse($matrixRows as $row) @empty @endforelse
Stage Live Cases Avg Days Green Yellow Amber Red Escalation
{{ $row['stage'] ?? '-' }} {{ number_format((int) ($row['live_cases'] ?? 0)) }} {{ number_format((int) ($row['avg_days'] ?? 0)) }} {{ $row['escalation'] ?? '-' }}
No stage bottleneck data found for selected filters.

Stage Red Alert Share

Beneficiary Drill-down: Current Stage Delays

@forelse(($register['rows'] ?? []) as $row) @php $statusClass = match (strtolower((string) ($row['alarm_level'] ?? 'green'))) { 'red' => 'is-red', 'orange' => 'is-orange', 'yellow' => 'is-yellow', default => 'is-green', }; $alarmLabel = ucfirst((string) ($row['alarm_level'] ?? 'Green')); @endphp @empty @endforelse
UUID Beneficiary CNIC IP District IFI Current Stage Elapsed Days Status Owner Level
{{ $row['uuid'] ?? '-' }} {{ $row['beneficiary_name'] ?? '-' }} {{ $row['beneficiary_cnic'] ?? '-' }} {{ $row['ip'] ?? '-' }} {{ $row['district'] ?? '-' }} {{ $row['ifi'] ?? '-' }} {{ $row['pending_stage'] ?? '-' }} {{ (int) ($row['ageing_days'] ?? 0) }} {{ $alarmLabel }} {{ $row['owner_level'] ?? 'Normal' }}
No exception rows found for selected filters.
@if($lastPage > 1) @elseif($total > 0) @endif