@php use Carbon\Carbon; @endphp @extends('admin.layouts.app') @section('title', get_setting('site_name').' | Payslip') @section('content')

Payslip

View, filter, export, and manage employee payslips.

{{ __('Generate Payroll') }}
@if (session()->has('message'))
{{ session('message') }}
@endif @if (session()->has('error'))
{{ session('error') }}
@endif
{{ (int) ($payslipStats->total ?? 0) }}
{{ __('Total Payslips') }}
{{ number_format((float) ($payslipStats->net_total ?? 0), 2) }}
{{ __('Net Total') }}
{{ (int) ($payslipStats->paid_count ?? 0) }}
{{ __('Paid') }}
{{ __('Bulk Actions') }}
@csrf
{{ __('Payslip List') }} {{ __('Clear Filters') }}
@can('Payroll-delete')
@endcan
@forelse($payslips as $payslip) @php $statusClass = match(strtolower((string) $payslip->status)) { 'paid' => 'paid', 'unpaid' => 'unpaid', 'pending' => 'pending', 'processing' => 'processing', default => 'pending', }; @endphp @empty @endforelse
{{ __('Employee') }} {{ __('Year') }} {{ __('Month') }} {{ __('Adjustment') }} {{ __('Net Salary') }} {{ __('Status') }} {{ __('Action') }}
{{ $payslip->staff->user?->name ?? __('Unknown') }}
{{ $payslip->staff->user_id ?? '—' }} · {{ $payslip->staff->designation?->name ?? 'No Designation' }} @if($payslip->staff->warehouse?->name) · {{ $payslip->staff->warehouse->name }} @endif
{{ $payslip->salary_year }} {{ Carbon::create(null, $payslip->salary_month, null)->format('F') }} @php $adjNet = (float) ($payslip->adjustment_amount ?? 0); $adjCount = $payslip->payrollAdjustments?->count() ?? 0; @endphp @if($adjNet != 0 || $adjCount > 0) {{ number_format($adjNet, 2) }} @if($adjCount > 0)
{{ $adjCount }} {{ __('item(s)') }}
@endif @else @endif
{{ number_format((float) $payslip->net_salary, 2) }} {{ $payslip->status }}
@can('Payroll-list') @endcan @can('Payroll-delete') @endcan
{{ __('No payslips found for the selected filters.') }}
@if($payslips->hasPages()) @endif
@include('modals.delete_modal') @endsection @section('script') @endsection