io = $io; $this->co = Company::instance(); // Set up the invoice $this->SetCreator('Open Source Billing'); $this->SetAuthor($this->co->name()); $this->SetTitle(sprintf('%s Invoice',$this->co->name())); $this->SetSubject(sprintf('Invoice #%06s',$this->io->refnum(TRUE))); $this->SetKeywords($this->io->refnum(TRUE)); $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(); 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); } } ?>