Weekly Timesheet Report
Week of {{ $weekStart->format('l, d F Y') }} — {{ $weekEnd->format('l, d F Y') }}
{{ count($staffSummaries) }}
Staff Tracked
{{ number_format($totalHours, 1) }}h
Total Hours
${{ number_format($totalEarnings, 0) }}
Total Earnings
Staff Breakdown
@if(count($staffSummaries) > 0) @foreach($staffSummaries as $s) @endforeach
Staff Member Role Entries Hours Rate Earnings Invoiced
{{ substr($s['name'], 0, 1) }}{{ collect(explode(' ', $s['name']))->skip(1)->map(fn($p)=>substr($p,0,1))->first() ?? '' }}
{{ $s['name'] }}
{{ $s['role'] }} {{ $s['entries'] }} {{ number_format($s['hours'], 2) }}h ${{ number_format($s['rate'], 2) }}/hr ${{ number_format($s['earnings'], 2) }} @if($s['invoiced_hours'] > 0) {{ number_format($s['invoiced_hours'], 1) }}h invoiced @elseif($s['hours'] > 0) Pending @else @endif
TOTAL {{ number_format($totalHours, 2) }}h ${{ number_format($totalEarnings, 2) }}
@else
No time entries recorded for this week.
@endif
@php $uninvoiced = collect($staffSummaries)->filter(fn($s) => $s['hours'] > 0 && $s['invoiced_hours'] < $s['hours']); @endphp @if($uninvoiced->count() > 0)
Uninvoiced Hours — Action Required
@foreach($uninvoiced as $s) @php $uninvHours = $s['hours'] - $s['invoiced_hours']; @endphp @endforeach
Staff Member Uninvoiced Hours Estimated Amount
{{ $s['name'] }} {{ number_format($uninvHours, 2) }}h ${{ number_format($uninvHours * $s['rate'], 2) }}

Log in to the CRM to generate invoices for these staff members.

@endif