Changed so Purchase Order also print taxes.
authorJoe Hunt <joe.hunt.consulting@gmail.com>
Sat, 24 Jul 2010 10:07:03 +0000 (10:07 +0000)
committerJoe Hunt <joe.hunt.consulting@gmail.com>
Sat, 24 Jul 2010 10:07:03 +0000 (10:07 +0000)
CHANGELOG.txt
reporting/includes/doctext.inc
reporting/rep209.php

index 6446a51d2777267fe5f2e524f7967f1232138439..663a6021a9075dfa64d50ed6ee2c204d9c589c09 100644 (file)
@@ -19,6 +19,11 @@ Legend:
 ! -> Note
 $ -> Affected files
 
 ! -> Note
 $ -> Affected files
 
+24-Jul-2010 Joe Hunt
+! Changed so Purchase Order also print taxes.
+$ /reporting/rep209.php
+  /reporting/doctype.inc
+  
 23-Jul-2010 Janusz Dobrowolski
 + Added tax information display
   /purchasing/view/view_grn.php
 23-Jul-2010 Janusz Dobrowolski
 + Added tax information display
   /purchasing/view/view_grn.php
index 0f47b5450d436bad3f2c3a935e332a115f7bf96c..4f52bd2cb22ad6c69cfc2a2a53df6127f80dfe7a 100644 (file)
@@ -151,7 +151,7 @@ if (isset($linetype))
                $doc_TOTAL_INVOICE = $doctype ==ST_SALESINVOICE ? _("TOTAL INVOICE") : _("TOTAL CREDIT");
                $doc_TOTAL_ORDER = _("TOTAL ORDER EX VAT");
                $doc_TOTAL_ORDER2 = _("TOTAL ORDER VAT INCL.");
                $doc_TOTAL_INVOICE = $doctype ==ST_SALESINVOICE ? _("TOTAL INVOICE") : _("TOTAL CREDIT");
                $doc_TOTAL_ORDER = _("TOTAL ORDER EX VAT");
                $doc_TOTAL_ORDER2 = _("TOTAL ORDER VAT INCL.");
-               $doc_TOTAL_PO = _("TOTAL PO EX VAT");
+               $doc_TOTAL_PO = _("TOTAL PO");
                $doc_TOTAL_DELIVERY = _("TOTAL DELIVERY INCL. VAT");
        }
        elseif ($doctype == ST_SUPPAYMENT || $doctype == ST_CUSTPAYMENT)
                $doc_TOTAL_DELIVERY = _("TOTAL DELIVERY INCL. VAT");
        }
        elseif ($doctype == ST_SUPPAYMENT || $doctype == ST_CUSTPAYMENT)
index c2892cf0b37254b2110ff23bf87920335527fb54..f0a42fff0418b1435fccb0c92d623a9740d86a11 100644 (file)
@@ -1,12 +1,12 @@
 <?php
 /**********************************************************************
     Copyright (C) FrontAccounting, LLC.
 <?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
        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>.
 ***********************************************************************/
 
     See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
 
@@ -24,6 +24,7 @@ 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 . "/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");
 
 //----------------------------------------------------------------------------------------------------
 
 
 //----------------------------------------------------------------------------------------------------
 
@@ -33,9 +34,9 @@ print_po();
 function get_po($order_no)
 {
        $sql = "SELECT ".TB_PREF."purch_orders.*, ".TB_PREF."suppliers.supp_name,  "
 function get_po($order_no)
 {
        $sql = "SELECT ".TB_PREF."purch_orders.*, ".TB_PREF."suppliers.supp_name,  "
-               .TB_PREF."suppliers.supp_account_no,
+               .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.curr_code, ".TB_PREF."suppliers.payment_terms, ".TB_PREF."locations.location_name,
-               ".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
                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
@@ -115,6 +116,7 @@ function print_po()
 
                $result = get_po_details($i);
                $SubTotal = 0;
 
                $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']);
                while ($myrow2=db_fetch($result))
                {
                        $data = get_purchase_data($myrow['supplier_id'], $myrow2['item_code']);
@@ -129,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());
                                }
                                        $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());
                        $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);
                        $SubTotal += $Net;
                        $dec2 = 0;
                        $DisplayPrice = price_decimal_format($myrow2["unit_price"],$dec2);
@@ -161,6 +165,46 @@ function print_po()
 
                $rep->TextCol(3, 6, $doc_Sub_total, -2);
                $rep->TextCol(6, 7,     $DisplaySubTot, -2);
 
                $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');
                $rep->NewLine();
                $DisplayTotal = number_format2($SubTotal, $dec);
                $rep->Font('bold');
@@ -171,7 +215,7 @@ function print_po()
                {
                        $rep->NewLine(1);
                        $rep->TextCol(1, 7, $myrow['curr_code'] . ": " . $words, - 2);
                {
                        $rep->NewLine(1);
                        $rep->TextCol(1, 7, $myrow['curr_code'] . ": " . $words, - 2);
-               }       
+               }
                $rep->Font();
                if ($email == 1)
                {
                $rep->Font();
                if ($email == 1)
                {