Stock Management

Monitor and manage your inventory stock levels

Total Items

{{ $totalItems }}

Healthy

{{ $healthyStockItems }}

Low Stock

{{ $lowStockItems }}

Critical

{{ $criticalStockItems }}

Out of Stock

{{ $outOfStockItems }}

Total Value

{{ currency($totalValue) }}

Clear
@forelse($items as $item) @php $status = $item->getStockStatus(); $isCritical = $item->current_stock > 0 && $item->current_stock <= $item->minimum_stock * 0.5; $isOverstocked = $item->maximum_stock && $item->current_stock > $item->maximum_stock; if ($isOverstocked) { $statusClass = 'bg-purple-100 text-purple-800 dark:bg-purple-900 dark:text-purple-300'; $statusLabel = 'Overstocked'; } elseif ($status === 'out_of_stock') { $statusClass = 'bg-red-100 text-red-800 dark:bg-red-900 dark:text-red-300'; $statusLabel = 'Out of Stock'; } elseif ($isCritical) { $statusClass = 'bg-orange-100 text-orange-800 dark:bg-orange-900 dark:text-orange-300'; $statusLabel = 'Critical'; } elseif ($status === 'low_stock') { $statusClass = 'bg-amber-100 text-amber-800 dark:bg-amber-900 dark:text-amber-300'; $statusLabel = 'Low Stock'; } else { $statusClass = 'bg-green-100 text-green-800 dark:bg-green-900 dark:text-green-300'; $statusLabel = 'In Stock'; } $stockPercentage = $item->minimum_stock > 0 ? min(100, ($item->current_stock / $item->minimum_stock) * 50) : 100; @endphp @empty @endforelse
Item Stock Level Status Value
{{ $item->name }}
{{ $item->sku }} @if($item->category) {{ $item->category->name }} @endif
{{ number_format($item->current_stock, 2) }} {{ $item->unit?->abbreviation }}
Min: {{ number_format($item->minimum_stock, 2) }} @if($item->maximum_stock) • Max: {{ number_format($item->maximum_stock, 2) }} @endif
{{ $statusLabel }}
{{ currency($item->getTotalValue()) }}
@ {{ currency($item->unit_cost) }}

No Items Found

Try adjusting your filters

@if($items->hasPages())
{{ $items->links() }}
@endif
@if($movementStats)

Movement Summary (Last 30 Days)

Stock In

{{ number_format($movementStats->total_in ?? 0, 0) }}

Stock Out

{{ number_format($movementStats->total_out ?? 0, 0) }}

Purchases

{{ $movementStats->purchase_count ?? 0 }}

Adjustments

{{ $movementStats->adjustment_count ?? 0 }}

Wastage

{{ $movementStats->wastage_count ?? 0 }}

@endif
@if($reorderItems->count() > 0)

Needs Reorder ({{ $reorderItems->count() }})

@foreach($reorderItems as $item)

{{ $item->name }}

{{ number_format($item->current_stock, 2) }} / {{ number_format($item->reorder_point, 2) }} {{ $item->unit?->abbreviation }}

@if($item->supplier) {{ $item->supplier->name }} @endif
@endforeach
@endif @if($valueByCategory->count() > 0)

Value by Category

@foreach($valueByCategory as $category)
{{ $category->category_name }} {{ currency($category->total_value) }}

{{ $category->items_count }} items

@endforeach
@endif @if($recentMovements->count() > 0)

Recent Movements

View All
@foreach($recentMovements->take(10) as $movement)
@if($movement->quantity_change > 0) @else @endif

{{ $movement->inventoryItem?->name ?? 'Unknown' }}

{{ $movement->quantity_change > 0 ? '+' : '' }}{{ number_format($movement->quantity_change, 2) }} {{ $movement->inventoryItem?->unit?->abbreviation }} • {{ ucfirst($movement->type) }}

{{ $movement->created_at->diffForHumans(null, true) }}
@endforeach
@endif @if($pendingPurchaseOrders->count() > 0)

Pending Orders

@foreach($pendingPurchaseOrders as $order)

{{ $order->order_number ?? 'PO-'.$order->id }}

{{ $order->supplier?->name ?? 'No supplier' }}

{{ ucfirst($order->status) }}
@endforeach
@endif @if($slowMovingItems->count() > 0)

Slow Moving (No activity 30+ days)

@foreach($slowMovingItems as $item)
{{ $item->name }} {{ number_format($item->current_stock, 2) }} {{ $item->unit?->abbreviation }}
@endforeach
@endif