Staff / HR

Roster Payroll Add Staff {{-- Flash --}} @if(session('success'))
{{ session('success') }}
@endif {{-- Create Shift Modal --}}

Create Shift

@csrf
@if($errors->has('start_time'))

{{ $errors->first('start_time') }}

@endif
{{-- Staff list --}}
{{-- Filter bar --}}
{{-- Role filter pills --}}
All @foreach($roles as $role) {{ $role->name }} @endforeach
@if($staff->isEmpty())

No staff members found.

Try adjusting your search or filter.

@else
@php $roleBg = [ 'owner' => 'bg-purple-100 text-purple-600', 'manager' => 'bg-blue-100 text-blue-600', 'trainer' => 'bg-orange-100 text-orange-600', 'receptionist' => 'bg-green-100 text-green-600', ]; $rolePill = [ 'owner' => 'bg-purple-100 text-purple-700', 'manager' => 'bg-blue-100 text-blue-700', 'receptionist' => 'bg-green-100 text-green-700', 'trainer' => 'bg-orange-100 text-orange-700', ]; @endphp @foreach($staff as $s) @php $firstRole = $s['roles'][0] ?? ''; @endphp
{{ strtoupper(substr($s['name'], 0, 1)) }}
{{ $s['name'] }}

{{ $s['email'] }}

{{ $s['is_active'] ? 'Active' : 'Inactive' }}
@foreach($s['roles'] as $r) {{ $r }} @endforeach @if($s['designation']) {{ $s['designation'] }} @endif
Salary {{ $s['base_salary'] ? '₹' . number_format($s['base_salary'], 0, '.', ',') : '—' }} @if($s['salary_type']) /{{ $s['salary_type'] === 'fixed' ? 'mo' : ($s['salary_type'] === 'hourly' ? 'hr' : 'session') }} @endif
@endforeach
{{ $staff->withQueryString()->links() }}
@endif
{{-- Right sidebar --}}
{{-- Shifts summary --}}

Shift Types

@if($shifts->isEmpty())
No shifts yet.
@else
@foreach($shifts as $shift)
{{ $shift->name }} {{ $shift->start_time }} – {{ $shift->end_time }}
@endforeach
@endif
{{-- Pending Leaves --}}

Pending Leaves

@if($pending_leaves->count()) {{ $pending_leaves->count() }} @endif
@if($pending_leaves->isEmpty())

All clear — no pending leaves.

@else @php $leaveTypeBadge = [ 'sick' => 'bg-red-100 text-red-600', 'casual' => 'bg-blue-100 text-blue-700', 'privilege' => 'bg-purple-100 text-purple-700', 'unpaid' => 'bg-gray-100 text-gray-600', 'compensatory' => 'bg-yellow-100 text-yellow-700', ]; @endphp
@foreach($pending_leaves as $leave)
{{ $leave->user?->name }} {{ $leave->type }}

{{ \Carbon\Carbon::parse($leave->from_date)->format('d M') }} → {{ \Carbon\Carbon::parse($leave->to_date)->format('d M') }} ({{ $leave->days }} day{{ $leave->days > 1 ? 's' : '' }})

@if($leave->reason)

{{ $leave->reason }}

@endif
@csrf
@csrf
@endforeach
@endif