@extends('layouts.app') @section('title', 'Butiran Permohonan') @section('ibams', true) @section('hide_footer', true) @section('content')
@php $nofail = request('nomborFail') ?? ($data->nombor_fail ?? ''); // Extract parts from the complete nombor fail $nofailParts = $nofail ? explode('/', $nofail) : []; $secondFromRight = count($nofailParts) >= 2 ? $nofailParts[count($nofailParts) - 2] : ''; // Extract year from the last part of the nombor fail string (after last slash) $yearFromFail = count($nofailParts) >= 1 ? $nofailParts[count($nofailParts) - 1] : date('Y'); // Ensure year is in full 4-digit format (e.g., "2024") if (strlen($yearFromFail) == 2 && is_numeric($yearFromFail)) { // Convert 2-digit year to 4-digit (assuming 2000s) $year = '20' . $yearFromFail; } elseif (strlen($yearFromFail) == 4 && is_numeric($yearFromFail)) { // Already 4-digit year $year = $yearFromFail; } else { // Fallback to current year if format is unexpected? $year = date('Y'); } // Extract main part without last two slash-separated parts $mainNomborFail = $data->nombor_fail ?? ''; if ($mainNomborFail) { $failParts = explode('/', $mainNomborFail); if (count($failParts) > 2) { // Remove last two parts and rejoin $mainParts = array_slice($failParts, 0, -2); $mainNomborFail = implode('/', $mainParts); } } $tarikhPermohonan = ($data && $data->tarikh_terima_fail) ? date('Y-m-d', strtotime($data->tarikh_terima_fail)) : null; $tarikhKelulusan = ($data && $data->tarikh_lulus) ? date('Y-m-d', strtotime($data->tarikh_lulus)) : null; $tarikhUlasanOSC = ($data && $data->tarikh_ulasan) ? date('Y-m-d', strtotime($data->tarikh_ulasan)) : null; // Calculate sasaran tarikh akhir (A8 + 19 business days) if (!function_exists('addBusinessDays')) { function addBusinessDays($date, $days) { if (!$date) return ''; $dateObj = new DateTime($date); $added = 0; while ($added < $days) { $dateObj->modify('+1 day'); if ($dateObj->format('N') < 6) { // 1 = Monday, 5 = Friday $added++; } } return $dateObj->format('Y-m-d'); } } if (!function_exists('businessDaysBetween')) { function businessDaysBetween($startDate, $endDate) { if (!$startDate || !$endDate) return 0; $start = new DateTime($startDate); $end = new DateTime($endDate); $businessDays = 0; if ($start <= $end) { while ($start <= $end) { if ($start->format('N') < 6) { $businessDays++; } $start->modify('+1 day'); } } return $businessDays; } } $sasaranTarikhAkhir = $tarikhPermohonan ? addBusinessDays($tarikhPermohonan, 19) : ''; // Calculate countdown ulasan $countdownUlasan = ''; if ($sasaranTarikhAkhir && !$tarikhUlasanOSC) { $countdownUlasan = businessDaysBetween(date('Y-m-d'), $sasaranTarikhAkhir); } @endphp