đ {{ $warehouse->name }}
{{ $warehouse->code }} âĸ {{ $warehouse->city ?? 'No location' }}
@if($warehouse->is_default)
â Default
@endif @php $typeClass = match($warehouse->type) { 'SHOP' => 'shop', 'RETURN_CENTER' => 'return', default => '' }; $typeLabel = match($warehouse->type) { 'STORAGE' => 'đĻ Storage', 'SHOP' => 'đĒ Shop', 'RETURN_CENTER' => 'âŠī¸ Return Center', default => $warehouse->type }; @endphp
{{ $typeLabel }}
{{ $warehouse->is_active ? 'Active' : 'Inactive' }}
Edit
Add Rack
đī¸
{{ $stats['total_racks'] }}
Total Racks
đĻ
{{ number_format($stats['total_stock']) }}
Total Stock
đ
{{ $stats['total_products'] }}
Products
đ°
âš{{ number_format($stats['stock_value'], 0) }}
Stock Value
Location
Address
{{ $warehouse->address ?: '-' }}
City
{{ $warehouse->city ?: '-' }}
State
{{ $warehouse->state ?: '-' }}
Country
{{ $warehouse->country ?: 'India' }}
Contact
@if($warehouse->contactStaff)
đ¤
{{ $warehouse->contact_name }}
{{ $warehouse->contactStaff->employee_code }}
@if($warehouse->contactStaff->designation)
{{ $warehouse->contactStaff->designation }}
@endif
đ§ Email
{{ $warehouse->contact_email }}
đ Phone
{{ $warehouse->contact_phone ?: '-' }}
@else
Contact Person
{{ $warehouse->contact_person ?: '-' }}
Phone
{{ $warehouse->phone ?: '-' }}
@endif
Created
{{ $warehouse->created_at->format('d M Y') }}
Last Updated
{{ $warehouse->updated_at->diffForHumans() }}
Racks ({{ $warehouse->racks->count() }})
View Layout
@if($warehouse->racks->count() > 0)
@foreach($warehouse->racks as $rack) @php $current = $rack->current_stock ?? 0; $max = $rack->max_capacity ?? 0; $percent = $max > 0 ? min(100, round(($current / $max) * 100)) : 0; $fillClass = 'empty'; if ($percent >= 90) $fillClass = 'full'; elseif ($percent >= 70) $fillClass = 'high'; elseif ($percent >= 40) $fillClass = 'medium'; elseif ($percent > 0) $fillClass = 'low'; $storageTypes = \Modules\Inventory\Models\Rack::STORAGE_TYPES; $typeInfo = $storageTypes[$rack->storage_type ?? 'SHELF'] ?? $storageTypes['SHELF']; @endphp
{{ $rack->code }}
{{ $typeInfo['icon'] }}
{{ $rack->name ?: 'Unnamed' }}
@if($rack->zone || $rack->aisle || $rack->level)
{{ collect([$rack->zone, $rack->aisle ? 'Aisle '.$rack->aisle : null, $rack->level ? 'Level '.$rack->level : null])->filter()->implode(' âē ') }}
@endif
{{ $percent }}%
{{ number_format($current) }} / {{ $max > 0 ? number_format($max) : 'â' }}
@endforeach
@else
No racks in this warehouse yet
Add First Rack
@endif
Recent Movements
View All
@forelse($recentMovements as $movement) @php $iconClass = match($movement->type) { 'IN', 'RETURN' => 'in', 'OUT' => 'out', 'TRANSFER_IN', 'TRANSFER_OUT' => 'transfer', default => 'adjust' }; $icon = match($movement->type) { 'IN' => 'đĨ', 'OUT' => 'đ¤', 'RETURN' => 'âŠī¸', 'TRANSFER_IN' => 'âĄī¸', 'TRANSFER_OUT' => 'âŦ ī¸', 'ADJUSTMENT' => 'âī¸', default => 'đĻ' }; $qtyClass = in_array($movement->type, ['IN', 'RETURN', 'TRANSFER_IN', 'ADJUSTMENT']) && $movement->qty > 0 ? 'in' : 'out'; $qtySign = $qtyClass === 'in' ? '+' : '-'; @endphp
{{ $icon }}
{{ $movement->product->name ?? 'Unknown' }}
{{ $movement->type }} âĸ {{ $movement->user->name ?? 'System' }}
{{ $qtySign }}{{ number_format(abs($movement->qty)) }}
{{ $movement->created_at->diffForHumans() }}
@empty
No movements recorded yet