@extends('layouts.finance') @section('title', 'Transaction Detail') @section('subtitle', 'Full details for transaction #' . $transaction->id) @section('content') @php $txKind = $transaction->metadata['tx_kind'] ?? ($transaction->type === 'income' ? 'Deposit' : 'Payment'); $txCurrency = $transaction->bankAccount?->currency ?? $transaction->metadata['currency'] ?? 'USD'; $txStatus = $transaction->metadata['status'] ?? 'Cleared'; $displayConversionRate = $transaction->metadata['bank_fx_rate'] ?? $transaction->conversion_rate; $displayRateLabel = isset($transaction->metadata['bank_fx_rate']) ? 'Conversion Rate' : 'Conversion Rate'; $isIn = in_array($txKind, ['Deposit', 'Receipt'], true); $isOut = in_array($txKind, ['Withdrawal', 'Payment'], true); $amtColor = $isIn ? '#10b981' : ($isOut ? '#ef4444' : '#6b7280'); $sign = $isIn ? '+' : ($isOut ? '−' : ''); $statusPill = match($txStatus) { 'Cleared' => 'pill-green', 'Pending' => 'pill-amber', default => 'pill-red', }; $fmtAmount = number_format((float) $transaction->amount, 2); // Fee applied to this receipt (inline "+ Fee" or the edit form). The stored // amount is already net of it, so show gross → fee → net to explain the gap. $feeAmount = isset($transaction->metadata['fee_amount']) && is_numeric($transaction->metadata['fee_amount']) ? (float) $transaction->metadata['fee_amount'] : 0.0; $feeGross = isset($transaction->metadata['gross_amount']) && is_numeric($transaction->metadata['gross_amount']) ? (float) $transaction->metadata['gross_amount'] : (float) $transaction->amount; $feeBaseRate = isset($transaction->metadata['base_conversion_rate']) && is_numeric($transaction->metadata['base_conversion_rate']) ? (float) $transaction->metadata['base_conversion_rate'] : null; @endphp {{-- Breadcrumb --}}