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.
| ID | Cliente | Creazione | Conferma | Stato | Consegna | Totale |
|---|
| =e($o["idOrdine"])?> | =e($o["cliente"])?> | =e($o["dataOraCreazione"])?> | =e($o["statoConferma"])?> | =e($o["nomeStato"]??"—")?> | =e($o["orarioConsegna"])?> | € =e($o["totale"])?> |
-Personale dell'ordine #=e($idOrdine)?> (Q13)
Risultati disponibili dopo la Query 13.
| Nome | Email | Cambi stato | Primo | Ultimo |
|---|
| =e($p["nome"]." ".$p["cognome"])?> | =e($p["email"])?> | =e($p["numeroCambiStato"])?> | =e($p["primoIntervento"])?> | =e($p["ultimoIntervento"])?> |
+Monitoraggio ordini
+
+
+
+ Completare il TODO SQL per visualizzare gli ordini.
+
+
+
+
+
+
+ | ID |
+ Cliente |
+ Creazione |
+ Conferma |
+ Stato |
+ Consegna |
+ Totale |
+
+
+
+
+
+ | =e($o["idOrdine"])?> |
+ =e($o["cliente"])?> |
+ =e($o["dataOraCreazione"])?> |
+ =e($o["statoConferma"])?> |
+ =e($o["nomeStato"]??"—")?> |
+ =e($o["orarioConsegna"])?> |
+ € =e($o["totale"])?> |
+
+
+
+
+
+
+
+
+
Personale dell'ordine #=e($idOrdine)?> (Q13)
+
+
Risultati disponibili dopo la Query 13.
+
+
+
+
+ | Nome |
+ Email |
+ Cambi stato |
+ Primo |
+ Ultimo |
+
+
+
+
+ | =e($p["nome"]." ".$p["cognome"])?> |
+ =e($p["email"])?> |
+ =e($p["numeroCambiStato"])?> |
+ =e($p["primoIntervento"])?> |
+ =e($p["ultimoIntervento"])?> |
+
+
+
+
+
+
+