Leave Details

{{$leave_pgk->title}}
{{$leave_request->reason}}
@php // Build list of working dates in the leave range (excluding weekends) $fromDateObj = new DateTime($leave_request->from); $toDateObj = new DateTime($leave_request->to); $all_dates = []; $current_date = clone $fromDateObj; while ($current_date <= $toDateObj) { // Only include weekdays (Monday to Friday) if ($current_date->format('w') != '0' && $current_date->format('w') != '6') { $all_dates[] = $current_date->format('Y-m-d'); } $current_date->modify('+1 day'); } // Decode paid dates if custom approved $paid_dates = []; if (!empty($leave_request->paid_dates)) { $decoded = json_decode($leave_request->paid_dates, true); if (is_array($decoded)) { $paid_dates = array_values(array_intersect($all_dates, $decoded)); } } // Determine paid/unpaid sets based on status if ($leave_request->status == 1) { if (empty($paid_dates)) { $paid_dates = $all_dates; } $unpaid_dates = array_values(array_diff($all_dates, $paid_dates)); } elseif ($leave_request->status == 4) { $paid_dates = []; $unpaid_dates = $all_dates; } else { $paid_dates = []; $unpaid_dates = []; } $paid_count = count($paid_dates); $unpaid_count = count($unpaid_dates); @endphp @if(($leave_request->status == 1 || $leave_request->status == 4) && (count($all_dates) > 2 || (!empty($leave_request->paid_dates) && $leave_request->paid_days > 0 && $leave_request->paid_days < $total_days)))
Approved Leave ({{ $paid_count }})
@if($paid_count > 0)
@foreach($paid_dates as $d) @endforeach
@else No paid dates @endif
Not Approved Leave ({{ $unpaid_count }})
@if($unpaid_count > 0)
@foreach($unpaid_dates as $d) {{ \Carbon\Carbon::parse($d)->format('d M Y') }} @endforeach
@else No unpaid dates @endif
@endif
@foreach($all_pkgs as $all_pkg) @php $color_code = $all_pkg->color_code; $linear_gradient_start = 'rgba(0, 0, 0, 0.15)'; $linear_gradient_end = 'rgba(0, 0, 0, 0.15)'; $text_color = '#fff'; $leave_requests_for_pkg = DB::table('leave_requests') ->where('leave_package_id', $all_pkg->id) ->where('employee_id', $emp_details->id) ->where('status', 1) ->get(); $count = 0; foreach ($leave_requests_for_pkg as $leave) { if (!empty($leave->paid_dates) && $leave->paid_days > 0) { $count += $leave->paid_days; } else { // Recalculate working days excluding weekends $start_date = new DateTime($leave->from); $end_date = new DateTime($leave->to); $working_days = 0; $current_date = clone $start_date; while ($current_date <= $end_date) { // Skip Saturday (6) and Sunday (0) if ($current_date->format('w') != '0' && $current_date->format('w') != '6') { $working_days++; } $current_date->modify('+1 day'); } $count += $working_days; } } @endphp @if ($color_code) @php list($r, $g, $b) = sscanf($color_code, "#%02x%02x%02x"); $linear_gradient_start = "rgba($r, $g, $b, 0.15)"; $linear_gradient_end = "rgba($r, $g, $b, 0.15)"; $text_color = "$color_code"; @endphp @endif
{{$count}} / {{$all_pkg->leave_number}}
{{$all_pkg->title}}
@endforeach
@if($leave_request->status == 0)
@if($total_days > 1) @endif
@endif