New files from unstable branch
[fa-stable.git] / reporting / rep209.php
index 55153ee09ecf94dc2e9e07c16303c5fbf09192e4..1d297de54d503f21c47c780e9e1cbeb6a853fef9 100644 (file)
@@ -1,12 +1,12 @@
 <?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 
+       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.  
+    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
 
@@ -23,6 +23,8 @@ $path_to_root="..";
 include_once($path_to_root . "/includes/session.inc");
 include_once($path_to_root . "/includes/date_functions.inc");
 include_once($path_to_root . "/includes/data_checks.inc");
+include_once($path_to_root . "/includes/db/crm_contacts_db.inc");
+include_once($path_to_root . "/taxes/tax_calc.inc");
 
 //----------------------------------------------------------------------------------------------------
 
@@ -31,9 +33,10 @@ print_po();
 //----------------------------------------------------------------------------------------------------
 function get_po($order_no)
 {
-       $sql = "SELECT ".TB_PREF."purch_orders.*, ".TB_PREF."suppliers.supp_name,  ".TB_PREF."suppliers.supp_account_no,
+       $sql = "SELECT ".TB_PREF."purch_orders.*, ".TB_PREF."suppliers.supp_name,  "
+               .TB_PREF."suppliers.supp_account_no,".TB_PREF."suppliers.tax_included,
                ".TB_PREF."suppliers.curr_code, ".TB_PREF."suppliers.payment_terms, ".TB_PREF."locations.location_name,
-               ".TB_PREF."suppliers.email, ".TB_PREF."suppliers.address, ".TB_PREF."suppliers.contact
+               ".TB_PREF."suppliers.address, ".TB_PREF."suppliers.contact, ".TB_PREF."suppliers.tax_group_id
                FROM ".TB_PREF."purch_orders, ".TB_PREF."suppliers, ".TB_PREF."locations
                WHERE ".TB_PREF."purch_orders.supplier_id = ".TB_PREF."suppliers.supplier_id
                AND ".TB_PREF."locations.loc_code = into_stock_location
@@ -83,6 +86,7 @@ function print_po()
        if ($email == 0)
        {
                $rep = new FrontReport(_('PURCHASE ORDER'), "PurchaseOrderBulk", user_pagesize());
+               $rep->SetHeaderType('Header2');
                $rep->currency = $cur;
                $rep->Font();
                $rep->Info($params, $cols, null, $aligns);
@@ -97,6 +101,7 @@ function print_po()
                if ($email == 1)
                {
                        $rep = new FrontReport("", "", user_pagesize());
+                       $rep->SetHeaderType('Header2');
                        $rep->currency = $cur;
                        $rep->Font();
                        $rep->title = _('PURCHASE ORDER');
@@ -105,10 +110,13 @@ function print_po()
                }
                else
                        $rep->title = _('PURCHASE ORDER');
-               $rep->Header2($myrow, null, $myrow, $baccount, ST_PURCHORDER);
+               $contacts = get_supplier_contacts($myrow['supplier_id'], 'order');
+               $rep->SetCommonData($myrow, null, $myrow, $baccount, ST_PURCHORDER, $contacts);
+               $rep->NewPage();
 
                $result = get_po_details($i);
                $SubTotal = 0;
+               $items = $prices = array();
                while ($myrow2=db_fetch($result))
                {
                        $data = get_purchase_data($myrow['supplier_id'], $myrow2['item_code']);
@@ -123,8 +131,10 @@ function print_po()
                                        $myrow2['unit_price'] = round2($myrow2['unit_price'] * $data['conversion_factor'], user_price_dec());
                                        $myrow2['quantity_ordered'] = round2($myrow2['quantity_ordered'] / $data['conversion_factor'], user_qty_dec());
                                }
-                       }       
+                       }
                        $Net = round2(($myrow2["unit_price"] * $myrow2["quantity_ordered"]), user_price_dec());
+                       $prices[] = $Net;
+                       $items[] = $myrow2['item_code'];
                        $SubTotal += $Net;
                        $dec2 = 0;
                        $DisplayPrice = price_decimal_format($myrow2["unit_price"],$dec2);
@@ -139,7 +149,7 @@ function print_po()
                        $rep->TextCol(6, 7,     $DisplayNet, -2);
                        $rep->NewLine(1);
                        if ($rep->row < $rep->bottomMargin + (15 * $rep->lineHeight))
-                               $rep->Header2($myrow, $branch, $myrow, $baccount, ST_PURCHORDER);
+                               $rep->NewPage();
                }
                if ($myrow['comments'] != "")
                {
@@ -151,17 +161,50 @@ function print_po()
                $rep->row = $rep->bottomMargin + (15 * $rep->lineHeight);
                $linetype = true;
                $doctype = ST_PURCHORDER;
-               if ($rep->currency != $myrow['curr_code'])
-               {
-                       include($path_to_root . "/reporting/includes/doctext2.inc");
-               }
-               else
-               {
-                       include($path_to_root . "/reporting/includes/doctext.inc");
-               }
+               include($path_to_root . "/reporting/includes/doctext.inc");
 
                $rep->TextCol(3, 6, $doc_Sub_total, -2);
                $rep->TextCol(6, 7,     $DisplaySubTot, -2);
+               $rep->NewLine();
+
+               $tax_items = get_tax_for_items($items, $prices, 0,
+                 $myrow['tax_group_id'], $myrow['tax_included'],  null);
+               $first = true;
+               foreach($tax_items as $tax_item)
+               {
+                       $DisplayTax = number_format2($tax_item['Value'], $dec);
+
+                       if (isset($suppress_tax_rates) && $suppress_tax_rates == 1)
+                               $tax_type_name = $tax_item['tax_type_name'];
+                       else
+                               $tax_type_name = $tax_item['tax_type_name']." (".$tax_item['rate']."%) ";
+
+                       if ($myrow['tax_included'])
+                       {
+                               if (isset($alternative_tax_include_on_docs) && $alternative_tax_include_on_docs == 1)
+                               {
+                                       if ($first)
+                                       {
+                                               $rep->TextCol(3, 6, _("Total Tax Excluded"), -2);
+                                               $rep->TextCol(6, 7,     number_format2($sign*$tax_item['net_amount'], $dec), -2);
+                                               $rep->NewLine();
+                                       }
+                                       $rep->TextCol(3, 6, $tax_type_name, -2);
+                                       $rep->TextCol(6, 7,     $DisplayTax, -2);
+                                       $first = false;
+                               }
+                               else
+                                       $rep->TextCol(3, 7, $doc_Included . " " . $tax_type_name . $doc_Amount . ": " . $DisplayTax, -2);
+                       }
+                       else
+                       {
+                               $SubTotal += $tax_item['Value'];
+                               $rep->TextCol(3, 6, $tax_type_name, -2);
+                               $rep->TextCol(6, 7,     $DisplayTax, -2);
+                       }
+                       $rep->NewLine();
+               }
+
                $rep->NewLine();
                $DisplayTotal = number_format2($SubTotal, $dec);
                $rep->Font('bold');
@@ -172,13 +215,12 @@ function print_po()
                {
                        $rep->NewLine(1);
                        $rep->TextCol(1, 7, $myrow['curr_code'] . ": " . $words, - 2);
-               }       
+               }
                $rep->Font();
                if ($email == 1)
                {
-                       $myrow['contact_email'] = $myrow['email'];
                        $myrow['DebtorName'] = $myrow['supp_name'];
-                       if ($myrow['contact'] != '') $myrow['DebtorName'] = $myrow['contact'];
+
                        if ($myrow['reference'] == "")
                                $myrow['reference'] = $myrow['order_no'];
                        $rep->End($email, $doc_Order_no . " " . $myrow['reference'], $myrow);