Payroll

Back to Staff @if(session('success'))
{{ session('success') }}
@endif @php $months = ['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']; $entryMap = collect($entries)->keyBy('user_id'); @endphp {{-- Mark Paid Modal --}}

Mark as Paid

for

@csrf
{{-- Month selector + stats --}}

Payroll Period

{{ $months[$month - 1] }} {{ $year }}

@csrf

Total Payable

₹{{ number_format($total_payable, 0, '.', ',') }}

For {{ $months[$month - 1] }} {{ $year }}

Total Paid

₹{{ number_format($total_paid, 0, '.', ',') }}

Disbursed this month

Pending

₹{{ number_format(max(0, $total_payable - $total_paid), 0, '.', ',') }}

Yet to be paid

{{-- Table --}}
@forelse($staff as $s) @php $entry = $entryMap->get($s->id); @endphp @if($entry) @else @endif @empty @endforelse
Staff Base Deductions Bonuses Net Pay Attendance Status Action
{{ $s->name }}

{{ $s->staffProfile?->designation ?? '—' }}

₹{{ number_format($entry->base_salary, 0, '.', ',') }} -₹{{ number_format($entry->deductions, 0, '.', ',') }} +₹{{ number_format($entry->bonuses, 0, '.', ',') }} ₹{{ number_format($entry->net_salary, 0, '.', ',') }}
{{ $entry->present_days }}P
{{ $entry->leave_days }}L · {{ $entry->lop_days }}LOP
{{ $entry->status }} @if($entry->status !== 'paid') @else {{ $entry->paid_on }} @endif No entry — click Run Payroll to generate.

No staff members found.