{{-- HEADER --}}

Onboarding Progress Report

Exported on {{ now()->format('F j, Y \a\t g:i A') }}
{{-- TABLE --}} @forelse ($tasks as $item) @php // normalize staff safely (array/object safe) $staff = is_array($item['staff'] ?? null) ? $item['staff'] : (array) ($item['staff'] ?? []); $name = trim(($staff['first_name'] ?? '') . ' ' . ($staff['last_name'] ?? '')); $steps = $item['steps'] ?? [ 'manager' => ['done' => false], 'hr' => ['done' => false], 'it' => ['done' => false], ]; // normalize date safely $date = isset($item['created_at']) ? \Carbon\Carbon::parse($item['created_at'])->format('d M, Y') : '—'; @endphp {{-- NAME --}} {{-- DATE --}} {{-- MANAGER --}} {{-- HR --}} {{-- IT --}} @empty @endforelse
Employee Date Manager HR IT
{{ $name ?: '—' }} {{ $date }} {{ $managerDone ? 'Done' : 'Pending' }} {{ $hrDone ? 'Done' : 'Pending' }} {{ $itDone ? 'Done' : 'Pending' }}
No onboarding records found.
{{-- FOOTER --}} { $format = $request->format ?? 'xlsx'; $data = $this->taskAssignService->getData($request); $tasks = collect($data['tasks']->items() ?? [])->map(function ($item) { return [ 'staff' => $item['staff'] ?? [], 'created_at' => $item['created_at'] ?? null, 'steps' => $item['steps'] ?? [ 'manager' => ['done' => false, 'task_id' => null], 'hr' => ['done' => false, 'task_id' => null], 'it' => ['done' => false, 'task_id' => null], ], ]; }); if ($request->filled('per_page')) { $tasks = $tasks->take((int) $request->per_page); } if ($format === 'pdf') { return PDF::loadView('dashboard.tasks.onboarding-export', [ 'tasks' => $tasks ])->download('onboarding.pdf'); } return Excel::download( new OnboardingExport($tasks), 'onboarding.' . $format ); }