set('isHtml5ParserEnabled', true);
$options->set('isRemoteEnabled', true);
$dompdf = new Dompdf($options);
$dompdf->setBasePath($_SERVER['DOCUMENT_ROOT']);
require_once '../Connections/cmctrfdb.php';
require_once '../webassist/mysqli/rsobj.php';
//include 'include/headscript.php';
include('languages/' . $_SESSION['langselect'] . '/tdgen.php');
include('languages/' . $_SESSION['langselect'] . '/general.php');
// usa $idtd già impostato da sendtd.php, altrimenti dalla richiesta
$idtd = (int)($idtd ?? $_POST['idtd'] ?? $_GET['idtd'] ?? 0);
if ($idtd <= 0) {
die('ID dossier mancante');
}
$conn = new mysqli($servername, $username, $password, $dbname);
$stmt = $conn->prepare("SELECT idtrf, idcompany FROM data_td WHERE iddata_td = ?");
$stmt->bind_param("i", $idtd);
$stmt->execute();
$rowids = $stmt->get_result()->fetch_assoc();
$stmt->close();
$conn->close();
if (!$rowids) {
die('Dossier non trovato');
}
$idtrftd = (int)$rowids['idtrf'];
$idcompany = (int)$rowids['idcompany'];
$base_url = "https://www.cimac.it/modulo_certificazione/public/";
$conn = new mysqli($servername, $username, $password, $dbname);
$checkQuery = "SELECT COUNT(*) as count FROM fillrisk_td WHERE iddata_td = ?";
$stmt = $conn->prepare($checkQuery);
$stmt->bind_param("i", $idtd);
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
if ($row['count'] == 0) {
// Non ci sono record, quindi procedi con l'inserimento dei dati da riskarea_td
// Prendi tutti i record da riskarea_td
$selectQuery = "SELECT * FROM riskarea_td";
$result = $conn->query($selectQuery);
while ($riskRow = $result->fetch_assoc()) {
// Prepara l'insert per ogni riga trovata in riskarea_td
$insertQuery = "INSERT INTO fillrisk_td (idriskarea_td, applicable, idcompany, iddata_td, idtrf) VALUES (?, ?, ?, ?, ?)";
$stmt = $conn->prepare($insertQuery);
// Converte il valore 'Y'/'N' della colonna default in un intero (1/0)
$applicableValue = ($riskRow['default'] == 'Y') ? 1 : 0;
$stmt->bind_param("iiiii", $riskRow['idriskarea_td'], $applicableValue, $idcompany, $idtd, $idtrftd);
$stmt->execute();
}
}
// Chiudi lo statement e la connessione se non ti servono più
$stmt->close();
$conn->close();
// query data_td
$conn = new mysqli($servername, $username, $password, $dbname);
$sql = "SELECT * FROM data_td LEFT JOIN logo_td ON data_td.manufacturerlogoid=logo_td.idlogo_Td LEFT JOIN qualcheck_td ON data_td.proddescription=qualcheck_td.idqualcheck_td WHERE iddata_td = ?";
$stmt = $conn->prepare($sql);
$stmt->bind_param("i", $idtd); // "i" indica che l'id è un intero
$stmt->execute();
$result = $stmt->get_result();
$row = $result->fetch_assoc();
$prodplace = $row['productionplace_same'];
$classshoes = $row['classificationshoes'];
$zipfile = $row['zipname'];
$tdrev = $row['td_rev'];
$tdnumber = $row['tdnumber'];
if ($classshoes == "classone") {
$classfinal = $classone; // Assumo che il valore che vuoi assegnare sia una stringa "classone"
} elseif ($classshoes == "classtwo") {
$classfinal = $classtwo; // Assumo che il valore che vuoi assegnare sia una stringa "classtwo"
} else {
$classfinal = "default"; // Opzionale: Un valore default se non corrisponde a nessuno dei casi
}
$stmt->close();
$conn->close();
$tdquery = new WA_MySQLi_RS("tdquery", $cmctrfdb, 1);
$tdquery->setQuery("SELECT * FROM `trf-details` LEFT JOIN modelarticle ON modelarticle.idmodelarticle=`trf-details`.model WHERE `trf-details`.idtrfdetails='$idtrftd'");
$tdquery->execute();
$description = $tdquery->getColumnVal("sample_description");
$trfn = $tdquery->getColumnVal("trfnumber");
$trfrev = $tdquery->getColumnVal("revtrf");
$mandat = $tdquery->getColumnVal("otherclient");
$trfnumb = $trfn . ' VER.' . $trfrev;
$trftdnumber = $trfn . 'TF';
$photocover = $tdquery->getColumnVal("photofilename");
$photoone = $tdquery->getColumnVal("photoone");
$phototwo = $tdquery->getColumnVal("phototwo");
$virusprot = $tdquery->getColumnVal("virusprotection");
$idarttype = $tdquery->getColumnVal("idarticletype");
$slippingtext = $tdquery->getColumnVal("slipping") === 'Y' ? 'Sì' : ($tdquery->getColumnVal("slipping") === '' ? 'No' : $tdquery->getColumnVal("slipping"));
$autoclavabletext = $tdquery->getColumnVal("autoclavable") === 'Y' ? 'Sì' : ($tdquery->getColumnVal("autoclavable") === '' ? 'No' : $tdquery->getColumnVal("autoclavable"));
$ukcatext = $tdquery->getColumnVal("ukca") === 'Y' ? 'Sì' : ($tdquery->getColumnVal("ukca") === '' ? 'No' : $tdquery->getColumnVal("ukca"));
$esdtext = $tdquery->getColumnVal("esd") === 'Y' ? 'Sì' : ($tdquery->getColumnVal("esd") === '' ? 'No' : $tdquery->getColumnVal("esd"));
$shoesorthopedictext = $tdquery->getColumnVal("shoesorthopedic") === 'Y' ? 'Sì' : ($tdquery->getColumnVal("shoesorthopedic") === '' ? 'No' : $tdquery->getColumnVal("shoesorthopedic"));
$shoesorthopedicmodtext = $tdquery->getColumnVal("shoesorthopedicmod") === 'Y' ? 'Sì' : ($tdquery->getColumnVal("shoesorthopedicmod") === '' ? 'No' : $tdquery->getColumnVal("shoesorthopedicmod"));
$conn = new mysqli($servername, $username, $password, $dbname);
$kindcont = "headercertificate";
// Usa segnaposti per i parametri
$sqlcontact = "SELECT * FROM contacts LEFT JOIN countries ON countries.idcountries=contacts.country WHERE contacts.idtrf='$idtrftd' AND contacts.kindofcontacts='$kindcont'";
// Esecuzione della query
$resultcontact = $conn->query($sqlcontact);
$rowcontact = $resultcontact->fetch_assoc();
$companyname = $rowcontact["companyname"];
$address = $rowcontact["address"] . ' ' . $rowcontact["cap"] . ' ' . $rowcontact["city"];
$country = $rowcontact["namecountry"];
$phone = $rowcontact["telephone"];
$emailtd = $rowcontact["email"];
$vat = $rowcontact["piva"];
$ceinside = $rowcontact["ce"];
$mark = $tdquery->getColumnVal("registeredmark");
$contactperson = $rowcontact["contactname"] . ' ' . $rowcontact["contactsurname"];
// Chemical agent
$conn = new mysqli($servername, $username, $password, $dbname);
$sqlchemical = "SELECT trfchemicalagent.level, trfchemicalagent.degradationpercentage, chemicalagent.name_chemicalagent
FROM trfchemicalagent
LEFT JOIN chemicalagent ON trfchemicalagent.idchemicalagent = chemicalagent.idchemicalagent
WHERE trfchemicalagent.idtrf = '$idtrftd'";
$resultchemical = $conn->query($sqlchemical);
$chemicalAgents = []; // Array per memorizzare i risultati
if ($resultchemical && $resultchemical->num_rows > 0) {
// Riempie l'array con i risultati della query
while ($rowchemical = $resultchemical->fetch_assoc()) {
$chemicalAgents[] = $rowchemical;
}
}
$conn->close();
// Protection cat add
$conn = new mysqli($servername, $username, $password, $dbname);
$sqlprotect = "SELECT * FROM trfaddrequirements LEFT JOIN additionalrequirements ON trfaddrequirements.idadditionalrequirements = additionalrequirements.idadditionalrequirements WHERE trfaddrequirements.idtrf = '$idtrftd'";
$resultprotect = $conn->query($sqlprotect);
$protectionAdd = []; // Array per memorizzare i risultati
if ($resultprotect && $resultprotect->num_rows > 0) {;
// Riempie l'array con i risultati della query
while ($rowprotect = $resultprotect->fetch_assoc()) {
$protectionAdd[] = $rowprotect["name_additionalrequirements_it"];
}
}
$conn->close();
// Connessione al database
$conn = new mysqli($servername, $username, $password, $dbname);
// Controlla la connessione
if ($conn->connect_error) {
die("Connessione fallita: " . $conn->connect_error);
}
// Preparazione della query
$tdquerystd = "SELECT * FROM trfstandards
LEFT JOIN standards ON trfstandards.idstandards = standards.idstandards
LEFT JOIN protectioncategory ON protectioncategory.idprotectioncategory = trfstandards.idprotectioncategory
LEFT JOIN dpicategory ON dpicategory.iddpicategory = trfstandards.iddpicategory
WHERE trfstandards.idtrfdetails = '$idtrftd'";
// Esecuzione della query
$resultstd = $conn->query($tdquerystd);
if (!$resultstd) {
die("Errore nell'esecuzione della query: " . $conn->error);
}
$conn = new mysqli($servername, $username, $password, $dbname);
// Controlla la connessione
if ($conn->connect_error) {
die("Connessione fallita: " . $conn->connect_error);
}
// Preparazione della query
$addprot = "SELECT * FROM trfaddrequirements
LEFT JOIN additionalrequirements ON trfaddrequirements.idadditionalrequirements = additionalrequirements.idadditionalrequirements
WHERE trfaddrequirements.idtrf = '$idtrftd'";
// Esecuzione della query
$resultaddreq = $conn->query($addprot);
if (!$resultaddreq) {
die("Errore nell'esecuzione della query: " . $conn->error);
}
$tdquerystd = new WA_MySQLi_RS("tdquerystd", $cmctrfdb, 1);
$tdquerystd->setQuery("SELECT * FROM trfstandards LEFT JOIN standards ON trfstandards.idstandards=standards.idstandards LEFT JOIN protectioncategory ON protectioncategory.idprotectioncategory=trfstandards.idprotectioncategory LEFT JOIN dpicategory ON dpicategory.iddpicategory=trfstandards.iddpicategory WHERE trfstandards.idtrfdetails='$idtrftd'");
$tdquerystd->execute();
// query prod place
//query location place
// Assumendo che $idt sia già definito e sanificato per prevenire SQL Injection
$conn = new mysqli($servername, $username, $password, $dbname);
$querylocation = "SELECT idcontactstd, companyName, address, city FROM contacts_td WHERE idtd = ?";
$stmt = $conn->prepare($querylocation);
$stmt->bind_param("i", $idtd); // "i" indica che il parametro è un intero
$stmt->execute();
$result = $stmt->get_result();
$rowslocation = [];
while ($rowlocation = $result->fetch_assoc()) {
$rowslocation[] = $rowlocation;
}
$stmt->close();
$companylogofinal = !empty($companylogo) ? $base_url . "logos/" . $companylogo : '';
// Crea una nuova istanza di Dompdf
$html = <<
File Tecnico numero: $tdnumber - Rev. $tdrev
DATI DEL FABBRICANTE / MANUFACTURER'S DATA
Nome Azienda / Company Name
Indirizzo / Address
Paese / Country
Telefono / Phone
Email
Partita IVA / VAT Number
Marchio / Mark
Persona di Contatto / Contact Person
HTML;
if ($ceinside != 'Y') {
$kindcont = "extrace";
$sqlcontactextrace = "SELECT * FROM contacts LEFT JOIN countries ON countries.idcountries=contacts.country WHERE contacts.idtrf='$idtrftd' AND contacts.kindofcontacts='$kindcont'";
$resultcontactextrace = $conn->query($sqlcontactextrace);
if ($resultcontactextrace->num_rows > 0) {
// Esecuzione della query
$rowcontactextrace = $resultcontactextrace->fetch_assoc();
$companynameextrace = $rowcontactextrace["companyname"];
$addressextrace = $rowcontactextrace["address"] . ' ' . $rowcontact["cap"] . ' ' . $rowcontact["city"];
$countryextrace = $rowcontactextrace["namecountry"];
$phoneextrace = $rowcontactextrace["telephone"];
$emailtdextrace = $rowcontactextrace["email"];
$vatextrace = $rowcontactextrace["piva"];
$contactpersonextrace = $rowcontactextrace["contactname"] . ' ' . $rowcontactextrace["contactsurname"];
$html .= '
MANDATARIO
Nome Azienda / Company Name
Indirizzo / Address
Paese / Country
Telefono / Phone
Email
Partita IVA / VAT Number
Persona di Contatto / Contact Person
';
}
}
// prod place
$html .= '
LUOGO DI PRODUZIONE / PRODUCTION SITE
';
if ($prodplace == 'Y') {
$html .= '
coincide con il fabbricante / as manufacturer
';
} else {
$html .= '
Nome Azienda / Companu Name
Indirizzo / Address
Città / City
';
$html .= '
';
foreach ($rowslocation as $rowlocation) {
$html .= "
";
}
$html .= ' ';
}
$html .= '
';
//DPI DATA
$model = $tdquery->getColumnVal("namemodelarticle");
$measuremin = $tdquery->getColumnVal("measurefrom");
$measuremax = $tdquery->getColumnVal("measureto");
$destppe = $row['destinationuseppe'];
$manprocess = $row['manufacutringprocess'];
$ppeage = $row['ppeageing'];
$obsol = $row['obsolescencedeadline'];
$techspec = $row['techspecificationapplied'];
if ($ppeage == 'Y') {
$ppeagetext = 'Sì';
} else {
$ppeagetext = 'No';
}
$html .= <<
DATI RELATIVI AL DPI / PPE DATA
Codice Articolo
Modello
HTML;
if ($idarttype == 1) {
$html .= <<
Classificazione
HTML;
}
$html .= <<
Misura
Destinazione d'uso del DPI
Processo di lavorazione
DPI soggetto ad invecchiamento
Data di obsolescenza (anni)
{$techapplied}
HTML;
// dpi standard
$html .= '
';
while ($rowstd = $resultstd->fetch_assoc()) {
$stdcode = $rowstd['standardcode'];
$dpicat = $rowstd['value_dpicategory'];
$html .= "
Norme armonizzate di riferimento
Cat Protezione DPI
Categoria del DPI
";
};
$html .= '
';
if ($idarttype == 1) {
$html .= <<
Altre informazioni
Resistenza allo scivolamento
Autoclavabile
Certificazione UKCA
Calzature con plantari personalizzati (DGUV)
Calzature modificate con rialzi o inserti nel fondo (DGUV)
Calzature ESD
HTML;
}
// Add prot category
$html .= '
';
while ($rowaddreq = $resultaddreq->fetch_assoc()) {
$html .= "
Categoria di protezione aggiuntiva
";
};
$html .= '
';
//photos da fare
$photoRows = '';
$hasPhotos = false;
// Check for photocover
if (!empty($photocover)) {
$coverPath = $base_url . "uploadimages/" . htmlspecialchars($photocover);
$localCoverPath = __DIR__ . "/uploadimages/" . htmlspecialchars($photocover);
if (file_exists($localCoverPath)) {
$imageData = base64_encode(file_get_contents($localCoverPath));
$mimeType = mime_content_type($localCoverPath);
$photoRows .= <<
Foto Articolo / Article Photo
HTML;
$hasPhotos = true;
}
}
// Check for photoone
if (!empty($photoone)) {
$photoOnePath = $base_url . "uploaddocuments/" . htmlspecialchars($photoone);
$localPhotoOnePath = $_SERVER['DOCUMENT_ROOT'] . "/modulo_certificazione/public/uploaddocuments/" . htmlspecialchars($photoone);
if (file_exists($localPhotoOnePath)) {
$imageData = base64_encode(file_get_contents($localPhotoOnePath));
$mimeType = mime_content_type($localPhotoOnePath);
$photoRows .= <<
Foto 1 / Photo 1
HTML;
$hasPhotos = true;
}
}
// Check for phototwo
if (!empty($phototwo)) {
$photoTwoPath = $base_url . "uploaddocuments/" . htmlspecialchars($phototwo);
$localPhotoTwoPath = $_SERVER['DOCUMENT_ROOT'] . "/modulo_certificazione/public/uploaddocuments/" . htmlspecialchars($phototwo);
if (file_exists($localPhotoTwoPath)) {
$imageData = base64_encode(file_get_contents($localPhotoTwoPath));
$mimeType = mime_content_type($localPhotoTwoPath);
$photoRows .= <<
Foto 2 / Photo 2
HTML;
$hasPhotos = true;
}
}
// Add the table only if there are photos
if ($hasPhotos) {
$html .= <<
FOTO DEL PRODOTTO / PRODUCT PHOTOS
$photoRows
HTML;
}
// virus prot
if ($virusprot == "Y") :
$html .= '
Protezione da Virus
' . (($virusprot == 'Y') ? 'Sì' : 'No') . '
';
$html .= '
';
endif;
// chem agent
if (!empty($chemicalAgents)) :
$html .= '
Chemical Agent ';
if ($idarttype == 2) {
$html .= 'Level
Degradation Percentage ';
}
$html .= '
';
foreach ($chemicalAgents as $agent) :
$html .= "
{$agent['name_chemicalagent']} ";
if ($idarttype == 2) {
$html .= "
";
}
$html .= ' ';
endforeach;
$html .= '
';
endif;
//table risk query
$riskquery = new WA_MySQLi_RS("riskquery", $cmctrfdb, 0);
$riskquery->setQuery("SELECT * FROM fillrisk_td LEFT JOIN riskarea_td ON riskarea_td.idriskarea_td=fillrisk_td.idriskarea_td WHERE fillrisk_td.iddata_td = '$idtd' ORDER BY CAST(SUBSTRING_INDEX(CONCAT(riskarea_td.risknumber,'.0.0.0'),'.',1) AS UNSIGNED), CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(riskarea_td.risknumber,'.0.0.0'),'.',2),'.',-1) AS UNSIGNED), CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(riskarea_td.risknumber,'.0.0.0'),'.',3),'.',-1) AS UNSIGNED), CAST(SUBSTRING_INDEX(SUBSTRING_INDEX(CONCAT(riskarea_td.risknumber,'.0.0.0'),'.',4),'.',-1) AS UNSIGNED)");
$riskquery->execute();
$html .= "
VALUTAZIONE DEI RISCHI (REQUISITI ESSENZIALI DI SALUTE E SICUREZZA IN ACCORDO ALL'ALLEGATO II DEL REGOLAMENTO (UE) 2016/425) /
RISK ASSESSMENT (ESSENTIAL HEALTH AND SAFETY REQUIREMENT ACCORDING TO ANNEX II OF THE REGULATION (EU) 2016/425)
{$requirementnumbertd}
{$requirementnametd}
{$applicabletd}
{$covertbytd}
";
$html .= <<
HTML;
// Aggiungi qui il codice PHP fornito
while (!$riskquery->atEnd()) {
$risknumber = $riskquery->getColumnVal("risknumber");
$riskname_it = $riskquery->getColumnVal("riskname_it");
$applicable = ($riskquery->getColumnVal("applicable") == "1") ? 'checked' : '';
$customCheckId = "customCheck{$risknumber}";
$covertext = '';
if ($riskquery->getColumnVal("coveredby") == 'coverone') {
$covertext = $coverone;
} else if ($riskquery->getColumnVal("coveredby") == 'covertwo') {
$covertext = $covertwo;
} else if ($riskquery->getColumnVal("coveredby") == 'coverthree') {
$covertext = $coverthree;
}
$html .= <<
{$risknumber}
{$riskname_it}
HTML;
$riskquery->moveNext();
}
$html .= <<
HTML;
$html .= '
';
//parts
$html .= "
COMPONENTI DEL DPI / PPE PARTS
N.
{$descriptionpart}
{$articlepart}
{$colorpart}
{$descriptionpartlist}
{$reprtonumbertrdlabtitle}
{$trddatereporttitle}
";
$partsquery = new WA_MySQLi_RS("partsquery", $cmctrfdb, 0);
$partsquery->setQuery("SELECT * FROM identificationparts WHERE identificationparts.idtrfdetails='$idtrftd'");
$partsquery->execute();
while (!$partsquery->atEnd()) {
// Decodifica e sanitizza ogni valore del database
$partsidnumber = htmlspecialchars(html_entity_decode($partsquery->getColumnVal('partsidnumber'), ENT_QUOTES | ENT_HTML5, 'UTF-8'));
$partdescription = htmlspecialchars(html_entity_decode($partsquery->getColumnVal('description_identificationparts'), ENT_QUOTES | ENT_HTML5, 'UTF-8'));
$article = htmlspecialchars(html_entity_decode($partsquery->getColumnVal('article_identificationparts'), ENT_QUOTES | ENT_HTML5, 'UTF-8'));
$color = htmlspecialchars(html_entity_decode($partsquery->getColumnVal('color_identificationparts'), ENT_QUOTES | ENT_HTML5, 'UTF-8'));
$material = htmlspecialchars(html_entity_decode($partsquery->getColumnVal('material_identificationparts'), ENT_QUOTES | ENT_HTML5, 'UTF-8'));
$reportnumber = htmlspecialchars(html_entity_decode($partsquery->getColumnVal('cmcreportnumber_identificationparts'), ENT_QUOTES | ENT_HTML5, 'UTF-8'));
$reportdate = htmlspecialchars(html_entity_decode($partsquery->getColumnVal('cmcreportdate_identificationparts'), ENT_QUOTES | ENT_HTML5, 'UTF-8'));
// Costruisci la riga HTML
$html .= "
";
$partsquery->moveNext();
}
$html .= '
';
//ce mark example
$localisationppemarking = $row['localisationppemarking'];
$sizeexamplecemark = $row['sizeexamplecemark'];
$manufacturerlogoid = $row['manufacturerlogoid'];
$filenamelogo = $row['filenamelogo'];
$monthyearprod = $row['monthyearprod'];
$serialbatchnumber = $row['serialbatchnumber'];
$standarduse = $row['standarduse'];
$symbolsaddreq = $row['symbolsaddreq'];
$proddescription = $row['qualchecktext'];
// Aggiungi il base URL alle immagini
$proddescription = preg_replace('/src="(ckupload\/[^"]+)"/', 'src="' . $base_url . '$1"', $proddescription);
// Decodifica eventuali entità HTML nel contenuto
$proddescription = html_entity_decode($proddescription);
$organismnumber = $row['organismnumber'];
$cemarkup = $row['cemarkupload'];
$filenamelogowithpath = !empty($filenamelogo) ? "{$base_url}logos/{$filenamelogo}" : "{$base_url}assets/images/notav.jpg";
// Connessione al database
$conn = new mysqli($servername, $username, $password, $dbname);
$querytdfile = "SELECT idtdfileattached, filename_fileattached, description_fileattached FROM tdfileattached WHERE iddata_td = ? AND description_fileattached = 'CE mark example'";
$stmt = $conn->prepare($querytdfile);
$stmt->bind_param("i", $idtd);
$stmt->execute();
$resulttdfile = $stmt->get_result();
$fileUploaded = $resulttdfile->num_rows > 0;
$fileDetails = $resulttdfile->fetch_assoc();
$html .= <<
ESEMPIO DI MARCATURA CE / EXAMPLE OF CE MARKING
HTML;
if ($cemarkup == 'Y' && $fileUploaded) {
// $filePathdoc = '{$base_url}uploadtddocuments/' . htmlspecialchars($fileDetails['filename_fileattached']);
$filePathdoc = $base_url . "uploadtddocuments/" . htmlspecialchars($fileDetails['filename_fileattached']);
$localFilePath = __DIR__ . "/uploadtddocuments/" . htmlspecialchars($fileDetails['filename_fileattached']);
$fileDescription = htmlspecialchars($fileDetails['description_fileattached']);
$fileExtension = strtolower(pathinfo($filePathdoc, PATHINFO_EXTENSION));
$html .= <<
FILE (se diverso da immagine il file è caricato nello zip come allegato)
HTML;
// if (in_array($fileExtension, ['jpg', 'jpeg', 'png', 'gif'])) {
// $html .= " ";
//} else {
// $linkattach = $base_url . "uploadtddocuments/" . $fileDetails['filename_fileattached'];
// $html .= "$fileDescription ";
// }
if (in_array($fileExtension, ['jpg', 'jpeg', 'png', 'gif'])) {
if (file_exists($localFilePath)) {
$imageData = base64_encode(file_get_contents($localFilePath));
$mimeType = mime_content_type($localFilePath);
$html .= " ";
} else {
$html .= "Image file not found: $localFilePath
";
}
} else {
$linkattach = $base_url . "uploadtddocuments/" . $fileDetails['filename_fileattached'];
$html .= "$fileDescription ";
}
$html .= <<
HTML;
} else {
$html .= <<
Posizione della marcatura sul DPI
Marchio del fabbricante
Codice Articolo
Indirizzo del fabbricante
Misura
Mese ed anno di produzione
Numero di serie e/o di lotto
Numero ed anno della norma armonizzata utilizzata
Simbolo/i dei requisiti supplementari
Marcatura CE
HTML;
if (!is_null($organismnumber)) {
$html .= " Numero Organismo: $organismnumber";
}
$html .= <<
HTML;
}
$stmt->close();
$conn->close();
$html .= <<
HTML;
//mezzi di controllo
$html .= <<
HTML;
//imballaggio
$packaging = $row['packaging'];
$signedontd = $row['signedontd'];
$signnametd = $row['signnametd'];
$declarconformity = $row['declarconformity'];
$webaddress = $row['webaddress'];
if ($declarconformity == 'declarone') {
$declartext = $declarone;
} else {
$declartext = $declartwo;
}
$html .= <<
IMBALLAGGIO / PACKAGING - DICHIARAZIONE DI CONFORMITÀ UE / EU DECLARATION OF CONFORMITY
Imballaggio
Dichiarazione di conformità UE
Indirizzo del sito web
HTML;
// zip file
// Costruisci il link solo se $zipfile non è nullo
if (!is_null($zipfile)) {
$zipLink = $base_url . "uploadtddocuments/ziptd/" . $zipfile;
$html .= <<
Scarica il file ZIP con tutti gli allegati
HTML;
}
//sign table
$html .= <<
Firmato digitalmente tramite token
Firmato il
HTML;
// chiusura
$html .= '';
//echo $html;
// Carica il tuo HTML nel Dompdf
$dompdf->loadHtml($html);
// (Opzionale) Imposta il formato e l'orientamento della pagina
// Puoi specificare la dimensione del documento e l'orientamento come segue:
$dompdf->setPaper('A4', 'portrait');
// Renderizza il PDF
$dompdf->render();
//rename pdf
$timestamp = time();
$fileName = $trftdnumber . '-' . 'Rev.' . $tdrev . '-' . $timestamp . '.pdf';
$filePath = 'tdpdf/' . $fileName;
// Stream il PDF al browser
// Salva il PDF su disco
$pdfOutput = $dompdf->output();
file_put_contents($filePath, $pdfOutput);
include('include/zipcreationtd.php');
$UpdateQuery = new WA_MySQLi_Query($cmctrfdb);
$UpdateQuery->Action = "update";
$UpdateQuery->Table = "data_td";
$UpdateQuery->bindColumn("pdffilenametd", "s", "$fileName", "WA_DEFAULT");
$UpdateQuery->bindColumn("zipname", "s", "$namefilezip", "WA_DEFAULT");
$UpdateQuery->addFilter("iddata_td", "=", "i", "" . ($idtd) . "");
$UpdateQuery->execute();
$UpdateGoTo = "";
if (function_exists("rel2abs")) $UpdateGoTo = $UpdateGoTo ? rel2abs($UpdateGoTo, dirname(__FILE__)) : "";
$UpdateQuery->redirect($UpdateGoTo);