{{-- ══ Kop ══ --}}
{{ $cp?->nama_perusahaan ?? 'PT. Cipta Husada Mandiri' }}
@if($cp?->alamat)
{{ $cp->alamat }}
@endif @if($cp?->no_telp_1)
Telp: {{ $cp->no_telp_1 }}{{ $cp->no_telp_2 ? ' / '.$cp->no_telp_2 : '' }}
@endif @if($cp?->email)
Email: {{ $cp->email }}
@endif
Purchase Order
{{ $po->tanggal_po->translatedFormat('d F Y') }}
{{-- ══ Nomor ══ --}}
No. Dokumen: {{ $po->nomor_po }} @php $labelStatus = match($po->status) { 'draft', 'diajukan', 'menunggu_pj' => 'BELUM DISETUJUI', 'direvisi' => 'DIREVISI', 'ditolak' => 'DITOLAK', 'Ditutup' => 'Ditutup', default => 'DISETUJUI', }; @endphp {{ $labelStatus }}
{{-- ══ Info ══ --}}
@if($po->produsen?->alamat) @endif @if($po->produsen?->telepon) @endif @if($po->produsen?->up) @endif @if($po->produsen?->npwp) @endif
Kepada / Supplier: {{ $po->nama_produsen }}
Alamat: {{ $po->produsen->alamat }}@if($po->produsen->kota), {{ $po->produsen->kota }}@endif
Telepon: {{ $po->produsen->telepon }}
U.P.: {{ $po->produsen->up }}
NPWP Supplier: {{ $po->produsen->npwp }}
@if($po->masa_berlaku) @endif @if($po->isDiajukan()) @endif
Tanggal PO: {{ $po->tanggal_po->translatedFormat('d F Y') }}
Estimasi Tiba: {{ $po->tanggal_estimasi ? $po->tanggal_estimasi->translatedFormat('d F Y') : '—' }}
Masa Berlaku: {{ $po->masa_berlaku }} hari — Tgl Akhir PO: {{ $po->tgl_masa_berlaku->translatedFormat('d F Y') }}
Dibuat Oleh: {{ $po->dibuatOleh?->nama ?? '—' }}
Diajukan Oleh: {{ $po->diajukanOleh?->nama ?? '—' }}
Tgl. Pengajuan: {{ $po->diajukan_at?->translatedFormat('d F Y, H:i') ?? '—' }}
@if($po->catatan)
Catatan: {{ $po->catatan }}
@endif {{-- ══ Tabel Barang ══ --}} @php $showEd = $po->items->contains(fn($i) => !is_null($i->tgl_ed)); @endphp @if($showEd) @endif @if($showHarga) @endif @foreach($po->items as $no => $item) @if($showEd) @endif @if($showHarga) @endif @endforeach @if($showHarga) @php $tfootColspan = 6 + ($showEd ? 1 : 0); @endphp @endif
No Nama Barang No. Ref Satuan QtyTgl. EDHarga Beli Subtotal
{{ $no + 1 }} @php $b = $item->barang; @endphp {{ $item->nama_barang }} @if($b?->jenis_nie || $b?->no_nie || $item->catatan)
{{ $b?->jenis_nie ?? '' }}@if($b?->jenis_nie && $b?->no_nie) · @endif{{ $b?->no_nie ?? '' }}@if($item->catatan) · {{ $item->catatan }}@endif
@endif
{{ $b?->kode_ref ?? '—' }} {{ $item->satuan_beli }} {{ number_format($item->qty) }}{{ $item->tgl_ed ? $item->tgl_ed->format('d-m-Y') : '—' }}Rp {{ number_format($item->harga_beli, 0, ',', '.') }} Rp {{ number_format($item->subtotal, 0, ',', '.') }}
Subtotal Rp {{ number_format($po->subtotal, 2, ',', '.') }}
DPP (11/12 × Subtotal) Rp {{ number_format($po->dpp, 2, ',', '.') }}
PPN 12% Rp {{ number_format($po->ppn, 2, ',', '.') }}
TOTAL Rp {{ number_format($po->total_harga, 2, ',', '.') }}
{{-- ══ Tanda Tangan ══ --}} @php $flowDual = \App\Models\PurchaseOrder::approvalFlow() === 'dual'; if ($flowDual) { // Dual flow: 3 kolom selalu muncul, konten bertahap sesuai status $colWidth = '33%'; $showDibuat = in_array($po->status, ['diajukan', 'menunggu_pj', 'disetujui']); $showMengetahui = in_array($po->status, ['menunggu_pj', 'disetujui']); $showDisetujui = $po->disetujui_oleh !== null; } else { $hasPj = ! empty($po->pj_oleh); $hasDirCol = isset($direkturUser) && $direkturUser && $po->hasDirekturSign(); $colCount = 2 + ($hasPj ? 1 : 0) + ($hasDirCol ? 1 : 0); $colWidth = round(100 / $colCount) . '%'; } @endphp
@if($flowDual) {{-- ── DUAL FLOW: 3 kolom tetap, isi bertahap ── --}} {{-- Kolom 1: Dibuat Oleh --}}
Dibuat Oleh,
@if($showDibuat && $ttdDibuat) @endif
{{ $showDibuat ? ($po->dibuatOleh?->nama ?? '—') : '' }}
{{ $showDibuat ? ($po->dibuatOleh?->jabatan ?? 'Staf Pengadaan') : '' }}
{{-- Kolom 2: Mengetahui / PJ Teknis --}}
Mengetahui,
@if($showMengetahui && $ttdPj) @endif
{{ $showMengetahui ? ($po->pjOleh?->nama ?? '—') : '' }}
{{ $showMengetahui ? 'Penanggung Jawab Teknis' : '' }}
{{-- Kolom 3: Disetujui / Direktur --}}
Disetujui Oleh,
@if($showDisetujui && $ttdDisetujui) @endif
{{ $showDisetujui ? ($po->disetujuiOleh?->nama ?? '—') : '' }}
{{ $showDisetujui ? 'Direktur' : '' }}
@else {{-- ── SINGLE FLOW: layout lama ── --}} {{-- Kolom 1: Dibuat Oleh --}}
Dibuat Oleh,
@if($ttdDibuat) @endif
{{ $po->dibuatOleh?->nama ?? '—' }}
{{ $po->dibuatOleh?->jabatan ?? 'Staf Pengadaan' }}
{{-- Kolom PJ: Mengetahui (hanya jika ada, single flow jarang pakai ini) --}} @if($hasPj)
Mengetahui,
@if($ttdPj)@endif
{{ $po->pjOleh?->nama ?? '' }}
Penanggung Jawab Teknis
@endif {{-- Kolom 2: Disetujui Oleh (Manajer), overlay TTD direktur mode bersama --}}
Disetujui Oleh,
@if($po->hasDirekturSign() && $po->direktur_ttd_mode === 'bersama' && $ttdDirektur) @endif @if($ttdDisetujui) @endif
{{ $po->disetujui_oleh ? ($po->disetujuiOleh?->nama ?? '—') : '' }}
{{ $po->disetujui_oleh ? ($po->disetujuiOleh?->jabatan ?? 'Manajer') : 'Manajer' }}
{{-- Kolom 3: Direktur (hanya jika PO sudah ditandatangani direktur) --}} @if(isset($direkturUser) && $direkturUser && $po->hasDirekturSign())
Mengetahui,
@if($ttdDirektur) @endif
{{ $direkturUser->nama ?? '—' }}
{{ $direkturUser->jabatan ?? 'Direktur' }}
@endif @endif
{{-- QR Verifikasi --}} @if($qrBase64)
QR Verifikasi
Scan untuk verifikasi dokumen
@endif {{-- ══ Footer ══ --}}