@extends('layouts.app') @section('title', 'Stock movements') @php $f = $filters ?? []; $mvBadge = function (string $t): string { return match ($t) { 'Stock In', 'Adjustment In', 'Transfer In' => 'g', 'Issue', 'Damage', 'Expiry Write-Off', 'Adjustment Out' => 'r', 'Return' => 'b', 'Transfer Out' => 'v', default => 's', }; }; @endphp @section('content')

Stock movement ledger

Full audit trail of inventory movement

@include('inventory.partials.subnav', ['invActive' => 'movements'])
Clear
@forelse($movements as $mv) @php $bc = $mvBadge($mv->movement_type); @endphp @empty @endforelse
Date Material Type Qty Unit cost Total Project / supplier Batch / lot Reference By
{{ $mv->movement_date?->format('Y-m-d') }} {{ $mv->material?->name }} {{ $mv->movement_type }} {{ rtrim(rtrim((string) $mv->quantity, '0'), '.') }} {{ \App\Support\Format::mwkDecimal($mv->unit_cost) }} {{ \App\Support\Format::mwkDecimal($mv->total_cost) }} {{ $mv->project?->name ?? $mv->supplier?->company_name ?? '—' }} {{ trim(implode(' / ', array_filter([$mv->materialStockLine?->batch_number, $mv->materialStockLine?->lot_number]))) ?: '—' }} {{ $mv->reference ?: '—' }} {{ $mv->movedBy?->name ?? '—' }}
No movements match your filters.
{{ $movements->links() }}
@endsection