DETAIL RENCANA PENGADAAN BARANG

INFORMASI BARANG

Kode Barang
{{ $barang->kode }}
Nama Barang
{{ $barang->nama_barang }}
Jenis
{{ $barang->jenis }}
Periode
{{ \Carbon\Carbon::createFromFormat('Y-m', $periode)->locale('id')->translatedFormat('F Y') }}
Status
{{ $usulan > 0 ? 'Perlu Restock' : 'Aman' }}

RINGKASAN PENGADAAN

Prediksi Kebutuhan {{ $prediksi->jumlah_prediksi }} {{ $barang->satuan }}
Stok {{ $stok }} {{ $barang->satuan }}
Selisih {{ $selisih > 0 ? '+' : '' }}{{ $selisih }} {{ $barang->satuan }}
Usulan Pembelian {{ $usulan }} {{ $barang->satuan }}
Catatan
Sistem merekomendasikan pengadaan berdasarkan selisih antara prediksi kebutuhan periode terpilih dengan stok barang.
@php $modeActualOnly = !$hasHistoricalPrediction; @endphp

RIWAYAT PEMAKAIAN SEBELUMNYA {{--
Data yang ditampilkan merupakan data pemakaian barang yang tersedia pada sistem.
--}}

@if (!$modeActualOnly)
Aktual
Prediksi
@endif @if (!$modeActualOnly && $riwayat->whereNotNull('hasil_prediksi')->isEmpty())
Data prediksi belum tersedia untuk periode historis ini, sehingga sistem hanya menampilkan data pemakaian aktual.
@endif
@php $maxActual = $riwayat->max('total_pemakaian') ?? 0; $maxPred = $riwayat->max('hasil_prediksi') ?? 0; $maxData = max($maxActual, $maxPred, 1); $step = $maxData < 50 ? 5 : 50; $maxY = ceil($maxData / $step) * $step; $labels = []; for ($i = 0; $i <= 4; $i++) { $nilai = $maxY - $i * $step; if ($nilai >= 0) { $labels[] = $nilai; } } @endphp
@foreach ($labels as $label) {{ $label }} @endforeach
@php $prevYear = null; @endphp @foreach ($riwayat as $r)
@php $currentYear = $r->tahun; @endphp @if ($prevYear !== $currentYear)
{{ $currentYear }}
@php $prevYear = $currentYear; @endphp @endif @php $nilaiBar = max($r->total_pemakaian, $r->hasil_prediksi); @endphp @if ($modeActualOnly)
Barang Keluar : {{ $r->total_pemakaian }} {{ $barang->satuan }}
@else @php $actual = $r->total_pemakaian; $predict = $r->hasil_prediksi; $maxValue = max($actual, $predict); $barHeight = ($maxValue / $maxY) * 100; if ($actual == $predict) { $actualHeight = 100; $predictHeight = 0; } elseif ($actual > $predict) { $actualHeight = ($predict / $maxValue) * 100; $predictHeight = (($actual - $predict) / $maxValue) * 100; } else { $actualHeight = ($actual / $maxValue) * 100; $predictHeight = (($predict - $actual) / $maxValue) * 100; } @endphp
@if ($actualHeight > 0)
@endif @if ($predictHeight > 0)
@endif
Aktual : {{ $actual }} {{ $barang->satuan }}
Prediksi : {{ $predict }} {{ $barang->satuan }}
@endif {{ \Carbon\Carbon::createFromDate($r->tahun, $r->bulan, 1)->locale('id')->translatedFormat('M') }}
@endforeach
@if (!$modeActualOnly) @else @endif @foreach ($riwayat as $r) @if (!$modeActualOnly) @else @endif @endforeach
Bulan TahunAktual Prediksi SelisihBarang Keluar
{{ \Carbon\Carbon::createFromDate($r->tahun, $r->bulan, 1)->locale('id')->translatedFormat('F') }} {{ $r->tahun }}{{ $r->total_pemakaian }} {{ $barang->satuan }} {{ $r->hasil_prediksi }} {{ $barang->satuan }} {{ $r->selisih_prediksi > 0 ? '+' : '' }}{{ $r->selisih_prediksi }} {{ $r->total_pemakaian }} {{ $barang->satuan }}