268 lines
10 KiB
PHP
268 lines
10 KiB
PHP
<head>
|
|
<meta charset="UTF-8">
|
|
</head>
|
|
<?php require_once('../Connections/cmctrfdb.php'); ?>
|
|
<?php require_once('../webassist/mysqli/rsobj.php');
|
|
require_once('../webassist/mysqli/queryobj.php'); ?>
|
|
<?php
|
|
//global variable
|
|
include('include/generalsettings.php');
|
|
// start fpdf
|
|
require('fpdf/fpdf.php');
|
|
include('languages/' . $_SESSION['langselect'] . '/tdpdflang.php');
|
|
include('languages/' . $_SESSION['langselect'] . '/tdgen.php');
|
|
|
|
function convertToPDFEncoding($string)
|
|
{
|
|
$decoded = html_entity_decode($string, ENT_QUOTES, 'UTF-8');
|
|
return iconv('UTF-8', 'windows-1252//IGNORE', $decoded);
|
|
}
|
|
|
|
//include('include/headscript.php');
|
|
?>
|
|
<?php
|
|
if (isset($_GET["idtrf"])) {
|
|
$idtrf = $_GET["idtrf"];
|
|
}
|
|
if (isset($_POST["idtrf"])) {
|
|
$idtrf = $_POST["idtrf"];
|
|
}
|
|
//zip creation
|
|
include('include/zipcreation.php');
|
|
include('datarecover/parsedatatd.php');
|
|
$nappform = $tdData['tdnumber'];
|
|
if ($trfData['revtrf'] == 0) {
|
|
$nappformfinaltest = $tdpdftitle . ' N. ' . $nappform;
|
|
} else {
|
|
$revnbr = $trfData['revtrf'];
|
|
$nappformfinaltest = $tdpdftitle . ' N. ' . $nappform . 'R' . $revnbr;
|
|
}
|
|
if ($trfData['revtrf'] == 0) {
|
|
$nappformfinal = $pdnappform . ' ' . $nappform;
|
|
} else {
|
|
$revnbr = $trfData['revtrf'];
|
|
$nappformfinal = $pdnappform . ' ' . $nappform . 'R' . $revnbr;
|
|
}
|
|
$nappformfinaltest = html_entity_decode($nappformfinaltest, ENT_QUOTES);
|
|
$nappformfinaltest = iconv('UTF-8', 'windows-1252//IGNORE', $nappformfinaltest);
|
|
$nappformfinal = html_entity_decode($nappformfinal, ENT_QUOTES);
|
|
$nappformfinal = iconv('UTF-8', 'windows-1252//IGNORE', $nappformfinal);
|
|
//$nappformtest=$pdnappformtest.' '.$nappform;
|
|
//$nappformfinal=$nappform;
|
|
//$nappformfinal=$nappformtest;
|
|
$_SESSION["idcertificatesession"] = $idcertificate;
|
|
$_SESSION["sndrptsession"] = $sndrpt;
|
|
$_SESSION["revisioncert"] = $certificationrevision->getColumnVal("rev");
|
|
$_SESSION["revisioncertm30"] = $certificationrevision->getColumnVal("revm30");
|
|
$_SESSION["certname"] = $certificationrevision->getColumnVal("name_certification");
|
|
$_SESSION["certname30"] = $certificationrevision->getColumnVal("m30namecert");
|
|
$daterevformat = $certificationrevision->getColumnVal("date");
|
|
$timeStamp = strtotime($daterevformat);
|
|
$_SESSION["certdate"] = date("d-m-Y", $timeStamp);
|
|
$daterevformatm30 = $certificationrevision->getColumnVal("datem30");
|
|
$timeStampm30 = strtotime($daterevformatm30);
|
|
$_SESSION["certdatem30"] = date("d-m-Y", $timeStampm30);
|
|
$_SESSION["certtitle"] = $_SESSION["certname"] . ' rev. ' . $_SESSION["revisioncert"] . ' del ' . $_SESSION["certdate"];
|
|
$_SESSION["certtitlem30"] = $_SESSION["certname30"] . ' rev. ' . $_SESSION["revisioncertm30"] . ' del ' . $_SESSION["certdatem30"];
|
|
|
|
class PDF extends FPDF
|
|
{
|
|
/* CENTER IMAGE IN CELL */
|
|
const DPI = 96;
|
|
const MM_IN_INCH = 25.4;
|
|
const A4_HEIGHT = 297;
|
|
const A4_WIDTH = 210;
|
|
// tweak these values (in pixels), convert mm to px
|
|
const MAX_WIDTH = 359.05511811; /* IMG CONTAINER - WIDTH */
|
|
const MAX_HEIGHT = 226.77165354; /* IMG CONTAINER - HEIGHT */
|
|
const MAX_WIDTH_S = 264.56692913; /* IMG CONTAINER SMALL - WIDTH */
|
|
const MAX_HEIGHT_S = 158.74015748; /* IMG CONTAINER SMALL - HEIGHT */
|
|
function pixelsToMM($val)
|
|
{
|
|
return $val * self::MM_IN_INCH / self::DPI;
|
|
}
|
|
function resizeToFit($imgFilename, $cellWidth, $cellHeight, $containerSize)
|
|
{
|
|
list($width, $height) = getimagesize($imgFilename);
|
|
if ($containerSize == 'S') {
|
|
/* SMALL CONTAINER SIZE */
|
|
$widthScale = self::MAX_WIDTH_S / $width;
|
|
$heightScale = self::MAX_HEIGHT_S / $height;
|
|
} else {
|
|
/* DEFAULT CONTAINER SIZE */
|
|
$widthScale = self::MAX_WIDTH / $width;
|
|
$heightScale = self::MAX_HEIGHT / $height;
|
|
}
|
|
$scale = min($widthScale, $heightScale);
|
|
$width_in_mm = round($this->pixelsToMM($scale * $width)); /* IMAGE WIDTH */
|
|
$height_in_mm = round($this->pixelsToMM($scale * $height)); /* IMAGE HEIGHT */
|
|
/* IF IMAGE WIDTH IS SMALLER THAN THE CELL WIDTH, STRETCH IMAGE */
|
|
if ($width_in_mm < $cellWidth) {
|
|
$add_w = $cellWidth - $width_in_mm;
|
|
} else {
|
|
$add_w = 0;
|
|
}
|
|
|
|
/* IF IMAGE IS IN PORTRAIT MODE, ALIGN TO CENTER */
|
|
if ($width_in_mm <= ($cellWidth / 2)) {
|
|
$image_x = $width_in_mm / 2;
|
|
$add_w = 0;
|
|
} else {
|
|
$image_x = 1;
|
|
}
|
|
/* IF IMAGE IS TALLER THAN CELL HEIGHT, RESIZE TO FIT */
|
|
if ($height_in_mm > $cellHeight) {
|
|
$height_in_mm = $cellHeight;
|
|
}
|
|
/* IF IMAGE IS WIDER THAN CELL, RESIZE TO FIT */
|
|
if ($width_in_mm > $cellWidth) {
|
|
$width_in_mm = $cellWidth - 2;
|
|
}
|
|
return array(
|
|
$width_in_mm,
|
|
$height_in_mm,
|
|
$add_w,
|
|
$image_x
|
|
);
|
|
}
|
|
function centreImage($img, $cellWidth, $cellHeight, $containerSize)
|
|
{
|
|
list($width, $height, $add_image_width, $add_abscissa) = $this->resizeToFit($img, $cellWidth - 2, $cellHeight - 1, $containerSize);
|
|
// $this->Image($img, $this->GetX()+$add_abscissa, $this->GetY(), $width+$add_image_width, $height);
|
|
$this->Image($img, $this->GetX() + $add_abscissa, $this->GetY() + 1, $width + $add_image_width, $height - 1);
|
|
}
|
|
/* END CENTER IMAGE IN CELL */
|
|
// Page header
|
|
function Header()
|
|
{
|
|
// Logo
|
|
|
|
// Assumi che $companyData sia già definito e contenga i dati necessari
|
|
if (isset($_SESSION['companylogo']) && !empty($_SESSION['companylogo'])) {
|
|
|
|
// Costruisci il percorso dell'immagine nella cartella logos
|
|
$companylogo = "logos/" . $_SESSION['companylogo'];
|
|
if (file_exists($companylogo)) {
|
|
list($width, $height) = getimagesize($companylogo); // Ottiene le dimensioni originali dell'immagine
|
|
|
|
$max_height = 15; // Imposta l'altezza massima desiderata
|
|
$scale = $max_height / $height; // Calcola il fattore di scala per mantenere le proporzioni
|
|
$new_width = $width * $scale; // Calcola la nuova larghezza basata sul fattore di scala
|
|
|
|
// Inserisci l'immagine del logo con le dimensioni scalate e la posizione specificate
|
|
$this->Image($companylogo, 5, 5, $new_width, $max_height);
|
|
}
|
|
// Se il file non esiste, non fare nulla, lasciando lo spazio vuoto
|
|
}
|
|
|
|
$this->SetFont('Arial', '', 7);
|
|
$this->Ln(5);
|
|
$this->Cell(0, -5, $_SESSION['companyname'], 0, 0, "R");
|
|
$this->Cell(0, 2, $_SESSION['companyaddress'], 0, 0, "R");
|
|
$this->Cell(0, 9, $_SESSION['phonemail'], 0, 0, "R");
|
|
$this->SetFont('Arial', 'B', 10);
|
|
$this->Ln(5);
|
|
if ($_SESSION["sndrptsession"] == 'N' and $_SESSION["idcertificatesession"] == 1 || $_SESSION["idcertificatesession"] == 3 || $_SESSION["idcertificatesession"] == 8 || $_SESSION["idcertificatesession"] == 9) {
|
|
$this->Cell(0, 35, $GLOBALS['nappformfinaltest'], 0, 0, "C");
|
|
} else {
|
|
$this->Cell(0, 35, $GLOBALS['nappformfinal'], 0, 0, "C");
|
|
}
|
|
// Line break
|
|
$this->Ln(25);
|
|
}
|
|
// Page footer
|
|
function Footer()
|
|
{
|
|
// Position at 1.5 cm from bottom
|
|
|
|
$this->SetY(-45);
|
|
// Arial italic 8
|
|
$this->SetFont('Arial', '', 8);
|
|
// Page number and certification revision
|
|
// $revisioncert=$certificationrevision->getColumnVal("rev");
|
|
// $certname=$certificationrevision->getColumnVal("name_certification");
|
|
// $certdate=$certificationrevision->getColumnVal("date");
|
|
// $certtitle=$certname.' rev. '.$revisioncert.' '.$certdate;
|
|
$certittle = $_SESSION["certtitle"];
|
|
$certittlem30 = $_SESSION["certtitlem30"];
|
|
if ($_SESSION["sndrptsession"] == 'N' and $_SESSION["idcertificatesession"] == 1 || $_SESSION["idcertificatesession"] == 3 || $_SESSION["idcertificatesession"] == 8 || $_SESSION["idcertificatesession"] == 9) {
|
|
$this->Cell(0, 10, $certittlem30 . ' - Pagina ' . $this->PageNo() . '/{nb}', 0, 0, 'C');
|
|
|
|
$this->Image('../images/cimaclaboratories.png', 10, 260, 190);
|
|
} else {
|
|
$this->Cell(0, 10, $certittle . ' - Pagina ' . $this->PageNo() . '/{nb}', 0, 0, 'C');
|
|
$this->Image('../images/cimaccertifications.png', 10, 260, 190);
|
|
}
|
|
}
|
|
//include('pdfcreation/headerandfooter.php');
|
|
}
|
|
//some general data
|
|
$certname = $certificationrevision->getColumnVal("name_certification");
|
|
// Instanciation of inherited class
|
|
$pdf = new PDF();
|
|
|
|
$pdf->AddFont('DejaVuSans', '', 'DejaVuSans.php');
|
|
|
|
$pdf->AliasNbPages();
|
|
$pdf->AddPage();
|
|
$pdf->SetFont('Times', '', 9);
|
|
$pdf->SetAutoPageBreak(true, 45);
|
|
// from here start customization based on certification required required
|
|
// certificate 5 and 6 Table: contacts auditdpi and documents
|
|
|
|
|
|
|
|
//header manufacturer data
|
|
include('tdpdfcreation/headercertificatetable.php');
|
|
$pdf->Ln();
|
|
//header prod place
|
|
include('tdpdfcreation/prodplace.php');
|
|
$pdf->Ln();
|
|
//header risk assesment
|
|
include('tdpdfcreation/riskassesment.php');
|
|
$pdf->Ln();
|
|
//description table
|
|
//include('pdfcreation/descriptiontable.php');
|
|
$pdf->Ln();
|
|
// standards table
|
|
//include('pdfcreation/standardstable.php');
|
|
$pdf->Ln();
|
|
// additionalinfo requirements
|
|
//include('pdfcreation/addreqtable.php');
|
|
$pdf->Ln();
|
|
|
|
// additionalinfo
|
|
//include('pdfcreation/addinfotable.php');
|
|
$pdf->Ln();
|
|
|
|
// parts table
|
|
//include('pdfcreation/partstable.php');
|
|
$pdf->Ln();
|
|
|
|
// chem table
|
|
//include('pdfcreation/chemtable.php');
|
|
$pdf->Ln();
|
|
//trf option
|
|
//include('pdfcreation/trfoption.php');
|
|
$pdf->Ln();
|
|
|
|
//trf option
|
|
//include('pdfcreation/fileattached.php');
|
|
$pdf->Ln();
|
|
$pdf->Ln();
|
|
|
|
//header certificate contact
|
|
//include('pdfcreation/headercertificatetable.php');
|
|
$pdf->Ln();
|
|
//invoice contact
|
|
//include('pdfcreation/invoicecontacttable.php');
|
|
$pdf->Ln();
|
|
//Sign datatable
|
|
//include('pdfcreation/signdatatable.php');
|
|
$pdf->Ln();
|
|
|
|
//outpt pdf for all certificate
|
|
include('tdpdfcreation/pdfoutput.php');
|
|
//include('pdfcreation/pdf1sndbis.php');
|
|
|
|
?>
|