{{-- LEDGER KARTI — sabit quick-view alan tasarımının kart üreticisi. Markup TEK yerde dursun diye kartlar bu partial ile çizilir; stil + davranış components/quick-view/ledger-ui'dedir (kullanan sayfa onu da include etmeli). Kullanım: @include('components.quick-view.ledger-card', ['card' => [ 'title' => 'Genel Bilgiler', 'icon' => 'fa-circle-info', // fas ikonunun sınıf adı 'url' => $uf, // PATCH update-field ucu 'note' => null, // kart altı küçük bilgi notu 'class' => 'pfx-lw', // uzun etiketli kartlarda geniş etiket sütunu 'foldable' => true, // başlığa katla/aç düğmesi koyar 'ctype' => 'individual', // kartın etkin tipi (ctype'lı satırların // boş sayacına yalnız bu tip girer) 'append' => 'agency.customers.partials.qv-billing', // kart sonuna eklenen görünüm // (üst kapsamdaki değişkenleri devralır) 'sections' => [[ 'title' => 'Temel Bilgiler', 'icon' => 'fa-circle-info', 'muted' => false, // salt okunur/soluk bölüm 'ctype' => null, // bölüm yalnız bu kart tipinde görünür 'rows' => [ // Satır sözleşmesinin tamamı: components/quick-view/ledger-row ['label' => 'Tur Adı', 'field' => 'name', 'type' => 'text', 'value' => '…', 'text' => '…', 'options' => null, 'mono' => false, 'ph' => 'Tur adı'], ], ]], ]]) Boş alanlar varsayılan görünür (show-empty); başlıktaki düğme gizler. --}} @php $lcTitle = $card['title'] ?? 'Bilgiler'; $lcIcon = $card['icon'] ?? 'fa-circle-info'; $lcUrl = $card['url'] ?? null; $lcNote = $card['note'] ?? null; $lcSections = $card['sections'] ?? []; $lcCtype = $card['ctype'] ?? null; // Boş sayacı: kart tipine uymayan satırlar ekranda olmadığı için sayılmaz. $lcEmpty = 0; foreach ($lcSections as $lcS) { foreach ($lcS['rows'] as $lcR) { $lcRowCtype = $lcR['ctype'] ?? ($lcS['ctype'] ?? null); if ($lcRowCtype && $lcCtype && $lcRowCtype !== $lcCtype) continue; if (blank(trim((string) ($lcR['text'] ?? '')))) $lcEmpty++; } } @endphp {{-- show-empty açık başlar: boş alanlar varsayılan görünür, düğme gizlemeye yarar. 'class' => 'pfx-lw' uzun etiketli kartlarda geniş etiket sütunu açar. --}}
{{ $lcTitle }} @if($card['foldable'] ?? false) @endif
@foreach($lcSections as $lcS)
{{ $lcS['title'] }}
@foreach($lcS['rows'] as $lcR) {{-- Bölüm tipi satıra iner: gizli bölümdeki satırlar da display:none olur, böylece boş alan sayacı kart tipine uymayan satırları saymaz. Satır kendi ctype'ını verdiyse ona dokunulmaz — dizi birleşimi yerine açık kontrol, çünkü satırlar 'ctype' => null taşıyabilir. --}} @include('components.quick-view.ledger-row', [ 'r' => ($lcS['ctype'] ?? null) && ! ($lcR['ctype'] ?? null) ? array_merge($lcR, ['ctype' => $lcS['ctype']]) : $lcR, ]) @endforeach
@endforeach @if($card['append'] ?? null) @include($card['append']) @endif @if($lcNote)
{{ $lcNote }}
@endif