Payroll Summary Report

Payroll month-wise gross, net, paid & due summary

@if(request('month')) Month: {{ sprintf('%02d', (int) request('month')) }} @endif @if(request('year')) Year: {{ request('year') }} @endif @if(request('status')) Status: {{ ucwords(str_replace('_', ' ', request('status'))) }} @endif
@php $totalGross = 0; $totalOt = 0; $totalAdvance = 0; $totalNet = 0; $totalPaid = 0; $totalDue = 0; @endphp @forelse($payrolls as $payroll) @php $stats = $payrollItemStats[$payroll->id] ?? [ 'gross' => 0, 'ot' => 0, 'advance' => 0, 'net' => 0, 'paid' => 0, 'due' => 0, ]; $employeeNames = collect($payroll->items ?? []) ->map(fn($item) => $item->employee->name ?? null) ->filter() ->unique() ->values(); $totalGross += (float) $stats['gross']; $totalOt += (float) $stats['ot']; $totalAdvance += (float) $stats['advance']; $totalNet += (float) $stats['net']; $totalPaid += (float) $stats['paid']; $totalDue += (float) $stats['due']; @endphp @empty @endforelse @if(($payrolls->count() ?? 0) > 0) @endif
Payroll Month Employees Gross OT Advance Net Paid Due Status
{{ sprintf('%02d', $payroll->payroll_month) }}-{{ $payroll->payroll_year }} @if($employeeNames->count()) {{ $employeeNames->implode(', ') }} @else N/A @endif {{ number_format((float) $stats['gross'], 2) }} {{ number_format((float) $stats['ot'], 2) }} {{ number_format((float) $stats['advance'], 2) }} {{ number_format((float) $stats['net'], 2) }} {{ number_format((float) $stats['paid'], 2) }} {{ number_format((float) $stats['due'], 2) }} {{ ucwords(str_replace('_', ' ', $payroll->status)) }}
No payroll found.
Total {{ number_format($totalGross, 2) }} {{ number_format($totalOt, 2) }} {{ number_format($totalAdvance, 2) }} {{ number_format($totalNet, 2) }} {{ number_format($totalPaid, 2) }} {{ number_format($totalDue, 2) }}