Stock Movements

Track all inventory movements and analyze stock flow patterns

@php $typeColors = [ 'purchase' => 'bg-green-100 text-green-700 dark:bg-green-900/30 dark:text-green-400', 'sale' => 'bg-blue-100 text-blue-700 dark:bg-blue-900/30 dark:text-blue-400', 'production' => 'bg-purple-100 text-purple-700 dark:bg-purple-900/30 dark:text-purple-400', 'wastage' => 'bg-red-100 text-red-700 dark:bg-red-900/30 dark:text-red-400', 'adjustment' => 'bg-amber-100 text-amber-700 dark:bg-amber-900/30 dark:text-amber-400', 'transfer' => 'bg-cyan-100 text-cyan-700 dark:bg-cyan-900/30 dark:text-cyan-400', ]; @endphp @foreach($summaryByType as $typeName => $data)
{{ ucfirst(str_replace('_', ' ', $typeName)) }}

{{ $data->count }}

{{ number_format($data->total_quantity, 2) }} units

@endforeach
@if($dailyTrend->count() > 0)

Daily Stock Flow

@foreach($dailyTrend as $day) @php $maxVal = max($dailyTrend->max('stock_in'), $dailyTrend->max('stock_out'), 1); $inHeight = ($day->stock_in / $maxVal) * 100; $outHeight = ($day->stock_out / $maxVal) * 100; @endphp
{{ \Carbon\Carbon::parse($day->date)->format('M d') }}
@endforeach
Stock In
Stock Out
@endif

Movement History

@forelse($movements as $movement) @empty @endforelse
Date Item Type Before Change After Reference By
{{ $movement->created_at->format('M d, Y H:i') }} {{ $movement->inventoryItem?->name ?? 'Unknown' }} {{ $movement->inventoryItem?->unit?->abbreviation ?? '' }} {{ ucfirst(str_replace('_', ' ', $movement->type)) }} {{ number_format($movement->quantity_before, 2) }} {{ $movement->quantity_change >= 0 ? '+' : '' }}{{ number_format($movement->quantity_change, 2) }} {{ number_format($movement->quantity_after, 2) }} {{ $movement->notes ?? '-' }} {{ $movement->user?->name ?? 'System' }}
No movements found for the selected filters
@if($movements->hasPages())
{{ $movements->links() }}
@endif