Aggiornamento lato UTENTE
This commit is contained in:
+190
-145
@@ -1,175 +1,220 @@
|
||||
<?php
|
||||
require_once __DIR__ . "/../includes/auth.php";
|
||||
requireRole("cliente");
|
||||
require_once __DIR__ . "/../config/database.php";
|
||||
$idCliente = (int) $_SESSION["idUtente"];
|
||||
$azione = $_POST["azione"] ?? null;
|
||||
$idIndirizzo = filter_input(INPUT_POST, "idIndirizzo", FILTER_VALIDATE_INT);
|
||||
$via = trim($_POST["via"] ?? "");
|
||||
$numeroCivico = trim($_POST["numeroCivico"] ?? "");
|
||||
$idComune = filter_input(INPUT_POST, "idComune", FILTER_VALIDATE_INT);
|
||||
$indirizzi = [];
|
||||
$messaggio = null;
|
||||
$comuni = [];
|
||||
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT
|
||||
comune.idComune,
|
||||
comune.nome AS nomeComune,
|
||||
provincia.nome AS nomeProvincia,
|
||||
provincia.sigla
|
||||
require_once __DIR__ . "/../includes/auth.php";
|
||||
requireRole("cliente");
|
||||
require_once __DIR__ . "/../config/database.php";
|
||||
$idCliente = (int) $_SESSION["idUtente"];
|
||||
$azione = $_POST["azione"] ?? null;
|
||||
$idIndirizzo = filter_input(INPUT_POST, "idIndirizzo", FILTER_VALIDATE_INT);
|
||||
$via = trim($_POST["via"] ?? "");
|
||||
$numeroCivico = trim($_POST["numeroCivico"] ?? "");
|
||||
$idComune = filter_input(INPUT_POST, "idComune", FILTER_VALIDATE_INT);
|
||||
$indirizzi = [];
|
||||
$messaggio = null;
|
||||
$comuni = [];
|
||||
|
||||
FROM comune JOIN provincia ON comune.idProvincia = provincia.idProvincia
|
||||
");
|
||||
$stmt->execute();
|
||||
$comuni = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT
|
||||
comune.idComune,
|
||||
comune.nome AS nomeComune,
|
||||
provincia.nome AS nomeProvincia,
|
||||
provincia.sigla
|
||||
|
||||
FROM comune JOIN provincia ON comune.idProvincia = provincia.idProvincia
|
||||
");
|
||||
$stmt->execute();
|
||||
$comuni = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
if (postMethod()) {
|
||||
|
||||
try {
|
||||
if (postMethod()) {
|
||||
|
||||
switch($azione) {
|
||||
case "predefinito": {
|
||||
if (!$idIndirizzo) {
|
||||
$messaggio = "Id indirizzo non valido";
|
||||
die("Id indirizzo non valido");
|
||||
}
|
||||
|
||||
$pdo->beginTransaction();
|
||||
|
||||
// Rimozione dei precedenti indirizzi predefiniti
|
||||
$stmt = $pdo->prepare("
|
||||
UPDATE indirizzo
|
||||
SET predefinito = 0
|
||||
WHERE idCliente = :idCliente
|
||||
");
|
||||
$stmt->execute([
|
||||
"idCliente" => $idCliente
|
||||
]);
|
||||
case "predefinito": { // OKOKFATTO
|
||||
|
||||
// Settando indirizzo corrente come predefinito
|
||||
$stmt = $pdo->prepare("
|
||||
UPDATE indirizzo
|
||||
SET predefinito = 1
|
||||
WHERE
|
||||
idCliente = :idCliente AND idIndirizzo = :idIndirizzo
|
||||
");
|
||||
$stmt->execute([
|
||||
"idCliente" => $idCliente,
|
||||
"idIndirizzo" => $idIndirizzo
|
||||
]);
|
||||
|
||||
$pdo->commit();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
case "inserisci": {
|
||||
if (
|
||||
$via === "" ||
|
||||
$numeroCivico === "" ||
|
||||
$idComune === ""
|
||||
) {
|
||||
$messaggio = "Compila i campi correttamente";
|
||||
die("Compila i campi correttamente");
|
||||
}
|
||||
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT EXISTS (
|
||||
SELECT 1
|
||||
FROM indirizzo
|
||||
try {
|
||||
if (!$idIndirizzo) {
|
||||
$messaggio = "Id indirizzo non valido";
|
||||
die("Id indirizzo non valido");
|
||||
}
|
||||
|
||||
$pdo->beginTransaction();
|
||||
|
||||
// Rimozione dei precedenti indirizzi predefiniti
|
||||
$stmt = $pdo->prepare("
|
||||
UPDATE indirizzo
|
||||
SET predefinito = 0
|
||||
WHERE idCliente = :idCliente
|
||||
) AS esiste
|
||||
");
|
||||
$stmt->execute([
|
||||
"idCliente" => $idCliente
|
||||
]);
|
||||
$predefinito = $stmt->fetchColumn();
|
||||
if ($predefinito) {
|
||||
// Sono presenti record di indirizzi
|
||||
$predefinito = 0;
|
||||
} else {
|
||||
// Non sono presenti record di indirizzi
|
||||
$predefinito = 1;
|
||||
");
|
||||
$stmt->execute([
|
||||
"idCliente" => $idCliente
|
||||
]);
|
||||
|
||||
// Settando indirizzo corrente come predefinito
|
||||
$stmt = $pdo->prepare("
|
||||
UPDATE indirizzo
|
||||
SET predefinito = 1
|
||||
WHERE
|
||||
idCliente = :idCliente AND idIndirizzo = :idIndirizzo
|
||||
");
|
||||
$stmt->execute([
|
||||
"idCliente" => $idCliente,
|
||||
"idIndirizzo" => $idIndirizzo
|
||||
]);
|
||||
|
||||
$pdo->commit();
|
||||
|
||||
break;
|
||||
} catch (PDOException $e) {
|
||||
|
||||
if ($pdo -> inTransaction()) {
|
||||
$pdo->rollBack();
|
||||
}
|
||||
|
||||
$messaggio =
|
||||
"Errore durante l'aggiornamento dell'indirizzo" .
|
||||
$e->getMessage();
|
||||
|
||||
break;
|
||||
}
|
||||
|
||||
$pdo->beginTransaction();
|
||||
$stmt = $pdo->prepare("
|
||||
INSERT INTO indirizzo (via, numeroCivico, predefinito, idComune, idCliente)
|
||||
VALUES (:via, :numeroCivico, :predefinito, :idComune, :idCliente)
|
||||
");
|
||||
$stmt->execute([
|
||||
"via" => $via,
|
||||
"numeroCivico" => $numeroCivico,
|
||||
"predefinito" => $predefinito,
|
||||
"idComune" => $idComune,
|
||||
"idCliente" => $idCliente
|
||||
]);
|
||||
$pdo->commit();
|
||||
break;
|
||||
}
|
||||
|
||||
case "elimina": {
|
||||
if (!$idIndirizzo) {
|
||||
$messaggio = "Id indirizzo non valido";
|
||||
die("Id indirizzo non valido");
|
||||
case "inserisci": { // OKOKFATTO
|
||||
try {
|
||||
if (
|
||||
$via === "" ||
|
||||
$numeroCivico === "" ||
|
||||
$idComune === ""
|
||||
) {
|
||||
$messaggio = "Compila i campi correttamente";
|
||||
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
|
||||
FROM indirizzo
|
||||
WHERE idCliente = :idCliente
|
||||
) AS esiste
|
||||
");
|
||||
$stmt->execute([
|
||||
"idCliente" => $idCliente
|
||||
]);
|
||||
$predefinito = $stmt->fetchColumn();
|
||||
if ($predefinito) {
|
||||
// Sono presenti record di indirizzi
|
||||
$predefinito = 0;
|
||||
} else {
|
||||
// Non sono presenti record di indirizzi
|
||||
$predefinito = 1;
|
||||
}
|
||||
|
||||
/*
|
||||
Inizia la transazione,
|
||||
si inserisce nel database la via.
|
||||
*/
|
||||
$pdo->beginTransaction();
|
||||
$stmt = $pdo->prepare("
|
||||
INSERT INTO indirizzo (via, numeroCivico, predefinito, idComune, idCliente)
|
||||
VALUES (:via, :numeroCivico, :predefinito, :idComune, :idCliente)
|
||||
");
|
||||
$stmt->execute([
|
||||
"via" => $via,
|
||||
"numeroCivico" => $numeroCivico,
|
||||
"predefinito" => $predefinito,
|
||||
"idComune" => $idComune,
|
||||
"idCliente" => $idCliente
|
||||
]);
|
||||
|
||||
$pdo->commit();
|
||||
|
||||
$messaggio = "Indirizzo aggiunto con successo";
|
||||
|
||||
break;
|
||||
} catch (PDOException $e) {
|
||||
|
||||
if ($pdo -> inTransaction()) {
|
||||
$pdo->rollBack();
|
||||
}
|
||||
|
||||
$messaggio =
|
||||
"Errore durante l'inserimento dell'indirizzo" .
|
||||
$e->getMessage();
|
||||
|
||||
break;
|
||||
}
|
||||
}
|
||||
|
||||
$pdo->beginTransaction();
|
||||
case "elimina": { // OKOKFATTO
|
||||
try {
|
||||
if (!$idIndirizzo) {
|
||||
$messaggio = "Id indirizzo non valido";
|
||||
die("Id indirizzo non valido");
|
||||
}
|
||||
|
||||
$stmt = $pdo->prepare("
|
||||
DELETE FROM indirizzo
|
||||
WHERE
|
||||
idIndirizzo = :idIndirizzo AND idCliente = :idCliente
|
||||
");
|
||||
$stmt->execute([
|
||||
"idIndirizzo" => $idIndirizzo,
|
||||
"idCliente" => $idCliente
|
||||
]);
|
||||
$pdo->commit();
|
||||
$pdo->beginTransaction();
|
||||
|
||||
$messaggio = "Indirizzo eliminato con successo";
|
||||
$stmt = $pdo->prepare("
|
||||
DELETE FROM indirizzo
|
||||
WHERE
|
||||
idIndirizzo = :idIndirizzo AND idCliente = :idCliente
|
||||
");
|
||||
$stmt->execute([
|
||||
"idIndirizzo" => $idIndirizzo,
|
||||
"idCliente" => $idCliente
|
||||
]);
|
||||
$pdo->commit();
|
||||
|
||||
break;
|
||||
$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:
|
||||
$messaggio = "Azione non valida";
|
||||
break;
|
||||
}
|
||||
|
||||
} catch (PDOException $e) {
|
||||
if ($pdo->inTransaction()) {
|
||||
$pdo->rollBack();
|
||||
}
|
||||
die(
|
||||
"Errore durante l'aggiunta dell'indirizzo di consegna: "
|
||||
. $e->getMessage()
|
||||
);
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT
|
||||
indirizzo.idIndirizzo,
|
||||
indirizzo.via,
|
||||
indirizzo.numeroCivico,
|
||||
indirizzo.predefinito,
|
||||
comune.nome AS nomeComune,
|
||||
provincia.sigla AS siglaProvincia
|
||||
$stmt = $pdo->prepare("
|
||||
SELECT
|
||||
indirizzo.idIndirizzo,
|
||||
indirizzo.via,
|
||||
indirizzo.numeroCivico,
|
||||
indirizzo.predefinito,
|
||||
comune.nome AS nomeComune,
|
||||
provincia.sigla AS siglaProvincia
|
||||
|
||||
FROM (indirizzo JOIN comune ON indirizzo.idComune = comune.idComune)
|
||||
JOIN provincia ON comune.idProvincia = provincia.idProvincia
|
||||
FROM (indirizzo JOIN comune ON indirizzo.idComune = comune.idComune)
|
||||
JOIN provincia ON comune.idProvincia = provincia.idProvincia
|
||||
|
||||
WHERE idCliente = :idCliente
|
||||
");
|
||||
$stmt->execute([
|
||||
"idCliente" => $idCliente
|
||||
]);
|
||||
$indirizzi = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
WHERE idCliente = :idCliente
|
||||
");
|
||||
$stmt->execute([
|
||||
"idCliente" => $idCliente
|
||||
]);
|
||||
$indirizzi = $stmt->fetchAll(PDO::FETCH_ASSOC);
|
||||
|
||||
$pageTitle = "Indirizzi"; $basePath = "..";
|
||||
require __DIR__ . "/../includes/header.php";
|
||||
$pageTitle = "Indirizzi"; $basePath = "..";
|
||||
require __DIR__ . "/../includes/header.php";
|
||||
?>
|
||||
<h1 class="h3">Indirizzi di consegna</h1>
|
||||
<?php if ($messaggio): ?><div class="alert alert-warning"><?= e($messaggio) ?></div><?php endif; ?>
|
||||
|
||||
Reference in New Issue
Block a user