prepare("INSERT INTO services (name_en, name_ar, department_id, price, is_active) VALUES (?, ?, ?, ?, ?)");
$stmt->execute([
$_POST['name_en'],
$_POST['name_ar'],
$_POST['department_id'],
$_POST['price'],
isset($_POST['is_active']) ? 1 : 0
]);
$_SESSION['flash_message'] = '
' . __('service_added_successfully') . '
';
} elseif ($_POST['action'] === 'edit_service') {
$stmt = $db->prepare("UPDATE services SET name_en = ?, name_ar = ?, department_id = ?, price = ?, is_active = ? WHERE id = ?");
$stmt->execute([
$_POST['name_en'],
$_POST['name_ar'],
$_POST['department_id'],
$_POST['price'],
isset($_POST['is_active']) ? 1 : 0,
$_POST['id']
]);
$_SESSION['flash_message'] = '' . __('service_updated_successfully') . '
';
} elseif ($_POST['action'] === 'delete_service') {
$stmt = $db->prepare("DELETE FROM services WHERE id = ?");
$stmt->execute([$_POST['id']]);
$_SESSION['flash_message'] = '' . __('service_deleted_successfully') . '
';
}
} catch (PDOException $e) {
$_SESSION['flash_message'] = '' . __('error') . ': ' . $e->getMessage() . '
';
}
header("Location: services.php");
exit;
}
}
// Fetch Departments for Dropdown
$deptQuery = "SELECT * FROM departments ORDER BY name_$lang";
$deptStmt = $db->query($deptQuery);
$all_departments = $deptStmt->fetchAll();
// Pagination and Search
$search_name = $_GET['name'] ?? '';
$search_dept = $_GET['department_id'] ?? '';
$page = isset($_GET['page']) && is_numeric($_GET['page']) ? (int)$_GET['page'] : 1;
$limit = 10;
$offset = ($page - 1) * $limit;
$where = "WHERE 1=1";
$params = [];
if ($search_name) {
$where .= " AND (s.name_en LIKE ? OR s.name_ar LIKE ?)";
$params[] = "%$search_name%";
$params[] = "%$search_name%";
}
if ($search_dept) {
$where .= " AND s.department_id = ?";
$params[] = $search_dept;
}
// Count Total
$countQuery = "SELECT COUNT(*) FROM services s $where";
$stmt = $db->prepare($countQuery);
$stmt->execute($params);
$totalServices = $stmt->fetchColumn();
$totalPages = ceil($totalServices / $limit);
// Fetch Data
$query = "
SELECT s.*, d.name_$lang as department_name
FROM services s
LEFT JOIN departments d ON s.department_id = d.id
$where
ORDER BY s.id DESC
LIMIT $limit OFFSET $offset";
$stmt = $db->prepare($query);
$stmt->execute($params);
$services = $stmt->fetchAll();
?>