diff --git a/src/admin/manageOrders.php b/src/admin/manageOrders.php new file mode 100644 index 0000000..c6e4a6b --- /dev/null +++ b/src/admin/manageOrders.php @@ -0,0 +1,163 @@ +prepare($sql_role); +$stmt_role->bind_param("i", $user_id); +$stmt_role->execute(); +$stmt_role->bind_result($role); +$stmt_role->fetch(); +$stmt_role->close(); + +if ($role !== 'admin') { + http_response_code(403); + die("Accesso negato. Solo gli amministratori possono accedere a questa sezione."); +} + +// Gestisci azioni (cambio stato, eliminazione) +if ($_SERVER['REQUEST_METHOD'] === 'POST') { + $action = $_POST['action'] ?? ''; + $order_id = $_POST['order_id'] ?? 0; + + if ($action === 'update_status') { + $new_status = $_POST['status'] ?? ''; + if (in_array($new_status, ['pending', 'completed', 'cancelled'])) { + $sql_update = "UPDATE Orders SET Status = ? WHERE OrderID = ?"; + $stmt_update = $conn->prepare($sql_update); + $stmt_update->bind_param("si", $new_status, $order_id); + $stmt_update->execute(); + $stmt_update->close(); + } + } elseif ($action === 'delete_order') { + // Elimina gli items dell'ordine prima di eliminare l'ordine + $sql_delete_items = "DELETE FROM OrderItems WHERE OrderID = ?"; + $stmt_delete_items = $conn->prepare($sql_delete_items); + $stmt_delete_items->bind_param("i", $order_id); + $stmt_delete_items->execute(); + $stmt_delete_items->close(); + + // Elimina l'ordine + $sql_delete = "DELETE FROM Orders WHERE OrderID = ?"; + $stmt_delete = $conn->prepare($sql_delete); + $stmt_delete->bind_param("i", $order_id); + $stmt_delete->execute(); + $stmt_delete->close(); + } +} + +// Query per ottenere tutti gli ordini con dettagli utente +$sql = "SELECT o.OrderID, o.UserID, u.Name, u.Surname, u.Email, o.OrderDate, o.Total, o.Status, + GROUP_CONCAT(p.ProductName SEPARATOR ', ') AS Products + FROM Orders o + LEFT JOIN Users u ON o.UserID = u.UserID + LEFT JOIN OrderItems oi ON o.OrderID = oi.OrderID + LEFT JOIN Products p ON oi.ProductID = p.ProductID + GROUP BY o.OrderID + ORDER BY o.OrderDate DESC"; +$result = $conn->query($sql); + +if ($result === false) { + die("Errore nella query: " . $conn->error); +} +?> + + + +
+ + +| ID Ordine | +Cliente | +Prodotti | +Data | +Totale | +Stato | +Azioni | +|
|---|---|---|---|---|---|---|---|
| # | ++ | + | + | + | € | ++ + | ++ + | +
Nessun ordine trovato.
+ +