Execute(sqlSelect($db,"setup_invoice","*","")); } $this->billToCompany = $rs->fields['bill_to_company']; $this->invoiceCurrency = $rs->fields['invoice_currency']; $this->invoiceDecimals = $rs->fields['invoice_decimals']; $this->itemsSummaryMax = $rs->fields['items_summary_max']; $this->news = $rs->fields['news']; $this->pageType = $rs->fields['page_type']; $this->show_itemized = $rs->fields['invoice_show_itemized']; $this->show_service_range = $rs->fields['invoice_show_service_dates']; $this->contact_us_url = $rs->fields['contact_us_url']; $this->contact_us_phone = $rs->fields['contact_us_phone']; #$this->currency; $this->currency = $rs->fields['invoice_currency']; } function drawCustom() { } function getTemplate() { return PATH_INCLUDES."pdf/invoice.pdf"; } function drawCompanyLogo() { } function drawCompanyAddress() { } function drawAccountMailing() { } function drawAccountId() { } function drawAccountName() { } function drawAccountUsername() { } function drawAccountAddress() { } function drawInvoiceNo() { } function drawInvoiceCreatedDate() { } function drawInvoiceRange() { } function drawInvoiceDueDate() { } function drawInvoiceTotalAmt() { } function drawInvoicePaidAmt() { } function drawInvoiceDueAmt() { } function drawInvoiceDiscountAmt() { } function drawInvoiceDueNotice() { } function drawInvoicePaidNotice() { } function drawInvoiceTaxAmt() { } function drawInvoiceShippingAmt() { } /** * Actual second plus pages of details. This is the constructor. */ function drawLineItems_pre($iteration) { } /** * This is called for each line item on the second plus pages of details. */ function drawLineItems(&$db, &$line) { } /** * Draws the summary on the first page */ function drawSummaryLineItems($items) { } /** * Assigns the invoice fields to this object. */ function setInvoiceFields($flds) { $this->invoice = $flds; } /** * Assigns the account fields to this object. */ function setAccountFields($flds) { $this->account = $flds; } /** * Assigns the item summary fields to this object. */ function setItemsSummary($items) { $this->itemsSummary = $items; } function setItemsFull($items) { $this->itemsFull = $items; } function setDateRange($periodStart, $periodEnd) { $this->dateRange = date(UNIX_DATE_FORMAT, $periodStart) . ' - ' . date(UNIX_DATE_FORMAT, $periodEnd); } function setCurrency($currency) { $this->invoiceCurrency = $currency; } function setDecimals($decimals) { $this->invoiceDecimals = $decimals; } function setLateFeeNotice() { } function setDueAmt($amt) { $this->invoiceDueAmt=$amt; } function setNetTerms($terms) { $this->netTerms=$terms; } 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']); } function _putpages() { $nb=$this->page; if(!empty($this->AliasNbPages)) { //Replace number of pages for($n=1;$n<=$nb;$n++) $this->pages[$n]=($this->compress) ? gzcompress(str_replace($this->AliasNbPages,$nb,gzuncompress($this->pages[$n]))) : str_replace($this->AliasNbPages,$nb,$this->pages[$n]) ; } if($this->DefOrientation=='P') { $wPt=$this->fwPt; $hPt=$this->fhPt; } else { $wPt=$this->fhPt; $hPt=$this->fwPt; } $filter=($this->compress) ? '/Filter /FlateDecode ' : ''; for($n=1;$n<=$nb;$n++) { //Page $this->_newobj(); $this->_out('<_out('/Parent 1 0 R'); if(isset($this->OrientationChanges[$n])) $this->_out(sprintf('/MediaBox [0 0 %.2f %.2f]',$hPt,$wPt)); $this->_out('/Resources 2 0 R'); if(isset($this->PageLinks[$n])) { //Links $annots='/Annots ['; foreach($this->PageLinks[$n] as $pl) { $rect=sprintf('%.2f %.2f %.2f %.2f',$pl[0],$pl[1],$pl[0]+$pl[2],$pl[1]-$pl[3]); $annots.='<_textstring($pl[4]).'>>>>'; else { $l=$this->links[$pl[4]]; $h=isset($this->OrientationChanges[$l[0]]) ? $wPt : $hPt; $annots.=sprintf('/Dest [%d 0 R /XYZ 0 %.2f null]>>',1+2*$l[0],$h-$l[1]*$this->k); } } $this->_out($annots.']'); } $this->_out('/Contents '.($this->n+1).' 0 R>>'); $this->_out('endobj'); //Page content $this->_newobj(); $this->_out('<<'.$filter.'/Length '.strlen($this->pages[$n]).'>>'); $this->_putstream($this->pages[$n]); $this->_out('endobj'); } //Pages root $this->offsets[1]=strlen($this->buffer); $this->_out('1 0 obj'); $this->_out('<_out($kids.']'); $this->_out('/Count '.$nb); $this->_out(sprintf('/MediaBox [0 0 %.2f %.2f]',$wPt,$hPt)); $this->_out('>>'); $this->_out('endobj'); } function _endpage() { //End of page contents $this->pages[$this->page] = ($this->compress) ? gzcompress($this->pages[$this->page]) : $this->pages[$this->page]; $this->state=1; } } ?>