cmc-sales/app/vendors/pdfdoc.php

203 lines
7.1 KiB
PHP
Raw Normal View History

2011-05-24 02:52:38 -07:00
<?php
App::import('Vendor','tcpdf/tcpdf');
App::import('Vendor', 'fpdi/fpdi');
2011-05-24 02:52:38 -07:00
class PDFDOC extends FPDI {
2011-05-24 02:52:38 -07:00
var $xheadertext = 'CMC TECHNOLOGIES';
var $xheadercolor = array(0,0,200);
var $xfootertext = 'Copyright © %d XXXXXXXXXXX. All rights reserved.';
var $xfooterfont = PDF_FONT_NAME_MAIN ;
var $xfooterfontsize = 8 ;
var $docRef = '';
function pageContent($content) {
$this->SetTextColor(0);
$this->SetFontSize(11); //Changed from 12
2011-05-24 02:52:38 -07:00
$this->SetFont('times', '');
$this->writeHTML($content, true, false, false, false, '');
}
function Page1Header() {
$this->setY(10); // shouldn't be needed due to page margin, but helas, otherwise it's at the page top
$this->SetFillColor(255, 255, 255);
$this->SetTextColor(0 , 0, 152); //Set the Text Color to Blue
// $this->Image($file, $x, $y, $w, $h, $type, $link, $align, $resize, $dpi, $palign, $ismask, $imgmask, $border, $fitbox, $hidden)
$this->Image(K_PATH_IMAGES.'cmclogosmall.jpg', 10, 10, 30, 0, null, 'http://www.cmctechnologies.com.au', null, false, null, 'L');
$this->Cell(30);
$this->SetFont('times', 'B');
$this->SetFontSize(30);
$this->Cell(0,0, $this->xheadertext, 0,1,'C', 1);
$this->SetFontSize(10);
$this->SetY(22);
$this->Cell(30);
$this->Cell(0,0, "PTY LIMITED ACN: 085 991 224 ABN: 47 085 991 224", 0, 1, 'C', 1);
2011-05-24 02:52:38 -07:00
//$this->Rect($x, $y, $w, $h, $style, $border_style);
$this->Rect($this->GetX()+33, $this->GetY()+2, 157, 1, 'DF', array('width'=>0), array(0, 0, 0));
/* Start the contact details */
$this->SetTextColor(0); //Set the Text Color to Black
$this->MultiCell(18, 0, "Phone:\nFax:\nEmail:\nWeb Site:\n", 0, 'L', 0, 0, 45, 32);
$this->MultiCell(50, 0, "+61 2 9669 4000<br>+61 2 9669 4111<br><a href=\"mailto:sales@cmctechnologies.com.au\">sales@cmctechnologies.com.au</a>
<br><a href=\"http://www.cmctechnologies.com.au\">www.cmctechnologies.com.au</a><br>", 0, 'L', 0, 0, 65, null, true, 0, true);
$this->MultiCell(50, 0, "Unit 19, 77 Bourke Rd\nAlexandria\nNSW 2015\nAUSTRALIA\n", 0, 'L', 0, 0, 150, null);
$this->SetTextColor(0 , 0, 152); //Set the Text Color to Blue
$this->SetFont('times', 'B');
$this->MultiCell(30, 20, "Engineering &\nIndustrial\nInstrumentation", 0, 'L', 0, 1, 10,37);
}
/**
*Footer for the 1st (and subsequent content) pages.
*/
function Page1Footer() {
$this->SetAutoPageBreak(false);
$this->SetY(-20);
$this->MultiCell(0, 2, "<hr>", 0, 'C', null, 1, null, null, true, 0, true, false);
$html = <<<ENDHTML
<span style="font-size:9pt">CMC TECHNOLOGIES Provides Solutions in the Following Fields<span><br>
<table cellspacing="2"><tr><td><span style="color: #99000a; font-weight: bold">EXPLOSION PREVENTION AND PROTECTION</span>&mdash;<span style="color: #ff0019; font-weight: bold">PRESSURE RELIEF</span>&mdash;<span style="color: #00801e; font-weight: bold">VISION IN THE PROCESS</span></td></tr>
<tr><td><span style="color: #2f4be0;">FLOW MEASUREMENT</span>&mdash;<span style="color: #ab31f8;">PROCESS INSTRUMENTATION</span></td></tr>
</table>
ENDHTML;
//$this->writeHTML($html, true, 0, true, 0);
$this->writeHTMLCell(0, 0, null, null, $html, 0, 1, false, true, 'C', true);
//$this->writeHTMLCell($w, $h, $x, $y, $html, $border, $ln, $fill, $reseth, $align, $autopadding)
$this->SetAutoPageBreak(true, 20);
}
2011-08-15 17:36:48 -07:00
2011-06-15 20:27:33 -07:00
/**
* For Quotes and (hopefully) Invoices. Identifies who the document is for, date, reference number, etc.
*/
function DetailsBoxHTML($docTypeFullName, $companyName, $emailTo, $attention, $fromName, $fromEmail, $enquiryNumber, $your_reference, $issuedate, $pageCount) {
$pageNo = $this->PageNoFormatted();
$totalCount = $this->getAliasNbPages();
2011-08-15 17:36:48 -07:00
$col1width = '20%';
$col2width = '30%';
$col3width = $col1width;
$col4width = $col2width;
$todayPHPdate = strtotime($issuedate);
$todaysDateString = date('l, j F Y', $todayPHPdate);
2011-06-15 20:27:33 -07:00
$table = <<<ENDTABLE
2013-05-29 05:13:56 -07:00
<table style="padding: 4px;">
2011-06-15 22:05:34 -07:00
<tr>
<td style="width: {$col1width}; border-top: 1px solid black; border-left: 1px solid black;">QUOTATION TO:</td>
<td style="width: {$col2width}; border-top: 1px solid black;">{$companyName}</td>
<td style="width: {$col3width}; border-top: 1px solid black; border-left: 1px solid black;">FROM:</td>
<td style="width: {$col4width}; border-top: 1px solid black; border-right: 1px solid black;"><a href="mailto:{$fromEmail}">{$fromName}</a></td>
2011-06-15 20:27:33 -07:00
</tr>
2011-06-15 22:05:34 -07:00
<tr>
<td style="border-left: 1px solid black;">EMAIL TO:</td>
<td><a href="mailto:{$emailTo}">{$emailTo}</a></td>
<td style="border-left: 1px solid black;">CMC REF#:</td>
<td style="border-right: 1px solid black;">{$enquiryNumber}</td>
2011-06-15 22:05:34 -07:00
</tr>
2011-06-15 22:05:34 -07:00
<tr>
<td style="border-left: 1px solid black; border-bottom: 1px solid black;">ATTENTION:</td>
<td style="border-bottom: 1px solid black;">{$attention}</td>
<td style="border-left: 1px solid black; border-bottom: 1px solid black;">PAGE:</td>
<td style="border-right: 1px solid black; border-bottom: 1px solid black;">{$pageNo} of {$totalCount} (plus attachments)</td>
</tr>
2011-06-15 22:05:34 -07:00
<tr>
2011-06-19 18:20:44 -07:00
<td style="border-left: 1px solid black; border-bottom: 1px solid black;" colspan="2">DATE: {$todaysDateString}</td>
<td style="border-left: 1px solid black; border-bottom: 1px solid black; border-right: 1px solid black;" colspan="2">YOUR REF: {$your_reference}</td>
2011-06-15 22:05:34 -07:00
</tr>
2011-06-15 20:27:33 -07:00
</table>
ENDTABLE;
$this->SetTextColor(0); //Black Text
2011-06-15 22:05:34 -07:00
2011-06-15 20:27:33 -07:00
$this->writeHTMLCell(0, 0, null, null, $table, null, 1, null, true, 'L', false);
2011-06-15 22:05:34 -07:00
$this->SetFontSize(7);
2011-06-15 20:27:33 -07:00
2011-06-15 22:05:34 -07:00
//Kinda lame that I cant seem to wrap this text nicer. But Whatever.
$this->MultiCell(0, 0, 'The information in this document is confidential and may be privileged. If you are not the indended recipient then access, disclosure, copying or other dissemination of the contents of t his message is unauthorised and may be unlawful. Please inform the sender immediately if you are not the intended addressee.',
'', 'L', false, 1
);
$this->writeHTMLCell(0, 0, null, null, '<br><hr>', 0, 1, false,true, 'C', false);
2011-06-15 20:27:33 -07:00
}
2011-08-15 17:36:48 -07:00
2011-05-24 02:52:38 -07:00
function header() {
//$this->Image(K_PATH_IMAGES.'cmclogosmall.jpg', 10, 10, 15, 13.6, null, 'http://www.cmctechnologies.com.au', null, false, null, 'L');
$this->SetFontSize(10);
$pageNo = $this->PageNoFormatted();
2011-06-16 20:19:53 -07:00
$totalCount = $this->getAliasNbPages();
2011-08-15 17:36:48 -07:00
2011-05-24 02:52:38 -07:00
//$currentX = $this->GetX();
//$this->SetX($currentX + 40);
// $this->writeHTMLCell(0, 0, null, null, 'CONTINUES', -10, 1, false,true, 'C', false);
//$this->MultiCell(100, 13.6,"CONTINUES", 0,'C', false, 10, 60);
2011-06-16 20:19:53 -07:00
$this->MultiCell(0,13.6, "PAGE $pageNo OF $totalCount", '', 'R', false, 0, 10,5);
2011-05-24 02:52:38 -07:00
//$this->MultiCell($w, $h, $txt, $border, $align, $fill, $ln, $x, $y, $reseth, $stretch, $ishtml)
//$this->Image($file, $x, $y, $w, $h, $type, $link, $align, $resize, $dpi)
2011-06-15 20:27:33 -07:00
2011-05-24 02:52:38 -07:00
}
var $files = array();
function setFiles($files) {
$this->files = $files;
}
function concat() {
foreach($this->files AS $file) {
$pagecount = $this->setSourceFile($file);
for ($i = 1; $i <= $pagecount; $i++) {
$tplidx = $this->ImportPage($i);
$this->AddPage();
$this->useTemplate($tplidx);
}
}
}
2011-05-24 02:52:38 -07:00
}
2013-05-29 05:13:56 -07:00
?>