{{-- Müşteri kartı → Satışlar sekmesi. Her satır: durum rayı + ürün + tarih + ödeme ilerlemesi + tutar. Beklenen: $customer --}} @php $sales = $customer->sales->sortByDesc(fn($s) => $s->start_date ?? $s->created_at); $totalAmt = (float) $sales->sum('total_amount'); $paidAmt = (float) $sales->sum('paid_amount'); $dueAmt = max(0, $totalAmt - $paidAmt); $openCnt = $sales->whereNotIn('status', ['completed', 'cancelled', 'refunded'])->count(); @endphp
{{-- ══ ÖZET ══ --}}
Toplam Satış {{ number_format($totalAmt, 0, ',', '.') }} ₺ {{ $sales->count() }} kayıt
Tahsil Edilen {{ number_format($paidAmt, 0, ',', '.') }} ₺ %{{ $totalAmt > 0 ? round($paidAmt / $totalAmt * 100) : 0 }} tamamlandı
Bakiye {{ number_format($dueAmt, 0, ',', '.') }} ₺ {{ $openCnt }} açık satış
{{-- ══ FİLTRE ══ --}} @if($sales->count() > 3)
@endif {{-- ══ SATIŞ LİSTESİ ══ --}}
@forelse($sales as $s) @php $pct = (float) $s->total_amount > 0 ? min(100, round((float) $s->paid_amount / (float) $s->total_amount * 100)) : 0; $due = (float) $s->remaining_amount; $isOpen = !in_array($s->status, ['completed', 'cancelled', 'refunded'], true); $tags = ['all']; if ($isOpen) $tags[] = 'open'; if ($due > 0) $tags[] = 'due'; if ($s->status === 'completed') $tags[] = 'done'; $start = $s->start_date ? \Carbon\Carbon::parse($s->start_date) : null; $days = $start ? (int) \Carbon\Carbon::today()->diffInDays($start, false) : null; @endphp
@if($start) {{ $start->format('d') }} {{ $start->translatedFormat('M') }} {{ $start->format('Y') }} @else tarih @endif
{{ $s->product_title ?: 'Satış' }}
#{{ $s->sale_code ?: $s->id }} @if($s->total_participants){{ $s->total_participants }} kişi@endif @if($days !== null && $isOpen) @if($days > 0){{ $days }} gün kaldı @elseif($days === 0)Bugün@endif @endif
{{ $s->status_label }} @if($due > 0) Kalan {{ number_format($due, 0, ',', '.') }} ₺ @else Tahsil edildi @endif
{{ number_format((float) $s->total_amount, 2, ',', '.') }} {{ $s->currency }}
@empty
Bu müşterinin satışı yok Yeni bir satış oluşturduğunuzda burada listelenir.
@endforelse