{{ __('app.hr.payroll.period_label', ['period' => $run->period]) }}

{{ __('app.hr.payroll.detail_desc') }}

@php($color = match ($run->status) { \App\Enums\PayrollRunStatus::Draft => 'slate', \App\Enums\PayrollRunStatus::Approved => 'gold', \App\Enums\PayrollRunStatus::Paid => 'green', \App\Enums\PayrollRunStatus::Reversed => 'red', }) {{ $run->status->label() }} {{ __('app.hr.payroll.back') }} @if (Route::has('hr.payroll.print')) @can('payroll.print') {{ __('app.hr.payroll.print_summary') }} @endcan @endif @if (Route::has('hr.payroll.export')) @can('payroll.export') {{ __('app.hr.payroll.export') }} @endcan @endif
@if ($notice) {{ $notice }} @endif @if ($errors->any()) @endif @if ($run->status === \App\Enums\PayrollRunStatus::Reversed) {{ __('app.hr.payroll.reversed_hint') }} @if ($run->reversal_reason) {{ $run->reversal_reason }} @endif @endif

{{ __('app.hr.payroll.employee_count') }}

{{ $run->employee_count }}

{{ __('app.hr.payroll.gross') }}

{{ number_format((float) $run->gross_total, 2) }}

{{ __('app.hr.payroll.deductions') }}

{{ number_format((float) $run->deductions_total, 2) }}

{{ __('app.hr.payroll.advance_recovery') }}

{{ number_format((float) $run->advance_recovery_total, 2) }}

{{ __('app.hr.payroll.net') }}

{{ number_format((float) $run->net_total, 2) }}

{{ __('app.hr.payroll.period') }}
{{ $run->starts_on?->translatedFormat('d M Y') }} — {{ $run->ends_on?->translatedFormat('d M Y') }}
{{ __('app.hr.payroll.prepared_by') }}
{{ $run->preparer?->name ?? '—' }}
{{ __('app.hr.payroll.approved_by') }}
{{ $run->approver?->name ?? '—' }} @if ($run->approved_at) {{ $run->approved_at->translatedFormat('d M Y H:i') }} @endif
{{ __('app.hr.payroll.paid_by') }}
{{ $run->payer?->name ?? '—' }} @if ($run->paid_on) {{ $run->paid_on->translatedFormat('d M Y') }} @endif
{{ __('app.hr.payroll.voucher') }}
@if ($run->voucher && Route::has('accounts.vouchers.show')) @can('vouchers.view') {{ $run->voucher->voucher_no }} @else {{ $run->voucher->voucher_no }} @endcan @else — @endif
{{ __('app.hr.payroll.cash_or_bank') }}
@if ($run->cashAccount) {{ $run->cashAccount->code }} — {{ $run->cashAccount->localizedName() }} @elseif ($run->bankAccount) {{ $run->bankAccount->code }} — {{ $run->bankAccount->localizedName() }} @else — @endif
@if ($run->notes)
{{ __('app.hr.fields.notes') }}
{{ $run->notes }}
@endif
@if ($run->status === \App\Enums\PayrollRunStatus::Draft) @can('payroll.approve') {{ __('app.hr.payroll.approve') }} @endcan @can('payroll.delete') {{ __('app.hr.payroll.discard') }} @endcan @elseif ($run->status === \App\Enums\PayrollRunStatus::Approved) @can('payroll.pay') {{ __('app.hr.payroll.pay') }} @endcan @can('payroll.edit') {{ __('app.hr.payroll.reopen') }} @endcan @elseif ($run->status === \App\Enums\PayrollRunStatus::Paid) @can('payroll.reverse') {{ __('app.hr.payroll.reverse') }} @endcan @endif
@if ($showPay)
@if ($destination === 'cash') @foreach ($cashAccounts as $account) @endforeach @else @foreach ($bankAccounts as $account) @endforeach @endif
{{ __('app.actions.cancel') }} {{ __('app.hr.payroll.pay') }}
@endif @if ($showReopen)
{{ __('app.actions.cancel') }} {{ __('app.hr.payroll.reopen') }}
@endif @if ($showReverse)
{{ __('app.actions.cancel') }} {{ __('app.hr.payroll.reverse') }}
@endif
@forelse ($run->payslips as $slip) @empty @endforelse
{{ __('app.hr.fields.employee_no') }} {{ __('app.hr.payroll.employee') }} {{ __('app.hr.payroll.basic') }} {{ __('app.hr.payroll.gross') }} {{ __('app.hr.payroll.deductions') }} {{ __('app.hr.payroll.advance_recovery') }} {{ __('app.hr.payroll.net') }} {{ __('app.hr.payroll.run_status') }} {{ __('app.actions.view') }}
{{ $slip->employee_no }} {{ $slip->employee_name }} {{ number_format((float) $slip->basic_salary, 2) }} {{ number_format((float) $slip->gross_salary, 2) }} {{ number_format((float) $slip->total_deductions, 2) }} {{ number_format((float) $slip->advance_recovery, 2) }} {{ number_format((float) $slip->net_pay, 2) }} @php($slipColor = match ($slip->status) { \App\Enums\PayslipStatus::Draft => 'slate', \App\Enums\PayslipStatus::Approved => 'gold', \App\Enums\PayslipStatus::Paid => 'green', \App\Enums\PayslipStatus::Reversed => 'red', }) {{ $slip->status->label() }}
{{ __('app.hr.payroll.payslip') }} @if (Route::has('hr.payroll.payslip.print')) @can('payroll.print') {{ __('app.hr.payroll.print_payslip') }} @endcan @endif
@if ($payslip) @php($earnings = $payslip->items->where('type', 'earning')) @php($deductions = $payslip->items->where('type', 'deduction'))

{{ __('app.hr.payroll.earnings') }}

{{ __('app.hr.payroll.basic') }}
{{ number_format((float) $payslip->basic_salary, 2) }}
@foreach ($earnings as $item)
{{ $item->localizedName() }}
{{ number_format((float) $item->amount, 2) }}
@endforeach
{{ __('app.hr.payroll.gross') }}
{{ number_format((float) $payslip->gross_salary, 2) }}

{{ __('app.hr.payroll.other_deductions') }}

@forelse ($deductions as $item)
{{ $item->localizedName() }}
{{ number_format((float) $item->amount, 2) }}
@empty
{{ __('app.hr.payroll.no_items') }}
0.00
@endforelse
{{ __('app.hr.payroll.deductions') }}
{{ number_format((float) $payslip->total_deductions, 2) }}
{{ __('app.hr.payroll.advance_note') }}
{{ number_format((float) $payslip->advance_recovery, 2) }}
{{ __('app.hr.payroll.net') }}
{{ number_format((float) $payslip->net_pay, 2) }}
{{ __('app.actions.close') }}
@endif