Aggiornamento lato UTENTE

This commit is contained in:
Emanuele Slusarz
2026-08-22 15:15:55 +02:00
parent ec30fb40b9
commit c796788339
6 changed files with 318 additions and 195 deletions
+59 -14
View File
@@ -26,10 +26,10 @@ $comuni = $stmt->fetchAll(PDO::FETCH_ASSOC);
if (postMethod()) {
try {
switch($azione) {
case "predefinito": {
case "predefinito": { // OKOKFATTO
try {
if (!$idIndirizzo) {
$messaggio = "Id indirizzo non valido";
die("Id indirizzo non valido");
@@ -62,9 +62,23 @@ if (postMethod()) {
$pdo->commit();
break;
} catch (PDOException $e) {
if ($pdo -> inTransaction()) {
$pdo->rollBack();
}
case "inserisci": {
$messaggio =
"Errore durante l'aggiornamento dell'indirizzo" .
$e->getMessage();
break;
}
}
case "inserisci": { // OKOKFATTO
try {
if (
$via === "" ||
$numeroCivico === "" ||
@@ -74,6 +88,13 @@ if (postMethod()) {
die("Compila i campi correttamente");
}
/*
Verifica della presenza di indirizzi
già registrati a nome del cliente.
Questa operazione non richiede che
sia inserita nella beginTransaction()
*/
$stmt = $pdo->prepare("
SELECT EXISTS (
SELECT 1
@@ -93,6 +114,10 @@ if (postMethod()) {
$predefinito = 1;
}
/*
Inizia la transazione,
si inserisce nel database la via.
*/
$pdo->beginTransaction();
$stmt = $pdo->prepare("
INSERT INTO indirizzo (via, numeroCivico, predefinito, idComune, idCliente)
@@ -105,11 +130,28 @@ if (postMethod()) {
"idComune" => $idComune,
"idCliente" => $idCliente
]);
$pdo->commit();
$messaggio = "Indirizzo aggiunto con successo";
break;
} catch (PDOException $e) {
if ($pdo -> inTransaction()) {
$pdo->rollBack();
}
case "elimina": {
$messaggio =
"Errore durante l'inserimento dell'indirizzo" .
$e->getMessage();
break;
}
}
case "elimina": { // OKOKFATTO
try {
if (!$idIndirizzo) {
$messaggio = "Id indirizzo non valido";
die("Id indirizzo non valido");
@@ -131,6 +173,18 @@ if (postMethod()) {
$messaggio = "Indirizzo eliminato con successo";
break;
} catch (PDOException $e) {
if ($pdo -> inTransaction()) {
$pdo->rollBack();
}
$messaggio =
"Errore durante l'eliminazione dell'indirizzo" .
$e->getMessage();
break;
}
}
default:
@@ -138,15 +192,6 @@ if (postMethod()) {
break;
}
} catch (PDOException $e) {
if ($pdo->inTransaction()) {
$pdo->rollBack();
}
die(
"Errore durante l'aggiunta dell'indirizzo di consegna: "
. $e->getMessage()
);
}
}
$stmt = $pdo->prepare("
+13 -4
View File
@@ -24,7 +24,10 @@ $pageTitle = "Menu"; $basePath = "..";
require __DIR__ . "/../includes/header.php";
?>
<div class="d-flex justify-content-between align-items-center mb-3">
<div><h1 class="h3 mb-1">Menu</h1><p class="text-muted mb-0">Prodotti disponibili e personalizzazioni.</p></div>
<div>
<h1 class="h3 mb-1">Menu</h1>
<p class="text-muted mb-0">Prodotti disponibili e personalizzazioni.</p>
</div>
<a class="btn btn-primary" href="ordine.php">Componi ordine</a>
</div>
<?php if (!$prodotti): ?>
@@ -32,15 +35,21 @@ require __DIR__ . "/../includes/header.php";
<?php endif; ?>
<div class="row g-3">
<?php foreach ($prodotti as $prodotto): ?>
<div class="col-md-6"><div class="card h-100 shadow-sm"><div class="card-body">
<div class="col-md-6">
<div class="card h-100 shadow-sm">
<div class="card-body">
<h2 class="h5"><?= e($prodotto["nome"] ?? "") ?></h2>
<p><?= e($prodotto["descrizione"] ?? "") ?></p>
<span class="badge bg-primary">€ <?= e(number_format((float) ($prodotto["prezzoBase"] ?? 0), 2, ",", ".")) ?></span>
<?php if (!empty($prodotto["nomeCaratteristica"])): ?>
<hr><strong>Caratteristica:</strong> <?= e($prodotto["nomeCaratteristica"]) ?>
<hr>
<strong>Caratteristica:</strong>
<?= e($prodotto["nomeCaratteristica"]) ?>
(+ € <?= e($prodotto["differenzaPrezzo"] ?? 0) ?>)
<?php endif; ?>
</div></div></div>
</div>
</div>
</div>
<?php endforeach; ?>
</div>
<?php require __DIR__ . "/../includes/footer.php"; ?>
-3
View File
@@ -47,9 +47,6 @@
]);
$ordini = $stmt->fetchAll(PDO::FETCH_ASSOC);
/* TODO SQL DI SUPPORTO - Elenco e stato degli ordini del cliente.
* Input: $idCliente. Output: idOrdine, dataOraCreazione, statoConferma,
* orarioConsegna, totale, tempoStimatoConsegna, nomeStato. */
$pageTitle = "I miei ordini"; $basePath = "..";
require __DIR__ . "/../includes/header.php";
?>
+53
View File
@@ -26,6 +26,7 @@
$prodotti = []; // CARICATO
$caratteristicheDisponibili = []; // CARICATO
$indirizzi = []; // CARICATO
$indirizzoPredefinito = null; // CARICATO
$righeOrdine = []; // CARICATO
$riepilogo = null; // CARICATO
@@ -51,6 +52,29 @@
$indirizzi = $stmt->fetchAll(PDO::FETCH_ASSOC);
$stmt = $pdo->prepare("
SELECT
indirizzo.idIndirizzo,
indirizzo.via,
indirizzo.numeroCivico,
indirizzo.predefinito,
indirizzo.idComune
FROM
indirizzo
WHERE
indirizzo.idCliente = :idCliente
AND indirizzo.predefinito = 1
LIMIT 1
");
$stmt->execute([
"idCliente" => $idCliente
]);
$indirizzoPredefinito = $stmt->fetch(PDO::FETCH_ASSOC);
/* ============================================================
* EVENTUALE ORDINE IN BOZZA
@@ -834,7 +858,36 @@
name="idIndirizzo"
required
>
<?php if ($indirizzoPredefinito === null): ?>
<option value="">Seleziona...</option>
<?php endif; ?>
<?php if ($indirizzoPredefinito !== null): ?>
<option
value="<?= e($indirizzoPredefinito["idIndirizzo"]) ?>"
select
>
<?= e($indirizzoPredefinito["via"] . " " . $indirizzoPredefinito["numeroCivico"]) ?>
<?= !empty($indirizzoPredefinito["predefinito"]) ? "(predefinito)" : "" ?>
</option>
<?php endif; ?>
// Rimuovo l'indirizzo dagli indirizzi
<?php
if (
is_array($indirizzoPredefinito) &&
isset($indirizzoPredefinito["idIndirizzo"]) &&
isset($indirizzoPredefinito["via"]) &&
isset($indirizzoPredefinito["numeroCivico"])
) {
foreach ($indirizzi as $key => $i) {
if ($i["idIndirizzo"] == $indirizzoPredefinito["idIndirizzo"]) {
unset($indirizzi[$key]);
break;
}
}
}
?>
<?php foreach ($indirizzi as $i): ?>
<option value="<?= e($i["idIndirizzo"]) ?>">
+20 -3
View File
@@ -13,8 +13,25 @@ $conteggi = [];
$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>
<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"; ?>
+2
View File
@@ -1,2 +1,4 @@
[+] Preferiti: Il cliente può avere dei prodotti preferiti
[+] Immagini
[+] OKOKFATTO,CARICATO keywords da eliminare