'That payment no longer exists, or is not one you can see.']); exit; } $payment_id = intval($row['payment_id']); $cleared = reconcileLock('payment', $payment_id); $deposited = transferDepositedIn('payment', $payment_id); $client_id = intval($row['invoice_client_id']); $amount = floatval($row['payment_amount']); $currency = (string) ($row['payment_currency_code'] ?: $row['invoice_currency_code']); $has_invoice = $row['invoice_number'] !== null; $can_sales = lookupUserPermission('module_sales') >= 1; $can_edit = incomeCanEditPayments() && $has_invoice; $can_delete = incomeCanDeletePayments() && $has_invoice; $online = preg_match('/^Stripe - pi_/', (string) $row['payment_reference']) === 1; $state = $has_invoice ? invoiceState($row, $row['invoice_paid']) : null; $can_receipt = $has_invoice && billingMoneyCan('receipt') && $client_id; $receipt_to = $can_receipt ? array_column(billingEmailRecipients($client_id), 'email') : []; $money = function ($value, $code = null) use ($currency) { return escapeHtml(billingMoney($value, $code ?? $currency)); }; ob_start(); ?>