MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
***********************************************************************/
- // New version (without vertical lines)
- global $wo_types_array;
-
+/**
+ Document blueprint use following parameters set in doctext.inc:
+
+ $Addr1, $Addr2 - address info
+ $Payment_Terms - payment terms line
+ $Footer - footer texts
+ $this->company - company info
+ $this->title - report title
+ $this->formData - some other info
+***/
+
$this->row = $this->pageHeight - $this->topMargin;
$upper = $this->row - 2 * $this->lineHeight;
for ($i = 0; $i < 5; $i++)
{
$this->LineTo($col += $width, $iline2,$col, $iline4);
- }
+ }
$this->LineTo($right, $iline2 ,$right, $iline4);
$this->LineTo($this->leftMargin, $iline5 ,$this->leftMargin, $iline7);
- $this->LineTo($this->cols[$cols - 2] + 4, $iline5 ,$this->cols[$cols - 2] + 4, $iline7);
+ if ($this->l['a_meta_dir'] == 'rtl') // avoid line overwrite in rtl language
+ $this->LineTo($this->cols[$cols - 2], $iline5 ,$this->cols[$cols - 2], $iline7);
+ else
+ $this->LineTo($this->cols[$cols - 2] + 4, $iline5 ,$this->cols[$cols - 2] + 4, $iline7);
$this->LineTo($right, $iline5 ,$right, $iline7);
+ // Company Logo
$this->NewLine();
- if ($this->company['coy_logo'] != '')
+ $logo = company_path() . "/images/" . $this->company['coy_logo'];
+ if ($this->company['coy_logo'] != '' && file_exists($logo))
{
- $logo = $comp_path .'/'. user_company() . "/images/" . $this->company['coy_logo'];
$this->AddImage($logo, $ccol, $this->row, 0, 40);
}
else
$this->Font();
$this->fontSize -= 4;
}
+ // Document title
$this->SetTextColor(190, 190, 190);
$this->fontSize += 10;
$this->Font('bold');
$this->NewLine();
$this->SetTextColor(0, 0, 0);
$adrline = $this->row;
+
+ // Company data
$this->TextWrapLines($ccol, $icol, $this->company['postal_address']);
$this->Font('italic');
- if ($this->company['phone'] != "")
+ if (@$this->company['phone'])
{
$this->Text($ccol, _("Phone"), $c2col);
$this->Text($c2col, $this->company['phone'], $mcol);
$this->NewLine();
- }
- if ($this->company['fax'] != "")
+ }
+ if (@$this->company['fax'])
{
$this->Text($ccol, _("Fax"), $c2col);
$this->Text($c2col, $this->company['fax'], $mcol);
$this->NewLine();
- }
- if ($this->company['email'] != "")
+ }
+ if (@$this->company['email'])
{
$this->Text($ccol, _("Email"), $c2col);
$this->addLink($url, $c2col, $this->row, $mcol, $this->row + $this->lineHeight);
$this->NewLine();
- }
- if ($this->company['gst_no'] != "")
+ }
+ if (@$this->company['gst_no'])
{
- $this->Text($ccol, $doc_Our_VAT_no, $c2col);
+ $this->Text($ccol, _("Our VAT No."), $c2col);
$this->Text($c2col, $this->company['gst_no'], $mcol);
$this->NewLine();
}
- if (($doctype == 10 || $doctype == 12) && $this->company['domicile'] != "")
+ if (@$this->formData['domicile'])
{
- $this->Text($ccol, $doc_Domicile, $c2col);
+ $this->Text($ccol, _("Domicile"), $c2col);
$this->Text($c2col, $this->company['domicile'], $mcol);
$this->NewLine();
}
$this->Font();
$this->row = $adrline;
$this->NewLine(3);
- $this->Text($mcol + 100, $doc_Date.":");
- if ($doctype == 7 || $doctype == 8 || $doctype == 9)
- $this->Text($mcol + 180, sql2date($myrow['ord_date']));
- elseif ($doctype == 26)
- $this->Text($mcol + 180, sql2date($myrow['date_']));
- else
- $this->Text($mcol + 180, sql2date($myrow['tran_date']));
- $this->NewLine();
- $this->Text($mcol + 100, $doc_Invoice_no);
- if ($doctype == 7 || $doctype == 8 || $doctype == 9) // QUOTE, PO or SO
- {
- if ($print_invoice_no == 1)
- $this->Text($mcol + 180, $myrow['order_no']);
- else
- $this->Text($mcol + 180, $myrow['reference']);
- }
- elseif ($doctype == 26)
- $this->Text($mcol + 180, $myrow['id']);
- else if (isset($myrow['trans_no']) && isset($myrow['reference'])) // INV/CRE/STA
- {
- if ($print_invoice_no == 1)
- $this->Text($mcol + 180, $myrow['trans_no']);
- else
- $this->Text($mcol + 180, $myrow['reference']);
- }
+ $this->Text($mcol + 100, _("Date"));
+ $this->Text($mcol + 180, sql2date($this->formData['document_date']));
- if ($this->pageNumber > 1 && !strstr($this->filename, "Bulk"))
- $this->Text($this->endLine - 35, _("Page") . ' ' . $this->pageNumber);
+ $this->NewLine();
+ $this->Text($mcol + 100, $this->formData['document_name']);
+ $this->Text($mcol + 180, $this->formData['document_number']);
+ $this->NewLine(2);
+
+ if ($this->pageNumber > 1)
+ $this->Text($mcol + 180, _("Page") . ' ' . $this->pageNumber);
$this->row = $iline1 - $this->lineHeight;
$this->fontSize -= 4;
- $this->Text($ccol, $doc_Charge_To, $icol);
- $this->Text($mcol, $doc_Delivered_To);
+ $this->Text($ccol, $Addr1['title'], $icol);
+ $this->Text($mcol, $Addr2['title']);
$this->fontSize += 4;
- $this->row = $this->row - $this->lineHeight - 5;
+// address1
+ $temp = $this->row = $this->row - $this->lineHeight - 5;
+ $this->Text($ccol, $Addr1['name'], $icol);
+ $this->NewLine();
+ $this->TextWrapLines($ccol, $icol - $ccol, $Addr1['address']);
- $temp = $this->row;
- if ($doctype == 7 || $doctype == 9)
- {
- $this->Text($ccol, $myrow['name'], $icol);
- }
- elseif ($doctype == 26)
- {
- $this->Text($ccol, $myrow['location_name'], $icol);
- $this->NewLine();
- $this->TextWrapLines($ccol, $icol - $ccol, $myrow['delivery_address']);
- }
- else
- {
- if ($doctype == 8) {
- $name = $myrow['supp_name'];
- $addr = $myrow['address'];
- } else {
- if (trim($branch['br_address']) != '') {
- $name = $branch['br_name'];
- $addr = $branch['br_address'];
- } else {
- $name = $myrow['DebtorName'];
- $addr = $myrow['address'];
- }
- }
- $this->Text($ccol, $name, $icol);
- $this->NewLine();
- $this->TextWrapLines($ccol, $icol - $ccol, $addr);
- }
- if ($sales_order != NULL)
- {
- $this->row = $temp;
- if ($doctype == 8)
- $this->Text($mcol, $this->company['coy_name']);
- else
- $this->Text($mcol, $sales_order['deliver_to']);
- $this->NewLine();
- $this->TextWrapLines($mcol, $this->rightMargin - $mcol, $sales_order['delivery_address']);
- }
- $this->row = $iline2 - $this->lineHeight - 1;
- $col = $this->leftMargin;
- $this->TextWrap($col, $this->row, $width, $doc_Customers_Ref, 'C');
- $col += $width;
- $this->TextWrap($col, $this->row, $width, $doc_Our_Ref, 'C');
- $col += $width;
- $this->TextWrap($col, $this->row, $width, $doc_Your_VAT_no, 'C');
- $col += $width;
- if ($doctype == 10)
- $this->TextWrap($col, $this->row, $width, $doc_Delivery_no, 'C');
- else
- $this->TextWrap($col, $this->row, $width, $doc_Our_Order_No, 'C');
- $col += $width;
- $this->TextWrap($col, $this->row, $width, $doc_Due_Date, 'C');
- $this->row = $iline3 - $this->lineHeight - 1;
+// address2
+ $this->row = $temp;
+ $this->Text($mcol, $Addr2['name']);
+ $this->NewLine();
+ $this->TextWrapLines($mcol, $this->rightMargin - $mcol, $Addr2['address']);
+
+ // Auxiliary document information
$col = $this->leftMargin;
- if ($doctype == 8)
- $this->TextWrap($col, $this->row, $width, $myrow['supp_account_no'], 'C');
- elseif ($doctype == 26)
- $this->TextWrap($col, $this->row, $width, $myrow['wo_ref'], 'C');
- elseif (isset($sales_order["customer_ref"]))
- $this->TextWrap($col, $this->row, $width, $sales_order["customer_ref"], 'C');
- $col += $width;
- if ($branch != null)
- {
- $id = $branch['salesman'];
- $sql = "SELECT salesman_name FROM ".TB_PREF."salesman WHERE salesman_code='$id'";
- $result = db_query($sql,"could not get sales person");
- $row = db_fetch($result);
- $this->TextWrap($col, $this->row, $width, $row['salesman_name'], 'C');
- }
- elseif ($doctype == 26)
- $this->TextWrap($col, $this->row, $width, $wo_types_array[$myrow["type"]], 'C');
- $col += $width;
- if ($doctype == 26)
- $this->TextWrap($col, $this->row, $width, $myrow["StockItemName"], 'C');
- elseif ($doctype != 8 && isset($myrow['tax_id']))
- $this->TextWrap($col, $this->row, $width, $myrow['tax_id'], 'C');
- $col += $width;
- if ($doctype == 10)
- {
- $deliveries = get_parent_trans(ST_SALESINVOICE, $myrow['trans_no']);
- $line = "";
- foreach ($deliveries as $delivery)
- {
- if ($print_invoice_no == 0)
- {
- $ref = get_reference(ST_CUSTDELIVERY, $delivery);
- if ($ref)
- $delivery = $ref;
- }
- if ($line == "")
- $line .= "$delivery";
- else
- $line .= ",$delivery";
- }
- $this->TextWrap($col, $this->row, $width, $line, 'C');
- }
- elseif ($doctype == 13)
- {
- $ref = "";
- if ($print_invoice_no == 0)
- {
- $ref = get_reference(ST_SALESORDER, $myrow['order_']);
- if (!$ref)
- $ref = $myrow['order_'];
- }
- $this->TextWrap($col, $this->row, $width, $ref, 'C');
- }
- elseif ($doctype == 26)
- $this->TextWrap($col, $this->row, $width, $myrow["location_name"], 'C');
- elseif (isset($myrow['order_']))
- $this->TextWrap($col, $this->row, $width, $myrow['order_'], 'C');
- $col += $width;
- if ($doctype == 9 || $doctype == 7)
- $this->TextWrap($col, $this->row, $width, sql2date($myrow['delivery_date']), 'C');
- elseif ($doctype == 26)
- $this->TextWrap($col, $this->row, $width, $myrow["units_issued"], 'C');
- elseif ($doctype != 8 && $doctype != 11 && isset($myrow['due_date']))
- $this->TextWrap($col, $this->row, $width, sql2date($myrow['due_date']), 'C');
- if (!isset($packing_slip) || $packing_slip == 0)
+ foreach($aux_info as $info_header => $info_content)
{
- $this->row -= (2 * $this->lineHeight);
- if ($doctype == 26)
- $str = sql2date($myrow["required_by"]);
- else
- {
- $id = $myrow['payment_terms'];
- $sql = "SELECT terms FROM ".TB_PREF."payment_terms WHERE terms_indicator='$id'";
- $result = db_query($sql,"could not get paymentterms");
- $row = db_fetch($result);
- $str = $row["terms"];
- }
- $this->Font('italic');
- $this->TextWrap($ccol, $this->row, $right-$ccol, $doc_Payment_Terms . ": " . $str);
- $this->Font();
+
+ $this->row = $iline2 - $this->lineHeight - 1;
+ $this->TextWrap($col, $this->row, $width, $info_header, 'C');
+ $this->row = $iline3 - $this->lineHeight - 1;
+ $this->TextWrap($col, $this->row, $width, $info_content, 'C');
+ $col += $width;
}
+ // Payment terms
+ $this->row -= (2 * $this->lineHeight);
+ $this->Font('italic');
+ $this->TextWrap($ccol, $this->row, $right-$ccol, $Payment_Terms);
+ $this->Font();
+
+ // Line headers
$this->row = $iline5 - $this->lineHeight - 1;
$this->Font('bold');
$count = count($this->headers);
for ($i = 0; $i < $count; $i++)
$this->TextCol($i, $i + 1, $this->headers[$i], -2);
$this->Font();
+
+ // Footer
$this->Font('italic');
$this->row = $iline7 - $this->lineHeight - 6;
- if ($doctype != 26)
- $this->TextWrap($ccol, $this->row, $right - $ccol, $doc_Please_Quote . " - " . $myrow['curr_code'], 'C');
- $this->row -= $this->lineHeight;
- if (isset($bankaccount['bank_name']))
- {
- $txt = $doc_Bank . ": ".$bankaccount['bank_name']. ", " . $doc_Bank_Account . ": " . $bankaccount['bank_account_number'];
- $this->TextWrap($ccol, $this->row, $right - $ccol, $txt, 'C');
- $this->row -= $this->lineHeight;
- }
- if ($doctype == 10 && $branch['disable_branch'] > 0) // payment links
+ foreach ($Footer as $line => $txt)
{
- if ($branch['disable_branch'] == 1)
+ if (!is_numeric($line)) // title => link
{
- $amt = number_format($myrow["ov_freight"] + $myrow["ov_gst"] + $myrow["ov_amount"], user_price_dec());
- $txt = $doc_Payment_Link . " PayPal: ";
- $name = urlencode($this->title . " " . $myrow['reference']);
- $url = "https://www.paypal.com/xclick/business=" . $this->company['email'] . "&item_name=" .
- $name . "&amount=" . $amt . "¤cy_code=" . $myrow['curr_code'];
$this->fontSize -= 2;
- $this->TextWrap($ccol, $this->row, $right - $ccol, $txt, 'C');
+ $this->TextWrap($ccol, $this->row, $right - $ccol, $line, 'C');
$this->row -= $this->lineHeight;
$this->SetTextColor(0, 0, 255);
- $this->TextWrap($ccol, $this->row, $right - $ccol, $url, 'C');
+ $this->TextWrap($ccol, $this->row, $right - $ccol, $txt, 'C');
$this->SetTextColor(0, 0, 0);
- $this->addLink($url, $ccol, $this->row, $this->pageWidth - $this->rightMargin, $this->row + $this->lineHeight);
+ $this->addLink($txt, $ccol, $this->row, $this->pageWidth - $this->rightMargin, $this->row + $this->lineHeight);
$this->fontSize += 2;
- $this->row -= $this->lineHeight;
}
- }
- if ($this->params['comments'] != '')
- {
- $this->TextWrap($ccol, $this->row, $right - $ccol, $this->params['comments'], 'C');
+ else
+ $this->TextWrap($ccol, $this->row, $right - $ccol, $txt, 'C');
$this->row -= $this->lineHeight;
+
}
- if (($doctype == 10 || $doctype == 12) && $this->company['legal_text'] != "")
- {
- $this->TextWrapLines($ccol, $right - $ccol, $this->company['legal_text'], 'C');
- }
+
$this->Font();
$temp = $iline6 - $this->lineHeight - 2;
-?>
\ No newline at end of file
+?>