@php $uncleared = $summary['uncleared'] ?? []; $selectedIds = array_map('intval', $selectedLines); $selectedDebit = round(collect($uncleared)->filter(fn ($line) => in_array((int) $line['id'], $selectedIds, true))->sum('debit'), 2); $selectedCredit = round(collect($uncleared)->filter(fn ($line) => in_array((int) $line['id'], $selectedIds, true))->sum('credit'), 2); $opening = (float) ($statementOpening !== '' ? $statementOpening : 0); $clearedBalance = round($opening + $selectedDebit - $selectedCredit, 2); $closing = (float) ($statementClosing !== '' ? $statementClosing : 0); $difference = round($closing - $clearedBalance, 2); $isBalanced = $statementClosing !== '' && abs($difference) < 0.01; @endphp

{{ __('app.accounts.reconciliation.title') }}

{{ __('app.accounts.reconciliation.desc') }}

@if ($notice) {{ $notice }} @endif @if ($errors->any())
    @foreach ($errors->all() as $message)
  • {{ $message }}
  • @endforeach
@endif @if ($banks->isEmpty()) @can('chart_of_accounts.create') {{ __('app.accounts.chart.new_bank') }} @endcan @else
@foreach ($banks as $option) @endforeach
@if ($summary['last_statement']) {{ __('app.accounts.reconciliation.last_statement') }}: {{ number_format((float) $summary['last_statement']->statement_closing, 2) }} {{ $summary['last_statement']->statement_date->translatedFormat('d M Y') }} @else {{ __('app.accounts.reconciliation.suggested_opening') }}: {{ number_format((float) $summary['suggested_opening'], 2) }} @endif
{{ __('app.accounts.reconciliation.ledger_balance') }} {{ number_format((float) $summary['ledger_balance'], 2) }} {{ __('app.accounts.reconciliation.cleared_total') }} {{ number_format((float) $summary['cleared_total'], 2) }} {{ __('app.accounts.reconciliation.uncleared_total') }} {{ number_format((float) $summary['uncleared_net'], 2) }} {{ __('app.accounts.reconciliation.suggested_opening') }} {{ number_format((float) $summary['suggested_opening'], 2) }}
@can('bank_reconciliation.create')

{{ __('app.accounts.reconciliation.lines_hint') }}

{{ __('app.accounts.reconciliation.cleared_balance') }} {{ number_format($clearedBalance, 2) }}
@forelse ($uncleared as $line) @empty @endforelse
{{ __('app.accounts.reconciliation.select_all') }} {{ __('app.accounts.vouchers.form.entry_no') }} {{ __('app.accounts.fields.date') }} {{ __('app.accounts.fields.memo') }} {{ __('app.accounts.fields.debit') }} {{ __('app.accounts.fields.credit') }}
{{ $line['entry_no'] }} {{ \Illuminate\Support\Carbon::parse($line['entry_date'])->translatedFormat('d M Y') }} {{ $line['memo'] ?: '—' }} {{ (float) $line['debit'] > 0 ? number_format((float) $line['debit'], 2) : '—' }} {{ (float) $line['credit'] > 0 ? number_format((float) $line['credit'], 2) : '—' }}
{{ __('app.accounts.reconciliation.empty_lines') }}
{{ __('app.accounts.reconciliation.selected_count', ['count' => count($selectedLines)]) }} {{ number_format($selectedDebit, 2) }} / {{ number_format($selectedCredit, 2) }}
{{ __('app.accounts.reconciliation.difference') }}: $isBalanced, 'text-red-600 dark:text-red-400' => ! $isBalanced, ])>{{ number_format($difference, 2) }} @if ($isBalanced) {{ __('app.accounts.reconciliation.balanced') }} @else {{ __('app.accounts.reconciliation.not_balanced') }} @endif {{ __('app.accounts.reconciliation.complete') }}
@endcan
@forelse ($reconciliations as $reconciliation) @empty @endforelse
{{ __('app.accounts.reconciliation.columns.number') }} {{ __('app.accounts.reconciliation.columns.date') }} {{ __('app.accounts.reconciliation.columns.opening') }} {{ __('app.accounts.reconciliation.columns.closing') }} {{ __('app.accounts.reconciliation.columns.cleared') }} {{ __('app.accounts.reconciliation.columns.difference') }} {{ __('app.accounts.reconciliation.columns.completed_by') }} {{ __('app.accounts.reconciliation.columns.actions') }}
{{ $reconciliation->reconciliation_no }} {{ $reconciliation->bankAccount?->code }} {{ $reconciliation->statement_date->translatedFormat('d M Y') }} {{ number_format((float) $reconciliation->statement_opening, 2) }} {{ number_format((float) $reconciliation->statement_closing, 2) }} {{ number_format((float) $reconciliation->cleared_balance, 2) }} @if (abs((float) $reconciliation->difference) < 0.01) {{ number_format((float) $reconciliation->difference, 2) }} @else {{ number_format((float) $reconciliation->difference, 2) }} @endif {{ $reconciliation->completer?->name ?? '—' }}
@can('bank_reconciliation.delete') {{ __('app.actions.delete') }} @endcan
{{ __('app.accounts.reconciliation.history_empty') }}
@endif