(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();
}