@extends('layout.layout') @section('content') @php $hideUrgentControls = $hideUrgentControls ?? false; $urgentHeaders = [ 'Session ID', 'Date', 'Type', 'Message', 'Student Name', 'Admin', 'Teacher Name', 'Supervisor Name', 'Program', 'Level', 'Group/Private', ]; if (! $hideUrgentControls) { $urgentHeaders[] = 'Action'; } @endphp @include('components.alert')
@foreach ($urgents as $item) @php $scheduled = $item->scheduled; $sessionID = $scheduled?->id; $sessionStudents = collect($scheduled?->courseStudent ?? []) ->map(function ($courseStudent) { return [ 'id' => $courseStudent->student_id, 'name' => $courseStudent->student?->full_name ?? trim( ($courseStudent->student?->first_name ?? '') . ' ' . ($courseStudent->student?->last_name ?? ''), ), ]; }) ->values(); $absentStudentIds = collect($scheduled?->urgents ?? []) ->filter(function ($urgent) { $message = strtolower((string) ($urgent->message ?? '')); return str_contains($message, "student didn't show") || str_contains($message, 'student didnt show') || str_contains($message, 'student no-show') || str_contains($message, 'student no show') || str_contains($message, "i can't attend") || str_contains($message, 'i can’t attend'); }) ->pluck('student_id') ->filter() ->map(fn($id) => (int) $id) ->unique() ->values(); $studentName = $item->aggregated_student_names ?: ($item->student ? ($item->student->full_name ?? trim( ($item->student->first_name ?? '') . ' ' . ($item->student->last_name ?? ''), )) : ($scheduled?->trackType?->name ?? ($scheduled?->academyProduct?->name_en ?? 'N/A'))); $teacherName = $item->teacher ? $item->teacher->full_name ?? trim( ($item->teacher->first_name ?? '') . ' ' . ($item->teacher->last_name ?? ''), ) : 'N/A'; $managerName = $item->teacher?->manager ? $item->teacher->manager->full_name ?? trim( ($item->teacher->manager->first_name ?? '') . ' ' . ($item->teacher->manager->last_name ?? ''), ) : 'N/A'; $trackName = $scheduled?->track?->name_en ?? ($scheduled?->academyProduct?->name_en ?? 'N/A'); $levelName = $scheduled?->trackLevel?->name_en ?? ($scheduled?->academyProduct?->name_en ?? 'N/A'); $groupLabel = $scheduled?->trackType?->name ?? ($scheduled?->academyProduct?->name_en ?? 'N/A'); $latestAdminAssignment = $scheduled?->courseAdmins?->sortByDesc('created_at')->first(); $latestAdminUser = $latestAdminAssignment?->admin; $latestAdminStaff = $latestAdminUser?->staff; $latestAdminName = $latestAdminUser?->full_name ?? '-'; $latestAdminUrl = $latestAdminStaff?->id ? config('app.HR_URL') . 'staffs/' . $latestAdminStaff->id : '#'; $teacherUrl = $item->teacher?->id ? config('app.HR_URL') . 'staffs/' . $item->teacher->id : '#'; $managerUrl = $item->teacher?->manager?->id ? config('app.HR_URL') . 'staffs/' . $item->teacher->manager->id : '#'; @endphp @php $messages = collect( preg_split( '/\r\n|\r|\n/', (string) ($item->aggregated_messages ?: $item->message), -1, PREG_SPLIT_NO_EMPTY, ), ) ->map(fn($message) => trim($message)) ->filter() ->unique() ->values(); $types = collect( preg_split( '/\r\n|\r|\n/', (string) ($item->aggregated_types ?: $item->type), -1, PREG_SPLIT_NO_EMPTY, ), ) ->map(fn($type) => trim($type)) ->filter() ->unique() ->values(); $normalizedMessage = strtolower($messages->implode(' ')); $isNoShow = str_contains($normalizedMessage, "didn't show") || str_contains($normalizedMessage, 'didnt show') || str_contains($normalizedMessage, 'no-show') || str_contains($normalizedMessage, 'no show'); $isTeacherAbsentUrgent = str_contains($normalizedMessage, "teacher didn't show") || str_contains($normalizedMessage, 'teacher no-show') || str_contains($normalizedMessage, 'teacher no show'); @endphp @if ($sessionID && $item->session_id) {{ $item->session_id }} @else N/A @endif {{ $item->created_at?->format('Y-m-d') ?? 'N/A' }}
@foreach ($types as $type) {{ \App\Enums\UrgentCase::labelFor($type) }} @endforeach
@foreach ($messages as $message) {{ $message }} @endforeach
@if ($item->student && ! $item->aggregated_student_names) {{ $studentName }} @else {!! nl2br(e($studentName)) !!} @endif {{ $latestAdminName }} @if ($item->teacher) {{ $teacherName }} @else - @endif @if ($item->teacher?->manager) {{ $managerName }} @else - @endif {{ $trackName }} {{ $levelName }} {{ $groupLabel }} @unless ($hideUrgentControls) @if ($sessionID && $item->session_id) Session Details @else - @endif @endunless @endforeach
@endsection