prepare(" SELECT o1.idOrdine, o1.dataOraCreazione, o1.orarioConsegna, o1.totale, o1.idCliente, o1.idIndirizzo, abitazione.via, abitazione.numeroCivico, abitazione.nomeComune, clienti.nome AS nomeCliente, clienti.cognome AS cognomeCliente, stati.nomeStato, stati.timestampUltimoStato, TIMESTAMPDIFF( MINUTE, stati.timestampUltimoStato, CURRENT_TIMESTAMP ) AS minutiAttesa FROM ordine AS o1 LEFT JOIN ( SELECT ss2.idOrdine, so2.nomeStato, ss2.timestamp AS timestampUltimoStato FROM storicoStato AS ss2 JOIN statoOrdine AS so2 ON ss2.idStatoOrdine = so2.idStatoOrdine WHERE so2.posizione = ( SELECT MAX(so3.posizione) FROM storicoStato AS ss3 JOIN statoOrdine AS so3 ON ss3.idStatoOrdine = so3.idStatoOrdine WHERE ss3.idOrdine = ss2.idOrdine ) ) AS stati ON o1.idOrdine = stati.idOrdine LEFT JOIN ( SELECT c4.idUtente, u4.nome, u4.cognome FROM cliente AS c4 JOIN utente AS u4 ON u4.idUtente = c4.idUtente ) AS clienti ON o1.idCliente = clienti.idUtente LEFT JOIN ( SELECT i5.idIndirizzo, i5.via, i5.numeroCivico, c5.nome AS nomeComune FROM indirizzo AS i5 JOIN comune AS c5 ON i5.idComune = c5.idComune ) AS abitazione ON o1.idIndirizzo = abitazione.idIndirizzo WHERE 1 "); $stmt->execute(); $ordini = $stmt->fetchAll(PDO::FETCH_ASSOC); // Dati di riepilogo ottenuti dagli ordini già caricati $numeroOrdini = count($ordini); $numeroInRitardo = count( array_filter( $ordini, function ($ordine) { return isset($ordine["minutiAttesa"]) && (int) $ordine["minutiAttesa"] >= 60; } ) ); $valoreTotaleOrdini = array_sum( array_map( function ($ordine) { return (float) ($ordine["totale"] ?? 0); }, $ordini ) ); $pageTitle = "Ordini correnti"; $basePath = ".."; require __DIR__ . "/../includes/header.php"; ?>

Ordini correnti

Gestione degli ordini attualmente presenti nel sistema
Tutti In attesa da oltre un'ora (Q5)
Ordini visualizzati
In attesa da almeno 60 minuti
Valore complessivo
Nessun risultato: completare la Query 5 o il caricamento di supporto.
Elenco ordini
= 60) { $classeAttesa = "bg-danger"; } elseif ($minutiAttesa >= 30) { $classeAttesa = "bg-warning text-dark"; } else { $classeAttesa = "bg-success"; } // Colore badge stato switch ($o["nomeStato"] ?? "") { case "inserito": $classeStato = "bg-secondary"; break; case "in preparazione": $classeStato = "bg-warning text-dark"; break; case "pronto": $classeStato = "bg-info text-dark"; break; case "in consegna": $classeStato = "bg-primary"; break; case "consegnato": $classeStato = "bg-success"; break; default: $classeStato = "bg-secondary"; break; } ?>
Ordine Cliente Indirizzo Creato Stato Ultimo aggiornamento Attesa Consegna Totale
#
Cliente #
min Non definita " > Dettaglio