Bug 5194: The company name is not displayed on invoices if the logo is set. Fixed.
[fa-stable.git] / reporting / includes / header2.inc
index 84d93e1e738236ae21b34a0d4b5a49a379084c2d..d97f50e65d0d2775e6c639ae4ad4da06e140a75c 100644 (file)
 <?php
+/**********************************************************************
+    Copyright (C) FrontAccounting, LLC.
+       Released under the terms of the GNU General Public License, GPL, 
+       as published by the Free Software Foundation, either version 3 
+       of the License, or (at your option) any later version.
+    This program is distributed in the hope that it will be useful,
+    but WITHOUT ANY WARRANTY; without even the implied warranty of
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  
+    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
+***********************************************************************/
+
+/**
+       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;
-               $lower = $this->bottomMargin + 6 * $this->lineHeight;
-               $iline1 = $upper - 4 * $this->lineHeight;
+               $lower = $this->bottomMargin + 8 * $this->lineHeight;
+               $iline1 = $upper - 7.5 * $this->lineHeight;
                $iline2 = $iline1 - 8 * $this->lineHeight;
-               $iline3 = $iline2 - 8 * $this->lineHeight;
-               $iline4 = $iline3 - 2 * $this->lineHeight;
-               $iline5 = $lower + 4 * $this->lineHeight;
+               $iline3 = $iline2 - 1.5 * $this->lineHeight;
+               $iline4 = $iline3 - 1.5 * $this->lineHeight;
+               $iline5 = $iline4 - 3 * $this->lineHeight;
+               $iline6 = $iline5 - 1.5 * $this->lineHeight;
+               $iline7 = $lower;
+               $right = $this->pageWidth - $this->rightMargin;
+               $width = ($right - $this->leftMargin) / 5;
                $icol = $this->pageWidth / 2;
                $ccol = $this->cols[0] + 4;
+               $c2col = $ccol + 60;
                $ccol2 = $icol / 2;
                $mcol = $icol + 8;
                $mcol2 = $this->pageWidth - $ccol2;
-
+               $cols = count($this->cols);
+               $this->SetDrawColor(205, 205, 205);
+               $this->Line($iline1, 3);
                $this->SetDrawColor(128, 128, 128);
-               $this->LineTo($this->pageWidth - $this->rightMargin, $upper ,$this->leftMargin, $upper);
-               $this->LineTo($this->leftMargin, $upper ,$this->leftMargin, $lower);
-               $this->LineTo($this->pageWidth - $this->rightMargin, $lower ,$this->leftMargin, $lower);
-               $this->LineTo($this->pageWidth - $this->rightMargin, $lower ,$this->pageWidth - $this->rightMargin, $upper);
                $this->Line($iline1);
+               $this->rectangle($this->leftMargin, $iline2, $right - $this->leftMargin, $iline2 - $iline3, "F", null, array(222, 231, 236));   
                $this->Line($iline2);
                $this->Line($iline3);
                $this->Line($iline4);
+               $this->rectangle($this->leftMargin, $iline5, $right - $this->leftMargin, $iline5 - $iline6, "F", null, array(222, 231, 236));   
                $this->Line($iline5);
-               $this->LineTo($icol, $upper ,$icol, $iline1);
-               $this->NewLine();
+               $this->Line($iline6);
+               $this->Line($iline7);
+               $this->LineTo($this->leftMargin, $iline2 ,$this->leftMargin, $iline4);
+               $col = $this->leftMargin;
+               for ($i = 0; $i < 5; $i++)
+               {
+                       $this->LineTo($col += $width, $iline2,$col, $iline4);
+               }
+               $this->LineTo($this->leftMargin, $iline5 ,$this->leftMargin, $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
+               $logo = company_path() . "/images/" . $this->company['coy_logo'];
+               if ($this->company['coy_logo'] != '' && file_exists($logo))
+               {
+                       $this->NewLine();
+                       $this->AddImage($logo, $ccol, $this->row, 0, 40);
+               }
+               $this->NewLine();
                $this->fontSize += 4;
                $this->Font('bold');
-               $this->Text($mcol, $this->title);
+               $this->Text($ccol, $this->company['coy_name'], $icol);
                $this->Font();
                $this->fontSize -= 4;
-               if ($this->pageNumber > 1 && !strstr($this->filename, "Bulk"))
-                       $this->Text($this->endLine - 35, _("Page") . ' ' . $this->pageNumber);
-               $this->fontSize -= 4;
-               $this->row = $upper - 5;
-
-               $this->Text($mcol, $doc_Invoice_no, $mcol + 90);
-               $this->Text($mcol + 90, $doc_Cust_no, $mcol + 180);
-               $this->Text($mcol + 180, $doc_Date);
-               $this->fontSize += 4;
+               // Document title
+               $this->SetTextColor(190, 190, 190);
+               $this->fontSize += 10;
+               $this->Font('bold');
+               $this->TextWrap($mcol, $this->row, $this->pageWidth - $this->rightMargin - $mcol - 20, $this->title, 'right');
+               $this->Font();
+               $this->fontSize -= 10;
+               $this->NewLine();
+               $this->SetTextColor(0, 0, 0);
+               $adrline = $this->row;
 
-               $this->row = $upper - 2 * $this->lineHeight - 2;
-               if ($this->company['coy_logo'] != '')
+               // Company data
+               $this->TextWrapLines($ccol, $icol, $this->company['postal_address']);
+               $this->Font('italic');
+               if (@$this->company['phone'])
                {
-                       $logo = $comp_path .'/'. user_company() . "/images/" . $this->company['coy_logo'];
-                       $this->AddImage($logo, $ccol, $iline1 + 5, 0, 40);
+                       $this->Text($ccol, _("Phone"), $c2col);
+                       $this->Text($c2col, $this->company['phone'], $mcol);
+                       $this->NewLine();
                }
-               else
+               if (@$this->company['fax'])
                {
-                       $this->fontSize += 4;
-                       $this->Font('bold');
-                       $this->Text($ccol, $this->company['coy_name'], $icol);
-                       $this->Font();
-                       $this->fontSize -= 4;
+                       $this->Text($ccol, _("Fax"), $c2col);
+                       $this->Text($c2col, $this->company['fax'], $mcol);
+                       $this->NewLine();
                }
-               if ($doctype == 8 || $doctype == 9) // PO or SO
-                       $this->Text($mcol, $myrow['order_no'], $mcol + 90);
-               else if (isset($myrow['trans_no']) && isset($myrow['reference'])) // INV/CRE/STA
+               if (@$this->company['email'])
                {
-                       if ($print_invoice_no == 1)
-                               $this->Text($mcol, $myrow['trans_no'], $mcol + 90);
-                       else
-                               $this->Text($mcol, $myrow['reference'], $mcol + 90);
-               }
-               if (isset($myrow['debtor_no']))
-                       $this->Text($mcol + 90, $myrow['debtor_no'], $mcol + 180);
-               if ($doctype == 8 || $doctype == 9)
-                       $this->Text($mcol + 180, sql2date($myrow['ord_date']));
-               else
-                       $this->Text($mcol + 180, sql2date($myrow['tran_date']));
+                       $this->Text($ccol, _("Email"), $c2col);
 
-               $this->fontSize -= 4;
-               $this->row = $iline1 - 5;
-               $this->Text($ccol, $doc_Charge_To, $icol);
-               $this->Text($mcol, $doc_Delivered_To);
-               $this->fontSize += 4;
+                       $url = "mailto:" . $this->company['email'];
+                       $this->SetTextColor(0, 0, 255);
+                       $this->Text($c2col, $this->company['email'], $mcol);
+                       $this->SetTextColor(0, 0, 0);
+                       $this->addLink($url, $c2col, $this->row, $mcol, $this->row + $this->lineHeight);
 
-               $this->NewLine(2);
-               $temp = $this->row;
-               if ($doctype == 9)
-               {
-                       $this->Text($ccol, $myrow['name'], $icol);
-               }
-               else
-               {
-                       if ($doctype == 8)
-                               $this->Text($ccol, $myrow['supp_name'], $icol);
-                       else
-                               $this->Text($ccol, $myrow['DebtorName'], $icol);
                        $this->NewLine();
-                       $this->TextWrapLines($ccol, $icol - $ccol, $myrow['address']);
                }
-               if ($sales_order != NULL)
+               if (@$this->company['gst_no'])
                {
-                       $this->row = $temp;
-                       if ($doctype == 8)
-                               $this->Text($mcol, $this->company['coy_name']);
-                       else
-                               $this->Text($mcol, $sales_order['deliver_to']);
+                       $this->Text($ccol, _("Our VAT No."), $c2col);
+                       $this->Text($c2col, $this->company['gst_no'], $mcol);
                        $this->NewLine();
-                       $this->TextWrapLines($mcol, $this->rightMargin - $mcol, $sales_order['delivery_address']);
                }
-               $this->row = $iline2 - 2 * $this->lineHeight;
-               $this->Text($ccol, $doc_Shipping_Company . ":", $ccol2);
-               if ($doctype != 8 && isset($myrow['shipper_name']))
-                       $this->Text($ccol2, $myrow['shipper_name'], $mcol);
-               $this->Text($mcol, $doc_Due_Date . ":", $mcol2);
-               if ($doctype == 9)
-                       $this->Text($mcol2, sql2date($myrow['delivery_date']));
-               else if ($doctype != 8 && isset($myrow['due_date']))
-                       $this->Text($mcol2, sql2date($myrow['due_date']));
-               if ($branch != null)
+               if (@$this->formData['domicile'])
                {
+                       $this->Text($ccol, _("Domicile"), $c2col);
+                       $this->Text($c2col, $this->company['domicile'], $mcol);
                        $this->NewLine();
-                       $this->Text($ccol, $doc_Your_Ref . ":", $ccol2);
-                       $this->Text($ccol2, $branch['contact_name'], $mcol);
-                       $this->Text($mcol, $doc_Our_Ref . ":", $mcol2);
-
-                       $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->Text($mcol2, $row['salesman_name']);
                }
+               $this->Font();
+               $this->row = $adrline;
+               $this->NewLine(3);
+               $this->Text($mcol + 100, _("Date"));
+               $this->Text($mcol + 180, sql2date($this->formData['document_date']));
+
                $this->NewLine();
-               $this->Text($ccol, $doc_Your_VAT_no . ":", $ccol2);
-               if ($doctype != 8 && isset($myrow['tax_id']))
-                       $this->Text($ccol2, $myrow['tax_id'], $mcol);
-               $this->Text($mcol, $doc_Our_VAT_no . ":", $mcol2);
-               $this->Text($mcol2, $this->company['gst_no']);
+               $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, $Addr1['title'], $icol);
+               $this->Text($mcol, $Addr2['title']);
+               $this->fontSize += 4;
+
+// address1
+               $temp = $this->row = $this->row - $this->lineHeight - 5;
+               $this->Text($ccol, $Addr1['name'], $icol);
                $this->NewLine();
-               $this->Text($ccol, $doc_Payment_Terms . ":", $ccol2);
-
-               $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);
-
-               $this->Text($ccol2, $row["terms"], $mcol);
-               $this->Text($mcol, $doc_Our_Order_No . ":", $mcol2);
-               if (isset($myrow['order_']))
-                       $this->Text($mcol2, $myrow['order_']);
-               // 2008-06-16. Added customer's reference
+               $this->TextWrapLines($ccol, $icol - $ccol, $Addr1['address']);
+
+// address2
+               $this->row = $temp;
+               $this->Text($mcol, $Addr2['name']);
                $this->NewLine();
-               $this->Text($ccol, $doc_Customers_Ref, $ccol2);
-               if ($sales_order != NULL)
-                       $this->Text($ccol2, $sales_order["customer_ref"], $mcol);
-               $locale = $path_to_root . "lang/" . $_SESSION['language']->code . "/locale.inc";
-               if (file_exists($locale))
+               $this->TextWrapLines($mcol, $this->rightMargin - $mcol, $Addr2['address'], 'left', 0, 0, NULL, 1);
+
+               // Auxiliary document information
+               $col = $this->leftMargin;
+               foreach($aux_info as $info_header => $info_content)
                {
-                       $header2include = true;
-                       include($locale);
+
+                       $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;
                }
-               $this->row = $iline3 - $this->lineHeight - 2;
+               // 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);
+               $this->cols[$count] = $right - 3;
                for ($i = 0; $i < $count; $i++)
                        $this->TextCol($i, $i + 1, $this->headers[$i], -2);
                $this->Font();
-               $temp = $this->row - 2 * $this->lineHeight;
-               $this->row = $iline5 - $this->lineHeight - 6;
-               $this->Text($ccol, $doc_Please_Quote . " - " . $myrow['curr_code']);
-               $this->NewLine();
-               if ($doctype == 10 && $branch['disable_branch'] > 0) // payment links
+
+               // Footer
+               $this->Font('italic');
+               $this->row = $iline7 - $this->lineHeight - 6;
+
+               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 . "&currency_code=" . $myrow['curr_code'];
                                $this->fontSize -= 2;
-                               $this->Text($ccol, $txt);
-                               $this->NewLine();
+                               $this->TextWrap($ccol, $this->row, $right - $ccol, $line, 'C');
+                               $this->row -= $this->lineHeight;
                                $this->SetTextColor(0, 0, 255);
-                               $this->Text($ccol, $url);
+                               $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;
                        }
-               }
-               if ($this->params['comments'] != '')
-               {
-                       $this->NewLine();
-                       $this->Font('bold');
-                       $this->Text($ccol, $this->params['comments']);
-                       $this->Font();
-               }
+                       else
+                               $this->TextWrap($ccol, $this->row, $right - $ccol, $txt, 'C');
+                       $this->row -= $this->lineHeight;
 
-               $this->row = $lower - 5;
-               $this->fontSize -= 4;
+               }
 
-               $this->Text($ccol, $doc_Address, $ccol2 + 40);
-               $this->Text($ccol2 + 30, $doc_Phone_Fax_Email, $mcol);
-               $this->Text($mcol , $doc_Bank, $mcol2);
-               $this->Text($mcol2, $doc_Bank_Account);
-               $this->fontSize += 4;
-               $this->NewLine();
-               $adrline = $this->row;
-               $this->TextWrapLines($ccol, $ccol2 + 40 - $ccol, $this->company['postal_address']);
-               $this->row = $adrline;
-               $this->Text($ccol2 + 30, $this->company['phone'], $mcol);
-               $this->NewLine();
-               $this->Text($ccol2 + 30, $this->company['fax'], $mcol);
-               $this->NewLine();
-               $this->Text($ccol2 + 30, $this->company['email'], $mcol);
-               // fetch this later
-               $this->row = $adrline;
-               if (isset($bankaccount['bank_name']))
-                       $this->Text($mcol, $bankaccount['bank_name'], $mcol2);
-               $this->NewLine();
-               $this->TextWrapLines($mcol, $mcol2 - $mcol, $bankaccount['bank_address']);
-               $this->row = $adrline;
-               if (isset($bankaccount['bank_account_name']))
-                       $this->Text($mcol2, $bankaccount['bank_account_name']);
-               $this->NewLine();
-               if (isset($bankaccount['bank_account_number']))
-                       $this->Text($mcol2, $bankaccount['bank_account_number']);
-?>
\ No newline at end of file
+               $this->Font();
+               $temp = $iline6 - $this->lineHeight - 2;