From 9a8acb16fd2efd30dc39c99bb18159bb6a26df82 Mon Sep 17 00:00:00 2001 From: Emanuele Slusarz Date: Sun, 23 Aug 2026 23:37:26 +0200 Subject: [PATCH] Prima di CODEX --- PHP/personale/dettaglio_ordine.php | 9 +- PHP/proprietario/ordini.php | 192 ++++++++++++++++++++++++++--- 2 files changed, 181 insertions(+), 20 deletions(-) diff --git a/PHP/personale/dettaglio_ordine.php b/PHP/personale/dettaglio_ordine.php index bfe59ae..8042d62 100755 --- a/PHP/personale/dettaglio_ordine.php +++ b/PHP/personale/dettaglio_ordine.php @@ -168,19 +168,22 @@ ( timestamp, idOrdine, - idStatoOrdine + idStatoOrdine, + idPersonale ) VALUES ( NOW(), :idOrdine, - :idStatoOrdine + :idStatoOrdine, + :idPersonale ) "); $stmt->execute([ "idOrdine" => $idOrdine, - "idStatoOrdine" => $idStatoOrdineSuccessivo + "idStatoOrdine" => $idStatoOrdineSuccessivo, + "idPersonale" => $idPersonale ]); $pdo->commit(); diff --git a/PHP/proprietario/ordini.php b/PHP/proprietario/ordini.php index 7798a3f..e138393 100755 --- a/PHP/proprietario/ordini.php +++ b/PHP/proprietario/ordini.php @@ -1,20 +1,178 @@ prepare(" + SELECT + o1.idOrdine, + CONCAT(u1.nome, ' ', u1.cognome) AS cliente, + o1.dataOraCreazione, + o1.statoConferma, + uso1.nomeStato, + o1.orarioConsegna, + o1.totale + + FROM + ordine AS o1 + + LEFT JOIN ultimoStatoOrdini AS uso1 + ON o1.idOrdine = uso1.idOrdine + + LEFT JOIN cliente AS c1 + ON o1.idCliente = c1.idUtente + + LEFT JOIN utente AS u1 + ON c1.idUtente = u1.idUtente + + WHERE + 1 + "); + + $stmt->execute(); + + $ordini = $stmt->fetchAll(PDO::FETCH_ASSOC); + + /* TODO SQL DI SUPPORTO - Monitorare ordini passati, attivi ed evasi. + * Input: $stato. Output: idOrdine, cliente, dataOraCreazione, statoConferma, + * nomeStato, orarioConsegna, totale, indirizzo. */ + if($idOrdine){ + /* + * QUERY 13 - Membri del personale che hanno lavorato a un ordine + * Input: $idOrdine + * Output atteso: idUtente, nome, cognome, email, numeroCambiStato, + * primoIntervento, ultimoIntervento + * TODO SQL: implementare manualmente la Query 13. + */ + + // Membri del personale che hanno lavorato a un ordine + $stmt = $pdo->prepare(" + SELECT + u1.idUtente, + u1.nome, + u1.cognome, + u1.email, + COUNT(ss1.idStoricoStato) AS numeroCambiStato, + MIN(ss1.timestamp) AS primoIntervento, + MAX(ss1.timestamp) AS ultimoIntervento + + FROM + storicoStato AS ss1 + + JOIN personale AS p1 + ON ss1.idPersonale = p1.idUtente + + JOIN utente AS u1 + ON p1.idUtente = u1.idUtente + + WHERE + ss1.idOrdine = :idOrdine + + GROUP BY + u1.idUtente, + u1.nome, + u1.cognome, + u1.email + + ORDER BY + primoIntervento + "); + + $stmt->execute([ + "idOrdine" => $idOrdine + ]); + + $personaleOrdine = $stmt->fetchAll(PDO::FETCH_ASSOC); + + } + $pageTitle="Monitoraggio ordini";$basePath="..";require __DIR__."/../includes/header.php"; ?> -

Monitoraggio ordini

-
Completare il TODO SQL per visualizzare gli ordini.
IDClienteCreazioneConfermaStatoConsegnaTotale
-

Personale dell'ordine # (Q13)

Risultati disponibili dopo la Query 13.

NomeEmailCambi statoPrimoUltimo
+

Monitoraggio ordini

+
+
+
+ + +
+
+ + +
+
+ +
+
+
+ + +
Completare il TODO SQL per visualizzare gli ordini.
+ + +
+ + + + + + + + + + + + + + + + + + + + + + + + + +
IDClienteCreazioneConfermaStatoConsegnaTotale
+
+ + +
+

Personale dell'ordine # (Q13)

+ +

Risultati disponibili dopo la Query 13.

+ + + + + + + + + + + + + + + + + + + + + +
NomeEmailCambi statoPrimoUltimo
+
+ +