@if (session('status'))
{{ session('status') }}
@endif @if (session('error'))
{{ session('error') }}
@endif
Clear
Weights are capped at 100% per employee per year; progress is reviewed continuously. @if ($weightByStaff->isNotEmpty())
@foreach ($weightByStaff as $ownerId => $total) @php($owner = $goals->firstWhere('user_id', $ownerId)?->user) {{ $owner?->name ?? 'Unknown' }} · {{ $total }}% @endforeach
@endif @if ($goals->isEmpty()) Set the year's goals below, grouped under the key result areas they support. @else
@foreach ($goals as $goal) @endforeach
Staff KRA / goal Weight Progress Status Manage

{{ $goal->user?->name ?? 'Unknown' }}

{{ $goal->user?->employee_no }}

{{ $goal->title }}

{{ $goal->kra }}

@if ($goal->target)

Target: {{ $goal->target }}

@endif
{{ $goal->weight }}%
{{ $goal->progress }}%
@can('hrm.performance.manage')
Edit
@csrf @method('PUT')
@csrf @method('DELETE')
@endcan
@endif @can('hrm.performance.manage')
Add goal
@csrf
@endcan
@if ($appraisals->isEmpty()) Open a half-year or annual appraisal on the right. @else
@foreach ($appraisals as $appraisal) @can('hrm.performance.appraise') @php($canEdit = $appraisal->reviewer_id === auth()->id() || auth()->user()->can('hrm.performance.manage')) @else @php($canEdit = false) @endcan

{{ $appraisal->user?->name ?? 'Unknown' }}

{{ $appraisal->period_label }} {{ $appraisal->period_year }} · Reviewer: {{ $appraisal->reviewer?->name ?? 'Unassigned' }}

{{ $appraisal->overall_rating !== null ? number_format((float) $appraisal->overall_rating, 1).'/5' : '—' }}
@if (! empty($appraisal->criteria))
@foreach ($appraisal->criteria as $row) @endforeach
CriterionRatingComment
{{ $row['criterion'] ?? '—' }} {{ $row['rating'] ?? '—' }}/5 {{ $row['comment'] ?? '' }}
@else

No criteria rated yet.

@endif @if ($appraisal->strengths || $appraisal->improvements || $appraisal->recommendations)
@if ($appraisal->strengths)

Strengths

{{ $appraisal->strengths }}

@endif @if ($appraisal->improvements)

Improvements

{{ $appraisal->improvements }}

@endif @if ($appraisal->recommendations)

Recommendations

{{ $appraisal->recommendations }}

@endif
@endif
@if ($appraisal->completed_at) Completed {{ $appraisal->completed_at->format('d M Y') }} @endif @if ($appraisal->acknowledged_at) Acknowledged {{ $appraisal->acknowledged_at->format('d M Y') }} @endif
@if ($canEdit && $appraisal->status === 'draft')
Rate and finalise
@csrf @method('PUT')

Criteria

@csrf
@endif @if ($appraisal->user_id === auth()->id() && $appraisal->status === 'completed')
@csrf
@endif
@endforeach
@endif
@if ($feedback->isEmpty()) Capture praise, concerns and coaching notes as they happen. @else
    @foreach ($feedback as $entry)
  1. {{ $entry->toUser?->name ?? 'Unknown' }} from {{ $entry->fromUser?->name ?? 'Unknown' }}

    {{ $entry->feedback_date?->format('d M Y') }}

    {{ $entry->message }}

    {{ $entry->is_shared ? 'Shared with employee' : 'Private note' }} @can('hrm.performance.manage')
    @csrf @method('DELETE')
    @endcan
  2. @endforeach
@endif @can('hrm.performance.manage')
Record feedback
@csrf
@endcan
@can('hrm.performance.manage')
@csrf

Criteria

@endcan