@extends('dashboard.layouts.app') @section('content') @include('components.alert')
@if ($isAcademicTesterView) Academic → Testers @endif @if ($canBulkUpdateManager) @endif @can('hr_staffs_create') + Add New Employee @endcan @can('hr_staffs_review_new') @if (($newStaffCount ?? 0) > 0)
New Staff {{ $newStaffCount }} new staff member(s) have been added and need review.
@csrf
@endif @endcan @if ($canBulkUpdateManager)
Bulk Action Select one or more teachers, then update their manager in one step.
@endif
{{-- @if ($isAcademicTeacherView || $isAcademicTesterView || $isAcademicSupervisorView || $isTeamsRoute) --}}
Filters
{{-- @endif --}} @php $tableFilters = [ 'job_title_id' => $job_titles->pluck('name', 'id')->toArray(), 'delay_status' => [ 'feedback_only' => 'Feedback Delay', 'whiteboard_only' => 'Whiteboard Delay', 'both' => 'Feedback + Whiteboard', 'on_time' => 'On Time', 'no_sessions' => 'No Sessions', ], ]; if ( !$isAcademicTeacherView && !$isAcademicTesterView && !$isAcademicSupervisorView && !$isTeamsRoute ) { $tableFilters['department_id'] = $departments->pluck('name', 'id')->toArray(); $tableFilters['manager_id'] = $managers ->mapWithKeys(function ($manager) { return [ $manager->id => trim($manager->first_name . ' ' . $manager->last_name), ]; }) ->toArray(); } $filterLabels = [ 'department_id' => 'Department', 'job_title_id' => 'Job Title', 'manager_id' => 'Manager', 'delay_status' => 'Feedback & Whiteboard Status', ]; @endphp
@foreach ($staffs as $staff) @php $isLate = false; $isWhiteboardLate = false; $isFeedbackLate = false; $isTeacherStaff = in_array(strtolower((string) optional($staff->jobTitle)->slug), ['teacher', 'tester'], true); $availabilityLabel = $staff->current_availability_label; $staffSessions = collect($staff->scheduleSesssions ?? []); $scheduledById = collect($staff->scheduled ?? [])->keyBy('id'); $hasAnySessions = $isTeacherStaff && $staffSessions->isNotEmpty(); if ($isTeacherStaff) { foreach ($staffSessions as $session) { if (empty($session->session_date) || empty($session->end_time)) { continue; } $now = \Carbon\Carbon::now(); $sessionEnd = \Carbon\Carbon::parse( $session->session_date . ' ' . $session->end_time, ); if ($now->gte($sessionEnd->copy()->addHours(12))) { if (empty($session->extra_file)) { $isWhiteboardLate = true; $isLate = true; } $course = $scheduledById->get($session->staff_scheduled_id); $feedbacks = collect($course?->teacherFeedback); $neededType = null; if ( $session->session_number == 1 && str_contains(strtolower((string) ($course?->course_name_en ?? '')), 'demo') ) { $neededType = 'demo'; } elseif ($session->session_number == 2) { $neededType = 'initial'; } elseif ($session->session_number == 4) { $neededType = 'mid'; } elseif ($session->session_number == 8) { $neededType = 'final'; } if ($neededType && $feedbacks->where('type', $neededType)->isEmpty()) { $isFeedbackLate = true; $isLate = true; } if ($isWhiteboardLate && $isFeedbackLate) { break; } } } } $leave = $staff->requestLeaves->first(); $managerName = trim( optional($staff->manager)->first_name . ' ' . optional($staff->manager)->last_name, ); @endphp @if ($canBulkUpdateManager) @endif {{ $staff->id }} {{ $staff->first_name }} @if ($leave) @if ($leave->status == 'accepted') Approved {{ $leave->leave_from }} → {{ $leave->leave_to }} @elseif ($leave->status == 'rejected') Unapproved {{ $leave->leave_from }} → {{ $leave->leave_to }} @elseif ($leave->status == 'pending') Pending {{ $leave->leave_from }} → {{ $leave->leave_to }} @else No Requests @endif @else No Requests @endif {{ $staff->first_name }} {{ $staff->last_name }} @can('hr_staffs_review_new') @if (is_null($staff->reviewed_at)) @endif @endcan @if ($availabilityLabel) {{ $availabilityLabel }} @endif @if ($authDepartmentSlug != 'academy') {{ $staff->department->name ?? '-' }} @endif @if (!$isTeacherStaff) -- @elseif (!$hasAnySessions) No Sessions @else
@if ($isFeedbackLate) Feedback: Delayed @else Feedback: On Time @endif @if ($isWhiteboardLate) Whiteboard: Delayed @else Whiteboard: On Time @endif
@endif {{ $staff->jobTitle->name ?? '-' }} @if (optional($staff->manager)->id) {{ $managerName ?: '__' }} @else __ @endif {{ $staff->manager->team_name ?? '-' }} {{ $staff->team_type ?? '-' }} @if ($pageTitle === 'Supervisors') {{ $staff->teachers_count ?? 0 }} {{ $staff->slots_count ?? 0 }} {{ $staff->schedules_count ?? 0 }} @endif @if ($isTeamsRoute) {{ $staff->team_renewed_students ?? 0 }}/{{ $staff->team_total_students ?? 0 }} ({{ $staff->team_renewal_rate ?? 0 }}%) @endif {{ $staff->roleType->title ?? '-' }} {{ $staff->date_of_joining ?? '-' }} {{ $staff->years_of_experience ?? '-' }} @if ($authDepartmentSlug == 'academy' && request('job_title_id')) @if ($isAcademicTeacherView) View Students @elseif ($isAcademicTesterView) View Schedule @endif @endif
@can('hr_staffs_show') @endcan @can('hr_staffs_edit') @endcan @can('hr_staffs_review_new') @if (is_null($staff->reviewed_at))
@csrf
@endif @endcan @can('hr_staffs_destroy') @if (isSuperAdminOrCeo($staff->user)) @else @endif @endcan
@endforeach
@if ($canBulkUpdateManager) @endif @endsection @push('styles') @endpush @push('scripts') @endpush