2 /**********************************************************************
3 Copyright (C) FrontAccounting, LLC.
4 Released under the terms of the GNU General Public License, GPL,
5 as published by the Free Software Foundation, either version 3
6 of the License, or (at your option) any later version.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ***********************************************************************/
12 // New version (without vertical lines)
14 global $wo_types_array, $systypes_array;
16 $this->row = $this->pageHeight - $this->topMargin;
18 $upper = $this->row - 2 * $this->lineHeight;
19 $lower = $this->bottomMargin + 8 * $this->lineHeight;
20 $iline1 = $upper - 7.5 * $this->lineHeight;
21 $iline2 = $iline1 - 8 * $this->lineHeight;
22 $iline3 = $iline2 - 1.5 * $this->lineHeight;
23 $iline4 = $iline3 - 1.5 * $this->lineHeight;
24 $iline5 = $iline4 - 3 * $this->lineHeight;
25 $iline6 = $iline5 - 1.5 * $this->lineHeight;
27 $right = $this->pageWidth - $this->rightMargin;
28 $width = ($right - $this->leftMargin) / 5;
29 $icol = $this->pageWidth / 2;
30 $ccol = $this->cols[0] + 4;
34 $mcol2 = $this->pageWidth - $ccol2;
35 $cols = count($this->cols);
36 $this->SetDrawColor(205, 205, 205);
37 $this->Line($iline1, 3);
38 $this->SetDrawColor(128, 128, 128);
40 $this->rectangle($this->leftMargin, $iline2, $right - $this->leftMargin, $iline2 - $iline3, "F", null, array(222, 231, 236));
44 $this->rectangle($this->leftMargin, $iline5, $right - $this->leftMargin, $iline5 - $iline6, "F", null, array(222, 231, 236));
48 $this->LineTo($this->leftMargin, $iline2 ,$this->leftMargin, $iline4);
49 $col = $this->leftMargin;
50 for ($i = 0; $i < 5; $i++)
52 $this->LineTo($col += $width, $iline2,$col, $iline4);
54 $this->LineTo($right, $iline2 ,$right, $iline4);
55 $this->LineTo($this->leftMargin, $iline5 ,$this->leftMargin, $iline7);
56 $this->LineTo($this->cols[$cols - 2] + 4, $iline5 ,$this->cols[$cols - 2] + 4, $iline7);
57 $this->LineTo($right, $iline5 ,$right, $iline7);
60 if ($this->company['coy_logo'] != '')
62 $logo = company_path() . "/images/" . $this->company['coy_logo'];
63 $this->AddImage($logo, $ccol, $this->row, 0, 40);
69 $this->Text($ccol, $this->company['coy_name'], $icol);
73 $this->SetTextColor(190, 190, 190);
74 $this->fontSize += 10;
76 $this->TextWrap($mcol, $this->row, $this->pageWidth - $this->rightMargin - $mcol - 20, $this->title, 'right');
78 $this->fontSize -= 10;
80 $this->SetTextColor(0, 0, 0);
81 $adrline = $this->row;
82 $this->TextWrapLines($ccol, $icol, $this->company['postal_address']);
83 $this->Font('italic');
84 if ($this->company['phone'] != "")
86 $this->Text($ccol, _("Phone"), $c2col);
87 $this->Text($c2col, $this->company['phone'], $mcol);
90 if ($this->company['fax'] != "")
92 $this->Text($ccol, _("Fax"), $c2col);
93 $this->Text($c2col, $this->company['fax'], $mcol);
96 if ($this->company['email'] != "")
98 $this->Text($ccol, _("Email"), $c2col);
100 $url = "mailto:" . $this->company['email'];
101 $this->SetTextColor(0, 0, 255);
102 $this->Text($c2col, $this->company['email'], $mcol);
103 $this->SetTextColor(0, 0, 0);
104 $this->addLink($url, $c2col, $this->row, $mcol, $this->row + $this->lineHeight);
108 if ($this->company['gst_no'] != "")
110 $this->Text($ccol, $doc_Our_VAT_no, $c2col);
111 $this->Text($c2col, $this->company['gst_no'], $mcol);
114 if (($doctype == ST_SALESINVOICE || $doctype == ST_STATEMENT) && $this->company['domicile'] != "")
116 $this->Text($ccol, $doc_Domicile, $c2col);
117 $this->Text($c2col, $this->company['domicile'], $mcol);
121 $this->row = $adrline;
123 $this->Text($mcol + 100, $doc_Date);
124 if ($doctype == ST_SALESQUOTE || $doctype == ST_PURCHORDER || $doctype == ST_SALESORDER)
125 $this->Text($mcol + 180, sql2date($this->formData['ord_date']));
126 elseif ($doctype == ST_WORKORDER)
127 $this->Text($mcol + 180, sql2date($this->formData['date_']));
129 $this->Text($mcol + 180, sql2date($this->formData['tran_date']));
131 $this->Text($mcol + 100, $doc_Invoice_no);
132 if ($doctype == ST_SALESQUOTE || $doctype == ST_PURCHORDER || $doctype == ST_SALESORDER) // QUOTE, PO or SO
134 if ($print_invoice_no == 1)
135 $this->Text($mcol + 180, $this->formData['order_no']);
137 $this->Text($mcol + 180, $this->formData['reference']);
139 elseif ($doctype == ST_WORKORDER)
140 $this->Text($mcol + 180, $this->formData['id']);
141 else if (isset($this->formData['trans_no']) && isset($this->formData['reference'])) // INV/CRE/STA
143 if ($print_invoice_no == 1)
144 $this->Text($mcol + 180, $this->formData['trans_no']);
146 $this->Text($mcol + 180, $this->formData['reference']);
149 if ($this->pageNumber > 1 && !strstr($this->filename, "Bulk"))
150 $this->Text($this->endLine - 35, _("Page") . ' ' . $this->pageNumber);
151 $this->row = $iline1 - $this->lineHeight;
152 $this->fontSize -= 4;
153 $this->Text($ccol, $doc_Charge_To, $icol);
154 $this->Text($mcol, $doc_Delivered_To);
155 $this->fontSize += 4;
157 $this->row = $this->row - $this->lineHeight - 5;
160 if ($doctype == ST_SALESQUOTE || $doctype == ST_SALESORDER)
162 $this->Text($ccol, $this->formData['name'], $icol);
164 elseif ($doctype == ST_WORKORDER)
166 $this->Text($ccol, $this->formData['location_name'], $icol);
168 $this->TextWrapLines($ccol, $icol - $ccol, $this->formData['delivery_address']);
172 if ($doctype == ST_PURCHORDER || $doctype == ST_SUPPAYMENT) {
173 $name = $this->formData['supp_name'];
174 $addr = $this->formData['address'];
176 if (isset($this->formData['br_address']) &&
177 trim($this->formData['br_address']) != '') {
178 $name = $this->formData['br_name'];
179 $addr = $this->formData['br_address'];
181 $name = $this->formData['DebtorName'];
182 $addr = $this->formData['address'];
185 $this->Text($ccol, $name, $icol);
187 $this->TextWrapLines($ccol, $icol - $ccol, $addr);
190 if (isset($this->formData['deliver_to']))
192 if ($doctype == ST_PURCHORDER)
193 $this->Text($mcol, $this->company['coy_name']);
194 elseif ($doctype != ST_SUPPAYMENT && isset($this->formData['deliver_to']))
196 $this->Text($mcol, $this->formData['deliver_to']);
199 if ($doctype != ST_SUPPAYMENT && isset($this->formData['delivery_address']))
200 $this->TextWrapLines($mcol, $this->rightMargin - $mcol, $this->formData['delivery_address']);
201 } // if you need the company name in purchase order then write it as first line in location addresss.
202 elseif ($doctype == ST_PURCHORDER && isset($this->formData['delivery_address']))
203 $this->TextWrapLines($mcol, $this->rightMargin - $mcol, $this->formData['delivery_address']);
204 $this->row = $iline2 - $this->lineHeight - 1;
205 $col = $this->leftMargin;
206 $this->TextWrap($col, $this->row, $width, $doc_Customers_Ref, 'C');
208 $this->TextWrap($col, $this->row, $width, $doc_Our_Ref, 'C');
210 $this->TextWrap($col, $this->row, $width, $doc_Your_VAT_no, 'C');
212 if ($doctype == ST_SALESINVOICE)
213 $this->TextWrap($col, $this->row, $width, $doc_Delivery_no, 'C');
215 $this->TextWrap($col, $this->row, $width, $doc_Our_Order_No, 'C');
217 $this->TextWrap($col, $this->row, $width, $doc_Due_Date, 'C');
218 $this->row = $iline3 - $this->lineHeight - 1;
219 $col = $this->leftMargin;
220 if ($doctype == ST_PURCHORDER || $doctype == ST_SUPPAYMENT)
221 $this->TextWrap($col, $this->row, $width, $this->formData['supp_account_no'], 'C');
222 elseif ($doctype == ST_WORKORDER)
223 $this->TextWrap($col, $this->row, $width, $this->formData['wo_ref'], 'C');
224 elseif (isset($this->formData["customer_ref"]))
225 $this->TextWrap($col, $this->row, $width, $this->formData["customer_ref"], 'C');
226 elseif (isset($this->formData["debtor_ref"]))
227 $this->TextWrap($col, $this->row, $width, $this->formData["debtor_ref"], 'C');
229 if (isset($this->formData['salesman']))
231 $id = $this->formData['salesman'];
232 //$sql = "SELECT salesman_name FROM ".TB_PREF."salesman WHERE salesman_code='$id'";
233 //$result = db_query($sql,"could not get sales person");
234 //$row = db_fetch($result);
235 //$this->TextWrap($col, $this->row, $width, $row['salesman_name'], 'C');
236 $this->TextWrap($col, $this->row, $width, get_salesman_name($id), 'C');
238 elseif ($doctype == ST_SUPPAYMENT || $doctype == ST_CUSTPAYMENT)
239 $this->TextWrap($col, $this->row, $width, $systypes_array[$this->formData["type"]], 'C');
240 elseif ($doctype == ST_WORKORDER)
241 $this->TextWrap($col, $this->row, $width, $wo_types_array[$this->formData["type"]], 'C');
243 if ($doctype == ST_WORKORDER)
244 $this->TextWrap($col, $this->row, $width, $this->formData["StockItemName"], 'C');
245 elseif ($doctype != ST_PURCHORDER && isset($this->formData['tax_id']))
246 $this->TextWrap($col, $this->row, $width, $this->formData['tax_id'], 'C');
248 if ($doctype == ST_SALESINVOICE)
250 $deliveries = get_sales_parent_numbers(ST_SALESINVOICE, $this->formData['trans_no']);
251 if ($print_invoice_no == 0)
253 foreach($deliveries as $n => $delivery) {
254 $deliveries[$n] = get_reference(ST_CUSTDELIVERY, $delivery);
257 $this->TextWrap($col, $this->row, $width, implode(',', $deliveries), 'C');
259 elseif ($doctype == ST_CUSTDELIVERY)
261 $ref = $this->formData['order_'];
262 if ($print_invoice_no == 0)
264 $ref = get_reference(ST_SALESORDER, $this->formData['order_']);
266 $ref = $this->formData['order_'];
268 $this->TextWrap($col, $this->row, $width, $ref, 'C');
270 elseif ($doctype == ST_WORKORDER)
271 $this->TextWrap($col, $this->row, $width, $this->formData["location_name"], 'C');
272 elseif (isset($this->formData['order_']) && $this->formData['order_'] != 0)
273 $this->TextWrap($col, $this->row, $width, $this->formData['order_'], 'C');
275 if ($doctype == ST_SALESORDER || $doctype == ST_SALESQUOTE)
276 $this->TextWrap($col, $this->row, $width, sql2date($this->formData['delivery_date']), 'C');
277 elseif ($doctype == ST_WORKORDER)
278 $this->TextWrap($col, $this->row, $width, $this->formData["units_issued"], 'C');
279 elseif ($doctype != ST_PURCHORDER && $doctype != ST_CUSTCREDIT && $doctype != ST_CUSTPAYMENT &&
280 $doctype != ST_SUPPAYMENT && isset($this->formData['due_date']))
281 $this->TextWrap($col, $this->row, $width, sql2date($this->formData['due_date']), 'C');
282 if ((!isset($packing_slip) || $packing_slip == 0) && ($doctype != ST_STATEMENT)) //!
284 $this->row -= (2 * $this->lineHeight);
285 if ($doctype == ST_WORKORDER)
286 $str = sql2date($this->formData["required_by"]);
289 $id = $this->formData['payment_terms'];
290 $sql = "SELECT terms FROM ".TB_PREF."payment_terms WHERE terms_indicator=".db_escape($id);
291 $result = db_query($sql,"could not get paymentterms");
292 $row = db_fetch($result);
293 $str = $row["terms"];
295 $this->Font('italic');
296 $this->TextWrap($ccol, $this->row, $right-$ccol, $doc_Payment_Terms . ": " . $str);
299 $this->row = $iline5 - $this->lineHeight - 1;
301 $count = count($this->headers);
302 $this->cols[$count] = $right - 3;
303 for ($i = 0; $i < $count; $i++)
304 $this->TextCol($i, $i + 1, $this->headers[$i], -2);
306 $this->Font('italic');
307 $this->row = $iline7 - $this->lineHeight - 6;
308 if ($doctype != ST_WORKORDER)
309 $this->TextWrap($ccol, $this->row, $right - $ccol, $doc_Please_Quote . " - " . $this->formData['curr_code'], 'C');
310 $this->row -= $this->lineHeight;
312 if (isset($this->formData['bank_name']))
314 $txt = $doc_Bank . ": ".$this->formData['bank_name']. ", " . $doc_Bank_Account . ": " . $this->formData['bank_account_number'];
315 $this->TextWrap($ccol, $this->row, $right - $ccol, $txt, 'C');
316 $this->row -= $this->lineHeight;
318 if ($doctype == ST_SALESINVOICE && $this->formData['disable_branch'] > 0) // payment links
320 if ($this->formData['disable_branch'] == 1)
322 $amt = number_format($this->formData["ov_freight"] + $this->formData["ov_gst"] + $this->formData["ov_amount"], user_price_dec());
323 $txt = $doc_Payment_Link . " PayPal: ";
324 $name = urlencode($this->title . " " . $this->formData['reference']);
325 $url = "https://www.paypal.com/xclick/business=" . $this->company['email'] . "&item_name=" .
326 $name . "&amount=" . $amt . "¤cy_code=" . $this->formData['curr_code'];
327 $this->fontSize -= 2;
328 $this->TextWrap($ccol, $this->row, $right - $ccol, $txt, 'C');
329 $this->row -= $this->lineHeight;
330 $this->SetTextColor(0, 0, 255);
331 $this->TextWrap($ccol, $this->row, $right - $ccol, $url, 'C');
332 $this->SetTextColor(0, 0, 0);
333 $this->addLink($url, $ccol, $this->row, $this->pageWidth - $this->rightMargin, $this->row + $this->lineHeight);
334 $this->fontSize += 2;
335 $this->row -= $this->lineHeight;
338 if ($doc_Extra != "")
340 $this->TextWrap($ccol, $this->row, $right - $ccol, $doc_Extra, 'C');
341 $this->row -= $this->lineHeight;
343 if ($this->params['comments'] != '')
345 $this->TextWrap($ccol, $this->row, $right - $ccol, $this->params['comments'], 'C');
346 $this->row -= $this->lineHeight;
348 if (($doctype == ST_SALESINVOICE || $doctype == ST_STATEMENT) && $this->company['legal_text'] != "")
350 $this->TextWrapLines($ccol, $right - $ccol, $this->company['legal_text'], 'C');
353 $temp = $iline6 - $this->lineHeight - 2;