{{-- New-Unity ERP | app/Modules/Warehouse/Resources/Views/racks/show.blade.php | v1.3 | 19/07/2026 --}} {{-- v1.0 — Vista del rack con mapa visual de bins. Verde=libre, Rojo=ocupado. --}} {{-- v1.1 — Stats cards con iconos y CSS mejorado. Fix leyenda de bins. --}} {{-- v1.2 — Click en bin ocupado abre modal con detalle del lote. Kardex link. --}} {{-- v1.3 — Boton Disposicion en modal de bin bloqueado. Conecta con disposal_modal. --}} @extends('layouts.vertical', ['pageTitle' => __('warehouse.storage-unit-prefix') . ' ' . $rack->code]) @section('page-title')

{{ $rack->code }} @if($rack->description) — {{ $rack->description }} @endif {{ $rack->is_active ? __('warehouse.active') : __('warehouse.inactive') }}

{{ __('warehouse.edit-expand') }} {{ __('warehouse.back-to') }} {{ $rack->warehouse->code }}
@endsection @section('content') @if(session('success'))
{{ session('success') }}
@endif {{-- Stats cards --}}
{{-- Warehouse --}}
{{ __('warehouse.warehouse-caps') }}
{{ $rack->warehouse->code }}
{{-- Zone --}}
{{ __('warehouse.zone-caps') }}
{{ $rack->zone->code }}
{{ $rack->zone->name }}
{{-- Positions X --}}
{{ __('warehouse.positions-x-caps') }}
{{ $rack->positions_x }}
{{ __('warehouse.horizontal-lower') }}
{{-- Levels Y --}}
{{ __('warehouse.levels-y-caps') }}
{{ $rack->levels_y }}
{{ __('warehouse.vertical-lower') }}
{{-- Total Bins --}}
{{ __('warehouse.total-bins') }}
{{ $rack->totalBins() }}
{{ $rack->positions_x }} × {{ $rack->levels_y }}
{{-- Free Bins --}} @php $freeBins = $rack->freeBins(); $totalBins = $rack->totalBins(); $occupiedBins = $totalBins - $freeBins; $freePct = $totalBins > 0 ? round(($freeBins / $totalBins) * 100) : 0; @endphp
{{ __('warehouse.free-bins') }}
{{ $freeBins }}
{{ $freePct }}% {{ __('warehouse.available') }}
{{-- Rack visual map --}}

{{ __('warehouse.storage-map') }} — {{ $rack->code }}

{{ __('warehouse.free') }} {{ __('warehouse.occupied') }} {{ __('warehouse.reserved') }}
@for($p = 1; $p <= $rack->positions_x; $p++) @endfor @foreach($binsByLevel as $levelCode => $bins) @foreach($bins->sortBy('position') as $bin) @php $bg = $bin->is_occupied ? '#fee2e2' : '#dcfce7'; $bdr = $bin->is_occupied ? '#fca5a5' : '#86efac'; $txt = $bin->is_occupied ? '#991b1b' : '#15803d'; $dot = $bin->is_occupied ? '#dc2626' : '#16a34a'; @endphp @endforeach @endforeach
{{ __('warehouse.level-col') }} {{ str_pad($p, 2, '0', STR_PAD_LEFT) }}
{{ $levelCode }}
is_occupied) onclick="showBinModal({{ $bin->id }})" @endif>
{{ $bin->code }}
{{ __('warehouse.floor') }}
{{-- Modal detalle del bin --}} @endsection @section('scripts') @endsection