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 { 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 ]); // 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 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; } $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"); } $pdo->beginTransaction(); $stmt = $pdo->prepare(" DELETE FROM indirizzo WHERE idIndirizzo = :idIndirizzo AND idCliente = :idCliente "); $stmt->execute([ "idIndirizzo" => $idIndirizzo, "idCliente" => $idCliente ]); $pdo->commit(); $messaggio = "Indirizzo eliminato con successo"; 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 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); $pageTitle = "Indirizzi"; $basePath = ".."; require __DIR__ . "/../includes/header.php"; ?>