@extends('adminlte::page') @section('title', 'Time Tracking Reports') @section('content_header')

Time Tracking Reports

to
Back to Reports
@stop @section('content')

{{ number_format($timeByUser->sum('total_hours'), 1) }}

Total Hours

{{ $startDate->format('M j') }} - {{ $endDate->format('M j, Y') }}

{{ number_format($timeByUser->sum('billable_hours'), 1) }}

Billable Hours

{{ $timeByUser->sum('total_hours') > 0 ? number_format(($timeByUser->sum('billable_hours') / $timeByUser->sum('total_hours')) * 100, 1) : 0 }}% of total

${{ number_format($timeByUser->sum('total_value'), 0) }}

Total Value

Hours × Rates

{{ $utilizationRates->count() > 0 ? number_format($utilizationRates->avg('utilization_rate'), 1) : 0 }}%

Avg Utilization

Billable vs Total

Daily Time Tracking

Utilization Rates

@if($utilizationRates->count() > 0) @foreach($utilizationRates as $user)
{{ $user->utilization_rate }}% {{ $user->name }}
@php $color = $user->utilization_rate >= 80 ? 'success' : ($user->utilization_rate >= 60 ? 'warning' : 'danger'); @endphp
@endforeach @else

No utilization data available for the selected period.

@endif

Time by User

@if($timeByUser->count() > 0)
@foreach($timeByUser as $user) @php $utilization = $user->total_hours > 0 ? ($user->billable_hours / $user->total_hours) * 100 : 0; @endphp @endforeach
User Total Hours Billable Value Utilization
{{ $user->name }} {{ number_format($user->total_hours, 1) }}h {{ number_format($user->billable_hours, 1) }}h ${{ number_format($user->total_value, 0) }} @php $color = $utilization >= 80 ? 'success' : ($utilization >= 60 ? 'warning' : 'danger'); @endphp {{ number_format($utilization, 1) }}%
@else

No time tracking data available for the selected period.

@endif

Time by Case

Top Cases
@if($timeByCase->count() > 0)
@foreach($timeByCase->take(10) as $case) @endforeach
Case Total Hours Billable Avg Rate
{{ $case->case_number }}
{{ Str::limit($case->title, 25) }}
{{ number_format($case->total_hours, 1) }}h {{ number_format($case->billable_hours, 1) }}h ${{ number_format($case->avg_rate, 0) }}
@if($timeByCase->count() > 10) Showing top 10 of {{ $timeByCase->count() }} cases with time entries @endif @else

No case time data available for the selected period.

@endif

Time Distribution Summary

{{ $dailyTime->count() }}
ACTIVE DAYS Days with time entries
{{ $dailyTime->count() > 0 ? number_format($dailyTime->avg('total_hours'), 1) : 0 }}
AVG HOURS/DAY Across all users
{{ $dailyTime->count() > 0 ? number_format($dailyTime->max('total_hours'), 1) : 0 }}
PEAK DAY Highest single day
{{ $timeByUser->count() }}
ACTIVE USERS With time entries
@stop @section('js') @stop