@extends('layouts.app') @section('title', 'Employee Directory') @section('content')

Employees & HR

Employee directory

Independent HR records, employment compliance, today’s attendance and controlled ERP access.

Document expiriesAttendance@if(auth()->check() && auth()->user()->hasPermission('employees.create'))+ New employee@endif
@forelse($employees as $employee) @empty@endforelse
EmployeeDepartment / designationBranchEmploymentContactAttendance todayDocument expiriesERP accessStatusActions
{{ strtoupper(substr($employee->first_name,0,1).substr($employee->last_name??'',0,1)) }}
{{ $employee->department?->name ?? 'No department' }}{{ $employee->designation ?: 'No designation' }}{{ $employee->branch?->name ?? '—' }}{{ ucfirst(str_replace('_',' ',$employee->employment_type)) }}Joined {{ $employee->joining_date?->format('d M Y') ?? '—' }}{{ $employee->mobile ?: '—' }}{{ $employee->email ?: 'No work email' }}@php($todayAttendance=$employee->attendanceRecords->first()) @if($todayAttendance){{ str_replace('_',' ',$todayAttendance->status) }}@elseNot checked in@endif@php($nextExpiry=$employee->documents->whereNotNull('expiry_date')->sortBy('expiry_date')->first()) @if($nextExpiry){{ ucfirst(str_replace('_',' ',$nextExpiry->document_type)) }}{{ $nextExpiry->expiry_date->format('d M Y') }}@elseNo tracked expiry@endif@if($employee->user)Active@elseif(auth()->user()->hasPermission('employees.edit'))Create login@elseNo login@endif{{ str_replace('_',' ',$employee->status) }}Employee 360
No employees match these filtersClear the filters or create the first employee record.@if(auth()->check() && auth()->user()->hasPermission('employees.create'))Create employee@endif
{{ $employees->links() }}
@endsection