(string) ($_POST['date'] ?? ''), 'amount' => (string) ($_POST['amount'] ?? ''), 'account' => intval($_POST['account'] ?? 0), 'category' => intval($_POST['category'] ?? 0), 'client_id' => intval($_POST['client_id'] ?? 0), 'payment_method' => (string) ($_POST['payment_method'] ?? ''), 'reference' => (string) ($_POST['reference'] ?? ''), 'description' => (string) ($_POST['description'] ?? ''), ]; } if (isset($_POST['add_revenue'])) { validateCSRFToken(); enforceUserPermission('module_financial', 2); $revenue_id = incomeRevenueSave(revenuePostInput(), 0, $error); if (!$revenue_id) { flashAlert(escapeHtml($error), 'error'); redirect(); } $row = incomeRevenueRow($revenue_id); $label = incomeRevenueLabel($row); logAudit("Revenue", "Create", "$session_name added other income " . escapeSql($label), intval($row['revenue_client_id']), $revenue_id); flashAlert("Income " . escapeHtml($label) . " added"); redirect(); } if (isset($_POST['edit_revenue'])) { validateCSRFToken(); enforceUserPermission('module_financial', 2); $revenue_id = intval($_POST['revenue_id'] ?? 0); $before = incomeRevenueRow($revenue_id); if (!incomeRevenueSave(revenuePostInput(), $revenue_id, $error)) { flashAlert(escapeHtml($error), 'error'); redirect(); } $row = incomeRevenueRow($revenue_id); $label = incomeRevenueLabel($row); logAudit("Revenue", "Edit", "$session_name edited other income " . escapeSql($label), intval($row['revenue_client_id']), $revenue_id); if ($before && intval($before['revenue_client_id']) && intval($before['revenue_client_id']) !== intval($row['revenue_client_id'])) { logAudit("Revenue", "Edit", "$session_name moved other income " . escapeSql($label) . " to " . escapeSql($row['client_name'] ?: 'no client'), intval($before['revenue_client_id']), $revenue_id); } flashAlert("Income " . escapeHtml($label) . " saved"); redirect(); } if (isset($_GET['delete_revenue'])) { validateCSRFToken(); enforceUserPermission('module_financial', 3); $row = incomeRevenueDelete(intval($_GET['delete_revenue']), $error); if (!$row) { flashAlert(escapeHtml($error), 'error'); redirect(); } $label = incomeRevenueLabel($row); logAudit("Revenue", "Delete", "$session_name deleted other income " . escapeSql($label), intval($row['revenue_client_id'])); flashAlert("Income " . escapeHtml($label) . " deleted", 'error'); redirect(); }