@extends('layouts.app') @section('title', 'Detail Purchase Order') @section('content')

Purchase Order {{ $purchaseOrder->kode }}

Cetak PO {{ $purchaseOrder->statusLabel() }}
{{-- Progress alur PO --}}
@php $steps = ['dibuat' => 'PO Dibuat', 'diterima_vendor' => 'Diterima Vendor', 'diproses_vendor' => 'Diproses Vendor', 'dikirim_ke_gudang' => 'Dikirim ke Gudang', 'barang_diterima' => 'Barang Diterima']; $statusKeys = array_keys($steps); $currentIndex = array_search($purchaseOrder->status, $statusKeys); // status lanjutan (dikirim_ke_kapal / draft) berarti seluruh tahap di atas sudah selesai if ($currentIndex === false) { $currentIndex = count($statusKeys) - 1; } @endphp
@foreach($steps as $key => $label)
{{ $loop->index + 1 }}
{{ $label }}
@if(!$loop->last)
@endif @endforeach
@if(auth()->user()->canExecuteWarehouseFlow()) @php $next = \App\Models\PurchaseOrder::nextStatus($purchaseOrder->status); @endphp @if($next)
@csrf
@endif @if($purchaseOrder->bisaDiRevertStatus())
@csrf
@endif @if($purchaseOrder->status == 'dikirim_ke_gudang' && $purchaseOrder->items->contains(fn($i) => !$i->isPendingVendor())) @endif @if($purchaseOrder->adaItemPendingVendor() && !$purchaseOrder->isDraft())
Ada barang yang masih menunggu vendor (pending). Barang lain yang sudah ada vendornya tetap bisa diproses & dikirim duluan; lengkapi vendor barang tersebut di bagian "Barang Menunggu Vendor (PO Menyusul)" di bawah.
@endif @if($purchaseOrder->dariPR() && !$purchaseOrder->isDraft()) @if($purchaseOrder->adaItemSiapDikirim())
@if($purchaseOrder->purchaseRequest->isFullyApproved()) Kirim ke Kapal @else @endif
Barang boleh dikirim sebagian (tidak harus lengkap) — sisanya bisa dikirim menyusul.
@elseif(!$purchaseOrder->sudahLengkapTerkirim() && $purchaseOrder->goodsDeliveries->isNotEmpty())
Reminder: pengiriman ke kapal belum lengkap, masih ada sisa barang yang belum terkirim (menunggu diterima gudang dan/atau menunggu vendor).
@endif @if($purchaseOrder->sudahLengkapTerkirim() && $purchaseOrder->adaPengirimanBelumDikonfirmasi())
Semua barang sudah dikirim ke kapal. Menunggu konfirmasi "Barang Sampai di Kapal" pada halaman Purchase Request {{ $purchaseOrder->purchaseRequest->kode }}.
@endif @endif @if($purchaseOrder->status == 'draft')
PO ini sudah selesai dan diarsipkan sebagai Draft @if($purchaseOrder->draft_at) sejak {{ $purchaseOrder->draft_at->format('d M Y H:i') }} @endif. Lihat halaman Laporan untuk daftar lengkap.
@endif @endif
PR Terkait
@if($purchaseOrder->purchase_request_id) {{ $purchaseOrder->purchaseRequest->kode }} @else Langsung (Tanpa PR) @endif
Vendor
{{ $purchaseOrder->vendorNames() }} @if($purchaseOrder->isMultiVendor())Multi-Vendor@endif
Dibuat Oleh
{{ $purchaseOrder->pembuat->name }}
@if($purchaseOrder->catatan)
{{ $purchaseOrder->catatan }}
@endif
Item Purchase Order
@if($purchaseOrder->dariPR())@endif @forelse($purchaseOrder->itemsSudahAdaVendor() as $item) @if($purchaseOrder->dariPR()) @endif @empty @endforelse
Nama BarangPart NumberVendorQtySatuanHarga SatuanSubtotalDiterimaTerkirimSisa
{{ $item->nama_barang }} {{ $item->part_number ?: '-' }} {{ $item->vendor->nama ?? '-' }} {{ $item->qty }} {{ $item->satuan }} Rp {{ number_format($item->harga_satuan, 0, ',', '.') }} Rp {{ number_format($item->harga_satuan * $item->qty, 0, ',', '.') }}{{ $item->qty_diterima }} {{ $item->qty_terkirim }} @if($item->sisaQty() > 0) {{ $item->sisaQty() }} @else Lengkap @endif
Belum ada barang dengan vendor pada PO ini. Lihat bagian "Barang Menunggu Vendor" di bawah.
@if($purchaseOrder->itemsPendingVendor()->isNotEmpty())
Barang Menunggu Vendor (PO Menyusul)

Barang di bawah ini belum ditentukan vendornya sehingga belum masuk ke tabel Item Purchase Order di atas, belum tercetak di PO, belum bisa diterima gudang, dan belum bisa dikirim ke kapal. Isi vendornya untuk memproses barang ini menyusul — tetap pada PO {{ $purchaseOrder->kode }} ini, tidak perlu membuat PO baru.

@if(auth()->user()->canExecuteWarehouseFlow() && !$purchaseOrder->isDraft())@endif @foreach($purchaseOrder->itemsPendingVendor() as $item) @if(auth()->user()->canExecuteWarehouseFlow() && !$purchaseOrder->isDraft()) @endif @endforeach
Nama BarangPart NumberQtySatuanTentukan Vendor
{{ $item->nama_barang }} {{ $item->part_number ?: '-' }} {{ $item->qty }} {{ $item->satuan }}
@csrf
@endif @foreach(\App\Models\Vendor::orderBy('nama')->pluck('nama') as $namaVendor) @if($purchaseOrder->goodsReceipts->isNotEmpty())
Riwayat Berita Acara Penerimaan
@foreach($purchaseOrder->goodsReceipts as $receipt)

Kode: {{ $receipt->kode }}
Diterima oleh: {{ $receipt->penerima->name }}
Tanggal: {{ \Carbon\Carbon::parse($receipt->tanggal_terima)->format('d M Y') }}

    @foreach($receipt->items as $ri)
  • {{ $ri->nama_barang }}: {{ $ri->qty }} {{ $ri->satuan }}
  • @endforeach
@if($receipt->berita_acara_path) Lihat Dokumen @endif
@endforeach
@endif @endsection