{{-- Product View - Clean Desktop + Unique Mobile UI --}} @php $unitName = $product->unit->short_name ?? 'PCS'; $stockStatus = $totalStock <= 0 ? 'out' : ($totalStock < ($product->min_stock_level ?? 0) ? 'low' : 'ok'); @endphp
đŸ“Ļ
{{ number_format($totalStock, 2) }}
Stock ({{ $unitName }})
Total
💰
₹{{ number_format($stockValue, 0) }}
Stock Value
@ ₹{{ number_format($product->purchase_price, 2) }}
đŸˇī¸
₹{{ number_format($product->purchase_price, 2) }}
Purchase
Per {{ $unitName }}
đŸ’ĩ
₹{{ number_format($product->sale_price, 2) }}
Sale Price
{{ $product->mrp ? 'MRP ₹'.$product->mrp : '' }}
đŸ“Ĩ Receive 📤 Deliver 🔄 Transfer â†Šī¸ Return âš–ī¸ Adjust

📋 Product Details

{{ $product->category->name ?? '-' }}
{{ $product->brand->name ?? '-' }}
{{ $unitName }}
{{ $product->hsn_code ?? '-' }}
{{ $product->model_number }}
{{ number_format($product->min_stock_level ?? 0, 0) }}
{{ number_format($product->max_stock_level ?? 0, 0) }}
@if($product->tax1)
{{ $product->tax1->rate }}%
@endif
{{ $product->default_profit_rate ?? 0 }}%
@if($product->mrp)
₹{{ number_format($product->mrp, 2) }}
@endif
✓ Sell ✓ Purchase ✓ Track ✓ Batch

🏭 Stock by Location {{ $stockDetails->count() }}

@if($stockDetails->count() > 0)
@if($product->has_variants)@endif @foreach($stockDetails as $stock) @if($product->has_variants) @endif @endforeach
VariationLocationLotQtyValue
@if($stock->variation)
@foreach($stock->variation->attributeValues as $av)@if($av->attribute && $av->attribute->type === 'color')@endif{{ $av->value }}@endforeach
{{ $stock->variation->sku }}
@else - @endif
{{ $stock->warehouse->name ?? '-' }}
@if($stock->rack)
{{ $stock->rack->code }}
@endif
{{ $stock->lot ? $stock->lot->lot_number : '-' }} {{ number_format($stock->qty, 2) }} ₹{{ number_format($stock->qty * $product->purchase_price, 0) }}
Total{{ number_format($totalStock, 2) }}₹{{ number_format($stockValue, 0) }}
@else
đŸ“Ļ

No Stock

@endif
@forelse($stockDetails as $stock)
@if($product->has_variants && $stock->variation)
@foreach($stock->variation->attributeValues as $av) @if($av->attribute && $av->attribute->type === 'color')@endif{{ $av->value }} @endforeach
@endif
{{ $stock->warehouse->name ?? '-' }}
@if($stock->rack)
{{ $stock->rack->code }} {{ $stock->rack->name }}
@endif
{{ number_format($stock->qty, 2) }}
{{ $stock->lot ? $stock->lot->lot_number : 'No Lot' }} ₹{{ number_format($stock->qty * $product->purchase_price, 0) }}
@empty
đŸ“Ļ

No Stock

@endforelse
@if($product->has_variants)

🎨 Variations ...

Loading...

@endif

📊 Stock Movements

View All →
@if($recentMovements->count() > 0)
@foreach($recentMovements as $mv) @php $tc = match($mv->movement_type) { 'IN'=>'in', 'OUT'=>'out', 'TRANSFER'=>'transfer', 'RETURN'=>'return', default=>'adjust' }; $ti = match($mv->movement_type) { 'IN'=>'đŸ“Ĩ', 'OUT'=>'📤', 'TRANSFER'=>'🔄', 'RETURN'=>'â†Šī¸', default=>'âš–ī¸' }; @endphp @endforeach
DateTypeReferenceLocationQtyReason
{{ $mv->created_at->format('d M Y') }}
{{ $mv->created_at->format('h:i A') }}
{{ $ti }} {{ $mv->movement_type }} {{ $mv->reference_no }} {{ $mv->warehouse->name ?? '' }}@if($mv->rack) / {{ $mv->rack->code }}@endif {{ $mv->qty >= 0 ? '+' : '' }}{{ number_format($mv->qty, 2) }} {{ Str::limit($mv->reason, 15) }}
@else
📋

No Movements

@endif
@forelse($recentMovements as $mv) @php $tc = match($mv->movement_type) { 'IN'=>'in', 'OUT'=>'out', 'TRANSFER'=>'transfer', 'RETURN'=>'return', default=>'adjust' }; $ti = match($mv->movement_type) { 'IN'=>'đŸ“Ĩ', 'OUT'=>'📤', 'TRANSFER'=>'🔄', 'RETURN'=>'â†Šī¸', default=>'âš–ī¸' }; @endphp
{{ $ti }} {{ $mv->movement_type }} {{ $mv->qty >= 0 ? '+' : '' }}{{ number_format($mv->qty, 2) }}
{{ $mv->reference_no }}
{{ $mv->warehouse->name ?? '' }}@if($mv->rack) / {{ $mv->rack->code }}@endif {{ $mv->created_at->format('d M, h:i A') }}
@empty
📋

No Movements

@endforelse

📈 Summary

Qty{{ number_format($totalStock, 2) }} {{ $unitName }}
Purchase₹{{ number_format($stockValue, 0) }}
Sale₹{{ number_format($saleValue, 0) }}
Profit₹{{ number_format($saleValue - $stockValue, 0) }}

🔔 Reorder

Min{{ number_format($product->min_stock_level ?? 0, 0) }}
Max{{ number_format($product->max_stock_level ?? 0, 0) }}
@php $rq = max(0, ($product->max_stock_level ?? 0) - $totalStock); @endphp
@if($stockStatus === 'ok') ✅ Stock OK @elseif($stockStatus === 'low') âš ī¸ Reorder {{ number_format($rq, 0) }} @else 🔴 Out! @endif
Sale Value₹{{ number_format($saleValue, 0) }}
Profit₹{{ number_format($saleValue - $stockValue, 0) }}
@php $rq = max(0, ($product->max_stock_level ?? 0) - $totalStock); @endphp
@if($stockStatus === 'ok') ✅ Stock OK @elseif($stockStatus === 'low') âš ī¸ Reorder {{ number_format($rq, 0) }} {{ $unitName }} @else 🔴 Out of Stock @endif
@if($product->has_variants) @endif