{{ $this->form }}
{{ __('filament/admin/reports.show_report') }}
@if(!empty($report_data) && count($data) > 0 && isset($report_data['cashbox']))
{{ __('filament/admin/reports.export_excel') }} {{ __('filament/admin/reports.export_pdf') }} {{ __('filament/admin/reports.print') }}

{{ __('filament/admin/reports.cashbox_movement') }}

{{ __('filament/admin/reports.generated_at') }}: {{ now()->format('Y-m-d H:i') }}

{{ __('filament/admin/reports.cashbox') }}

{{ $report_data['cashbox']->name_ar }}

{{ __('filament/admin/reports.currency') }}: {{ $report_data['cashbox']->currency }}

@if($report_data['from_date'])

{{ __('filament/admin/reports.from_date') }}: {{ $report_data['from_date'] }}

@endif @if($report_data['to_date'])

{{ __('filament/admin/reports.to_date') }}: {{ $report_data['to_date'] }}

@endif
{{ __('filament/admin/reports.opening_balance') }} {{ number_format($report_data['opening_balance'], 2) }} {{ $report_data['cashbox']->currency }}
@php $running_balance = $report_data['opening_balance']; @endphp @forelse($report_data['movements'] as $movement) @php $running_balance += $movement['amount_change']; // تحديد لون الصف ونوع العملية $rowClass = ''; $typeLabel = ''; $typeColor = ''; switch($movement['type']) { case 'sale': $rowClass = 'bg-green-50'; $typeLabel = __('filament/admin/reports.sale'); $typeColor = 'text-green-700 font-semibold'; break; case 'purchase': $rowClass = 'bg-red-50'; $typeLabel = __('filament/admin/reports.purchase'); $typeColor = 'text-red-700 font-semibold'; break; case 'customer_payment': $rowClass = 'bg-emerald-50'; $typeLabel = __('filament/admin/reports.customer_payment'); $typeColor = 'text-emerald-700 font-semibold'; break; case 'supplier_payment': $rowClass = 'bg-orange-50'; $typeLabel = __('filament/admin/reports.supplier_payment'); $typeColor = 'text-orange-700 font-semibold'; break; case 'sale_return': $rowClass = 'bg-pink-50'; $typeLabel = __('filament/admin/reports.sale_return'); $typeColor = 'text-pink-700 font-semibold'; break; case 'purchase_return': $rowClass = 'bg-cyan-50'; $typeLabel = __('filament/admin/reports.purchase_return'); $typeColor = 'text-cyan-700 font-semibold'; break; case 'cash_in': $rowClass = 'bg-teal-50'; $typeLabel = __('filament/admin/reports.cash_in'); $typeColor = 'text-teal-700 font-semibold'; break; case 'cash_out': $rowClass = 'bg-amber-50'; $typeLabel = __('filament/admin/reports.cash_out'); $typeColor = 'text-amber-700 font-semibold'; break; } @endphp @if($movement['amount_change'] > 0) @else @endif @empty @endforelse
{{ __('filament/admin/reports.date') }} {{ __('filament/admin/reports.reference_number') }} {{ __('filament/admin/reports.operation_type') }} {{ __('filament/admin/reports.description') }} {{ __('filament/admin/reports.amount') }} {{ __('filament/admin/reports.income') }} {{ __('filament/admin/reports.expense') }} {{ __('filament/admin/reports.balance') }}
{{ $movement['date'] }} #{{ $movement['reference_number'] }} {{ $typeLabel }} {{ $movement['description'] }} {{ number_format($movement['amount'], 2) }} +{{ number_format($movement['amount_change'], 2) }} -- {{ number_format(abs($movement['amount_change']), 2) }} {{ number_format($running_balance, 2) }}
{{ __('filament/admin/reports.no_movements') }}
{{ __('filament/admin/reports.closing_balance') }} {{ number_format($report_data['closing_balance'], 2) }} {{ $report_data['cashbox']->currency }}

{{ __('filament/admin/reports.total_income') }}

{{ number_format($report_data['movements']->where('amount_change', '>', 0)->sum('amount_change'), 2) }}

{{ __('filament/admin/reports.total_expense') }}

{{ number_format(abs($report_data['movements']->where('amount_change', '<', 0)->sum('amount_change')), 2) }}

{{ __('filament/admin/reports.net_change') }}

{{ number_format($report_data['movements']->sum('amount_change'), 2) }}

{{ __('filament/admin/reports.total_transactions') }}

{{ count($report_data['movements']) }}

{{ __('filament/admin/reports.summary_by_type') }}

@php $movementsByType = $report_data['movements']->groupBy('type'); @endphp @foreach(['sale', 'purchase', 'customer_payment', 'supplier_payment', 'sale_return', 'purchase_return', 'cash_in', 'cash_out'] as $type) @if($movementsByType->has($type))

@switch($type) @case('sale') {{ __('filament/admin/reports.sale') }} @break @case('purchase') {{ __('filament/admin/reports.purchase') }} @break @case('customer_payment') {{ __('filament/admin/reports.customer_payment') }} @break @case('supplier_payment') {{ __('filament/admin/reports.supplier_payment') }} @break @case('sale_return') {{ __('filament/admin/reports.sale_return') }} @break @case('purchase_return') {{ __('filament/admin/reports.purchase_return') }} @break @case('cash_in') {{ __('filament/admin/reports.cash_in') }} @break @case('cash_out') {{ __('filament/admin/reports.cash_out') }} @break @endswitch

{{ number_format($movementsByType[$type]->sum('amount'), 2) }}

({{ $movementsByType[$type]->count() }} {{ __('filament/admin/reports.transactions') }})

@endif @endforeach
@else

{{ __('filament/admin/reports.select_filters') }}

{{ __('filament/admin/reports.select_cashbox_message') }}

@endif