@extends('layouts.app') @section('content') @php $currentUser = auth()->user(); $canCreateMaterial = $currentUser && ( (method_exists($currentUser, 'isDeveloper') && $currentUser->isDeveloper()) || (method_exists($currentUser, 'isOwner') && $currentUser->isOwner()) || $currentUser->can('manage materials') || $currentUser->can('manage stock') || $currentUser->can('create materials') || $currentUser->can('create stock') || $currentUser->can('create material stock') ); $canEditMaterial = $currentUser && ( (method_exists($currentUser, 'isDeveloper') && $currentUser->isDeveloper()) || (method_exists($currentUser, 'isOwner') && $currentUser->isOwner()) || $currentUser->can('manage materials') || $currentUser->can('manage stock') || $currentUser->can('edit materials') || $currentUser->can('edit stock') || $currentUser->can('edit material stock') ); $canDeleteMaterial = $currentUser && ( (method_exists($currentUser, 'isDeveloper') && $currentUser->isDeveloper()) || (method_exists($currentUser, 'isOwner') && $currentUser->isOwner()) || $currentUser->can('manage materials') || $currentUser->can('manage stock') || $currentUser->can('delete materials') || $currentUser->can('delete stock') || $currentUser->can('delete material stock') ); $canShowActionColumn = $canEditMaterial || $canDeleteMaterial; @endphp

{{ $title }}

Kelola data bahan, harga dasar, tipe hitung, dan stok bahan.

@if($canCreateMaterial) Tambah Bahan @endif
Reset
@if (session('success'))
{{ session('success') }}
@endif @if (session('error'))
{{ session('error') }}
@endif
@if($canShowActionColumn) @endif @forelse ($materials as $material) @php $isLowStock = !$material->is_custom && (float) $material->min_stock > 0 && (float) $material->stock <= (float) $material->min_stock; $measurementMode = $material->measurement_mode ?? 'manual'; $priceUnitLabel = $measurementMode === 'm2' ? 'm²' : ($measurementMode === 'roll' ? 'm' : $material->unit); $hasComponentsTable = $hasMaterialComponentsTable ?? false; $componentPreview = $hasComponentsTable ? $material->components->take(3) : collect(); $remainingComponents = $hasComponentsTable ? max($material->components->count() - $componentPreview->count(), 0) : 0; @endphp @if($canShowActionColumn) @endif @empty @endforelse
Nama Kategori Tipe Harga Dasar Stok Status Aksi
{{ $material->name }}
@if($material->is_custom) Custom @endif @if($measurementMode === 'm2') Hitung m² @elseif($measurementMode === 'roll') Hitung Roll @endif @if($material->track_clicks) Track Klik @endif
@if($hasComponentsTable && $material->components->isNotEmpty())
Komponen: @foreach($componentPreview as $idx => $component) {{ $component->componentMaterial->name ?? '-' }} x {{ rtrim(rtrim(number_format((float) $component->qty, 4, '.', ''), '0'), '.') }}{{ $idx < $componentPreview->count() - 1 ? ',' : '' }} @endforeach @if($remainingComponents > 0) +{{ $remainingComponents }} lagi @endif
@elseif($material->is_custom && $material->sourceMaterial)
Komponen legacy: {{ $material->sourceMaterial->name }} x {{ rtrim(rtrim(number_format((float) $material->conversion_qty, 4, '.', ''), '0'), '.') }}
@endif @if($material->is_custom)
Stok mengikuti bahan komponen
@endif @if($measurementMode === 'roll' && !empty($material->roll_width_cm))
Lebar roll: {{ rtrim(rtrim(number_format((float) $material->roll_width_cm, 4, '.', ''), '0'), '.') }} cm
@endif
{{ $material->category->name ?? '-' }}
{{ $material->is_custom ? 'Custom' : 'Standar' }}
@if($measurementMode === 'm2') Per m² @elseif($measurementMode === 'roll') Per meter panjang @elseif($material->is_custom) Stok dari komponen @else Manual @endif
Rp {{ number_format((float) $material->base_price, 0, ',', '.') }}/{{ $priceUnitLabel }} @if($material->is_custom)
Mengikuti komponen
Stok bahan custom tidak dipakai
@else
{{ number_format((float) $material->stock, 2, ',', '.') }} {{ $material->unit }}
@if((float) $material->min_stock > 0)
Min: {{ number_format((float) $material->min_stock, 2, ',', '.') }}
@endif @endif
{{ $material->is_active ? 'Aktif' : 'Nonaktif' }} @if($isLowStock) Stok Rendah @endif
@if($canEditMaterial) @endif @if($canDeleteMaterial) @endif
Belum ada data bahan
{{ $materials->withQueryString()->links() }}
@endsection