{{-- resources/views/admin/accounts/show.blade.php --}} @extends('admin.layouts.master') @section('title', 'عرض حساب مالي') @section('css') @endsection @section('content') @php // ==== Safe defaults لو الكنترولر مبعتش حاجات ==== $balances = $balances ?? collect(); $lines = $lines ?? null; // Summary from account_balances (أفضل وأسرع) $balDebit = (float) $balances->sum('debit_total'); $balCredit = (float) $balances->sum('credit_total'); $balNet = $balDebit - $balCredit; // + مدين / - دائن $balSide = $balNet >= 0 ? 'مدين' : 'دائن'; $balAbs = abs($balNet); // Ledger totals from displayed page (مش إجمالي النظام كله) $pageDebit = 0.0; $pageCredit = 0.0; // رصيد افتتاحي للـ running balance داخل الصفحة // لو عندك طريقة تضبطه من الكنترولر ابعته في $openingBalance $running = (float)($openingBalance ?? 0); @endphp
{{-- Header --}}

{{ $account->name }}

{{ $account->type?->name ?? '-' }} @if($account->status) نشط @else غير نشط @endif رقم الحساب: {{ $account->account_number ?? '-' }}
{{ $account->path }}
رجوع تعديل
@csrf @method('DELETE')
{{-- KPIs --}}
الرصيد الافتتاحي
{{ number_format((float)($account->start_balance ?? 0), 2) }}
الرصيد الحالي
{{ number_format((float)($account->current_balance ?? 0), 2) }}
إجمالي حركة (من account_balances)
{{ number_format((float)$balAbs, 2) }} {{ $balSide }}
صافي = إجمالي مدين - إجمالي دائن
الأب
{{ $account->parent?->name ?? '— (حساب رئيسي)' }}
إجراءات سريعة
معلومة محاسبية
لا يُفضل حذف الحساب بعد استخدامه في القيود. الأفضل إيقاف الحساب للحفاظ على سلامة التقارير.
{{-- Helper --}}
{{-- Details --}}
تفاصيل الحساب
آخر تحديث: {{ $account->updated_at?->format('Y-m-d H:i') ?? '-' }}
اسم الحساب
{{ $account->name }}
رقم الحساب
{{ $account->account_number ?? '-' }} @if($account->account_number) نسخ @endif
نوع الحساب
{{ $account->type?->name ?? '-' }}
الحالة
@if($account->status) نشط @else غير نشط @endif
تاريخ
{{ $account->date?->format('Y-m-d') ?? '-' }}
مرجع خارجي
{{ $account->other_table_id ?? '-' }}
الملاحظات
{{ $account->notes ?: '—' }}
تم الإنشاء
{{ $account->created_at?->format('Y-m-d H:i') ?? '-' }}
آخر تحديث
{{ $account->updated_at?->format('Y-m-d H:i') ?? '-' }}
آخر تحديث بواسطة
{{ $account->updated_by ?? '-' }}
{{-- account_balances breakdown --}}
ملخص الأرصدة (حسب العملة/الفرع)
مصدر البيانات: account_balances
@if($balances->count())
@foreach($balances as $b) @php $d = (float)($b->debit_total ?? 0); $c = (float)($b->credit_total ?? 0); $bal = (float)($b->balance ?? ($d - $c)); $side = $bal >= 0 ? 'مدين' : 'دائن'; @endphp @endforeach
العملة الفرع إجمالي مدين إجمالي دائن الرصيد الاتجاه
{{ $b->currency_code ?? 'EGP' }} @if($b->branch_id) فرع #{{ $b->branch_id }} @else @endif {{ number_format($d, 2) }} {{ number_format($c, 2) }} {{ number_format(abs($bal), 2) }} {{ $side }}
الإجمالي {{ number_format($balDebit, 2) }} {{ number_format($balCredit, 2) }} {{ number_format($balAbs, 2) }} {{ $balSide }}
@else
لا يوجد أرصدة محفوظة لهذا الحساب في account_balances.
@endif
{{-- Children --}}
الحسابات الفرعية
{{ $account->children?->count() ? $account->children->count() : 0 }} حساب
@if($account->children && $account->children->count())
@foreach($account->children as $i => $child) @endforeach
# الاسم النوع الرصيد الحالي الحالة إجراءات
{{ $i + 1 }}
{{ $child->name }}
{{ $child->path }}
{{ $child->type?->name ?? '-' }} {{ number_format((float)($child->current_balance ?? 0), 2) }} @if($child->status) نشط @else غير نشط @endif
@else
لا توجد حسابات فرعية لهذا الحساب.
إضافة حساب فرعي
@endif
{{-- Ledger (حركات الحساب) --}} {{-- Ledger (حركات الحساب) --}}
الحركات على الحساب (Ledger)
مدين / دائن + رصيد جاري داخل الصفحة
صافي إجمالي: {{ number_format($balAbs, 2) }} ({{ $balSide }})
{{-- KPIs للحركات --}}
إجمالي مدين (account_balances)
{{ number_format($balDebit, 2) }}
إجمالي دائن (account_balances)
{{ number_format($balCredit, 2) }}
الرصيد الحالي (من الحساب)
{{ number_format((float)($account->current_balance ?? 0), 2) }}
@if($lines && $lines->count()) @php // إجماليات الصفحة + رصيد جاري للعرض $pageDebit = 0.0; $pageCredit = 0.0; // لو مش مبعوت من الكنترولر يبقى 0، تقدر تبعته صح لو عملت Pagination $running = (float)($openingBalance ?? 0); @endphp
@foreach($lines as $line) @php $je = $line->journalEntry; // ✅ لازم نعرّفها هنا (كانت سبب Undefined variable) $d = (float)($line->debit ?? 0); $c = (float)($line->credit ?? 0); $pageDebit += $d; $pageCredit += $c; // running balance داخل الصفحة $running += ($d - $c); $runAbs = abs($running); $runSide = $running >= 0 ? 'مدين' : 'دائن'; // العملة (حسب تصميمك) $currency = $line->currency_code ?? $je->currency_code ?? ($account->currency_code ?? 'EGP'); $entryNumber = $je?->entry_number ?? '-'; $entryDate = $je?->entry_date ? $je->entry_date->format('Y-m-d') : '-'; $refText = ''; if ($je?->reference_type && $je?->reference_id) { $refText = $je->reference_type . ':' . $je->reference_id; } @endphp @endforeach @php $pageNet = $pageDebit - $pageCredit; $pageSide = $pageNet >= 0 ? 'مدين' : 'دائن'; $pageAbs = abs($pageNet); @endphp
التاريخ رقم القيد البيان مدين دائن الرصيد الجاري عملة ملاحظة
{{ $entryDate }}
#{{ $line->line_no ?? 1 }}
{{ $entryNumber }}
@if($je?->source)
Source: {{ $je->source }}
@endif @if($refText)
Ref: {{ $refText }}
@endif
{{ $je?->description ?? ($line->memo ?? '-') }}
@if(!empty($je?->status))
الحالة: {{ $je->status }}
@endif
@if($d > 0) {{ number_format($d, 2) }} @else — @endif @if($c > 0) {{ number_format($c, 2) }} @else — @endif
{{ number_format($runAbs, 2) }}
{{ $runSide }}
{{ $currency }} @if(!empty($line->fx_rate))
FX: {{ number_format((float)$line->fx_rate, 6) }}
@endif
{{ $line->memo ?? '—' }}
إجمالي الصفحة {{ number_format($pageDebit, 2) }} {{ number_format($pageCredit, 2) }} {{ number_format($pageAbs, 2) }} {{ $pageSide }}
@else
لا توجد حركات على هذا الحساب حتى الآن.
@endif
قراءة سريعة
لو المدين أكبر من الدائن → الصافي مدين. ولو الدائن أكبر → الصافي دائن.
@endsection @section('js') @endsection