@extends('layouts.app') @section('title','Dashboard') @section('content') @php $profitReliable = $data['profit_reliable'] ?? false; $issues = $data['issues'] ?? []; $grossSales = $data['gross_sales'] ?? 0; $netSales = $data['net_sales'] ?? 0; $orders = $data['orders'] ?? 0; $items = $data['items'] ?? 0; $commission = $data['commission'] ?? 0; $platformServiceFee = $data['platform_service_fee'] ?? 0; $otherTrendyolFees = $data['other_trendyol_fees'] ?? 0; $trendyolShippingFee = $data['trendyol_shipping_fee'] ?? 0; $trendyolAdvertisingFee = $data['trendyol_advertising_fee'] ?? 0; $remainingTrendyolFees = $data['remaining_trendyol_fees'] ?? 0; $productCost = $data['product_cost'] ?? null; $shippingCost = $data['shipping_cost'] ?? 0; $otherExpenses = $data['other_expenses'] ?? 0; $netProfit = $data['net_profit'] ?? null; $provisionalNetProfit = $data['provisional_net_profit'] ?? null; $profitMargin = $data['profit_margin'] ?? null; $partners = $data['partners'] ?? null; $discounts = $data['discounts'] ?? 0; $coupons = $data['coupons'] ?? 0; $returns = $data['returns'] ?? 0; $averageOrderValue = $orders > 0 ? $netSales / $orders : 0; $profitPerOrder = ($orders > 0 && $netProfit !== null) ? $netProfit / $orders : null; $profitPerItem = ($items > 0 && $netProfit !== null) ? $netProfit / $items : null; $adRatio = $grossSales > 0 ? ($trendyolAdvertisingFee / $grossSales) * 100 : 0; $shippingRatio = $grossSales > 0 ? ($trendyolShippingFee / $grossSales) * 100 : 0; $dataStatus = $data['data_status'] ?? ($profitReliable ? 'TAM' : 'EKSİK'); $missingCostCount = $data['missing_cost_count'] ?? 0; $unknownTransactions = $data['unknown_transactions'] ?? 0; $duplicateCandidates = $data['duplicate_candidates'] ?? 0; $unmatchedFinancialOrders = $data['unmatched_financial_orders'] ?? 0; $openConflicts = $data['open_conflicts'] ?? 0; @endphp

TRENDYOL KÂR PANELİ

Gerçek kâr, maliyet ve finans mutabakatı
@csrf
@if(isset($lastFullSync) && $lastFullSync) Son başarılı FULL SYNC: {{ optional($lastFullSync->completed_at)->timezone('Europe/Istanbul')->format('d.m.Y H:i:s') }} @else Henüz tamamlanmış FULL SYNC yok. @endif
Bugün Dün Son 7 Gün Bu Ay Geçen Ay
@if($hasUnresolvedSyncError ?? false)
SENKRONİZASYON HATASI
Servis: {{ $lastFailedSync->service ?? '-' }}
Zaman: {{ optional($lastFailedSync->created_at) ?->timezone('Europe/Istanbul') ->format('d.m.Y H:i:s') }}
@if(!empty($lastFailedSync->error_message))
Hata:
{{ \Illuminate\Support\Str::limit($lastFailedSync->error_message, 500) }}
@endif
@endif @if(!$profitReliable)
RAPOR DURUMU: EKSİK VERİ — NET KÂR GÜVENİLİR OLARAK YAYINLANMADI. @if(count($issues)) @endif
@endif
SİSTEM DURUMU
@if($systemHealthy ?? false) ✓ Sistem Sağlıklı @elseif($syncRunning ?? false) Senkronizasyon Çalışıyor @else Kontrol Gerekli @endif
SON FULL SYNC
@if($lastFullSync) {{ $lastFullSync->completed_at ->timezone('Europe/Istanbul') ->format('d.m.Y H:i:s') }} @else - @endif
SONRAKİ OTOMATİK SYNC
{{ $nextAutoSync ?->format('d.m.Y H:i') ?? '-' }}
KUYRUK
{{ $pendingJobs ?? 0 }} bekleyen iş
@foreach([ ['CİRO', $grossSales, true], ['NET SATIŞ', $netSales, true], ['SİPARİŞ', $orders, false], ['ÜRÜN ADEDİ', $items, false] ] as $m)
{{ $m[0] }}
@if($m[2]) ₺{{ number_format($m[1], 2, ',', '.') }} @else {{ $m[1] }} @endif
@endforeach
İNDİRİM + KUPON
₺{{ number_format($discounts + $coupons, 2, ',', '.') }}
İADE
₺{{ number_format($returns, 2, ',', '.') }}
ORT. SİPARİŞ TUTARI
₺{{ number_format($averageOrderValue, 2, ',', '.') }}
SİPARİŞ BAŞINA KÂR
@if($profitPerOrder !== null) ₺{{ number_format($profitPerOrder, 2, ',', '.') }} @else - @endif
ÜRÜN BAŞINA KÂR
@if($profitPerItem !== null) ₺{{ number_format($profitPerItem, 2, ',', '.') }} @else - @endif
REKLAM / CİRO
%{{ number_format($adRatio, 2, ',', '.') }}
KARGO / CİRO
%{{ number_format($shippingRatio, 2, ',', '.') }}
Kesintiler ve Giderler
Trendyol Komisyonu -₺{{ number_format($commission, 2, ',', '.') }}
Platform Bedeli -₺{{ number_format($platformServiceFee, 2, ',', '.') }}
Trendyol Kargo Faturaları -₺{{ number_format($trendyolShippingFee, 2, ',', '.') }}
Trendyol Reklam Gideri -₺{{ number_format($trendyolAdvertisingFee, 2, ',', '.') }}
Diğer Trendyol Kesintileri -₺{{ number_format($remainingTrendyolFees, 2, ',', '.') }}
Mal Maliyeti @if($productCost === null) EKSİK @else -₺{{ number_format($productCost, 2, ',', '.') }} @endif
Kargo -₺{{ number_format($shippingCost, 2, ',', '.') }}
Diğer Giderler -₺{{ number_format($otherExpenses, 2, ',', '.') }}
Net Kâr
@if($netProfit === null)

GÜVENİLİRLİK UYARISI

Eksik/çelişkili veri giderilmeden ortak kârı hesaplanmaz.
@if($provisionalNetProfit !== null)
Geçici hesap: ₺{{ number_format($provisionalNetProfit, 2, ',', '.') }}
@endif @else

₺{{ number_format($netProfit, 2, ',', '.') }}

@if($profitMargin !== null)
Kâr marjı: {{ $profitMargin }}%
@endif @endif
Ortaklar
@if(is_array($partners) && count($partners)) @foreach($partners as $p)
{{ $p['name'] ?? '-' }} %{{ $p['share'] ?? 0 }} @if(isset($p['profit'])) ₺{{ number_format($p['profit'], 2, ',', '.') }} @else - @endif
@endforeach @else Veri güvenilir olmadan ortak kârı yayınlanmaz. @endif
Senkronizasyon Durumu
@php $syncLabels = [ 'products' => 'Ürünler', 'orders' => 'Siparişler', 'settlements' => 'Settlement', 'otherfinancials' => 'Diğer Finans', 'payment_orders' => 'Ödeme Emirleri', 'full_sync_finalize' => 'Final Kontrol', ]; @endphp @foreach($syncLabels as $key => $label) @php $log = $syncLogs[$key] ?? null; $status = $log?->status; @endphp
{{ $label }} @if($status === 'success') ✓ Başarılı @elseif($status === 'running') Çalışıyor @elseif($status === 'failed') ✗ Hata @else Henüz yok @endif
@endforeach @if(($pendingJobs ?? 0) > 0)
Kuyrukta bekleyen iş: {{ $pendingJobs }}
@endif
Veri Sağlığı

{{ $dataStatus }}

Eksik maliyet: {{ $missingCostCount }}
Bilinmeyen finans tipi: {{ $unknownTransactions }}
Duplicate adayı: {{ $duplicateCandidates }}
Eşleşmeyen finans: {{ $unmatchedFinancialOrders }}
Açık çatışma: {{ $openConflicts }}
@endsection