Merged changes from main trunk up to 2.2.5
[fa-stable.git] / reporting / includes / header2.inc
index ebbbe15536c7b750f1fbabda5dfe1eeef14f5a0e..5602afee84f50a5241098612de8567b4dee1474d 100644 (file)
@@ -1,10 +1,23 @@
 <?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>.
+***********************************************************************/
+               // New version (without vertical lines)
 
+       global $wo_types_array, $systypes_array;
+       
                $this->row = $this->pageHeight - $this->topMargin;
 
                $upper = $this->row - 2 * $this->lineHeight;
-               $lower = $this->bottomMargin + 6 * $this->lineHeight;
-               $iline1 = $upper - 7 * $this->lineHeight;
+               $lower = $this->bottomMargin + 8 * $this->lineHeight;
+               $iline1 = $upper - 7.5 * $this->lineHeight;
                $iline2 = $iline1 - 8 * $this->lineHeight;
                $iline3 = $iline2 - 1.5 * $this->lineHeight;
                $iline4 = $iline3 - 1.5 * $this->lineHeight;
@@ -12,7 +25,7 @@
                $iline6 = $iline5 - 1.5 * $this->lineHeight;
                $iline7 = $lower;
                $right = $this->pageWidth - $this->rightMargin;
-               $width = ($right - $this->leftMargin) / 6;
+               $width = ($right - $this->leftMargin) / 5;
                $icol = $this->pageWidth / 2;
                $ccol = $this->cols[0] + 4;
                $c2col = $ccol + 60;
@@ -47,7 +60,7 @@
                if ($this->company['coy_logo'] != '')
                {
                        $logo = $comp_path .'/'. user_company() . "/images/" . $this->company['coy_logo'];
-                       $this->AddImage($logo, $ccol, $this->row - 10, 0, 40);
+                       $this->AddImage($logo, $ccol, $this->row, 0, 40);
                }
                else
                {
                        $this->Text($ccol, $doc_Our_VAT_no, $c2col);
                        $this->Text($c2col, $this->company['gst_no'], $mcol);
                        $this->NewLine();
-               }       
+               }
+               if (($doctype == ST_SALESINVOICE || $doctype == ST_STATEMENT) && $this->company['domicile'] != "")
+               {
+                       $this->Text($ccol, $doc_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 == 8 || $doctype == 9)
+               $this->Text($mcol + 100, $doc_Date);
+               if ($doctype == ST_SALESQUOTE || $doctype == ST_PURCHORDER || $doctype == ST_SALESORDER)
                        $this->Text($mcol + 180, sql2date($myrow['ord_date']));
+               elseif ($doctype == ST_WORKORDER)       
+                       $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 == 8 || $doctype == 9) // PO or SO
-                       $this->Text($mcol + 180, $myrow['order_no']);
+               if ($doctype == ST_SALESQUOTE || $doctype == ST_PURCHORDER || $doctype == ST_SALESORDER) // 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 == ST_WORKORDER)       
+                       $this->Text($mcol + 180, $myrow['id']);
                else if (isset($myrow['trans_no']) && isset($myrow['reference'])) // INV/CRE/STA
                {
                        if ($print_invoice_no == 1)
                $this->row = $this->row - $this->lineHeight - 5;
 
                $temp = $this->row;
-               if ($doctype == 9)
+               if ($doctype == ST_SALESQUOTE || $doctype == ST_SALESORDER)
                {
                        $this->Text($ccol, $myrow['name'], $icol);
                }
+               elseif ($doctype == ST_WORKORDER)
+               {
+                       $this->Text($ccol, $myrow['location_name'], $icol);
+                       $this->NewLine();
+                       $this->TextWrapLines($ccol, $icol - $ccol, $myrow['delivery_address']);
+               }
                else
                {
-                       if ($doctype == 8) {
+                       if ($doctype == ST_PURCHORDER || $doctype == ST_SUPPAYMENT) {
                                $name = $myrow['supp_name'];
                                $addr = $myrow['address'];
                        } else {
                if ($sales_order != NULL)
                {
                        $this->row = $temp;
-                       if ($doctype == 8)
+                       if ($doctype == ST_PURCHORDER)
                                $this->Text($mcol, $this->company['coy_name']);
-                       else
+                       elseif ($doctype != ST_SUPPAYMENT && isset($sales_order['deliver_to']))
                                $this->Text($mcol, $sales_order['deliver_to']);
                        $this->NewLine();
-                       $this->TextWrapLines($mcol, $this->rightMargin - $mcol, $sales_order['delivery_address']);
+                       if ($doctype != ST_SUPPAYMENT && isset($sales_order['deliver_to']))
+                               $this->TextWrapLines($mcol, $this->rightMargin - $mcol, $sales_order['delivery_address']);
                }
                $this->row = $iline2 - $this->lineHeight - 1;
                $col = $this->leftMargin;
                $col += $width;
                $this->TextWrap($col, $this->row, $width, $doc_Your_VAT_no, 'C');
                $col += $width;
-               if ($doctype == 10)
+               if ($doctype == ST_SALESINVOICE)
                        $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_Payment_Terms, 'C');
-               $col += $width;
                $this->TextWrap($col, $this->row, $width, $doc_Due_Date, 'C');
                $this->row = $iline3 - $this->lineHeight - 1;
                $col = $this->leftMargin;
-               if (isset($sales_order["customer_ref"]))
+               if ($doctype == ST_PURCHORDER || $doctype == ST_SUPPAYMENT)
+                       $this->TextWrap($col, $this->row, $width, $myrow['supp_account_no'], 'C');
+               elseif ($doctype == ST_WORKORDER)
+                       $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');
+               elseif (isset($myrow["debtor_ref"]))
+                       $this->TextWrap($col, $this->row, $width, $myrow["debtor_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');
+                       //$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');
+                       $this->TextWrap($col, $this->row, $width, get_salesman_name($id), 'C');
                }               
+               elseif ($doctype == ST_SUPPAYMENT || $doctype == ST_CUSTPAYMENT)
+                       $this->TextWrap($col, $this->row, $width, $systypes_array[$myrow["type"]], 'C');
+               elseif ($doctype == ST_WORKORDER)
+                       $this->TextWrap($col, $this->row, $width, $wo_types_array[$myrow["type"]], 'C');
                $col += $width; 
-               if ($doctype != 8 && isset($myrow['tax_id']))
+               if ($doctype == ST_WORKORDER)
+                       $this->TextWrap($col, $this->row, $width, $myrow["StockItemName"], 'C');
+               elseif ($doctype != ST_PURCHORDER && isset($myrow['tax_id']))
                        $this->TextWrap($col, $this->row, $width, $myrow['tax_id'], 'C');
                $col += $width; 
-               if ($doctype == 10)
+               if ($doctype == ST_SALESINVOICE)
                {
-                       $deliveries = get_parent_trans(10,$myrow['trans_no']);
+                       $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
                        }               
                        $this->TextWrap($col, $this->row, $width, $line, 'C');
                }
-               elseif (isset($myrow['order_']))
+               elseif ($doctype == ST_CUSTDELIVERY)
+               {
+                       $ref = $myrow['order_'];
+                       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 == ST_WORKORDER)
+                       $this->TextWrap($col, $this->row, $width, $myrow["location_name"], 'C');
+               elseif (isset($myrow['order_']) && $myrow['order_'] != 0)
                        $this->TextWrap($col, $this->row, $width, $myrow['order_'], 'C');
                $col += $width; 
-               $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->TextWrap($col, $this->row, $width, $row["terms"], 'C');
-               $col += $width; 
-               if ($doctype == 9)
+               if ($doctype == ST_SALESORDER || $doctype == ST_SALESQUOTE)
                        $this->TextWrap($col, $this->row, $width, sql2date($myrow['delivery_date']), 'C');
-               else if ($doctype != 8 && $doctype != 11 && isset($myrow['due_date']))
+               elseif ($doctype == ST_WORKORDER)       
+                       $this->TextWrap($col, $this->row, $width, $myrow["units_issued"], 'C');
+               elseif ($doctype != ST_PURCHORDER && $doctype != ST_CUSTCREDIT && $doctype != ST_CUSTPAYMENT &&
+                       $doctype != ST_SUPPAYMENT && isset($myrow['due_date']))
                        $this->TextWrap($col, $this->row, $width, sql2date($myrow['due_date']), 'C');
-               
+               if (!isset($packing_slip) || $packing_slip == 0)
+               {
+                       $this->row -= (2 * $this->lineHeight);
+                       if ($doctype == ST_WORKORDER)
+                               $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 = $iline5 - $this->lineHeight - 1;
                $this->Font('bold');
                $count = count($this->headers);
                $this->Font();
                $this->Font('italic');
                $this->row = $iline7 - $this->lineHeight - 6;
-               $this->TextWrap($ccol, $this->row, $right - $ccol, $doc_Please_Quote . " - " . $myrow['curr_code'], 'C');
-               $this->NewLine();
+               if ($doctype != ST_WORKORDER)
+                       $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->NewLine();
+                       $this->row -= $this->lineHeight;
                }       
-               if ($doctype == 10 && $branch['disable_branch'] > 0) // payment links
+               if ($doctype == ST_SALESINVOICE && $branch['disable_branch'] > 0) // payment links
                {
                        if ($branch['disable_branch'] == 1)
                        {
                                        $name . "&amount=" . $amt . "&currency_code=" . $myrow['curr_code'];
                                $this->fontSize -= 2;
                                $this->TextWrap($ccol, $this->row, $right - $ccol, $txt, 'C');
-                               $this->NewLine();
+                               $this->row -= $this->lineHeight;
                                $this->SetTextColor(0, 0, 255);
                                $this->TextWrap($ccol, $this->row, $right - $ccol, $url, 'C');
                                $this->SetTextColor(0, 0, 0);
                                $this->addLink($url, $ccol, $this->row, $this->pageWidth - $this->rightMargin, $this->row + $this->lineHeight);
                                $this->fontSize += 2;
-                               $this->NewLine();
+                               $this->row -= $this->lineHeight;
                        }
                }
+               if ($doc_Extra != "")
+               {
+                       $this->TextWrap($ccol, $this->row, $right - $ccol, $doc_Extra, 'C');
+                       $this->row -= $this->lineHeight;
+               }
                if ($this->params['comments'] != '')
                {
                        $this->TextWrap($ccol, $this->row, $right - $ccol, $this->params['comments'], 'C');
-                       $this->NewLine();
+                       $this->row -= $this->lineHeight;
                }
-               $legal = get_company_pref('legal_text');
-               if ($doctype == 10 && $legal != "") 
+               if (($doctype == ST_SALESINVOICE || $doctype == ST_STATEMENT) && $this->company['legal_text'] != "") 
                {
-                       $this->TextWrap($ccol, $this->row, $right - $ccol, $legal, 'C');
-                       $this->NewLine();
+                       $this->TextWrapLines($ccol, $right - $ccol, $this->company['legal_text'], 'C');
                }
                $this->Font();
                $temp = $iline6 - $this->lineHeight - 2;