diff --git a/PHP/cliente/ordine.php b/PHP/cliente/ordine.php index 8257f6b..4b65118 100755 --- a/PHP/cliente/ordine.php +++ b/PHP/cliente/ordine.php @@ -620,7 +620,7 @@ ) VALUES ( - 'IN LAVORAZIONE', + 'inserito', 1 ) "); diff --git a/PHP/personale/dashboard.php b/PHP/personale/dashboard.php index 2e9086b..16729da 100755 --- a/PHP/personale/dashboard.php +++ b/PHP/personale/dashboard.php @@ -57,7 +57,7 @@ $stmt->execute(); $conteggi = $stmt->fetchAll(PDO::FETCH_ASSOC); - + $pageTitle = "Dashboard personale"; $basePath = ".."; require __DIR__ . "/../includes/header.php"; ?> diff --git a/PHP/personale/ordini.php b/PHP/personale/ordini.php index 32de2d1..7b83fb9 100755 --- a/PHP/personale/ordini.php +++ b/PHP/personale/ordini.php @@ -1,24 +1,609 @@ 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 | Creato | Stato | Attesa | Consegna | |
|---|---|---|---|---|---|---|
| #= e($o["idOrdine"]) ?> | = e(($o["nomeCliente"] ?? "") . " " . ($o["cognomeCliente"] ?? "")) ?> | = e($o["dataOraCreazione"]) ?> | = e($o["nomeStato"]) ?> | = e($o["minutiAttesa"] ?? "—") ?> min | = e($o["orarioConsegna"]) ?> | ">Dettaglio |
| + 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 + + + | + + +