{{ $this->form }}
{{ __('filament/admin/reports.show_report') }}
@if(!empty($this->report_data) && count($this->report_data) > 0 && isset($this->report_data['product']))
{{ __('filament/admin/reports.export_excel') }} {{ __('filament/admin/reports.export_pdf') }} {{ __('filament/admin/reports.print') }}
@php $report = $this->report_data; @endphp

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

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

{{ __('filament/admin/reports.warehouse') }}: {{ $report['warehouse']->name_ar }} @if($report['movement_type']) {{ __('filament/admin/reports.operation_type') }}: {{ $report['movement_type'] }} @endif {{ __('filament/admin/reports.from_date') }}: {{ $report['from_date'] ?? __('filament/admin/reports.any') }} {{ __('filament/admin/reports.to_date') }}: {{ $report['to_date'] ?? __('filament/admin/reports.any') }}

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

{{ $report['product']->name_ar ?: $report['product']->name ?: $report['product']->code }}

{{ __('filament/admin/reports.product_code') }}: {{ $report['product']->code }}

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

{{ $report['warehouse']->name_ar }}

@if($report['from_date'])

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

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

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

@endif @if($report['compare'])
{{ __('filament/admin/reports.compare_from_date') }}: {{ $this->data['compare_from_date'] ?? '' }} {{ __('filament/admin/reports.compare_to_date') }}: {{ $this->data['compare_to_date'] ?? '' }}
@endif
{{ __('filament/admin/reports.opening_balance') }}
{{ $report['opening_balance_display'] }}

({{ __('filament/admin/reports.base_unit') }}: {{ number_format($report['opening_balance'], 2) }})

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

{{ number_format($report['summary']['total_in'] ?? 0, 2) }}

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

{{ number_format($report['summary']['total_out'] ?? 0, 2) }}

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

{{ number_format($report['summary']['net_change'] ?? 0, 2) }}

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

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

@php $running_balance = $report['opening_balance']; @endphp @forelse($report['movements'] as $movement) @php $new_balance = $running_balance + $movement['quantity_change']; $running_balance_display = ''; // تنسيق الرصيد الجاري بالوحدات if ($new_balance > 0) { $remainingQty = $new_balance; $parts = []; foreach ($report['product']->productUnits->sortByDesc('conversion_factor') as $pu) { $factor = $pu->conversion_factor ?? 1; if ($factor > 1 && $remainingQty >= $factor) { $count = floor($remainingQty / $factor); $parts[] = $count . ' ' . ($pu->unit->name_ar ?? $pu->unit->name); $remainingQty -= ($count * $factor); } } if ($remainingQty > 0) { $parts[] = $remainingQty . ' ' . ($report['product']->baseUnit->name_ar ?? $report['product']->baseUnit->name); } $running_balance_display = implode(' + ', $parts); } else { $running_balance_display = '0'; } // تحديد لون الصف حسب نوع العملية $rowClass = ''; $typeLabel = ''; $typeColor = ''; switch($movement['type']) { case 'purchase': $rowClass = 'bg-green-50'; $typeLabel = __('filament/admin/reports.purchase'); $typeColor = 'text-green-700 font-semibold'; break; case 'sale': $rowClass = 'bg-red-50'; $typeLabel = __('filament/admin/reports.sale'); $typeColor = 'text-red-700 font-semibold'; break; case 'sale_return': $rowClass = 'bg-blue-50'; $typeLabel = __('filament/admin/reports.sale_return'); $typeColor = 'text-blue-700 font-semibold'; break; case 'purchase_return': $rowClass = 'bg-orange-50'; $typeLabel = __('filament/admin/reports.purchase_return'); $typeColor = 'text-orange-700 font-semibold'; break; } @endphp @if($movement['quantity_change'] > 0) @else @endif @php $running_balance = $new_balance; @endphp @empty @endforelse
{{ __('filament/admin/reports.date') }} {{ __('filament/admin/reports.reference_number') }} {{ __('filament/admin/reports.operation_type') }} {{ __('filament/admin/reports.description') }} {{ __('filament/admin/reports.quantity') }} {{ __('filament/admin/reports.unit') }} {{ __('filament/admin/reports.in') }} {{ __('filament/admin/reports.out') }} {{ __('filament/admin/reports.balance') }}
{{ $movement['date'] }} #{{ $movement['reference_number'] }} {{ $typeLabel }} {{ $movement['description'] }} {{ number_format($movement['quantity'], 2) }} {{ $movement['unit_name'] }} +{{ number_format(abs($movement['quantity_change']), 2) }} -- {{ number_format(abs($movement['quantity_change']), 2) }} {{ $running_balance_display }}
({{ number_format($new_balance, 2) }})
{{ __('filament/admin/reports.no_movements') }}
{{ __('filament/admin/reports.closing_balance') }}
{{ $report['closing_balance_display'] }}

({{ __('filament/admin/reports.base_unit') }}: {{ number_format($report['closing_balance'], 2) }})

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

{{ number_format($report['summary']['net_change'] ?? 0, 2) }}

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

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

@if($report['compare']) @php $compare = $report['compare']; $deltaIn = ($report['summary']['total_in'] ?? 0) - ($compare['total_in'] ?? 0); $deltaOut = ($report['summary']['total_out'] ?? 0) - ($compare['total_out'] ?? 0); $deltaNet = ($report['summary']['net_change'] ?? 0) - ($compare['net_change'] ?? 0); @endphp

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

{{ number_format($compare['total_in'] ?? 0, 2) }}

Δ {{ number_format($deltaIn, 2) }}

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

{{ number_format($compare['total_out'] ?? 0, 2) }}

Δ {{ number_format($deltaOut, 2) }}

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

{{ number_format($compare['net_change'] ?? 0, 2) }}

Δ {{ number_format($deltaNet, 2) }}

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

{{ number_format($compare['closing_balance'] ?? 0, 2) }}

@endif

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

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

@push('scripts') @endpush
@else

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

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

@endif