{{ number_format($payments->total()) }} row(s)
@if (! empty($unpostedAutoMatchUrl) && ($canAutoMatch ?? false)) @endif @if (! empty($unpostedLiftCautionUrl) && ($canLiftCaution ?? false)) @endifStarting…
/ payments · posted · review · unmatched · failed
Stay on this page until Match & Post finishes. Leaving will interrupt the run.
| Receipt | Date / Time | Amount | Channel | Paybill | Account no. | Client | Phone | Branch | Match Status | Action | id }}, $event.target.checked)" aria-label="Select payment {{ $p->id }}" > | @if (filled($unpostedRowUrl)) {{ $receiptLabel }} @else {{ $receiptLabel }} @endif | {{ optional($p->transaction_at)->format('Y-m-d H:i') ?? '—' }} | {{ $p->currency }} {{ number_format((float) $p->amount, 2) }} | {{ $providerLabel }} | {{ $p->business_shortcode ?? '—' }} | {{ $accountNoLabel }} | {{ $payerLabel }} | {{ $phoneLabel }} | {{ $branchLabel }} |
@if ($isCautioned)
Caution
@endif
{{ $matchStatusLabel }}
@if ($statementMatchLabel)
{{ $statementMatchLabel }}
@endif
@if ($isStatementRecovery)
Recovered from M-Pesa statement
@elseif ($isDarajaC2b)
Received from M-Pesa
@elseif ($isReversalSuspense)
Returned after reversal
@endif
|
@if ((str_ends_with((string) $p->channel, '_sms_unmatched') || str_ends_with((string) $p->channel, '_sms_disbursement_unmatched')) && is_null($p->loan_book_loan_id)) @php $smsSuggestedLoanId = (int) ($suggestedLoanByPayment[$p->id] ?? 0); $smsSuggestedLoanLabel = $smsSuggestedLoanId > 0 ? (($assignableLoanOptions ?? collect())[$smsSuggestedLoanId] ?? null) : null; @endphp @endif @include('loan.payments.partials.workbench_row_actions', ['p' => $p]) |
|---|---|---|---|---|---|---|---|---|---|---|---|
| No unposted payments match your filters. | |||||||||||