Feature 5388: Print Invoices (documents) list gets too long. Fixed by default 180...
[fa-stable.git] / reporting / rep204.php
index e3d3dc5a9f9ddfc396ad4c0aa88bc9a76accbde3..51fbf012d66c5182f1752500694e54818bbf2f1b 100644 (file)
@@ -1,49 +1,58 @@
 <?php
-
-$page_security = 2;
+/**********************************************************************
+    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 = 'SA_SUPPLIERANALYTIC';
 // ----------------------------------------------------------------
 // $ Revision: 2.0 $
 // Creator:    Joe Hunt
 // date_:      2005-05-19
 // Title:      Outstanding GRNs Report
 // ----------------------------------------------------------------
-$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 . "/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");
 
 //----------------------------------------------------------------------------------------------------
 
-// trial_inquiry_controls();
 print_outstanding_GRN();
 
 function getTransactions($fromsupp)
 {
-       $sql = "SELECT ".TB_PREF."grn_batch.id,
+       $sql = "SELECT grn.id,
                        order_no,
-                       ".TB_PREF."grn_batch.supplier_id,
-                       ".TB_PREF."suppliers.supp_name,
-                       ".TB_PREF."grn_items.item_code,
-                       ".TB_PREF."grn_items.description,
+                       grn.supplier_id,
+                       supplier.supp_name,
+                       item.item_code,
+                       item.description,
                        qty_recd,
                        quantity_inv,
                        std_cost_unit,
                        act_price,
                        unit_price
-               FROM ".TB_PREF."grn_items,
-                       ".TB_PREF."grn_batch,
-                       ".TB_PREF."purch_order_details,
-                       ".TB_PREF."suppliers
-               WHERE ".TB_PREF."grn_batch.supplier_id=".TB_PREF."suppliers.supplier_id
-               AND ".TB_PREF."grn_batch.id = ".TB_PREF."grn_items.grn_batch_id
-               AND ".TB_PREF."grn_items.po_detail_item = ".TB_PREF."purch_order_details.po_detail_item
-               AND qty_recd-quantity_inv <>0 ";
-       if ($fromsupp != reserved_words::get_all_numeric())
-               $sql .= "AND ".TB_PREF."grn_batch.supplier_id ='" . $fromsupp . "' ";
-       $sql .= "ORDER BY ".TB_PREF."grn_batch.supplier_id,
-                       ".TB_PREF."grn_batch.id";
+               FROM ".TB_PREF."grn_items item,
+                       ".TB_PREF."grn_batch grn,
+                       ".TB_PREF."purch_order_details poline,
+                       ".TB_PREF."suppliers supplier
+               WHERE grn.supplier_id=supplier.supplier_id
+               AND grn.id = item.grn_batch_id
+               AND item.po_detail_item = poline.po_detail_item
+               AND qty_recd-quantity_inv!=0";
+
+       if ($fromsupp != ALL_TEXT)
+               $sql .= " AND grn.supplier_id =".db_escape($fromsupp);
+
+       $sql .= " ORDER BY grn.supplier_id,     grn.id";
 
     return db_query($sql, "No transactions were returned");
 }
@@ -54,12 +63,17 @@ function print_outstanding_GRN()
 {
     global $path_to_root;
 
-    include_once($path_to_root . "reporting/includes/pdf_report.inc");
-
     $fromsupp = $_POST['PARAM_0'];
     $comments = $_POST['PARAM_1'];
+       $orientation = $_POST['PARAM_2'];
+       $destination = $_POST['PARAM_3'];
+       if ($destination)
+               include_once($path_to_root . "/reporting/includes/excel_report.inc");
+       else
+               include_once($path_to_root . "/reporting/includes/pdf_report.inc");
 
-       if ($fromsupp == reserved_words::get_all_numeric())
+       $orientation = ($orientation ? 'L' : 'P');
+       if ($fromsupp == ALL_TEXT)
                $from = _('All');
        else
                $from = get_supplier_name($fromsupp);
@@ -68,18 +82,20 @@ function print_outstanding_GRN()
        $cols = array(0, 40, 80, 190,   250, 320, 385, 450,     515);
 
        $headers = array(_('GRN'), _('Order'), _('Item') . '/' . _('Description'), _('Qty Recd'), _('qty Inv'), _('Balance'),
-               _('Std Cost'), _('Value'));
+               _('Act Price'), _('Value'));
 
        $aligns = array('left', 'left', 'left', 'right', 'right', 'right', 'right', 'right');
 
     $params =   array(         0 => $comments,
                                    1 => array('text' => _('Supplier'), 'from' => $from, 'to' => ''));
 
-    $rep = new FrontReport(_('Outstanding GRNs Report'), "OutstandingGRN.pdf", user_pagesize());
+    $rep = new FrontReport(_('Outstanding GRNs Report'), "OutstandingGRN", user_pagesize(), 9, $orientation);
+    if ($orientation == 'L')
+       recalculate_cols($cols);
 
     $rep->Font();
     $rep->Info($params, $cols, $headers, $aligns);
-    $rep->Header();
+    $rep->NewPage();
 
        $Tot_Val=0;
        $Supplier = '';
@@ -95,7 +111,7 @@ function print_outstanding_GRN()
                        {
                                $rep->NewLine(2);
                                $rep->TextCol(0, 7, _('Total'));
-                               $rep->TextCol(7, 8, number_format2($SuppTot_Val, $dec));
+                               $rep->AmountCol(7, 8, $SuppTot_Val, $dec);
                                $rep->Line($rep->row - 2);
                                $rep->NewLine(3);
                                $SuppTot_Val = 0;
@@ -107,13 +123,13 @@ function print_outstanding_GRN()
                $rep->TextCol(0, 1, $GRNs['id']);
                $rep->TextCol(1, 2, $GRNs['order_no']);
                $rep->TextCol(2, 3, $GRNs['item_code'] . '-' . $GRNs['description']);
-               $rep->TextCol(3, 4, number_format2($GRNs['qty_recd'], $dec2));
-               $rep->TextCol(4, 5, number_format2($GRNs['quantity_inv'], $dec2));
+               $rep->AmountCol(3, 4, $GRNs['qty_recd'], $dec2);
+               $rep->AmountCol(4, 5, $GRNs['quantity_inv'], $dec2);
                $QtyOstg = $GRNs['qty_recd'] - $GRNs['quantity_inv'];
-               $Value = ($GRNs['qty_recd'] - $GRNs['quantity_inv']) * $GRNs['std_cost_unit'];
-               $rep->TextCol(5, 6, number_format2($QtyOstg, $dec2));
-               $rep->TextCol(6, 7, number_format2($GRNs['std_cost_unit'], $dec));
-               $rep->TextCol(7, 8, number_format2($Value, $dec));
+               $Value = ($GRNs['qty_recd'] - $GRNs['quantity_inv']) * $GRNs['act_price'];
+               $rep->AmountCol(5, 6, $QtyOstg, $dec2);
+               $rep->AmountCol(6, 7, $GRNs['act_price'], $dec);
+               $rep->AmountCol(7, 8, $Value, $dec);
                $Tot_Val += $Value;
                $SuppTot_Val += $Value;
 
@@ -123,16 +139,16 @@ function print_outstanding_GRN()
        {
                $rep->NewLine();
                $rep->TextCol(0, 7, _('Total'));
-               $rep->TextCol(7, 8, number_format2($SuppTot_Val, $dec));
+               $rep->AmountCol(7, 8, $SuppTot_Val, $dec);
                $rep->Line($rep->row - 2);
                $rep->NewLine(3);
                $SuppTot_Val = 0;
        }
        $rep->NewLine(2);
        $rep->TextCol(0, 7, _('Grand Total'));
-       $rep->TextCol(7, 8, number_format2($Tot_Val, $dec));
+       $rep->AmountCol(7, 8, $Tot_Val, $dec);
        $rep->Line($rep->row - 2);
+       $rep->NewLine();
     $rep->End();
 }
 
-?>
\ No newline at end of file