@php use App\Enums\AmountFlow; use App\Enums\TrxStatus; use App\Enums\TrxType; $mobileTransactions = $transactions->getCollection(); $mobileFiltersOpen = request()->filled('type') || request()->filled('status') || request()->filled('search') || request()->filled('daterange'); $mobileActiveFilterCount = collect([ request('type'), request('status'), request('search'), request('daterange'), ])->filter(fn ($value): bool => filled($value))->count(); $mobileCompletedCount = $mobileTransactions ->filter(fn ($transaction): bool => $transaction->status === TrxStatus::COMPLETED) ->count(); $mobilePendingCount = $mobileTransactions ->filter(fn ($transaction): bool => $transaction->status === TrxStatus::PENDING) ->count(); $mobileGroups = $mobileTransactions->groupBy(function ($transaction): string { $date = $transaction->created_at->copy()->startOfDay(); if ($date->equalTo(today())) { return __('Today'); } if ($date->equalTo(today()->subDay())) { return __('Yesterday'); } return $transaction->created_at->format('d M Y'); }); @endphp @extends('frontend.layouts.user.index') @section('title', __('Transactions')) @section('content')
{{-- Card Header --}}
{{-- Card Body --}}
{{-- Filter Section --}}
{{-- Date Range --}}
{{-- Transaction Type --}}
{{-- Transaction Status --}}
{{-- Search --}}
{{-- Transactions List --}}

@lang('All Transactions')

@lang('Recent wallet activity, statuses, and transaction references in one stream.')

{{ $transactions->total() }} {{ __('records') }}
@forelse($transactions as $transaction) @php $transactionTypeClass = $transaction->trx_type->kebabCase(); $icon = $transaction->trx_type->icon(); $amountColor = $transaction->amount_flow->color($transaction->status); $amountSign = $transaction->amount_flow->sign($transaction->status); @endphp
{{ $transaction->description }} {{ $amountSign.number_format($transaction->amount,siteDecimalPlaces()) }} {{ $transaction->currency }}
{{ title($transaction->trx_type->value) }} {{ strtoupper($transaction->status->value) }}
{{ __('TRX') }}: {{ strtoupper($transaction->trx_id) }} {{ $transaction->created_at->format('d M Y, h:i A') }}
@empty @endforelse
{{-- Pagination --}} @if($transactions->hasPages())
{{ $transactions->links() }}
@endif
{{ __('Wallet ledger') }}

{{ __('History') }}

{{ __('Every wallet movement, status, and receipt in one mobile stream.') }}

{{ __('Records') }} {{ number_format($transactions->total()) }}
{{ __('Completed') }} {{ number_format($mobileCompletedCount) }}
{{ __('Pending') }} {{ number_format($mobilePendingCount) }}
{{ __('Filters') }} @if($mobileActiveFilterCount > 0) {{ $mobileActiveFilterCount }} @endif
{{ __('Reset') }}
@if($mobileTransactions->isEmpty())
{{ __('No activity') }} {{ __('0 records') }}
@else @foreach($mobileGroups as $groupLabel => $groupTransactions)
{{ $groupLabel }}
@foreach($groupTransactions as $transaction) @php $transactionTypeClass = $transaction->trx_type->kebabCase(); $icon = $transaction->trx_type->icon(); $amountSign = $transaction->amount_flow->sign($transaction->status); $flowTone = match (true) { $transaction->status !== TrxStatus::COMPLETED => $transaction->status->value, $transaction->amount_flow === AmountFlow::PLUS => 'in', $transaction->amount_flow === AmountFlow::MINUS => 'out', default => 'neutral', }; @endphp @endforeach
@endforeach @endif
@if($transactions->hasPages())
{{ $transactions->onEachSide(1)->links() }}
@endif
@foreach($transactions as $transaction) @php($transactionTypeClass = $transaction->trx_type->kebabCase()) @include('frontend.user.transaction.partials._details_modal', ['transaction' => $transaction, 'transactionTypeClass' => $transactionTypeClass]) @endforeach
@endsection