@if ($isLoading)

Loading dashboard...

@else
{{-- Header --}}

{{ $business->b_name ?? 'Business' }}

Business Insights & Analytics

{{-- Top Stats Cards --}}
@foreach ($attendanceStats as $stat)
{{ $stat['value'] }}
{{ $stat['label'] }}
{{ $stat['description'] }}
@endforeach
{{-- Travel Stats Cards --}}
@foreach ($travelStats as $stat)
{{ $stat['value'] }}
{{ $stat['label'] }}
{{ $stat['description'] }}
@endforeach
{{-- Charts Grid --}}

Attendance Breakdown

Travel Plan Status

Travel Claim Status

Employees by Branch

{{-- Activities & Upcoming Section --}} {{-- Tabbed Section for Activities & Upcoming --}}
{{-- Tab Headers --}}
{{-- Tab Content --}}
{{-- Recent Activity Tab --}}
{{-- Leave Requests --}}

Leave Requests

@forelse($recentLeaves as $l)
{{ $l['employee'] ?? ($l['emp_full_name'] ?? ($l['emp_name'] ?? 'Unknown')) }}
{{ $l['reason'] ?? ($l['lvr_reason'] ?? '') }}
@empty
No recent leave requests
@endforelse
{{-- Mispunch --}}

Mispunch

@forelse($recentMispunch as $m)
{{ $m['employee'] ?? ($m['emp_full_name'] ?? 'Unknown') }}
{{ $m['reason'] ?? '' }}
@empty
No mispunch records
@endforelse
{{-- Gate Pass --}}

Gate Pass

@forelse($recentGatepass as $g)
{{ $g['employee'] ?? ($g['emp_full_name'] ?? 'Unknown') }}
{{ $g['reason'] ?? '' }}
@empty
No gate pass records
@endforelse
{{-- Upcoming Holidays Tab --}}
@forelse($upcomingHolidays as $h)
{{ \Carbon\Carbon::parse($h['date'])->format('d') }}
{{ \Carbon\Carbon::parse($h['date'])->format('M') }}
{{ $h['name'] }}
{{ $h['type'] ?? 'Holiday' }}
@empty
No upcoming holidays
@endforelse
{{-- Upcoming Birthdays Tab --}}
@forelse($upcomingBirthdays as $b)
{{ \Carbon\Carbon::parse($b['date'])->format('d') }}
{{ \Carbon\Carbon::parse($b['date'])->format('M') }}
{{ $b['name'] }}
{{ $b['days_left'] === 0 ? '🎉 Today!' : ($b['days_left'] > 50 ? 'Coming soon' : $b['days_left'] . ' days left') }}
@empty
No upcoming birthdays
@endforelse
@if($subscriptionPlan) {{-- Subscription Plan Section --}}
{{-- Header Section --}}

{{ $subscriptionDetails['planName'] ?? 'Premium Plan' }}

{{ $subscriptionDetails['planBillingCycle'] ?? 'monthly' }} billing

@if ($subscriptionDetails['status'] === 'active') Active @elseif($subscriptionDetails['status'] === 'demo') Demo @elseif($subscriptionDetails['status'] === 'suspended') Suspended @elseif($subscriptionDetails['status'] === 'deactivated') Deactivated @endif
{{-- Stats Grid --}}
{{ $subscriptionDetails['planwebmenus']->count() ?? '0' }}
Web Modules
{{ $subscriptionDetails['planappmenus']->count() ?? '0' }}
App Modules
{{ $subscriptionDetails['planAddons']->count() ?? '0' }}
Add-ons
{{ $subscriptionDetails['planPriceSlabs']->count() ?? '1' }}
Price Tiers
{{-- Content Section --}}
{{-- Left Column --}}
{{-- Subscription Period --}}

Subscription Period

Start Date {{ $subscriptionDetails['subscriptonStartDate']->format('M d, Y') }}
End Date {{ $subscriptionDetails['subscriptionEndDate']->format('M d, Y') }}
@php $startDate = $subscriptionDetails['subscriptonStartDate']; $endDate = $subscriptionDetails['subscriptionEndDate']; $now = now(); // Calculate total days in subscription period $totalDays = $startDate->diffInDays($endDate); // Calculate days elapsed from start to now $daysElapsed = $startDate->diffInDays($now); // Calculate days remaining from now to end (use floor to get whole days) if ($now->gt($endDate)) { $daysRemaining = 0; $progressPercentage = 100; } elseif ($now->lt($startDate)) { $daysRemaining = $totalDays; $progressPercentage = 0; } else { // Get actual days remaining as integer $daysRemaining = floor($now->floatDiffInDays($endDate)); $progressPercentage = $totalDays > 0 ? min(100, ($daysElapsed / $totalDays) * 100) : 0; } @endphp
Progress {{ max(0, $daysRemaining) }} days remaining
{{-- Web Modules --}} @if ($subscriptionDetails['planwebmenus']->count() > 0)

Web Modules

@foreach ($subscriptionDetails['planwebmenus'] as $menu) {{ $menu->menu_name }} @endforeach
@endif @if ($subscriptionDetails['planappmenus']->count() > 0)

App Modules

@foreach ($subscriptionDetails['planappmenus'] as $menu) {{ $menu->menu_name }} @endforeach
@endif
{{-- Right Column --}}
{{-- Price Slabs --}} @if ($subscriptionDetails['planPriceSlabs']->count() > 0)

Pricing Tiers

@foreach ($subscriptionDetails['planPriceSlabs'] as $slab)
@if ($slab->min_employees == 0) Up to {{ $slab->max_employees }} users @elseif($slab->max_employees == 0) {{ $slab->min_employees }}+ users @else {{ $slab->min_employees }}-{{ $slab->max_employees }} users @endif ₹{{ number_format($slab->price_per_user, 2) }}
@endforeach
@endif {{-- Addons --}} @if ($subscriptionDetails['planAddons']->count() > 0)

Active Add-ons

@foreach ($subscriptionDetails['planAddons'] as $addon)
{{ $addon->name }} {{ $addon->duration }}
₹{{ number_format($addon->amount, 2) }}
@endforeach
@endif
@endif
@endif {{-- Charts Script --}} @push('scripts') @endpush