Added audit trail, changed users primary key, some smaler fixes.
[fa-stable.git] / reporting / rep304.php
index 11cf152e3b3767702548f89902e302627093722a..8929b1e6f3410a95f89c5500ba30ffa88dd499ec 100644 (file)
@@ -1,5 +1,14 @@
 <?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>.
+***********************************************************************/
 $page_security = 2;
 // ----------------------------------------------------------------
 // $ Revision: 2.0 $
@@ -7,17 +16,17 @@ $page_security = 2;
 // date_:      2005-05-19
 // Title:      Inventory Planning
 // ----------------------------------------------------------------
-$path_to_root="../";
+$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 . "gl/includes/gl_db.inc");
-include_once($path_to_root . "inventory/includes/db/items_category_db.inc");
+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/banking.inc");
+include_once($path_to_root . "/gl/includes/gl_db.inc");
+include_once($path_to_root . "/inventory/includes/db/items_category_db.inc");
 
 //----------------------------------------------------------------------------------------------------
 
-// trial_inquiry_controls();
 print_inventory_sales();
 
 function getTransactions($category, $location, $from, $to)
@@ -29,8 +38,10 @@ function getTransactions($category, $location, $from, $to)
                        ".TB_PREF."stock_master.stock_id,
                        ".TB_PREF."stock_master.description,
                        ".TB_PREF."stock_moves.loc_code,
-                       SUM(-".TB_PREF."stock_moves.qty*".TB_PREF."stock_moves.price*(1-".TB_PREF."stock_moves.discount_percent)) AS amt,
-                       SUM(-".TB_PREF."stock_moves.qty) *(".TB_PREF."stock_master.material_cost + ".TB_PREF."stock_master.labour_cost + ".TB_PREF."stock_master.overhead_cost) AS cost
+                       ".TB_PREF."debtor_trans.debtor_no,
+                       ".TB_PREF."stock_moves.tran_date,
+                       -".TB_PREF."stock_moves.qty*".TB_PREF."stock_moves.price*(1-".TB_PREF."stock_moves.discount_percent) AS amt,
+                       -".TB_PREF."stock_moves.qty *(".TB_PREF."stock_master.material_cost + ".TB_PREF."stock_master.labour_cost + ".TB_PREF."stock_master.overhead_cost) AS cost
                FROM ".TB_PREF."stock_master,
                        ".TB_PREF."stock_category,
                        ".TB_PREF."debtor_trans,
@@ -49,13 +60,8 @@ function getTransactions($category, $location, $from, $to)
                if ($location != 'all')
                        $sql .= " AND ".TB_PREF."stock_moves.loc_code = '$location'";
                //$sql .= " AND SUM(".TB_PREF."stock_moves.qty) != 0
-               $sql .= " GROUP BY ".TB_PREF."stock_master.category_id,
-                       ".TB_PREF."stock_category.description,
-                       ".TB_PREF."stock_master.stock_id,
-                       ".TB_PREF."stock_master.description
-               ORDER BY ".TB_PREF."stock_master.category_id,
+               $sql .= " ORDER BY ".TB_PREF."stock_master.category_id,
                        ".TB_PREF."stock_master.stock_id";
-
     return db_query($sql,"No transactions were returned");
 
 }
@@ -66,14 +72,17 @@ function print_inventory_sales()
 {
     global $path_to_root;
 
-    include_once($path_to_root . "reporting/includes/pdf_report.inc");
-
        $from = $_POST['PARAM_0'];
        $to = $_POST['PARAM_1'];
     $category = $_POST['PARAM_2'];
     $location = $_POST['PARAM_3'];
     $detail = $_POST['PARAM_4'];
        $comments = $_POST['PARAM_5'];
+       $destination = $_POST['PARAM_6'];
+       if ($destination)
+               include_once($path_to_root . "/reporting/includes/excel_report.inc");
+       else
+               include_once($path_to_root . "/reporting/includes/pdf_report.inc");
 
     $dec = user_price_dec();
 
@@ -102,7 +111,7 @@ function print_inventory_sales()
                                    2 => array('text' => _('Category'), 'from' => $cat, 'to' => ''),
                                    3 => array('text' => _('Location'), 'from' => $loc, 'to' => ''));
 
-    $rep = new FrontReport(_('Inventory Sales Report'), "InventorySalesReport.pdf", user_pagesize());
+    $rep = new FrontReport(_('Inventory Sales Report'), "InventorySalesReport", user_pagesize());
 
     $rep->Font();
     $rep->Info($params, $cols, $headers, $aligns);
@@ -112,7 +121,8 @@ function print_inventory_sales()
        $total = $grandtotal = 0.0;
        $total1 = $grandtotal1 = 0.0;
        $total2 = $grandtotal2 = 0.0;
-       $catt = '';
+       $amt = $cost = $cb = 0;
+       $catt = $stock_id = $stock_desc = '';
        while ($trans=db_fetch($res))
        {
                if ($catt != $trans['cat_description'])
@@ -124,9 +134,9 @@ function print_inventory_sales()
                                        $rep->NewLine(2, 3);
                                        $rep->TextCol(0, 2, _('Total'));
                                }
-                               $rep->TextCol(2, 3, number_format2($total, $dec));
-                               $rep->TextCol(3, 4, number_format2($total1, $dec));
-                               $rep->Textcol(4, 5, number_format2($total2, $dec));
+                               $rep->AmountCol(2, 3, $total, $dec);
+                               $rep->AmountCol(3, 4, $total1, $dec);
+                               $rep->AmountCol(4, 5, $total2, $dec);
                                if ($detail)
                                {
                                        $rep->Line($rep->row - 2);
@@ -141,33 +151,57 @@ function print_inventory_sales()
                        if ($detail)
                                $rep->NewLine();
                }
-               $cb = $trans['amt'] - $trans['cost'];
-               if ($detail)
+               if ($stock_id != $trans['stock_id'])
                {
-                       $rep->NewLine();
-                       $rep->fontsize -= 2;
-                       $rep->TextCol(0, 1, $trans['stock_id']);
-                       $rep->TextCol(1, 2, $trans['description']);
-                       $rep->TextCol(2, 3, number_format2($trans['amt'], user_qty_dec()));
-                       $rep->TextCol(3, 4, number_format2($trans['cost'], $dec));
-                       $rep->TextCol(4, 5, number_format2($cb, $dec));
-                       $rep->fontsize += 2;
+                       if ($stock_id != '')
+                       {
+                               if ($detail)
+                               {
+                                       $rep->NewLine();
+                                       $rep->fontsize -= 2;
+                                       $rep->TextCol(0, 1, $stock_id);
+                                       $rep->TextCol(1, 2, $stock_desc);
+                                       $rep->AmountCol(2, 3, $amt, $dec);
+                                       $rep->AmountCol(3, 4, $cost, $dec);
+                                       $rep->AmountCol(4, 5, $cb, $dec);
+                                       $rep->fontsize += 2;
+                               }
+                               $amt = $cost = $cb = 0;
+                       }
+                       $stock_id = $trans['stock_id'];
+                       $stock_desc = $trans['description'];
                }
+               $curr = get_customer_currency($trans['debtor_no']);
+               $rate = get_exchange_rate_from_home_currency($curr, sql2date($trans['tran_date']));
+               $trans['amt'] *= $rate;
+               $amt += $trans['amt'];
+               $cost += $trans['cost'];
+               $cb1 = $trans['amt'] - $trans['cost'];
+               $cb += $cb1;
                $total += $trans['amt'];
                $total1 += $trans['cost'];
-               $total2 += $cb;
+               $total2 += $cb1;
                $grandtotal += $trans['amt'];
                $grandtotal1 += $trans['cost'];
-               $grandtotal2 += $cb;
+               $grandtotal2 += $cb1;
        }
        if ($detail)
        {
+               $rep->NewLine();
+               $rep->fontsize -= 2;
+               $rep->TextCol(0, 1, $stock_id);
+               $rep->TextCol(1, 2, $stock_desc);
+               $rep->AmountCol(2, 3, $amt, $dec);
+               $rep->AmountCol(3, 4, $cost, $dec);
+               $rep->AmountCol(4, 5, $cb, $dec);
+               $rep->fontsize += 2;
+
                $rep->NewLine(2, 3);
                $rep->TextCol(0, 2, _('Total'));
        }
-       $rep->TextCol(2, 3, number_format2($total, $dec));
-       $rep->TextCol(3, 4, number_format2($total1, $dec));
-       $rep->Textcol(4, 5, number_format2($total2, $dec));
+       $rep->AmountCol(2, 3, $total, $dec);
+       $rep->AmountCol(3, 4, $total1, $dec);
+       $rep->AmountCol(4, 5, $total2, $dec);
        if ($detail)
        {
                $rep->Line($rep->row - 2);
@@ -175,11 +209,12 @@ function print_inventory_sales()
        }
        $rep->NewLine(2, 1);
        $rep->TextCol(0, 2, _('Grand Total'));
-       $rep->TextCol(2, 3, number_format2($grandtotal, $dec));
-       $rep->TextCol(3, 4, number_format2($grandtotal1, $dec));
-       $rep->Textcol(4, 5, number_format2($grandtotal2, $dec));
+       $rep->AmountCol(2, 3, $grandtotal, $dec);
+       $rep->AmountCol(3, 4, $grandtotal1, $dec);
+       $rep->AmountCol(4, 5, $grandtotal2, $dec);
 
        $rep->Line($rep->row  - 4);
+       $rep->NewLine();
     $rep->End();
 }