@extends('layouts.dashboard') @section('title', $reportData['title']) @section('content')
Period: {{ $reportData['period'] }} • Generated: {{ now()->format('M d, Y h:i A') }}
{{ ucfirst(str_replace('_', ' ', $key)) }}
{{ number_format($value) }}
| Employee | Department | Role | Status | Join Date |
|---|---|---|---|---|
|
{{ $user->name }}
{{ $user->email }}
|
{{ $user->department->name ?? 'N/A' }} | {{ ucfirst($user->role) }} | @if($user->status == 'active') Active @else Inactive @endif | {{ $user->created_at->format('M d, Y') }} |
| Employee | Client | Location | Date & Time | Status | Duration |
|---|---|---|---|---|---|
|
{{ $visit->employee->name }}
{{ $visit->employee->employee_id }}
|
{{ $visit->client->name }}
{{ $visit->client->company_name }}
|
{{ $visit->governorate->name ?? '' }}
{{ $visit->city->name ?? '' }}
|
{{ $visit->scheduled_date->format('M d, Y') }}
{{ $visit->scheduled_time }}
|
@php $statusColors = [ 'scheduled' => 'bg-amber-100 text-amber-800', 'in_progress' => 'bg-blue-100 text-blue-800', 'completed' => 'bg-emerald-100 text-emerald-800', 'cancelled' => 'bg-red-100 text-red-800' ]; @endphp {{ ucfirst(str_replace('_', ' ', $visit->status)) }} |
@if($visit->status == 'completed' && $visit->started_at && $visit->completed_at)
{{ $visit->started_at->diffInMinutes($visit->completed_at) }} min
@else
-
@endif
|
| Employee | Leave Type | Period | Days | Status | Reason |
|---|---|---|---|---|---|
|
{{ $leave->employee->name }}
{{ $leave->employee->department->name ?? 'N/A' }}
|
{{ ucfirst($leave->type) }} |
{{ $leave->start_date->format('M d') }} - {{ $leave->end_date->format('M d, Y') }}
|
{{ $leave->total_days }}
|
@php $statusColors = [ 'pending' => 'bg-amber-100 text-amber-800', 'approved' => 'bg-emerald-100 text-emerald-800', 'rejected' => 'bg-red-100 text-red-800' ]; @endphp {{ ucfirst($leave->status) }} |
{{ $leave->reason }}
|
| Employee | Pay Period | Basic Salary | Allowances | Deductions | Net Salary | Status | Payment Date |
|---|---|---|---|---|---|---|---|
|
{{ $payroll->employee->name }}
|
{{ $payroll->pay_period_start->format('M d') }} - {{ $payroll->pay_period_end->format('M d, Y') }}
|
{{ number_format($payroll->basic_salary, 2) }} | {{ number_format($payroll->allowances, 2) }} | {{ number_format($payroll->deductions, 2) }} |
{{ number_format($payroll->net_salary, 2) }}
|
@php $statusColors = [ 'draft' => 'bg-amber-100 text-amber-800', 'processed' => 'bg-blue-100 text-blue-800', 'paid' => 'bg-emerald-100 text-emerald-800' ]; @endphp {{ ucfirst($payroll->status) }} |
@if($payroll->payment_date)
{{ $payroll->payment_date->format('M d, Y') }}
@else
Not scheduled
@endif
|
| Client | Company | Location | Contact | Type | Status | Total Visits |
|---|---|---|---|---|---|---|
|
{{ $client->name }}
|
{{ $client->company_name }}
|
{{ $client->governorate->name ?? '' }}
{{ $client->city->name ?? '' }}, {{ $client->area }}
|
{{ $client->phone }}
{{ $client->email }}
|
{{ ucfirst($client->type) }} | @if($client->status == 'active') Active @else Inactive @endif |
{{ $client->visits()->count() }}
|
| Employee | Department | Total Visits | Completed | Completion Rate | Leave Days | Avg. Duration |
|---|---|---|---|---|---|---|
|
{{ $performance['employee']['name'] }}
|
{{ $performance['department'] }}
|
{{ $performance['total_visits'] }}
|
{{ $performance['completed_visits'] }}
|
@php $rate = $performance['completion_rate']; if($rate >= 90) { $color = 'bg-emerald-100 text-emerald-800'; } elseif($rate >= 70) { $color = 'bg-amber-100 text-amber-800'; } else { $color = 'bg-red-100 text-red-800'; } @endphp {{ number_format($rate, 1) }}% |
{{ $performance['total_leave_days'] }}
|
{{ $performance['avg_visit_duration'] }} min
|
| Month | Visits | Leaves | Payrolls | New Users |
|---|---|---|---|---|
| {{ $month }} | {{ $trend['visits'] }} | {{ $trend['leaves'] }} | {{ $trend['payroll'] }} | {{ $trend['new_users'] ?? 0 }} |
Report generated by {{ auth()->user()->name }} on {{ now()->format('F d, Y \a\t h:i A') }}
Innovaxcess Attendance System - Confidential Report
Report ID: {{ Str::uuid()->toString() }}