@foreach ($client_name as $code => $name) @endforeach @foreach ($roster_data as $code => $roster) @php $nextDayData = $roster_next_day_data[$roster->id] ?? []; if (!empty($nextDayData)) { $roster->staff_1_total_hours = $roster->staff_1_total_hours + $nextDayData['staff_1_total_hours']; $roster->staff_2_total_hours = $roster->staff_2_total_hours + $nextDayData['staff_2_total_hours']; $roster->staff_3_total_hours = $roster->staff_3_total_hours + $nextDayData['staff_3_total_hours']; $roster->staff_4_total_hours = $roster->staff_4_total_hours + $nextDayData['staff_4_total_hours']; } $staff_1_total_hours = $roster->staff_1_total_hours; $staff_2_total_hours = $roster->staff_2_total_hours; $staff_3_total_hours = $roster->staff_3_total_hours; $staff_4_total_hours = $roster->staff_4_total_hours; $staff_1_total_hours_html = $staff_2_total_hours_html = $staff_3_total_hours_html = $staff_4_total_hours_html = ''; try { if ($roster->client_type == 1) { $client_hours = explode(',', $roster->client_hours); $staffHours = []; foreach ($client_hours as $client_hour) { $client_hour = explode(';', $client_hour); if ((float) $client_hour[2] <= 0) { continue; } if (!isset($staffHours[$client_hour[1]][$client_hour[0]]['Hours'])) { $staffHours[$client_hour[1]][$client_hour[0]]['Hours'] = 0; } $staffHours[$client_hour[1]][$client_hour[0]]['Client'] = $client_hour[0]; $staffHours[$client_hour[1]][$client_hour[0]]['Hours'] += (float) $client_hour[2]; $staffHours[$client_hour[1]][$client_hour[0]]['Time'] = $client_hour[3]; //$staffHours[$client_hour[1]][$client_hour[0]] = ['Client' => $client_hour[0], 'Hours' => $client_hour[2], 'Time' => $client_hour[3]]; } foreach ($staffHours as $staffKey => $staffHour) { $orgKey = str_replace('cover_', '', $staffKey); $selectedStartTime = $roster->{$orgKey . '_start_time'}; // Replace with your actual selected start time $selectedStartTime = DateTime::createFromFormat('H:i:s', $selectedStartTime); if ($selectedStartTime) { $selectedStartTime = $selectedStartTime->format('H:i'); foreach ($staffHour as $staffName => $staffHourData) { // Create a DateTime object from the selected start time $newFromTime = $selectedStartTime; $startDateTime = DateTime::createFromFormat('H:i', $selectedStartTime); // Add the desired number of hours $startDateTime->add( new DateInterval( Helper::covertDecimalToTime((float) $staffHourData['Hours']), ), ); // Format the result $newToTime = $startDateTime->format('H:i'); $timeString = $newFromTime . ' to ' . $newToTime; $selectedStartTime = $newToTime; $staffHours[$staffKey][$staffName]['Time'] = $timeString; } } else { //dd($selectedStartTime, $roster, $staffHours[$staffKey],$orgKey); } } if (isset($staffHours['staff_1'])) { $staffHours['staff_1'][] = [ 'Client' => 'Total', 'Hours' => $staff_1_total_hours, 'Time' => '', ]; $staff_1_total_hours_html = Helper::array2Html($staffHours['staff_1']); } if (isset($staffHours['cover_staff_1']) && !empty($roster->cover_staff_1)) { $staffHours['cover_staff_1'][] = [ 'Client' => 'Total', 'Hours' => $staff_1_total_hours, 'Time' => '', ]; $staff_1_total_hours_html = Helper::array2Html($staffHours['cover_staff_1']); } if (isset($staffHours['staff_2'])) { $staffHours['staff_2'][] = [ 'Client' => 'Total', 'Hours' => $staff_2_total_hours, 'Time' => '', ]; $staff_2_total_hours_html = Helper::array2Html($staffHours['staff_2']); } if (isset($staffHours['cover_staff_2']) && !empty($roster->cover_staff_2)) { $staffHours['cover_staff_2'][] = [ 'Client' => 'Total', 'Hours' => $staff_2_total_hours, 'Time' => '', ]; $staff_2_total_hours_html = Helper::array2Html($staffHours['cover_staff_2']); } if (isset($staffHours['staff_3'])) { $staffHours['staff_3'][] = [ 'Client' => 'Total', 'Hours' => $staff_3_total_hours, 'Time' => '', ]; $staff_3_total_hours_html = Helper::array2Html($staffHours['staff_3']); } if (isset($staffHours['cover_staff_3']) && !empty($roster->cover_staff_3)) { $staffHours['cover_staff_3'][] = [ 'Client' => 'Total', 'Hours' => $staff_3_total_hours, 'Time' => '', ]; $staff_3_total_hours_html = Helper::array2Html($staffHours['cover_staff_3']); } if (isset($staffHours['staff_4'])) { $staffHours['staff_4'][] = [ 'Client' => 'Total', 'Hours' => $staff_4_total_hours, 'Time' => '', ]; $staff_4_total_hours_html = Helper::array2Html($staffHours['staff_4']); } if (isset($staffHours['cover_staff_4']) && !empty($roster->cover_staff_4)) { $staffHours['cover_staff_4'][] = [ 'Client' => 'Total', 'Hours' => $staff_4_total_hours, 'Time' => '', ]; $staff_4_total_hours_html = Helper::array2Html($staffHours['cover_staff_4']); } } } catch (\Exception $e) { //dd($e,$selectedStartTime); } @endphp @endforeach

ParticipantName {!! nl2br($name) !!}
ParticipantAddress {!! nl2br($code) !!}
Notes {!! nl2br($notes) !!}
Week Start From {!! nl2br($week_start) !!} Week End From {!! nl2br($week_end) !!}
Date Shift Staff 1 Start Time End Time Total Hours Staff 2 Start Time End Time Total Hours Staff 3 Start Time End Time Total Hours Staff 4 Start Time End Time Total Hours
{!! nl2br($roster->date->format('d-m-Y D')) !!} {!! nl2br($roster->shift) !!} {!! nl2br($roster->staff1Name) !!} {!! nl2br($roster->staff_1_start_time) !!} {!! nl2br($roster->staff_1_end_time) !!} @if (empty($staff_1_total_hours_html)) {!! nl2br($roster->staff_1_total_hours) !!} @else {!! $staff_1_total_hours_html ?? '' !!} @endif {!! nl2br($roster->staff2Name) !!} {!! nl2br($roster->staff_2_start_time) !!} {!! nl2br($roster->staff_2_end_time) !!} @if (empty($staff_2_total_hours_html)) {!! nl2br($roster->staff_2_total_hours) !!} @else {!! $staff_2_total_hours_html ?? '' !!} @endif {!! nl2br($roster->staff3Name) !!} {!! nl2br($roster->staff_3_start_time) !!} {!! nl2br($roster->staff_3_end_time) !!} @if (empty($staff_3_total_hours_html)) {!! nl2br($roster->staff_3_total_hours) !!} @else {!! $staff_3_total_hours_html ?? '' !!} @endif {!! nl2br($roster->staff4Name) !!} {!! nl2br($roster->staff_4_start_time) !!} {!! nl2br($roster->staff_4_end_time) !!} @if (empty($staff_4_total_hours_html)) {!! nl2br($roster->staff_4_total_hours) !!} @else {!! $staff_4_total_hours_html ?? '' !!} @endif