@extends('layouts.app') @section('title', 'Staff Register') @section('styles') @endsection @section('content') {{-- Unified Full Time Staff tabset (Staff Register · Payroll Profile · Leave Management · Payroll Runs · Payments · Statutory Remittances). Active tab here is "register" — the Leave panel is reached via the internal panel-switcher below OR by the dedicated /hr/leave URL the top tab links to. --}} @include('hr.partials.ft-staff-tabs', ['active' => 'register']) {{-- ════════════════════════════════════════════════════════════ STAFF REGISTER — clean one-pager. Top tabs (above) handle navigation to Leave Management, Payroll Profile, etc. so we don't repeat that here. KPIs intentionally dropped: each one was either static or duplicated info available one click away. ════════════════════════════════════════════════════════════ --}} {{-- Header / Action bar --}}

Staff Register

View, search and edit full-time staff records.

{{-- Add Staff routes through the unified People form (May 24 2026) so personal info isn't re-typed every time a new permanent hire is added. The old modal still exists below for callers using the panel switcher with ?action=add, but the primary entry point is now the consolidated form. --}} Add Staff
{{-- Flash success --}} @if(session('success'))
{{ session('success') }}
@endif {{-- ═══ STAFF REGISTER ═══ --}}

Staff Register

{{ count($allStaff ?? []) }} record{{ count($allStaff ?? []) === 1 ? '' : 's' }} @if(!empty($showInactive)) incl. inactive @endif
{{-- Toggle inactive visibility. Default = hidden. When showing them, badge in the header makes that explicit so the user doesn't forget they're looking at a wider list. --}} @if(!empty($showInactive)) Hide inactive @elseif(($inactiveStaffCount ?? 0) > 0) Show inactive ({{ $inactiveStaffCount }}) @endif
@forelse(($allStaff ?? []) as $s) @empty @endforelse
Employee # Name Designation Department Phone Status Actions
{{ $s->employee_number }} {{ $s->full_name }} {{ $s->designation ?? '—' }} {{ $s->department->name ?? '—' }} {{ $s->phone ?? '—' }} @php $statusBadge = match($s->status) { 'active' => 'badge-success', 'on_leave' => 'badge-warning', 'suspended' => 'badge-warning', 'inactive' => 'badge-gray', 'terminated' => 'badge-danger', default => 'badge-gray', }; @endphp {{ ucfirst(str_replace('_', ' ', $s->status)) }} View Edit

No staff records yet.

+ Add the first staff member
{{-- ═══ ADD STAFF MODAL ═══ --}} @endsection @section('scripts') @endsection