diff --git a/public/userportal/documents-home.php b/public/userportal/documents-home.php new file mode 100644 index 0000000..3ec628a --- /dev/null +++ b/public/userportal/documents-home.php @@ -0,0 +1,230 @@ + +prepare("SELECT * FROM home WHERE idhome = ? AND iduser = ?"); +$queryHome->bind_param('ii', $idhome, $iduserlogin); +$queryHome->execute(); +$resultHome = $queryHome->get_result(); +$homeData = $resultHome->fetch_assoc(); + +// Recupera i documenti dalla tabella 'documents' raggruppati per sezione +$queryDocuments = $conn->query("SELECT * FROM documents ORDER BY section"); + +$documents = []; +while ($row = $queryDocuments->fetch_assoc()) { + $documents[$row['section']][] = $row; +} + +// Recupera i documenti già caricati per questa casa +$queryLoadedDocuments = $conn->prepare("SELECT * FROM doc_storage WHERE idhome = ?"); +$queryLoadedDocuments->bind_param('i', $idhome); +$queryLoadedDocuments->execute(); +$resultLoadedDocuments = $queryLoadedDocuments->get_result(); + +$loadedDocuments = []; +while ($row = $resultLoadedDocuments->fetch_assoc()) { + $loadedDocuments[$row['document_id']][] = $row; +} +?> + + + + + + + + Documenti della Casa + + + + + + + + + + + + + + + + + + +
+ +
+
+ + +
+
+ +
+
+

Documenti per la Casa:

+

Indirizzo:

+
+
+ + + $sectionDocuments) { ?> +
+
+ +
+
+
+ +

+ + (Obbligatorio)"; ?> + 0) echo " - Max: " . $document['max_documents']; ?> +

+ + +
+
+
+ Trascina qui i documenti o clicca per caricare +
+
+ + +
Documenti già caricati:
+ + + + + + + + + + + + + + + + + + + + +
Nome DocumentoData CaricamentoAzioni
+
+
+
+ + +
+
+
+ +
+
+ + + + + + + + + + + + + \ No newline at end of file diff --git a/public/userportal/homedocuments/1-1726859730-2024-07-09 10-20.pdf b/public/userportal/homedocuments/1-1726859730-2024-07-09 10-20.pdf new file mode 100644 index 0000000..1e39140 Binary files /dev/null and b/public/userportal/homedocuments/1-1726859730-2024-07-09 10-20.pdf differ diff --git a/public/userportal/homedocuments/1-1726859766-SnapFeet.pdf b/public/userportal/homedocuments/1-1726859766-SnapFeet.pdf new file mode 100644 index 0000000..5375c1f Binary files /dev/null and b/public/userportal/homedocuments/1-1726859766-SnapFeet.pdf differ diff --git a/public/userportal/homedocuments/1-1726859767-2024-07-09 10-20.pdf b/public/userportal/homedocuments/1-1726859767-2024-07-09 10-20.pdf new file mode 100644 index 0000000..1e39140 Binary files /dev/null and b/public/userportal/homedocuments/1-1726859767-2024-07-09 10-20.pdf differ diff --git a/public/userportal/homedocuments/1-1726860071-2024-07-09 10-20.pdf b/public/userportal/homedocuments/1-1726860071-2024-07-09 10-20.pdf new file mode 100644 index 0000000..1e39140 Binary files /dev/null and b/public/userportal/homedocuments/1-1726860071-2024-07-09 10-20.pdf differ diff --git a/public/userportal/homes-list.php b/public/userportal/homes-list.php index 5a5f3c4..f98a8bc 100644 --- a/public/userportal/homes-list.php +++ b/public/userportal/homes-list.php @@ -105,7 +105,7 @@ $result = $stmt->get_result(); Dettagli - + Documenti diff --git a/public/userportal/include/seo.php b/public/userportal/include/seo.php index 2d1cad8..94705a0 100644 --- a/public/userportal/include/seo.php +++ b/public/userportal/include/seo.php @@ -1,3 +1,3 @@ -Kering Portal +CasaDoc \ No newline at end of file diff --git a/public/userportal/index.php b/public/userportal/index.php index 9fdebe1..21a1be0 100644 --- a/public/userportal/index.php +++ b/public/userportal/index.php @@ -98,7 +98,7 @@
diff --git a/public/userportal/manage-owner.php b/public/userportal/manage-owner.php index 0a87a26..3509266 100644 --- a/public/userportal/manage-owner.php +++ b/public/userportal/manage-owner.php @@ -29,7 +29,7 @@ if (!$isNew) { $postal_code = $ownerData['postal_code']; $city = $ownerData['city']; $province = $ownerData['province']; - $country = $ownerData['country']; + $country = $ownerData['country']; // ID della tabella auth_countries $owner_type = $ownerData['owner_type']; $role = $ownerData['role']; } else { @@ -37,6 +37,11 @@ if (!$isNew) { $first_name = $last_name = $company_name = $tax_code = $email = $phone = $address = $postal_code = $city = $province = $country = $role = ''; $owner_type = 'individual'; } + +// Recupera la lista dei paesi dalla tabella auth_countries +$countriesQuery = $conn->prepare("SELECT id, name FROM auth_countries ORDER BY name ASC"); +$countriesQuery->execute(); +$countriesResult = $countriesQuery->get_result(); ?> @@ -57,6 +62,13 @@ if (!$isNew) { + + + + + + + @@ -155,10 +167,16 @@ if (!$isNew) {
- +
- +
@@ -182,7 +200,7 @@ if (!$isNew) { - + + + \ No newline at end of file diff --git a/public/userportal/person-list.php b/public/userportal/person-list.php index 1aeb78f..d381007 100644 --- a/public/userportal/person-list.php +++ b/public/userportal/person-list.php @@ -38,7 +38,8 @@ $result = $stmt->get_result();
- +
@@ -84,7 +85,7 @@ $result = $stmt->get_result(); Provincia Nazione Tipo - Ruolo + Action @@ -98,7 +99,7 @@ $result = $stmt->get_result(); - + @@ -122,13 +123,19 @@ $result = $stmt->get_result(); - - - - Dettagli - + + diff --git a/public/userportal/save-owner.php b/public/userportal/save-owner.php new file mode 100644 index 0000000..fbfefbe --- /dev/null +++ b/public/userportal/save-owner.php @@ -0,0 +1,128 @@ +connect_error) { + die("Connessione fallita: " . $conn->connect_error); +} + +// Recupera l'id utente loggato dalla sessione +$iduserlogin = intval($_SESSION['iduserlogin']); + +// Recupera i dati inviati tramite POST +$owner_id = isset($_POST['owner_id']) ? intval($_POST['owner_id']) : 0; +$owner_type = isset($_POST['owner_type']) ? $conn->real_escape_string($_POST['owner_type']) : ''; +$first_name = !empty($_POST['first_name']) ? $conn->real_escape_string($_POST['first_name']) : null; +$last_name = !empty($_POST['last_name']) ? $conn->real_escape_string($_POST['last_name']) : null; +$company_name = !empty($_POST['company_name']) ? $conn->real_escape_string($_POST['company_name']) : null; +$tax_code = isset($_POST['tax_code']) ? $conn->real_escape_string($_POST['tax_code']) : ''; +$email = isset($_POST['email']) ? $conn->real_escape_string($_POST['email']) : ''; +$phone = !empty($_POST['phone']) ? $conn->real_escape_string($_POST['phone']) : null; +$address = !empty($_POST['address']) ? $conn->real_escape_string($_POST['address']) : null; +$postal_code = !empty($_POST['postal_code']) ? $conn->real_escape_string($_POST['postal_code']) : null; +$city = !empty($_POST['city']) ? $conn->real_escape_string($_POST['city']) : null; +$province = !empty($_POST['province']) ? $conn->real_escape_string($_POST['province']) : null; +$country = isset($_POST['country']) ? intval($_POST['country']) : null; // Converti country in intero +$role = !empty($_POST['role']) ? $conn->real_escape_string($_POST['role']) : null; +$owner_type = isset($_POST['owner_type']) ? $conn->real_escape_string($_POST['owner_type']) : 'individual'; // Default to 'individual' + + + +// Verifica se stiamo aggiungendo un nuovo proprietario o aggiornando uno esistente +if ($owner_id > 0) { + // Aggiorna il proprietario esistente + $query = "UPDATE property_owners + SET owner_type = ?, first_name = ?, last_name = ?, company_name = ?, tax_code = ?, email = ?, phone = ?, address = ?, postal_code = ?, city = ?, province = ?, country = ?, role = ? + WHERE owner_id = ? AND user_id = ?"; + $stmt = $conn->prepare($query); + if ($stmt === false) { + die("Errore nella preparazione della query: " . $conn->error); + } + + // Imposta i valori nulli per i campi facoltativi + $company_name = !empty($company_name) ? $company_name : null; + $role = !empty($role) ? $role : null; + + // Binding dei parametri + $stmt->bind_param( + 'ssssssssssssiis', // Formato corretto + $owner_type, // s (string) + $first_name, // s (string) + $last_name, // s (string) + $company_name, // s (string, può essere null) + $tax_code, // s (string) + $email, // s (string) + $phone, // s (string) + $address, // s (string) + $postal_code, // s (string) + $city, // s (string) + $province, // s (string) + $country, // i (intero) + $role, // s (string, può essere null) + $owner_id, // i (intero) + $iduserlogin // i (intero) + ); + + // Esegui la query + if ($stmt->execute()) { + // Reindirizza a manage-owner.php dopo il successo + header("Location: person-list.php"); + exit(); + } else { + die("Errore nell'aggiornamento: " . $stmt->error); + } + // Inserisci un nuovo proprietario + $query = "INSERT INTO property_owners +(user_id, owner_type, first_name, last_name, company_name, tax_code, email, phone, address, postal_code, city, province, country, role) +VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?, ?)"; + $stmt = $conn->prepare($query); + if ($stmt === false) { + die("Errore nella preparazione della query: " . $conn->error); + } + + $company_name = !empty($company_name) ? $company_name : null; + $role = !empty($role) ? $role : null; + + + + // Binding dei parametri + $stmt->bind_param( + 'isssssssssssis', // Formato: 2 interi, 12 stringhe + $iduserlogin, // i (user_id) + $owner_type, // s (owner_type) + $first_name, // s (first_name) + $last_name, // s (last_name) + $company_name, // s (company_name) + $tax_code, // s (tax_code) + $email, // s (email) + $phone, // s (phone) + $address, // s (address) + $postal_code, // s (postal_code) + $city, // s (city) + $province, // s (province) + $country, // i (country) + $role // s (role) + ); + + // Esegui la query + if ($stmt->execute()) { + echo "Proprietario salvato con successo."; + // Reindirizza a manage-owner.php dopo il successo + header("Location: person-list.php"); + exit(); // Assicurati di terminare l'esecuzione dopo il reindirizzamento + } else { + die("Errore nell'inserimento o aggiornamento: " . $stmt->error); + } +} + + +// Chiudi la connessione +$stmt->close(); +$conn->close(); diff --git a/public/userportal/upload-document.php b/public/userportal/upload-document.php new file mode 100644 index 0000000..91079e5 --- /dev/null +++ b/public/userportal/upload-document.php @@ -0,0 +1,59 @@ +connect_error) { + die(json_encode(['success' => false, 'message' => "Connection failed: " . $conn->connect_error])); +} + +// Impostazioni della cartella di destinazione +$targetDir = "homedocuments/"; + +// Recupera i dati inviati tramite POST e FILES +$idhome = isset($_POST['idhome']) ? intval($_POST['idhome']) : 0; +$document_id = isset($_POST['document_id']) ? intval($_POST['document_id']) : 0; +$file = isset($_FILES['file']) ? $_FILES['file'] : null; +$expirydate = isset($_POST['expirydate']) ? $_POST['expirydate'] : null; +$note = isset($_POST['note']) ? $_POST['note'] : null; + +// Controlla se il file è stato caricato correttamente +if ($file && $file['error'] === UPLOAD_ERR_OK) { + // Rinomina il file con lo schema idhome-timestamp-filename + $filename = basename($file['name']); + $fileExtension = pathinfo($filename, PATHINFO_EXTENSION); + $newFilename = $idhome . '-' . time() . '-' . $filename; + $targetFilePath = $targetDir . $newFilename; + + // Verifica e crea la cartella se non esiste + if (!is_dir($targetDir)) { + mkdir($targetDir, 0777, true); + } + + // Sposta il file nella cartella di destinazione + if (move_uploaded_file($file['tmp_name'], $targetFilePath)) { + // Inserisce il file nel database + $expiry_status = ($expirydate) ? 1 : 0; + + $query = "INSERT INTO doc_storage (idhome, document_id, filename, expirystatus, expirydate, note, created_at, updated_at) + VALUES (?, ?, ?, ?, ?, ?, NOW(), NOW())"; + $stmt = $conn->prepare($query); + $stmt->bind_param("iissss", $idhome, $document_id, $newFilename, $expiry_status, $expirydate, $note); + + if ($stmt->execute()) { + echo json_encode(['success' => true, 'message' => "File uploaded successfully.", 'filename' => $newFilename]); + } else { + echo json_encode(['success' => false, 'message' => "Failed to insert into database: " . $stmt->error]); + } + + $stmt->close(); + } else { + echo json_encode(['success' => false, 'message' => "Failed to move the file."]); + } +} else { + echo json_encode(['success' => false, 'message' => "File upload error."]); +} + +$conn->close();