prepare('INSERT INTO expense_categories (name_ar, name_en) VALUES (?, ?)'); $stmt->execute([$_POST['name_ar'], $_POST['name_en']]); set_flash('success', tr('تمت إضافة التصنيف بنجاح', 'Category added successfully')); redirect_to('expense_categories.php'); } elseif ($action === 'edit') { $stmt = $pdo->prepare('UPDATE expense_categories SET name_ar = ?, name_en = ? WHERE id = ?'); $stmt->execute([$_POST['name_ar'], $_POST['name_en'], $_POST['id']]); set_flash('success', tr('تم التحديث بنجاح', 'Updated successfully')); redirect_to('expense_categories.php'); } elseif ($action === 'delete') { // Check if there are expenses linked $checkStmt = $pdo->prepare('SELECT COUNT(*) FROM expenses WHERE category_id = ?'); $checkStmt->execute([$_POST['id']]); if ($checkStmt->fetchColumn() > 0) { set_flash('danger', tr('لا يمكن حذف التصنيف لأنه مرتبط بمصروفات.', 'Cannot delete category because it is linked to expenses.')); } else { $stmt = $pdo->prepare('DELETE FROM expense_categories WHERE id = ?'); $stmt->execute([$_POST['id']]); set_flash('success', tr('تم الحذف بنجاح', 'Deleted successfully')); } redirect_to('expense_categories.php'); } } // Pagination & Search $page = max(1, (int)($_GET['p'] ?? 1)); $limit = 10; $offset = ($page - 1) * $limit; $search = $_GET['q'] ?? ''; $where = '1=1'; $params = []; if ($search) { $where .= ' AND (name_ar LIKE ? OR name_en LIKE ?)'; $params[] = "%$search%"; $params[] = "%$search%"; } $totalStmt = $pdo->prepare("SELECT COUNT(*) FROM expense_categories WHERE $where"); $totalStmt->execute($params); $total = $totalStmt->fetchColumn(); $totalPages = ceil($total / $limit); $queryStmt = $pdo->prepare("SELECT * FROM expense_categories WHERE $where ORDER BY id DESC LIMIT $limit OFFSET $offset"); $queryStmt->execute($params); $items = $queryStmt->fetchAll(); require __DIR__ . '/includes/header.php'; ?>

ID
1): ?>