@php use Illuminate\Support\Facades\DB; // Get detail rows from trs_sample_d $details = DB::table('trs_sample_d') ->leftJoin('mst_aplikasi', 'trs_sample_d.aplikasi', '=', 'mst_aplikasi.id') ->leftJoin('mst_detail', 'trs_sample_d.id_detail', '=', 'mst_detail.id') ->where('trs_sample_d.id_sample', $doc->id_sample) ->where('trs_sample_d.isactive', '1') ->select('trs_sample_d.*', 'mst_aplikasi.nama as aplikasi_nama', 'mst_detail.nama as detail_nama') ->orderBy('trs_sample_d.id') ->get(); // Get approval record for this sample dengan approver dan level yang sama // FIXED: Untuk pending, ambil yang statusnya Pending. Untuk decided, gunakan approval_status yang sudah di-attach if ($isPending) { $approvalRecord = DB::table('trs_approval') ->where('id_sample', $doc->id_sample) ->where('id_approval', $approver->id) ->where('level', $approval->level) ->where('status', 'Pending') ->first(); $currentStatus = $approvalRecord ? $approvalRecord->status : 'Pending'; } else { // Untuk decided docs, gunakan approval_status yang sudah di-attach di controller $currentStatus = isset($doc->approval_status) ? $doc->approval_status : 'Pending'; // Ambil approval record untuk token $approvalRecord = DB::table('trs_approval') ->where('id_sample', $doc->id_sample) ->where('id_approval', $approver->id) ->where('level', $approval->level) ->whereIn('status', ['Accepted', 'Approved', 'Rejected']) ->first(); } // Get token untuk sample ini - gunakan token dari approval record atau dari property doc jika ada $sampleToken = $approvalRecord ? $approvalRecord->token : (isset($doc->approval_token) ? $doc->approval_token : $token); // Check if locked (rejected) $isLocked = !$isPending && isset($rejectedBy[$doc->id_sample]); // Prepare logo base64 $logoPath = public_path('storage/secondary_logo.png'); $logoType = pathinfo($logoPath, PATHINFO_EXTENSION); $logoData = file_get_contents($logoPath); $base64 = 'data:image/' . $logoType . ';base64,' . base64_encode($logoData); // Format deadline $deadlineFormatted = $doc->deadline ? \Carbon\Carbon::parse($doc->deadline)->translatedFormat('d F Y') : '-'; $sampleDateFormatted = $doc->sample_date ? \Carbon\Carbon::parse($doc->sample_date)->translatedFormat('d F Y') : ($doc->created_at ? \Carbon\Carbon::parse($doc->created_at)->translatedFormat('d F Y') : '-'); // Fetch Ship To Name if exists $shipToName = null; if (!empty($doc->ship_to)) { $shipToName = DB::table('mst_customer')->where('id', $doc->ship_to)->value('nama'); } @endphp
No. {{ $doc->id_sample }}
STATUS: @if ($currentStatus === 'Approved' || $currentStatus === 'Accepted') ACCEPTED @elseif ($currentStatus === 'Rejected') REJECTED @else PENDING @endif
| No | Aplikasi | Detail | Warna | Deskripsi Item | Gsm | Width | Length | Qty | UOM |
|---|---|---|---|---|---|---|---|---|---|
| {{ $i + 1 }} | {{ $item->aplikasi_nama }} | {{ $item->detail_nama ?? '-' }} | {{ $item->color ?? '-' }} | {{ $item->item }} | {{ $item->size_gsm }} | {{ $item->size_width }} | {{ $item->size_length }} | {{ $item->qty }} | {{ $item->uom }} |
{{ trim($note['note']) }}
{{ $existingNote ?: '(Tidak ada catatan)' }}