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"; ?>
| Ordine | Cliente | Indirizzo | Creato | Stato | Ultimo aggiornamento | Attesa | Consegna | Totale | |
|---|---|---|---|---|---|---|---|---|---|
| #= e($o["idOrdine"]) ?> |
= e(
($o["nomeCliente"] ?? "")
. " "
. ($o["cognomeCliente"] ?? "")
) ?>
Cliente #= e($o["idCliente"]) ?>
|
= e(
($o["via"] ?? "")
. " "
. ($o["numeroCivico"] ?? "")
) ?>
= e(
$o["nomeComune"] ?? ""
) ?>
|
= e( date( "d/m/Y H:i", strtotime( $o["dataOraCreazione"] ) ) ) ?> — | = e( $o["nomeStato"] ?? "Sconosciuto" ) ?> | = e( date( "d/m/Y H:i", strtotime( $o["timestampUltimoStato"] ) ) ) ?> — | = e($minutiAttesa) ?> min — | = e( date( "d/m/Y H:i", strtotime( $o["orarioConsegna"] ) ) ) ?> Non definita | = number_format( (float) ($o["totale"] ?? 0), 2, ",", "." ) ?> € | " > Dettaglio |