isAdmin($user_id); if (!$isAdmin) { echo "

Access Denied: Admin privileges required.

"; return; } // Handle bulk actions if (isset($_POST['bulk_action']) && isset($_POST['selected_orders'])) { $action = $_POST['bulk_action']; $selected = $_POST['selected_orders']; foreach ((array)$selected as $order_id) { $order_id = $db->realEscapeSingle($order_id); switch ($action) { case 'provision': // Redirect to provision page for each order header("Location: home.php?m=billing&p=provision_servers&order_id=".$order_id); exit; break; case 'expire': $db->query("UPDATE OGP_DB_PREFIXbilling_orders SET status='Expired' WHERE order_id=".$order_id); break; case 'activate': $db->query("UPDATE OGP_DB_PREFIXbilling_orders SET status='Active' WHERE order_id=".$order_id); break; case 'invoice': $db->query("UPDATE OGP_DB_PREFIXbilling_orders SET status='Invoiced' WHERE order_id=".$order_id); break; } } echo "

Bulk action completed for ".count((array)$selected)." order(s).

"; } // Get filter parameters $status_filter = isset($_GET['status']) ? $_GET['status'] : 'all'; $search = isset($_GET['search']) ? $_GET['search'] : ''; echo "

Manage All Orders (Admin)

"; // Filter form echo "
"; echo ""; echo ""; echo "Status: "; echo "Search: "; echo ""; echo "
"; // Build query $query = "SELECT o.*, s.service_name, u.users_login, u.users_email FROM OGP_DB_PREFIXbilling_orders o LEFT JOIN OGP_DB_PREFIXbilling_services s ON o.service_id = s.service_id LEFT JOIN OGP_DB_PREFIXusers u ON o.user_id = u.user_id WHERE 1=1"; if ($status_filter != 'all') { $query .= " AND o.status = '".$db->realEscapeSingle($status_filter)."'"; } if (!empty($search)) { $search_escaped = $db->realEscapeSingle($search); $query .= " AND (o.order_id LIKE '%".$search_escaped."%' OR o.home_name LIKE '%".$search_escaped."%' OR u.users_login LIKE '%".$search_escaped."%' OR u.users_email LIKE '%".$search_escaped."%')"; } $query .= " ORDER BY o.order_date DESC"; $orders = $db->resultQuery($query); if (empty($orders)) { echo "

No orders found matching your filters.

"; return; } echo "
"; echo "
"; echo "With selected: "; echo " "; echo ""; echo "
"; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; foreach ((array)$orders as $order) { $status_class = ''; switch ($order['status']) { case 'Active': $status_class = 'label-success'; break; case 'Invoiced': $status_class = 'label-warning'; break; case 'Expired': $status_class = 'label-danger'; break; default: $status_class = 'label-info'; } echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
Order IDUsernameServer NameGame ServicePlayersPriceDurationStatusOrder DateEnd DateHome IDActions
".$order['order_id']."".$order['users_login']."
".$order['users_email']."
".$order['home_name']."".$order['service_name']."".$order['max_players']."$".number_format($order['price'], 2)."".$order['qty']." ".$order['invoice_duration']."(s)".$order['status']."".date('Y-m-d H:i', strtotime($order['order_date']))."".($order['end_date'] ? date('Y-m-d', strtotime($order['end_date'])) : 'N/A')."".($order['home_id'] ? $order['home_id'] : 'N/A').""; if ($order['status'] == 'Active' && !$order['home_id']) { echo "Provision "; } if ($order['status'] == 'Active' && $order['home_id']) { echo "View Server "; } echo "Details"; echo "
"; echo "
"; // JavaScript for checkbox toggle echo ""; // Summary stats $stats = $db->resultQuery("SELECT status, COUNT(*) as count, SUM(price) as total FROM OGP_DB_PREFIXbilling_orders GROUP BY status"); echo "
"; echo "

Order Statistics

"; echo ""; echo ""; foreach ((array)$stats as $stat) { echo ""; echo ""; echo ""; echo ""; echo ""; } echo "
StatusCountTotal Value
".$stat['status']."".$stat['count']."$".number_format($stat['total'], 2)."
"; echo "
"; } ?>