{{-- Operasyon kartı · GİDERLER sekmesi. Kalkışın tedarikçi ve kaynak (rehber/araç/kaptan) giderlerini tek tabloda toplar: PLANLANAN tutar kaynak atamasından ya da elle girilen gider kaleminden gelir, GERÇEKLEŞEN tutar ise ödemeler defterindeki (payments) gider hareketlerinden. Fark "kalan" olarak satır satır gösterilir. Beklenen: $uid, $typeKey, $id : kalkış kimliği (JS uçları için) $rows : OperationExpenseService::rows() çıktısı $payments : kalkışa bağlı gider hareketleri $summary : OperationExpenseService::summary() çıktısı $suppliers, $currencies : kalem ekleme formu seçenekleri $expensesReady : operation_expenses tablosu migrate edildi mi --}} @include('agency.partials.qv-table') @php $rows = $rows ?? collect(); $payments = $payments ?? collect(); $suppliers = $suppliers ?? collect(); $currencies = $currencies ?? collect(); $baseCurrency = optional($currencies->firstWhere('is_base', true))->code ?? 'TRY'; $money = fn ($v) => number_format((float) $v, 2, ',', '.'); @endphp
@unless($expensesReady ?? false)
Gider tablosu henüz kurulmadı. Elle gider kalemi girebilmek için php artisan migrate çalıştırılmalı.
@endunless {{-- ── Özet: planlanan / gerçekleşen / bekleyen / kalan ── --}}
PLANLANAN GİDER {{ $money($summary['planned']) }}₺ {{ $summary['row_count'] }} kalem
GERÇEKLEŞEN ÖDEME {{ $money($summary['paid']) }}₺ {{ $summary['payment_count'] }} hareket
BEKLEYEN ÖDEME {{ $money($summary['pending']) }}₺ henüz gerçekleşmedi
KALAN (PLAN − GERÇEKLEŞEN) {{ $money($summary['remaining']) }}₺ %{{ $summary['progress'] }} ödendi
@if(($summary['unlinked_count'] ?? 0) > 0)
{{ $summary['unlinked_count'] }} ödeme hiçbir gider kalemine bağlı değil ({{ $money($summary['unlinked_amount']) }}₺). Aşağıdaki hareket listesinden kartını açıp kaleme bağlayabilirsiniz.
@endif {{-- ── Kalem çubuğu ── --}}
{{ $rows->count() }} gider kalemi @if($expensesReady ?? false) @endif
{{-- ── Yeni kalem formu ── --}} @if($expensesReady ?? false)
@endif {{-- ── Gider kalemleri tablosu ── --}}
@forelse($rows as $r) {{-- Hızlı ödeme satırı (kalem başına) --}} @empty @endforelse @if($rows->count()) @endif
Gider Kalemi Muhatap Kategori Vade Planlanan Gerçekleşen Kalan Durum
@if($r['kind'] === 'resource' && $r['resource_id']) {{ $r['title'] }} @else {{ $r['title'] }} @endif @if($r['description'])
{{ $r['description'] }}
@endif
@if($r['counterparty_url']) {{ $r['counterparty_label'] }} @else {{ $r['counterparty_label'] ?: '—' }} @endif {{ $r['category_label'] }} {{ $r['due_date']?->format('d.m.Y') ?: '—' }} {{ $money($r['planned']) }} {{ $r['currency'] }} {{ $money($r['paid']) }} @if($r['pending'] > 0)
bekleyen {{ $money($r['pending']) }}
@endif
{{ $money($r['remaining']) }} {{ $r['pay_state']['label'] }} @if($r['editable']) @endif
{{ $r['title'] }} · gerçekleşen ödeme
Gider kalemi yok Kaynak atadığınızda maliyetleri burada belirir; tedarikçi giderlerini "Gider Kalemi Ekle" ile elle girebilirsiniz.
TOPLAM {{ $money($summary['planned']) }} {{ $money($summary['paid']) }} {{ $money($summary['remaining']) }}
{{-- ── Gerçekleşen ödeme hareketleri (ödemeler defterinden) ── --}}
Gerçekleşen Ödeme Hareketleri
@include('agency.payments.partials.payment-list', [ 'payments' => $payments, 'createUrl' => route('agency.payments.quick-create', ['direction' => 'out', 'payable_type' => get_class($vm['date']), 'payable_id' => $id]), 'summary' => [], 'emptyText' => 'Bu kalkış için henüz gider ödemesi kaydedilmedi.', ])
{{-- Quick-view parçaları layout'suz döndüğü için stil satır içi verilir --}} @once @endonce