@php use Illuminate\Support\Facades\DB; // Get detail rows $details = DB::table('trs_ps_d')->where('id_ps', $doc->id_ps)->get(); $firstDetail = $details->first(); $approvalData = DB::table('trs_ps_a')->where('id_ps', $doc->id_ps)->first(); $username = session('username'); $pengaju = DB::table('mst_approval')->where('id', '000')->first(); $signaturePengaju = $pengaju ? toBase64Image($pengaju->image) : null; // Initialize variables $approvers = []; $signature1Base64 = null; $signature2Base64 = null; if ($approvalData) { $idApprovals = explode(',', $approvalData->id_approvals ?? ''); $statuses = explode(',', $approvalData->statuses ?? ''); // Get current approver status $currentIndex = array_search($approver->id, $idApprovals); $currentStatus = $statuses[$currentIndex] ?? 'Pending'; // Lock status $isLocked = !$isPending && isset($rejectedBy[$doc->id_ps]); // Collect accepted approvals $acceptedApprovals = []; $pendingApproval = null; foreach ($idApprovals as $index => $idApproval) { $status = strtolower(trim($statuses[$index] ?? '')); if ($status === 'accepted') { $acceptedApprovals[] = trim($idApproval); } elseif ($status === 'pending') { $pendingApproval = trim($idApproval); } } // Fetch approver data if (!empty($acceptedApprovals)) { $approverData = DB::table('mst_approval') ->whereIn('id', $acceptedApprovals) ->whereNotIn('level', [4, 5]) // Exclude level 4 and 5 ->orderBy('level', 'asc') ->limit(2) ->get(); if ($approverData->count() === 1) { // Single approver - check if pending approver is Head Lab $approver = $approverData->first(); $approvers[] = [ 'id' => $approver->id, 'name' => $approver->nama, 'signature' => $approver->image, 'level' => $approver->level, ]; // Check if pending approver is Head Lab $isPendingHeadLab = false; if ($pendingApproval) { $pendingApproverData = DB::table('mst_approval')->where('id', $pendingApproval)->first(); if ($pendingApproverData) { // Check if pending approver is Head Lab by level or name if ( stripos($pendingApproverData->level, 'Head Lab') !== false || stripos($pendingApproverData->nama, 'Head Lab') !== false || stripos($pendingApproverData->nama, 'head lab') !== false || stripos($pendingApproverData->nama, 'lab head') !== false ) { $isPendingHeadLab = true; } } } if ($isPendingHeadLab) { // If pending approver is Head Lab, duplicate signature $approvers[] = $approvers[0]; } else { // If pending approver is not Head Lab, keep signature2 empty $approvers[] = [ 'id' => null, 'name' => '', 'signature' => null, 'level' => null, ]; } } else { foreach ($approverData as $approver) { $approvers[] = [ 'id' => $approver->id, 'name' => $approver->nama, 'signature' => $approver->image, 'level' => $approver->level, ]; } } } } $signature1 = $approvers[0]['signature'] ?? null; $signature2 = $approvers[1]['signature'] ?? null; // Only convert to base64 if signature exists $signature1Base64 = $signature1 ? toBase64Image($signature1) : null; $signature2Base64 = $signature2 ? toBase64Image($signature2) : null; // 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); @endphp
@if ($isLocked)
Perhatian: Dokumen ini telah DITOLAK oleh {{ $rejectedBy[$doc->id_ps] }}. Anda tidak dapat memproses dokumen ini.
@endif {{-- Header --}}
Company Logo

No. {{ $doc->id_ps }}

Tanggal Pengiriman: {{ $firstDetail && $firstDetail->etd_date ? \Carbon\Carbon::parse($firstDetail->etd_date)->translatedFormat('d F Y') : '-' }}

Print PDF
Permohonan Sample

Customer: {{ $doc->customer }}

Alamat Pengiriman: {{ $doc->alamat_pengiriman }}

Tanggal Pengiriman: {{ $firstDetail && $firstDetail->etd_date ? \Carbon\Carbon::parse($firstDetail->etd_date)->translatedFormat('d F Y') : '-' }}

Send By: {{ $doc->shipment_by }}

STATUS: @if ($currentStatus === 'Accepted') ACCEPTED @elseif ($currentStatus === 'Rejected') REJECTED @else PENDING @endif

Mohon disertakan COA pada saat pengiriman sample roll/sheet

@foreach ($details as $index => $item) @endforeach
No PP / PET Gsm Color Width Length Grade Qty Remark
{{ $index + 1 }} {{ $item->material_code }} {{ $item->gsm }} {{ $item->color }} {{ $item->width }} {{ $item->length }} - {{ $item->qty_sales }} {{ $item->refer }}
@if ($isPending)
@endif