@extends('layouts.admin', ['title' => 'مخزون الأكواد | RaseedNow']) @php $fmt = fn ($minor) => number_format(($minor ?? 0) / 100, 2).' EGP'; @endphp @section('content')
Code Inventory

مخزون الأكواد المشفرة

@if(session('status'))
{{ session('status') }}
@endif @if($errors->any())
{{ $errors->first() }}
@endif
متاح{{ $metrics['available'] }} محجوز{{ $metrics['reserved'] }} مباع{{ $metrics['sold'] }} ملغي{{ $metrics['voided'] }}
ينتهي قريبًا{{ $metrics['expiringSoon'] }}
عدد الباتشات{{ $metrics['batches'] }}
مربوط بمزود{{ $metrics['providerLinked'] }}
تكلفة المتاح{{ $fmt($metrics['availableCost']) }}

الأكواد

{{ $codes->total() }} نتيجة
@if($codes->count())
@foreach($codes->getCollection()->groupBy(fn ($code) => $code->productVariant?->game?->name_ar ?: $code->productVariant?->name_ar ?: 'بدون منتج') as $groupName => $groupCodes) @php($firstProduct = $groupCodes->first()?->productVariant)

{{ $groupName }}

{{ $groupCodes->count() }} كود ظاهر في الصفحة

{{ $firstProduct?->delivery_method ?: 'stock' }}
@foreach($groupCodes as $code)
{{ $code->productVariant->name_ar }} {{ $code->productVariant->sku }} / {{ $code->batch_reference ?? 'بدون دفعة' }}
{{ $code->maskedCode() }} {{ $code->status }}
تفاصيل @if($code->status === 'available')
@csrf @method('DELETE')
@endif
@endforeach
@endforeach
@else
لا توجد أكواد مطابقة للتصفية الحالية.
@endif

ملخص الباتشات

@forelse($batchSummary as $batch)
{{ $batch->batch }}{{ $fmt($batch->cost_minor) }}
{{ $batch->status }} {{ $batch->total }}
@empty
لا توجد باتشات بعد.
@endforelse
{{ $codes->links() }}
@endsection