@extends('layouts.app') @section('title', 'Inventory History') @section('content')

Inventory History

Complete log of all stock movements

Clear All Showing movements from {{ \Carbon\Carbon::parse($startDate)->format('d M Y') }} to {{ \Carbon\Carbon::parse($endDate)->format('d M Y') }}
@if($movements->count() > 0) @foreach($movements as $movement) @php // Determine if this movement increases or decreases stock // For 'adjustment' type, check the actual quantity sign (positive = add, negative = remove) // For other types, use type-based logic if ($movement->type === 'adjustment') { $isStockIncrease = $movement->quantity > 0; $isStockDecrease = $movement->quantity < 0; } else { $isStockIncrease = in_array($movement->type, ['in', 'transfer_in', 'customer_return']); $isStockDecrease = in_array($movement->type, ['out', 'transfer_out', 'supplier_return']); } // Calculate balance before (for clarity) // Use abs() since quantity may be stored as negative for decreases $qtyAbs = abs($movement->quantity); $balanceBefore = $isStockIncrease ? $movement->balance_after - $qtyAbs : $movement->balance_after + $qtyAbs; @endphp @endforeach
Date & Time SKU Type Qty Change Balance Reference Performed By
{{ \Carbon\Carbon::parse($movement->performed_at)->format('d M Y') }}
{{ \Carbon\Carbon::parse($movement->performed_at)->format('H:i:s') }}
{{ $movement->sku }}
@php $typeColors = [ 'in' => 'bg-green-100 dark:bg-green-900/50 text-green-800 dark:text-green-300', 'out' => 'bg-red-100 dark:bg-red-900/50 text-red-800 dark:text-red-300', 'adjustment' => 'bg-blue-100 dark:bg-blue-900/50 text-blue-800 dark:text-blue-300', 'transfer_in' => 'bg-green-100 dark:bg-green-900/50 text-green-800 dark:text-green-300', 'transfer_out' => 'bg-red-100 dark:bg-red-900/50 text-red-800 dark:text-red-300', 'customer_return' => 'bg-green-100 dark:bg-green-900/50 text-green-800 dark:text-green-300', 'supplier_return' => 'bg-orange-100 dark:bg-orange-900/50 text-orange-800 dark:text-orange-300', ]; $typeLabels = [ 'in' => 'Stock In', 'out' => 'Stock Out', 'adjustment' => 'Adjustment', 'transfer_in' => 'Transfer In', 'transfer_out' => 'Transfer Out', 'customer_return' => 'Customer Return', 'supplier_return' => 'Supplier Return', ]; @endphp {{ $typeLabels[$movement->type] ?? ucfirst(str_replace('_', ' ', $movement->type)) }} @if($isStockDecrease) -{{ number_format(abs($movement->quantity)) }} @else +{{ number_format(abs($movement->quantity)) }} @endif
{{ number_format($balanceBefore) }}
→ {{ number_format($movement->balance_after) }}
{{ $movement->reference_number ?? '-' }}
@if($movement->notes)
{{ $movement->notes }}
@endif
{{ $movement->performed_by_name }}
{{ $movements->appends(['search' => $search, 'type' => $type, 'start_date' => $startDate, 'end_date' => $endDate])->links() }}
@else

No movements yet

Stock movements will appear here when you receive or use inventory.

@endif
@endsection