diff options
author | Camil Staps | 2016-07-20 11:19:54 +0200 |
---|---|---|
committer | Camil Staps | 2016-07-20 11:19:54 +0200 |
commit | 5a3c44e821225e4f8f7f3cf25c18727b332c33e6 (patch) | |
tree | 566c2a1e65cc4a264e395ccd5387abf37463c126 /classes/correspondence.php | |
parent | Calculatable trait (diff) |
Spaces to tabs in classes
Diffstat (limited to 'classes/correspondence.php')
-rw-r--r-- | classes/correspondence.php | 558 |
1 files changed, 279 insertions, 279 deletions
diff --git a/classes/correspondence.php b/classes/correspondence.php index 96c0863..fde3069 100644 --- a/classes/correspondence.php +++ b/classes/correspondence.php @@ -1,22 +1,22 @@ <?php /** * This file provides the correspondence class - * + * * @author Camil Staps - * + * * BusinessAdmin: administrative software for small companies * Copyright (C) 2015 Camil Staps (ViviSoft) - * + * * This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. - * + * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the * GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License * along with this program. If not, see <http://www.gnu.org/licenses/>. */ @@ -25,287 +25,287 @@ * An extension of FPDF to generate personalized correspondence PDFs */ class correspondence extends FPDF { - /** - * @var $contact Holds the contact this correspondence will be sent to - * @var $language Holds the language this correspondence should be sent in - */ - var $contact, $language; - - /** - * If you'd want, you could change these constants to encode an RGB colour for headings in your PDFs - */ - const HEAD_RED = 0; - const HEAD_GREEN = 0; - const HEAD_BLUE = 0; + /** + * @var $contact Holds the contact this correspondence will be sent to + * @var $language Holds the language this correspondence should be sent in + */ + var $contact, $language; - /** - * Array holding the translations - * - * @see _() A function to translate - */ - protected static $translations = array( - 'adres' => array( - 'en' => 'Address', - 'nl' => 'Adres'), - 'amount' => array( - 'en' => 'Amount', - 'nl' => 'Subtotaal'), - 'amount-due' => array( - 'en' => 'Total amount due', - 'nl' => 'Te voldoen'), - 'biccode' => array( - 'en' => 'The BIC code of our bank is %%.', - 'nl' => 'De BIC-code van de bank is %%.'), - 'btwnr' => array( - 'en' => 'VAT nr', - 'nl' => 'BTW nr'), - 'description' => array( - 'en' => 'Description', - 'nl' => 'Omschrijving'), - 'due-date' => array( - 'en' => 'Due date', - 'nl' => 'Vervaldatum'), - 'email' => array( - 'en' => 'Email', - 'nl' => 'Email'), - 'iban' => array( - 'en' => 'IBAN', - 'nl' => 'IBAN'), - 'invoice' => array( - 'en' => 'Invoice', - 'nl' => 'Factuur'), - 'invoice-date' => array( - 'en' => 'Invoice date', - 'nl' => 'Factuurdatum'), - 'invoice-nr' => array( - 'en' => 'Invoice number', - 'nl' => 'Factuurnummer'), - 'price-excl' => array( - 'en' => 'Price excl.', - 'nl' => 'Prijs excl.'), - 'price-incl' => array( - 'en' => 'Price incl.', - 'nl' => 'Prijs incl.'), - 'request' => array( - 'en' => 'You are kindly requested to transfer the total amount before the due date to the provided IBAN nr.', - 'nl' => 'U wordt vriendelijk verzocht het te voldoen bedrag voor de vervaldatum van de factuur over te maken naar opgegeven IBAN-nummer.'), - 'tel-nr' => array( - 'en' => 'Tel.', - 'nl' => 'Tel.'), - 'total' => array( - 'en' => 'Total', - 'nl' => 'Totaal'), - 'vat' => array( - 'en' => 'VAT', - 'nl' => 'BTW'), - ); + /** + * If you'd want, you could change these constants to encode an RGB colour for headings in your PDFs + */ + const HEAD_RED = 0; + const HEAD_GREEN = 0; + const HEAD_BLUE = 0; - /** - * @var $page_height The height of a page in millimeters - * @var $margin_bottom The bottom margin in millimeters - */ - protected static $page_height = 297; // A4 - protected static $margin_bottom = 30; + /** + * Array holding the translations + * + * @see _() A function to translate + */ + protected static $translations = array( + 'adres' => array( + 'en' => 'Address', + 'nl' => 'Adres'), + 'amount' => array( + 'en' => 'Amount', + 'nl' => 'Subtotaal'), + 'amount-due' => array( + 'en' => 'Total amount due', + 'nl' => 'Te voldoen'), + 'biccode' => array( + 'en' => 'The BIC code of our bank is %%.', + 'nl' => 'De BIC-code van de bank is %%.'), + 'btwnr' => array( + 'en' => 'VAT nr', + 'nl' => 'BTW nr'), + 'description' => array( + 'en' => 'Description', + 'nl' => 'Omschrijving'), + 'due-date' => array( + 'en' => 'Due date', + 'nl' => 'Vervaldatum'), + 'email' => array( + 'en' => 'Email', + 'nl' => 'Email'), + 'iban' => array( + 'en' => 'IBAN', + 'nl' => 'IBAN'), + 'invoice' => array( + 'en' => 'Invoice', + 'nl' => 'Factuur'), + 'invoice-date' => array( + 'en' => 'Invoice date', + 'nl' => 'Factuurdatum'), + 'invoice-nr' => array( + 'en' => 'Invoice number', + 'nl' => 'Factuurnummer'), + 'price-excl' => array( + 'en' => 'Price excl.', + 'nl' => 'Prijs excl.'), + 'price-incl' => array( + 'en' => 'Price incl.', + 'nl' => 'Prijs incl.'), + 'request' => array( + 'en' => 'You are kindly requested to transfer the total amount before the due date to the provided IBAN nr.', + 'nl' => 'U wordt vriendelijk verzocht het te voldoen bedrag voor de vervaldatum van de factuur over te maken naar opgegeven IBAN-nummer.'), + 'tel-nr' => array( + 'en' => 'Tel.', + 'nl' => 'Tel.'), + 'total' => array( + 'en' => 'Total', + 'nl' => 'Totaal'), + 'vat' => array( + 'en' => 'VAT', + 'nl' => 'BTW'), + ); - /** - * Translate a string - * - * @see $translations The array holding the translations - * - * @param string $key The string to translate - * @param string $lang The language to translate to (two-letter code) - * - * @return string The translated string - */ - public function _($key) { - if (!array_key_exists($key, self::$translations)) - return $key; - return self::$translations[$key][$this->language]; - } - - /** - * Create a new PDF - * - * @param string $orientation See the FPDF class specs - * @param string $unit See the FPDF class specs - * @param string $size See the FPDF class specs - */ - function __construct() { - $this->FPDF('P','mm','A4'); - - $this->SetMargins(30,20,20); - $this->SetAuthor(constants::invoice_name); - $this->SetCreator('BusinessAdmin Correspondence Generator'); - $this->SetDisplayMode('fullpage','continuous'); - } + /** + * @var $page_height The height of a page in millimeters + * @var $margin_bottom The bottom margin in millimeters + */ + protected static $page_height = 297; // A4 + protected static $margin_bottom = 30; - /** - * Workaround for euro signs - * - * Euro signs in FPDF should be chr(128). Other signs don't have to be changed. - * - * @return a valuta symbol that can be used in FPDF - */ - public static function valuta() { - switch (constants::invoice_valuta) { - case '€': - return chr(128); - default: - return constants::invoice_valuta; - } - } + /** + * Translate a string + * + * @see $translations The array holding the translations + * + * @param string $key The string to translate + * @param string $lang The language to translate to (two-letter code) + * + * @return string The translated string + */ + public function _($key) { + if (!array_key_exists($key, self::$translations)) + return $key; + return self::$translations[$key][$this->language]; + } - /** - * Set the language of the correspondence (used to translate stuff) - * - * @param string $lang The language, two letter code ('en', 'nl', ...) - */ - function SetLangauge($lang) { - $supported = array('nl', 'en'); - if (!in_array($lang, $supported)) { - throw new Exception("Language not supported"); - } else { - $this->language = $lang; - } - } - - /** - * Set the contact to whom this correspondence will be sent (used for the address) - * - * @param contact $contact The contact - */ - function SetContact($contact) { - $this->contact = $contact; + /** + * Create a new PDF + * + * @param string $orientation See the FPDF class specs + * @param string $unit See the FPDF class specs + * @param string $size See the FPDF class specs + */ + function __construct() { + $this->FPDF('P','mm','A4'); - $this->language = $contact->getLanguage(); - } + $this->SetMargins(30,20,20); + $this->SetAuthor(constants::invoice_name); + $this->SetCreator('BusinessAdmin Correspondence Generator'); + $this->SetDisplayMode('fullpage','continuous'); + } - /** - * Makes a header with your details and the address of the contact - */ - function CorrespondenceHeader() { - if (file_exists(constants::files_folder . 'logo-correspondence.png')) { - $this->Image(constants::files_folder . 'logo-correspondence.png',30,20,50); - } - - $this->SetFont('Helvetica','',7); - $this->Cell(110,20); - $this->Cell(12,1,' ','T'); - $this->Cell(2,1); - $this->Cell(35,1,' ','T'); - $this->Ln(); - - $this->Cell(110,3.5); - $this->SetFont('','B'); - $this->Cell(12,3.5,$this->_('adres'),'',0,'R'); - $this->Cell(2,3.5); - $this->SetFont('',''); - $this->Cell(35,3.5, constants::invoice_name); - $this->Ln(); - - $this->Cell(124,3.5); - $this->Cell(35,3.5, constants::invoice_address_1); - $this->Ln(); - $this->Cell(124,3.5); - $this->Cell(35,3.5, constants::invoice_address_2); - $this->Ln(); - $this->Cell(124,3.5); - $this->Cell(35,3.5, constants::invoice_address_3); - $this->Ln(); - $this->Cell(160,1.5); - $this->Ln(); - $this->Cell(110,3.5); - $this->SetFont('','B'); - $this->Cell(12,3.5,$this->_('btwnr'),'',0,'R'); - $this->Cell(2,3.5); - $this->SetFont('',''); - $this->Cell(35,3.5, constants::invoice_tax_nr); - $this->Ln(); - $this->Cell(160,1.5); - $this->Ln(); - $this->Cell(110,3.5); - $this->SetFont('','B'); - $this->Cell(12,3.5, $this->_('iban'),'',0,'R'); - $this->Cell(2,3.5); - $this->SetFont('',''); - $this->Cell(35,3.5, constants::invoice_iban); - $this->Ln(); - $this->Cell(160,1.5); - $this->Ln(); - $this->Cell(110,3.5); - $this->SetFont('','B'); - $this->Cell(12,3.5, $this->_('tel-nr'),'',0,'R'); - $this->Cell(2,3.5); - $this->SetFont('','',7); - $this->Cell(35,3.5, constants::invoice_tel_nr); - $this->Ln(); - $this->Cell(110,3.5); - $this->SetFont('','B'); - $this->Cell(12,3.5, $this->_('email'),'',0,'R'); - $this->Cell(2,3.5); - $this->SetFont('',''); - $this->Cell(35,3.5, constants::invoice_email); - $this->Ln(); - $this->Cell(110,1); - $this->Cell(12,1,' ','B'); - $this->Cell(2,1); - $this->Cell(35,1,' ','B'); - $this->Ln(); - $this->Cell(160,15); - $this->Ln(); - - $this->SetFont('','',11); - $this->SetXY(30,56.5); - $this->Cell(90,5.5,utf8_decode($this->contact->getName())); - $this->Ln(); - $this->SetXY(30,61.5); - $this->Cell(90,5.5,utf8_decode($this->contact->getAddress())); - $this->Ln(); - $this->SetXY(30,66.5); - $this->Cell(90,5.5,utf8_decode($this->contact->getPostalCode().' '.$this->contact->getCity())); - $this->Ln(); - $this->SetXY(30,71.5); - $this->Cell(90,5.5,utf8_decode($this->contact->getCountry())); - $this->Ln(); - } - - /** - * Put PDF information - */ - function _putinfo() - { - $this->_out('/Producer '.$this->_textstring('BusinessAdmin Correspondence Generator')); - if(!empty($this->title)) - $this->_out('/Title '.$this->_textstring($this->title)); - if(!empty($this->subject)) - $this->_out('/Subject '.$this->_textstring($this->subject)); - if(!empty($this->author)) - $this->_out('/Author '.$this->_textstring($this->author)); - if(!empty($this->keywords)) - $this->_out('/Keywords '.$this->_textstring($this->keywords)); - if(!empty($this->creator)) - $this->_out('/Creator '.$this->_textstring($this->creator)); - $this->_out('/CreationDate '.$this->_textstring('D:'.@date('YmdHis'))); - } + /** + * Workaround for euro signs + * + * Euro signs in FPDF should be chr(128). Other signs don't have to be changed. + * + * @return a valuta symbol that can be used in FPDF + */ + public static function valuta() { + switch (constants::invoice_valuta) { + case '€': + return chr(128); + default: + return constants::invoice_valuta; + } + } - /** - * Have we reached the bottom of the page yet? - * - * @return bool - */ - public function endOfPage() { - return ($this->GetY() > self::$page_height - self::$margin_bottom); - } + /** + * Set the language of the correspondence (used to translate stuff) + * + * @param string $lang The language, two letter code ('en', 'nl', ...) + */ + function SetLangauge($lang) { + $supported = array('nl', 'en'); + if (!in_array($lang, $supported)) { + throw new Exception("Language not supported"); + } else { + $this->language = $lang; + } + } - /** - * Start a new page if we're on the end - */ - public function addPageIfOnEnd() { - if ($this->endOfPage()) { - $this->Ln(); - $this->AddPage(); - $this->Cell(100, 5, ''); // blank line - $this->Ln(); - } - } + /** + * Set the contact to whom this correspondence will be sent (used for the address) + * + * @param contact $contact The contact + */ + function SetContact($contact) { + $this->contact = $contact; + + $this->language = $contact->getLanguage(); + } + + /** + * Makes a header with your details and the address of the contact + */ + function CorrespondenceHeader() { + if (file_exists(constants::files_folder . 'logo-correspondence.png')) { + $this->Image(constants::files_folder . 'logo-correspondence.png',30,20,50); + } + + $this->SetFont('Helvetica','',7); + $this->Cell(110,20); + $this->Cell(12,1,' ','T'); + $this->Cell(2,1); + $this->Cell(35,1,' ','T'); + $this->Ln(); + + $this->Cell(110,3.5); + $this->SetFont('','B'); + $this->Cell(12,3.5,$this->_('adres'),'',0,'R'); + $this->Cell(2,3.5); + $this->SetFont('',''); + $this->Cell(35,3.5, constants::invoice_name); + $this->Ln(); + + $this->Cell(124,3.5); + $this->Cell(35,3.5, constants::invoice_address_1); + $this->Ln(); + $this->Cell(124,3.5); + $this->Cell(35,3.5, constants::invoice_address_2); + $this->Ln(); + $this->Cell(124,3.5); + $this->Cell(35,3.5, constants::invoice_address_3); + $this->Ln(); + $this->Cell(160,1.5); + $this->Ln(); + $this->Cell(110,3.5); + $this->SetFont('','B'); + $this->Cell(12,3.5,$this->_('btwnr'),'',0,'R'); + $this->Cell(2,3.5); + $this->SetFont('',''); + $this->Cell(35,3.5, constants::invoice_tax_nr); + $this->Ln(); + $this->Cell(160,1.5); + $this->Ln(); + $this->Cell(110,3.5); + $this->SetFont('','B'); + $this->Cell(12,3.5, $this->_('iban'),'',0,'R'); + $this->Cell(2,3.5); + $this->SetFont('',''); + $this->Cell(35,3.5, constants::invoice_iban); + $this->Ln(); + $this->Cell(160,1.5); + $this->Ln(); + $this->Cell(110,3.5); + $this->SetFont('','B'); + $this->Cell(12,3.5, $this->_('tel-nr'),'',0,'R'); + $this->Cell(2,3.5); + $this->SetFont('','',7); + $this->Cell(35,3.5, constants::invoice_tel_nr); + $this->Ln(); + $this->Cell(110,3.5); + $this->SetFont('','B'); + $this->Cell(12,3.5, $this->_('email'),'',0,'R'); + $this->Cell(2,3.5); + $this->SetFont('',''); + $this->Cell(35,3.5, constants::invoice_email); + $this->Ln(); + $this->Cell(110,1); + $this->Cell(12,1,' ','B'); + $this->Cell(2,1); + $this->Cell(35,1,' ','B'); + $this->Ln(); + $this->Cell(160,15); + $this->Ln(); + + $this->SetFont('','',11); + $this->SetXY(30,56.5); + $this->Cell(90,5.5,utf8_decode($this->contact->getName())); + $this->Ln(); + $this->SetXY(30,61.5); + $this->Cell(90,5.5,utf8_decode($this->contact->getAddress())); + $this->Ln(); + $this->SetXY(30,66.5); + $this->Cell(90,5.5,utf8_decode($this->contact->getPostalCode().' '.$this->contact->getCity())); + $this->Ln(); + $this->SetXY(30,71.5); + $this->Cell(90,5.5,utf8_decode($this->contact->getCountry())); + $this->Ln(); + } + + /** + * Put PDF information + */ + function _putinfo() + { + $this->_out('/Producer '.$this->_textstring('BusinessAdmin Correspondence Generator')); + if(!empty($this->title)) + $this->_out('/Title '.$this->_textstring($this->title)); + if(!empty($this->subject)) + $this->_out('/Subject '.$this->_textstring($this->subject)); + if(!empty($this->author)) + $this->_out('/Author '.$this->_textstring($this->author)); + if(!empty($this->keywords)) + $this->_out('/Keywords '.$this->_textstring($this->keywords)); + if(!empty($this->creator)) + $this->_out('/Creator '.$this->_textstring($this->creator)); + $this->_out('/CreationDate '.$this->_textstring('D:'.@date('YmdHis'))); + } + + /** + * Have we reached the bottom of the page yet? + * + * @return bool + */ + public function endOfPage() { + return ($this->GetY() > self::$page_height - self::$margin_bottom); + } + + /** + * Start a new page if we're on the end + */ + public function addPageIfOnEnd() { + if ($this->endOfPage()) { + $this->Ln(); + $this->AddPage(); + $this->Cell(100, 5, ''); // blank line + $this->Ln(); + } + } } |