160 lines
6.3 KiB
PHP
160 lines
6.3 KiB
PHP
<?php
|
|
include('include/headscript.php');
|
|
|
|
use PHPMailer\PHPMailer\PHPMailer;
|
|
use PHPMailer\PHPMailer\Exception;
|
|
?>
|
|
<?php
|
|
require_once '../Connections/cmctrfdb.php'; // Assicurati che il percorso sia corretto
|
|
$conn = mysqli_connect($servername, $username, $password, $dbname);
|
|
|
|
// Inizia la sessione
|
|
//session_start();
|
|
|
|
// Verifica se il form è stato inviato
|
|
if ($_SERVER['REQUEST_METHOD'] == 'POST') {
|
|
// Estrai i valori inviati dal form
|
|
$dateTrf = $_POST['datetrf'];
|
|
$idtd = $_POST['idtd'];
|
|
$idtrf = $_POST['idtrf'];
|
|
$review = $_POST['review'];
|
|
if (isset($_POST['modifytrf'])) {
|
|
$modifytrf = $_POST['modifytrf'];
|
|
} else {
|
|
$modifytrf = "N";
|
|
}
|
|
|
|
// query data_td
|
|
$conn = new mysqli($servername, $username, $password, $dbname);
|
|
$sql = "SELECT data_td.*, auth_users.*, company.*
|
|
FROM data_td
|
|
LEFT JOIN auth_users ON data_td.iduser = auth_users.id
|
|
LEFT JOIN company ON data_td.idcompany = company.idcompany
|
|
WHERE data_td.iddata_td = ?";
|
|
$stmt = $conn->prepare($sql);
|
|
// Controlla se la preparazione della query ha avuto successo
|
|
if ($stmt === false) {
|
|
die('Errore nella preparazione della query: ' . $conn->error);
|
|
}
|
|
|
|
$stmt->bind_param("i", $idtd); // "i" indica che l'id è un intero
|
|
$stmt->execute();
|
|
$result = $stmt->get_result();
|
|
$row = $result->fetch_assoc();
|
|
$statustd = $row['statustd'];
|
|
$idtrftd = $row['idtrf'];
|
|
$tdnumber = $row['tdnumber'];
|
|
$tdrev = $row['td_rev'];
|
|
$trfmod = $row['trfmod'];
|
|
$namecompanyclient = $row['companyname_company'];
|
|
$nameclient = $row['first_name'];
|
|
$emailuserclient = $row['email'];
|
|
$stmt->close();
|
|
|
|
|
|
|
|
|
|
if ($modifytrf == 'Y') {
|
|
// Costruisci l'URL con il parametro GET
|
|
$url = "https://www.cimac.it/modulo_certificazione/public/previewtrf.php?idtrf=" . urlencode($idtrf);
|
|
|
|
// Recupera i cookie di sessione
|
|
$cookies = '';
|
|
foreach ($_COOKIE as $key => $value) {
|
|
$cookies .= $key . '=' . $value . '; ';
|
|
}
|
|
|
|
// Esegui il file previewtrf.php in background con cURL
|
|
$ch = curl_init($url);
|
|
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
|
|
curl_setopt($ch, CURLOPT_TIMEOUT, 15); // Timeout leggermente più lungo
|
|
curl_setopt($ch, CURLOPT_HEADER, 0);
|
|
curl_setopt($ch, CURLOPT_COOKIE, $cookies); // Invia i cookie di sessione
|
|
|
|
// Aggiungi gestione degli errori cURL
|
|
$response = curl_exec($ch);
|
|
if (curl_errno($ch)) {
|
|
$error_msg = curl_error($ch);
|
|
error_log("cURL error: " . $error_msg, 3, "../logfile.log"); // Sostituisci con il percorso del tuo file di log
|
|
} else {
|
|
// Registra la risposta per debug
|
|
error_log("cURL response: " . $response, 3, "../logfile.log"); // Sostituisci con il percorso del tuo file di log
|
|
}
|
|
curl_close($ch);
|
|
}
|
|
|
|
// Assicurati che i valori richiesti non siano nulli
|
|
if (!is_null($dateTrf) && !is_null($idtd) && !is_null($review)) {
|
|
// Prepara la query di aggiornamento
|
|
$sql = "UPDATE data_td SET statustd = ?, datelastmod = ?, trfmod = ? WHERE iddata_td = ?";
|
|
|
|
$stmt = $conn->prepare($sql);
|
|
|
|
if ($stmt === false) {
|
|
die('Errore nella preparazione della query: ' . $conn->error);
|
|
}
|
|
|
|
// 's' indica stringa, 'i' indica intero
|
|
$stmt->bind_param('sssi', $review, $dateTrf, $modifytrf, $idtd);
|
|
|
|
if ($stmt->execute()) {
|
|
// send mail to Certification team
|
|
|
|
require 'phpmailer/src/Exception.php';
|
|
require 'phpmailer/src/PHPMailer.php';
|
|
require 'phpmailer/src/SMTP.php';
|
|
|
|
$mail = new PHPMailer(true);
|
|
$mail->isSMTP(); // Set mailer to use SMTP
|
|
$mail->Host = $mailhost; // Specify main and backup server
|
|
$mail->SMTPAuth = true; // Enable SMTP authentication
|
|
$mail->Username = $mailusername; // SMTP username
|
|
$mail->Password = $mailpassword; // SMTP password
|
|
$mail->SMTPSecure = $mailmethod; // Enable encryption, 'ssl' also accepted
|
|
$mail->Port = $mailport;
|
|
$mail->From = $fromaddresssmail;
|
|
$mail->FromName = 'CIMAC Technical File System';
|
|
|
|
if ($review == "Revision") {
|
|
$htmlContent = "Hai una nuova Revisione da verificare. E' la numero " . $tdnumber . " - cliente " . $namecompanyclient;
|
|
$mail->addAddress("info@claudiosironi.com"); // Add a recipient
|
|
$mail->Subject = "Nuova Revisione: " . $tdnumber;
|
|
$mail->Body = $htmlContent;
|
|
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
|
|
error_log("Invio email per revisione: " . $htmlContent);
|
|
} else {
|
|
$htmlContent = "Buongiorno " . $nameclient . ", Hai un Technical file in attesa di firma. ";
|
|
$htmlContent .= "E' il numero " . $tdnumber . ". ";
|
|
$htmlContent .= "Collegati al portale CIMAC per procedere alla verifica ed alla firma. Grazie!";
|
|
$mail->addAddress($emailuserclient); // Add a recipient
|
|
$mail->Subject = "Nuovo Technical File in attesa di Firma " . $tdnumber;
|
|
$mail->Body = $htmlContent;
|
|
$mail->AltBody = 'This is the body in plain text for non-HTML mail clients';
|
|
error_log("Invio email per Technical File: " . $htmlContent);
|
|
}
|
|
|
|
try {
|
|
$mail->send();
|
|
error_log("Email inviata con successo.");
|
|
} catch (Exception $e) {
|
|
error_log("Errore nell'invio dell'email: " . $mail->ErrorInfo);
|
|
}
|
|
|
|
|
|
// Reindirizza su archivetd.php se l'aggiornamento è riuscito
|
|
header('Location: archivetd.php');
|
|
exit;
|
|
} else {
|
|
die('Errore nell\'esecuzione della query: ' . $stmt->error);
|
|
}
|
|
|
|
$stmt->close();
|
|
} else {
|
|
// Gestisci il caso in cui alcuni dati richiesti non siano stati inviati
|
|
echo "Dati mancanti.";
|
|
// Qui potresti voler reindirizzare l'utente su una pagina di errore o visualizzare un messaggio
|
|
}
|
|
}
|
|
|
|
$conn->close();
|