This repository has been archived on 2024-04-08. You can view files and clone it, but cannot push or open issues or pull requests.
khosb/modules/invoice/classes/invoice/pdf.php

137 lines
3.3 KiB
PHP
Raw Normal View History

2011-05-02 12:28:17 +00:00
<?php
/**
*/
define('FPDF_FONTPATH','includes/tcpdf/fonts/');
require_once('includes/tcpdf/tcpdf.php');
/**
* PDF Invoice Base
*
* @package AgileBill
* @subpackage Module:Invoice
*/
abstract class Invoice_PDF extends TCPDF {
// Our invoice object
protected $io;
protected $billToCompany = true;
protected $itemsSummaryMax = 16;
protected $itemsPreviousMax = 5;
protected $news = '';
protected $pageType = 'blank';
protected $show_itemized = true;
protected $show_service_range = false;
private $invoiceCurrency = '$';
private $invoiceDecimals = 2;
# Store previous invoices due
private $itemsPrevious = array();
# Stores the invoice items
protected $invoice;
protected $itemsFull;
protected $account;
# Iteration of drawing the items on the invoice
protected $iteration;
# Store the date range, that the invoice covers
protected $dateRange;
public function __construct($io) {
parent::__construct();
$this->io = $io;
// Set up the invoice
$this->SetCreator('Open Source Billing');
$this->SetAuthor(Config::sitename());
$this->SetTitle(sprintf('%s Invoice',Config::sitename()));
$this->SetSubject(sprintf('Invoice #%06s',$this->io->invnum()));
$this->SetKeywords($this->io->invnum());
$this->SetAutoPageBreak(TRUE,25);
$this->SetHeaderMargin(1);
$this->SetFooterMargin(10);
$this->SetDisplayMode('fullwidth');
#$this->setHeaderFont(array('helvetica','',8));
$this->setFooterFont(array('helvetica','',8));
}
abstract public function drawCompanyLogo();
abstract public function drawCompanyAddress();
abstract public function drawInvoiceHeader();
/**
* Enable re-iteration of the invoices items, so that they can be displayed many ways
*/
abstract public function drawLineItems($iteration);
/**
* This is called for each line item.
*/
abstract public function drawLineItem($line);
/**
* Draws the summary on the first page
*/
abstract public function drawSummaryLineItems();
abstract public function drawPaymentMethods();
abstract public function drawRemittenceStub();
public function drawCustom() {}
public function drawInvoiceDueNotice() {}
public function drawInvoicePaidNotice() {}
public function setLateFeeNotice() {}
/**
* Get a PDF invoice template
*/
public function getTemplate() {}
/*
public function setItemsFull($items) {
$this->itemsFull = $items;
}
public function setItemsPrevious($items) {
$this->itemsPrevious = $items;
}
public function setDateRange($periodStart,$periodEnd) {
$this->dateRange = sprintf('%s - %s',date(UNIX_DATE_FORMAT,$periodStart),date(UNIX_DATE_FORMAT,$periodEnd));
}
public function setCurrency($currency) {
$this->invoiceCurrency = $currency;
}
public function setDecimals($decimals) {
$this->invoiceDecimals = $decimals;
}
/**
* Render an amount into a currency display
*/
/*
protected function _currency($num) {
global $C_list;
if ($this->invoiceDecimals>3)
return $this->invoiceCurrency.number_format($num,$this->invoiceDecimals);
else
return $C_list->format_currency_num($num,$this->invoice['actual_billed_currency_id']);
}
*/
/**
* Add a watermark to the PDF
*/
public function addWaterMark($text) {
$this->SetFont('helvetica','B',50);
$this->SetTextColor(203,203,203);
$this->Rotate(0);
$this->Text(10,50,$text);
$this->Rotate(0);
$this->SetTextColor(0,0,0);
}
}
?>