@extends('layouts.app') @section('title', 'HoReCa Dashboard') @section('content')
Horeca Dashboard

Outlets Visited

{{ $kpis['outlets_visited_today']['value'] }}

@if(isset($kpis['outlets_visited_today']['trend'])) {{ abs($kpis['outlets_visited_today']['trend']) }}% @endif

Completion Rate

{{ number_format($kpis['workflows_completed_today']['rate'], 1) }}%

{{ $kpis['workflows_completed_today']['value'] }} / {{ $kpis['workflows_completed_today']['total'] }} Completed {{ $kpis['workflows_completed_today']['avg_time'] }} avg

Pending Requests

{{ $kpis['pending_service_requests']['value'] }}

@if($kpis['pending_service_requests']['sla_breach'] > 0) {{ $kpis['pending_service_requests']['sla_breach'] }} SLA Breach @endif

Overdue Audits

{{ $kpis['overdue_audits'] }}

@if($kpis['overdue_audits'] > 0) Action Required @else All On Track @endif
Visit Coverage
Service Request Status
Workflow Completion Trend
Brand Availability Score
Critical Operations Overview
Real-time alerts requiring immediate action Go to Detailed Report
{{-- Summary Cards (Acting as Tabs) --}}
{{-- 1. Overdue Audits --}}
Audits

{{ $redFlags['overdue_audits'] }}

@if($redFlags['overdue_audits'] > 0) Action Required @else On Track @endif
{{-- 2. SLA Breached --}}
SLA

{{ $redFlags['sla_breached'] }}

Total Breaches
{{-- 3. Must-Have Stockouts --}}
Stockouts

{{ $redFlags['must_have_stockouts'] }}

Must Have Base
{{-- 4. Unvisited Outlets --}}
Unvisited

{{ $redFlags['unvisited_outlets'] }}

> 30 Days
{{-- 5. High Priority SRs --}}
Priority

{{ $redFlags['high_priority_srs'] }}

Pending Resolution
{{-- Tab Content (Tables) --}}
@forelse($redFlags['overdue_audits_list'] as $audit) @empty @endforelse
Outlet Assigned TM Scheduled Date Due Date Days Overdue Action
{{ $audit->outlet->name ?? 'Unknown Outlet' }} {{ $audit->tm->name ?? 'Unassigned' }} {{ optional($audit->scheduled_date)->format('Y-m-d') }} {{ optional($audit->due_date)->format('Y-m-d') }} {{ optional($audit->due_date)->diffInDays(now()) }} Days View Audit

No overdue audits found.

@forelse($redFlags['sla_breached_list'] as $sr) @empty @endforelse
SR Number Title Outlet Assigned To SLA Due Breach Time Action
#{{ $sr->sr_number ?? $sr->id }} {{ Str::limit($sr->title, 40) }} {{ $sr->outlet->name ?? '-' }} {{ $sr->assignee->name ?? 'Unassigned' }} {{ optional($sr->sla_due_date)->format('Y-m-d H:i') }} {{ optional($sr->sla_due_date)->diffForHumans() }} View Request

No SLA breaches found.

@forelse($redFlags['unvisited_outlets_list'] as $outlet) @empty @endforelse
Outlet Territory Assigned LSR Last Visit Action
{{ $outlet->name }} {{ $outlet->territory->name ?? '-' }} {{ $outlet->lsr->name ?? 'Unassigned' }} @php $lastVisit = $outlet->visits()->latest('check_in_time')->first(); @endphp {{ $lastVisit ? $lastVisit->check_in_time->format('Y-m-d') : 'Never' }} View Outlet

No unvisited outlets found.

@forelse($redFlags['must_have_stockouts_list'] as $item) @empty @endforelse
Outlet Brand / Item Reported By Reported At Status Action
{{ $item->outlet->name ?? '-' }} {{ Str::limit($item->title, 40) }} {{ $item->creator->name ?? 'System' }} {{ $item->created_at->format('Y-m-d H:i') }} {{ ucfirst($item->status) }} View Details

No critical stockouts reported.

@forelse($redFlags['high_priority_srs_list'] as $sr) @empty @endforelse
SR Number Title Status Assigned To SLA Due Update Status
#{{ $sr->sr_number ?? $sr->id }} {{ Str::limit($sr->title, 40) }} {{ ucfirst(str_replace('_', ' ', $sr->status)) }} {{ $sr->assignee->name ?? 'Unassigned' }} {{ optional($sr->sla_due_date)->format('Y-m-d H:i') }}

No high priority pending requests.

@endsection @push('js') @endpush