first commit
This commit is contained in:
Executable
+20
@@ -0,0 +1,20 @@
|
||||
<?php
|
||||
require_once __DIR__ . "/../includes/auth.php";
|
||||
requireRole("personale");
|
||||
require_once __DIR__ . "/../config/database.php";
|
||||
$idPersonale = (int) $_SESSION["idUtente"];
|
||||
$conteggi = [];
|
||||
/*
|
||||
* QUERY 11 - Conteggio degli ordini attivi divisi per stato di avanzamento
|
||||
* Input: nessuno (l'id $idPersonale è disponibile per il contesto UI)
|
||||
* Output atteso: idStatoOrdine, nomeStato, posizione, numeroOrdini
|
||||
* TODO SQL: implementare manualmente la Query 11.
|
||||
*/
|
||||
$pageTitle = "Dashboard personale"; $basePath = "..";
|
||||
require __DIR__ . "/../includes/header.php";
|
||||
?>
|
||||
<h1 class="h3">Dashboard personale</h1><p>Panoramica degli ordini attivi.</p>
|
||||
<?php if (!$conteggi): ?><div class="alert alert-info">I conteggi saranno mostrati dopo l'implementazione della Query 11.</div><?php endif; ?>
|
||||
<div class="row g-3 mb-4"><?php foreach ($conteggi as $c): ?><div class="col-sm-6 col-lg"><div class="card text-center h-100 shadow-sm"><div class="card-body"><div class="display-6"><?= e($c["numeroOrdini"]) ?></div><div><?= e($c["nomeStato"]) ?></div></div></div></div><?php endforeach; ?></div>
|
||||
<a class="btn btn-primary" href="ordini.php">Apri gli ordini correnti</a>
|
||||
<?php require __DIR__ . "/../includes/footer.php"; ?>
|
||||
Executable
+33
@@ -0,0 +1,33 @@
|
||||
<?php
|
||||
require_once __DIR__ . "/../includes/auth.php";
|
||||
requireRole("personale");
|
||||
require_once __DIR__ . "/../config/database.php";
|
||||
$idPersonale = (int) $_SESSION["idUtente"];
|
||||
$idOrdine = filter_input(INPUT_GET, "idOrdine", FILTER_VALIDATE_INT) ?: filter_input(INPUT_POST, "idOrdine", FILTER_VALIDATE_INT);
|
||||
$idStatoOrdine = filter_input(INPUT_POST, "idStatoOrdine", FILTER_VALIDATE_INT);
|
||||
$ordine = null; $righe = []; $storico = []; $statoSuccessivo = null; $messaggio = null;
|
||||
/* TODO SQL DI SUPPORTO - Caricare testata, righe con caratteristiche,
|
||||
* ingredienti/procedura, indirizzo, stato corrente e storico dell'ordine.
|
||||
* Input: $idOrdine. Output: attributi omonimi dello schema e nomi descrittivi. */
|
||||
if (postMethod()) {
|
||||
/*
|
||||
* QUERY 14 - Aggiornamento progressivo dello stato di un ordine
|
||||
* Input: $idOrdine, $idStatoOrdine, $idPersonale
|
||||
* Output: nuovo nomeStato, posizione e timestamp registrato
|
||||
* Vincolo UI/DB: solo il successore dello stato corrente; mai regressioni.
|
||||
* TODO SQL: implementare manualmente la Query 14.
|
||||
*/
|
||||
$messaggio = "Query 14 predisposta: stato non ancora aggiornato.";
|
||||
}
|
||||
$pageTitle = "Dettaglio ordine"; $basePath = "..";
|
||||
require __DIR__ . "/../includes/header.php";
|
||||
?>
|
||||
<div class="d-flex justify-content-between"><h1 class="h3">Ordine #<?= e($idOrdine ?: "—") ?></h1><a class="btn btn-outline-secondary" href="ordini.php">Indietro</a></div>
|
||||
<?php if (!$idOrdine): ?><div class="alert alert-danger">Specificare un ID ordine valido.</div><?php endif; ?>
|
||||
<?php if ($messaggio): ?><div class="alert alert-warning"><?= e($messaggio) ?></div><?php endif; ?>
|
||||
<?php if (!$ordine): ?><div class="alert alert-info">Il dettaglio sarà disponibile dopo il TODO SQL di supporto.</div><?php endif; ?>
|
||||
<div class="row g-4"><div class="col-lg-8">
|
||||
<div class="card shadow-sm mb-3"><div class="card-body"><h2 class="h5">Preparazione</h2><table class="table"><thead><tr><th>Prodotto</th><th>Qtà</th><th>Caratteristiche</th><th>Procedura</th></tr></thead><tbody><?php foreach ($righe as $r): ?><tr><td><?= e($r["nomeProdotto"]) ?></td><td><?= e($r["quantita"]) ?></td><td><?= e($r["caratteristiche"] ?? "—") ?></td><td><?= e($r["proceduraPreparazione"] ?? "—") ?></td></tr><?php endforeach; ?></tbody></table></div></div>
|
||||
<div class="card shadow-sm"><div class="card-body"><h2 class="h5">Storico stati</h2><ol class="mb-0"><?php foreach ($storico as $s): ?><li><?= e($s["timestamp"]) ?> — <?= e($s["nomeStato"]) ?> (<?= e(($s["nomePersonale"] ?? "") . " " . ($s["cognomePersonale"] ?? "")) ?>)</li><?php endforeach; ?></ol></div></div>
|
||||
</div><div class="col-lg-4"><div class="card shadow-sm"><div class="card-body"><h2 class="h5">Avanzamento</h2><p>Corrente: <span class="badge bg-primary"><?= e($ordine["nomeStato"] ?? "—") ?></span></p><p class="small text-muted">Progressione: inserito → in preparazione → pronto → in consegna → consegnato.</p><form method="post"><input type="hidden" name="idOrdine" value="<?= e($idOrdine) ?>"><input type="hidden" name="idStatoOrdine" value="<?= e($statoSuccessivo["idStatoOrdine"] ?? "") ?>"><button class="btn btn-success w-100" <?= $statoSuccessivo ? "" : "disabled" ?>>Passa a: <?= e($statoSuccessivo["nomeStato"] ?? "nessuno") ?></button></form></div></div></div></div>
|
||||
<?php require __DIR__ . "/../includes/footer.php"; ?>
|
||||
Executable
+24
@@ -0,0 +1,24 @@
|
||||
<?php
|
||||
require_once __DIR__ . "/../includes/auth.php";
|
||||
requireRole("personale");
|
||||
require_once __DIR__ . "/../config/database.php";
|
||||
$idPersonale = (int) $_SESSION["idUtente"];
|
||||
$soloInRitardo = ($_GET["filtro"] ?? "") === "ritardo";
|
||||
$ordini = [];
|
||||
/*
|
||||
* QUERY 5 - Ordini non ancora messi in preparazione dopo più di un'ora
|
||||
* Input: nessuno; $soloInRitardo controlla la vista richiesta dalla UI
|
||||
* Output atteso: idOrdine, dataOraCreazione, orarioConsegna, totale,
|
||||
* nomeCliente, cognomeCliente, via, numeroCivico, nomeComune,
|
||||
* nomeStato, timestampUltimoStato, minutiAttesa
|
||||
* TODO SQL: implementare manualmente la Query 5.
|
||||
*/
|
||||
/* Per la vista completa degli ordini correnti predisporre inoltre una query
|
||||
* di supporto con gli stessi campi, senza il vincolo "oltre un'ora". */
|
||||
$pageTitle = "Ordini correnti"; $basePath = "..";
|
||||
require __DIR__ . "/../includes/header.php";
|
||||
?>
|
||||
<div class="d-flex justify-content-between align-items-center mb-3"><h1 class="h3">Ordini correnti</h1><div><a class="btn btn-outline-secondary" href="ordini.php">Tutti</a> <a class="btn btn-warning" href="?filtro=ritardo">In attesa da oltre un'ora (Q5)</a></div></div>
|
||||
<?php if (!$ordini): ?><div class="alert alert-info">Nessun risultato: completare la Query 5 o il caricamento di supporto.</div><?php endif; ?>
|
||||
<div class="table-responsive"><table class="table table-striped align-middle"><thead><tr><th>Ordine</th><th>Cliente</th><th>Creato</th><th>Stato</th><th>Attesa</th><th>Consegna</th><th></th></tr></thead><tbody><?php foreach ($ordini as $o): ?><tr><td>#<?= e($o["idOrdine"]) ?></td><td><?= e(($o["nomeCliente"] ?? "") . " " . ($o["cognomeCliente"] ?? "")) ?></td><td><?= e($o["dataOraCreazione"]) ?></td><td><span class="badge bg-secondary"><?= e($o["nomeStato"]) ?></span></td><td><?= e($o["minutiAttesa"] ?? "—") ?> min</td><td><?= e($o["orarioConsegna"]) ?></td><td><a class="btn btn-sm btn-primary" href="dettaglio_ordine.php?idOrdine=<?= e($o["idOrdine"]) ?>">Dettaglio</a></td></tr><?php endforeach; ?></tbody></table></div>
|
||||
<?php require __DIR__ . "/../includes/footer.php"; ?>
|
||||
Reference in New Issue
Block a user