@php $directoryIntel = $directoryIntel ?? app(\App\Services\Employee\EmployeeDirectoryIntelligenceService::class); $onLeaveEmployeeIds = $onLeaveEmployeeIds ?? []; @endphp @forelse ($employees as $employee) @php $nameParts = preg_split('/\s+/', trim((string) $employee->full_name)) ?: []; $initials = collect($nameParts) ->filter() ->take(2) ->map(fn ($word) => strtoupper(substr((string) $word, 0, 1))) ->join(''); $initials = $initials !== '' ? $initials : '—'; $department = trim((string) ($employee->department ?? '')); if ($department === '') { $department = trim((string) ($employee->organizationUnit?->name ?? '')); } $employmentLabel = \App\Support\EmployeeEmploymentStatus::label($employee->employment_status ?? null); $leaveDays = $employee->leave_balance_days; $isOnLeave = (bool) ($onLeaveEmployeeIds[$employee->id] ?? false); $accessLevel = $directoryIntel->accessLevelLabel($employee->user); $leaveLabel = $leaveDays === null ? '' : \App\Services\Employee\EmployeeDirectoryIntelligenceService::formatLeaveDays((float) $leaveDays); @endphp
{{ $employee->full_name }}
{{ $employee->employee_number ?: '—' }} {{ $employmentLabel }}
$department === '']) title="{{ $department !== '' ? $department : '' }}">{{ $department !== '' ? $department : '—' }} {{ $employee->job_title ?: '—' }} {{ $employee->branch ?: '—' }} @include('loan.employees.partials.access-status-badge', ['explain' => $accessStatuses[$employee->id] ?? [], 'compact' => true])
@if ($employee->email) {{ $employee->email }} @endif @if ($employee->phone) {{ $employee->phone }} @endif @if (! $employee->email && ! $employee->phone) — @endif
{{ $leaveLabel !== '' ? $leaveLabel : '—' }} @if ($isOnLeave) On leave @endif
{{ $accessLevel !== '' ? $accessLevel : '—' }} @php $canEmail = $employee->email && \App\Support\LoanPermissionCatalog::actorCan(auth()->user(), \App\Support\LoanPermissionCatalog::HR_COMMUNICATIONS_MANAGE); $canResend = (bool) $employee->email; $canDelete = \App\Support\LoanPermissionCatalog::actorCan(auth()->user(), 'employees.delete'); $menuItemCount = 2 + (int) $canEmail + (int) $canResend + (int) $canDelete; $indexReturnQuery = array_filter( request()->only(['q', 'status', 'employment_status', 'department', 'branch', 'per_page', 'page', 'organization_unit_id', 'login_status', 'job_title', 'on_leave']), fn ($value) => $value !== null && $value !== '', ); $rowEmbedded = \App\Support\Navigation\WorkspaceEmbed::inWorkspaceContext(); $rowTurboFrame = \App\Support\Navigation\WorkspaceEmbed::turboFrame(); @endphp View Edit @if ($canEmail) Email @endif @if ($canResend)
@csrf @foreach ($indexReturnQuery as $returnKey => $returnValue) @endforeach @if ($rowEmbedded) @endif @php $deliveryEmail = strtolower(trim((string) ($employee->email ?? ''))); @endphp @if ($deliveryEmail !== '') @endif
@endif @if ($canDelete)
@csrf @method('delete') @if ($rowEmbedded) @endif
@endif
@empty @endforelse