{{ $profile->format_version }} · {{ $profile->status }}
{{ $profile->validation_reference }}
Review bank-validation evidence@can('payroll.approve')@if($profile->status==='pending')@endif @endcan@extends('layouts.app')
@section('title','Payroll')
@section('content')
SIF downloads require released payroll, independently approved payee details and a validated WPS profile. Files are generated on demand.
@endif| Month | Status | Gross | Deductions | Net | Actions |
|---|---|---|---|---|---|
| {{ $run->period }} | {{ $run->status }} | {{ \App\Domain\Payroll\Money::format($run->gross_cents) }} | {{ \App\Domain\Payroll\Money::format($run->deduction_cents) }} | {{ $run->currency }} {{ \App\Domain\Payroll\Money::format($run->net_cents) }} | View / Actions@if($page==='wps' && $run->status==='released')@can('payroll.export') Generate SIF@endcan @endif |
| No matching payroll runs. | |||||
{{ $event->created_at }} · {{ $event->subject }} · {{ $event->metadata['format'] ?? '' }}
@emptyNo recorded SIF exports.
@endforelseDated recurring compensation components
| Employee | Code | Kind | Monthly amount | Effective |
|---|---|---|---|---|
| {{ $component->employee?->full_name }} {{ $component->employee?->employee_number }} | {{ $component->code }} | {{ ucfirst($component->kind) }} | {{ $component->currency }} {{ \App\Domain\Payroll\Money::format($component->amount_cents) }} | {{ $component->effective_on->format('d M Y') }} |
Components are employee-specific dated versions. Post a zero-amount version to stop one; use approved requests for one-off adjustments.
@can('requests.view')Financial requests@endcan @elseif($page==='policies')@can('payroll.manage')Create dated policy@endcan @php($policyRows=\App\Support\ListView::rows($policies,'payroll_policies'))Effective company rules, preserved by version
| Policy | Effective | Currency | Hours divisor | Attendance | Validation reference |
|---|---|---|---|---|---|
| {{ $policy->name }} | {{ $policy->effective_on->format('d M Y') }} | {{ $policy->currency }} | {{ $policy->monthly_hours }} | {{ $policy->attendance_required?'Required':'Optional' }} | {{ $policy->jurisdiction_note }} |
{{ $profile->validation_reference }}
Review bank-validation evidence@can('payroll.approve')@if($profile->status==='pending')@endif @endcanEmployee WPS ID: {{ $payee->details['employee_wps_id'] }} · Agent: {{ $payee->details['routing_code'] }}
Account: {{ $payee->details['account'] }} · {{ $payee->details['account_kind'] }}
{{ $settlement->basis }}
| Component | Kind | Amount |
|---|---|---|
| {{ $line['code'] }} | {{ $line['kind'] }} | {{ \App\Domain\Payroll\Money::format($line['cents']) }} |
| Net settlement | {{ $settlement->currency }} | {{ \App\Domain\Payroll\Money::format($settlement->net_cents) }} |
{{ $settlement->decision_note }}
@endif @can('payroll.manage')@if($settlement->status==='approved')@endif @endcan @if($settlement->payment_reference)Payment reference: {{ $settlement->payment_reference }}
@endifVerified external payment references recorded on final settlements. This register does not represent general payment reconciliation or initiate payments.
@else @can('payroll.manage')Prepare final settlement@endcan @endif| Employee | Status | Revision | Net | Payment reference | Actions |
|---|---|---|---|---|---|
| {{ $settlement->employee?->full_name }} | {{ $settlement->status }} | {{ $settlement->revision }} | {{ $settlement->currency }} {{ \App\Domain\Payroll\Money::format($settlement->net_cents) }} | {{ $settlement->payment_reference ?? 'Not recorded' }} | View / Actions |
| No matching settlements. | |||||
| Employee | Actions |
|---|---|
| {{ $employee->employee_number }} · {{ $employee->full_name }} | Salary details & history |
| No permitted employees. | |
| Contract | Starts | Ends | Salary |
|---|---|---|---|
| {{ $contract->reference }} | {{ $contract->starts_on?->toDateString() }} | {{ $contract->ends_on?->toDateString() }} | {{ $contract->currency }} {{ $contract->salary }} |
| No contract salary recorded. | |||
Dated recurring compensation components
| Employee | Code | Kind | Monthly amount | Effective |
|---|---|---|---|---|
| {{ $component->employee?->full_name }} {{ $component->employee?->employee_number }} | {{ $component->code }} | {{ ucfirst($component->kind) }} | {{ $component->currency }} {{ \App\Domain\Payroll\Money::format($component->amount_cents) }} | {{ $component->effective_on->format('d M Y') }} |
| Employee | Period | Net | Actions |
|---|---|---|---|
| {{ $item->employee?->full_name }} | {{ $item->run?->period }} | {{ $item->run?->currency }} {{ \App\Domain\Payroll\Money::format($item->net_cents) }} | View / Print payslip |
| No released payslips. | |||
Existing approved attendance overtime is included by payroll calculation. Financial requests retain their independent approval workflow.
| Employee | Kind | Status | Effective |
|---|---|---|---|
| {{ $request->employee?->full_name }} | {{ $request->kind }} | {{ $request->status }} | {{ $request->effective_on?->toDateString() }} |
| No financial requests. | |||
Policies retain existing hours, overtime, attendance, absence, tax and pension settings. Independent approval requirements remain in force.
Open a register to filter and preview existing records. Payslip print and authorized SIF generation retain their existing formats.