'That recurring expense no longer exists.']); exit; } $id = intval($row['recurring_expense_id']); $client_id = intval($row['recurring_expense_client_id']); $can_edit = lookupUserPermission('module_financial') >= 2; $can_delete = lookupUserPermission('module_financial') >= 3; $state = recurringExpenseState($row); $currency = (string) $row['recurring_expense_currency_code']; $amount = floatval($row['recurring_expense_amount']); $monthly = $amount / recurringInvoiceMonths($row['recurring_expense_frequency']); $next = (string) $row['recurring_expense_next_date']; $behind = $state === 'active' && $next < date('Y-m-d'); $upcoming = recurringExpenseUpcoming($row, 4); $made = recurringExpenseMade($id, 8); $can_sales = lookupUserPermission('module_sales') >= 1; $covered_by = intval($row['recurring_expense_recurring_invoice_id']); $cover = $covered_by && $row['recurring_invoice_number'] !== null ? recurringInvoiceCosts($covered_by) : null; $markup = floatval($row['recurring_expense_markup']); $post_url = function ($action, $extra = '') use ($id) { return "post.php?$action=$id$extra&csrf_token=" . $_SESSION['csrf_token']; }; ob_start(); ?>