@if($staff->jobTitle && strtolower($staff->jobTitle->slug) === 'tester' && isset($testerSlotsData) && $testerSlotsData['slots']->count() > 0) @php $slots = $testerSlotsData['slots']; $selectedSlots = $testerSlotsData['selectedSlots']; $selectedSlotIds = $selectedSlots->pluck('id')->toArray(); $daysOfWeek = ['Saturday', 'Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday']; $morningSlots = $slots->filter(function($slot) { $slotTime = strtotime($slot['slot_start']); $hour = (int)date('H', $slotTime); $minute = (int)date('i', $slotTime); $totalMinutes = $hour * 60 + $minute; return $totalMinutes < (16 * 60 + 30); // Before 16:30 })->values(); $nightSlots = $slots->filter(function($slot) { $slotTime = strtotime($slot['slot_start']); $hour = (int)date('H', $slotTime); $minute = (int)date('i', $slotTime); $totalMinutes = $hour * 60 + $minute; return $totalMinutes >= (17 * 60 + 30); })->values(); @endphp
{{-- Hint Section --}}
HR Slot
Schedule Slot
Both HR + Schedule
{{-- Morning Shift Table --}} @if($morningSlots->count() > 0) @php $groupedMorning = []; foreach ($morningSlots as $slot) { $timeRange = date('g:i A', strtotime($slot['slot_start'])) . ' - ' . date('g:i A', strtotime($slot['slot_end'])); if (!isset($groupedMorning[$timeRange])) { $groupedMorning[$timeRange] = []; } $groupedMorning[$timeRange][] = $slot; } $selectedAdminIdMorning = '0'; if (isset($testerOldAdmins)) { $matchingAssignmentMorning = $testerOldAdmins->first(function($assignment) { return $assignment->shift === 'morning'; }); if ($matchingAssignmentMorning) { $selectedAdminIdMorning = $matchingAssignmentMorning->admin_id; } } @endphp
Morning Shift
@foreach($daysOfWeek as $day) @endforeach @foreach($groupedMorning as $timeRange => $timeSlots) @foreach($daysOfWeek as $day) @php $slot = collect($timeSlots)->first(function($s) use ($day) { return strtolower($s['slot_day']) === strtolower($day); }); $isChecked = false; $borderClass = ''; if ($slot) { $selectedSlot = $selectedSlots->first(function($s) use ($slot) { return $s['id'] == $slot['id']; }); if ($selectedSlot && count($selectedSlot['staff_slots']) > 0) { $staffSlot = collect($selectedSlot['staff_slots'])->first(function($ss) use ($slot) { return $ss['slot_id'] == $slot['id']; }); if ($staffSlot) { $deptSources = is_array($staffSlot['department_added_by']) ? $staffSlot['department_added_by'] : []; $fromHR = in_array('hr', $deptSources); $fromSchedule = in_array('schedule', $deptSources); if ($fromHR && $fromSchedule) { $borderClass = 'border-both'; } elseif ($fromHR) { $borderClass = 'border-hr'; } elseif ($fromSchedule) { $borderClass = 'border-schedule'; } $isChecked = true; } } else { $isChecked = in_array($slot['id'], $selectedSlotIds); } } @endphp @endforeach @endforeach
Time Slot{{ $day }}
{{ $timeRange }} @if($slot)
@endif
@else
Morning Shift
@foreach($daysOfWeek as $day) @endforeach
Time Slot{{ $day }}
No morning slots found
@endif @if($nightSlots->count() > 0) @php $groupedNight = []; foreach ($nightSlots as $slot) { $timeRange = date('g:i A', strtotime($slot['slot_start'])) . ' - ' . date('g:i A', strtotime($slot['slot_end'])); if (!isset($groupedNight[$timeRange])) { $groupedNight[$timeRange] = []; } $groupedNight[$timeRange][] = $slot; } // Get selected admin for night shift $selectedAdminIdNight = '0'; if (isset($testerOldAdmins)) { $matchingAssignmentNight = $testerOldAdmins->first(function($assignment) { return $assignment->shift === 'night'; }); if ($matchingAssignmentNight) { $selectedAdminIdNight = $matchingAssignmentNight->admin_id; } } @endphp
Night Shift
@foreach($daysOfWeek as $day) @endforeach @foreach($groupedNight as $timeRange => $timeSlots) @foreach($daysOfWeek as $day) @php $slot = collect($timeSlots)->first(function($s) use ($day) { return strtolower($s['slot_day']) === strtolower($day); }); $isChecked = false; $borderClass = ''; if ($slot) { $selectedSlot = $selectedSlots->first(function($s) use ($slot) { return $s['id'] == $slot['id']; }); if ($selectedSlot && count($selectedSlot['staff_slots']) > 0) { $staffSlot = collect($selectedSlot['staff_slots'])->first(function($ss) use ($slot) { return $ss['slot_id'] == $slot['id']; }); if ($staffSlot) { $deptSources = is_array($staffSlot['department_added_by']) ? $staffSlot['department_added_by'] : []; $fromHR = in_array('hr', $deptSources); $fromSchedule = in_array('schedule', $deptSources); if ($fromHR && $fromSchedule) { $borderClass = 'border-both'; } elseif ($fromHR) { $borderClass = 'border-hr'; } elseif ($fromSchedule) { $borderClass = 'border-schedule'; } $isChecked = true; } } else { $isChecked = in_array($slot['id'], $selectedSlotIds); } } @endphp @endforeach @endforeach
Time Slot{{ $day }}
{{ $timeRange }} @if($slot)
@endif
@else
Night Shift
@foreach($daysOfWeek as $day) @endforeach
Time Slot{{ $day }}
No night slots found
@endif
@else
No available slots

No slots assigned to this Tester.

@endif