@extends('layouts.master') @section('title', 'Riwayat Stok — ' . ($stok->barang?->nama ?? '')) @section('styles') @endsection @section('content')
{{-- Breadcrumb --}}

Riwayat Stok

Gudang → Riwayat Stok → Detail
Kembali
{{-- SVG overlay untuk garis hubungan --}} {{-- Info Barang --}}
{{ $stok->barang?->nama ?? '—' }}
@if($stok->barang?->merekBarang) {{ $stok->barang->merekBarang->nama ?? '' }} @endif @if($stok->satuan) {{ $stok->satuan }} @endif @if($stok->no_lot) LOT: {{ $stok->no_lot }} @endif @if($stok->tanggal_kedaluwarsa) ED: {{ $stok->tanggal_kedaluwarsa->format('d/m/Y') }} @endif
@if($stok->no_serial)
No. Serial: {{ $stok->no_serial }}
@endif
{{-- Info lintas gudang --}} @php $uniqueGudangCount = $orderedSiblings->pluck('gudang_id')->unique()->count(); @endphp @if($uniqueGudangCount > 1)
Stok ini melewati {{ $uniqueGudangCount }} gudang — ditampilkan sebagai satu perjalanan berdasarkan No. Serial.
@endif @php $shownBridges = []; @endphp @foreach($orderedSiblings as $idx => $sib) @php $entries = $ksGrouped->get($sib->id, collect()); $headerClass = $idx === 0 ? 'pusat' : 'kso'; $runningSaldo = 0; @endphp
{{ $sib->gudang?->nama ?? '—' }} Qty saat ini: {{ number_format($sib->qty) }} {{ $sib->satuan }}
@forelse($entries as $entry) @php $runningSaldo += $entry->qty_masuk - $entry->qty_keluar; $lineClass = $entry->qty_masuk > 0 ? 'masuk' : 'keluar'; $refType = $entry->referensi_type; $refId = $entry->referensi_id; $isPpb = $refType === 'permintaan_pengeluaran'; $refLabel = match($refType) { 'penerimaan_barang' => 'Penerimaan', 'permintaan_pengeluaran' => $ppbMap->get($refId, 'PPB #'.$refId), 'penjualan_kso' => 'Pemakaian KSO', 'penggunaan_barang' => 'Penggunaan', 'penjualan' => 'Penjualan', default => $refType, }; $jenisLabel = match($entry->jenis) { 'masuk' => 'Masuk', 'keluar' => 'Keluar', default => ucfirst($entry->jenis), }; // Cek faktur untuk entry pemakaian KSO $fakturInfo = null; if ($refType === 'penjualan_kso') { $fakturInfo = $fakturMap->get($refId); } // Cek apakah entry PPB keluar ini punya bridge ke gudang KSO $bridgeTargetId = null; if ($isPpb && $entry->qty_keluar > 0) { foreach ($bridges as $bRefId => $b) { if ($bRefId == $refId && $b['from'] === (int)$sib->id) { $bridgeTargetId = $b['to']; break; } } } @endphp
{{ $jenisLabel }} @if($isPpb)@endif {{ $refLabel }} @if($bridgeTargetId)@endif
@if($entry->qty_masuk > 0)
Masuk +{{ number_format($entry->qty_masuk) }}
@endif @if($entry->qty_keluar > 0)
Keluar -{{ number_format($entry->qty_keluar) }}
@endif
Saldo {{ number_format($runningSaldo) }}
@if($entry->keterangan)
{{ $entry->keterangan }}
@endif @if($refType === 'penjualan_kso')
Faktur: @if($fakturInfo) @php $fStatus = $fakturInfo->status; $fClass = match($fStatus) { 'draft' => 'draft', 'disetujui','upload_ppn' => 'proses', 'cetak_dokumen','selesai' => 'selesai', default => 'proses', }; $fLabel = match($fStatus) { 'draft' => 'Draft', 'disetujui' => 'Disetujui', 'upload_ppn' => 'Upload PPN', 'cetak_dokumen' => 'Cetak Dokumen', 'selesai' => 'Selesai', default => ucfirst($fStatus), }; @endphp {{ $fLabel }} {{ $fakturInfo->nomor }} @else Belum difakturkan @endif
@endif
@empty
Belum ada riwayat mutasi untuk gudang ini.
@endforelse
@endforeach
{{-- /rs-wrap --}}
@endsection @section('scripts') @endsection