Paged transaction inquiries optimized for maximum links, continued.
[fa-stable.git] / dimensions / inquiry / search_dimensions.php
index ab4d804e690a8d300d114bb15b4c14a8b3b34640..4eb25480fe3ef751630139871c0ef1864404a0c6 100644 (file)
@@ -1,15 +1,15 @@
 <?php
 /**********************************************************************
     Copyright (C) FrontAccounting, LLC.
-       Released under the terms of the GNU Affero General Public License,
-       AGPL, as published by the Free Software Foundation, either version 
-       of the License, or (at your option) any later version.
+       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/agpl-3.0.html>.
+    See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
 ***********************************************************************/
-$page_security = 2;
+$page_security = 'SA_DIMTRANSVIEW';
 $path_to_root="../..";
 
 include($path_to_root . "/includes/db_pager.inc");
@@ -17,21 +17,22 @@ include_once($path_to_root . "/includes/session.inc");
 
 include_once($path_to_root . "/includes/date_functions.inc");
 include_once($path_to_root . "/includes/ui.inc");
+include_once($path_to_root . "/reporting/includes/reporting.inc");
 $js = "";
-if ($use_popup_windows)
+if ($SysPrefs->use_popup_windows)
        $js .= get_js_open_window(800, 500);
-if ($use_date_picker)
+if (user_use_date_picker())
        $js .= get_js_date_picker();
 
 if (isset($_GET['outstanding_only']) && $_GET['outstanding_only'])
 {
        $outstanding_only = 1;
-       page(_("Search Outstanding Dimensions"), false, false, "", $js);
+       page(_($help_context = "Search Outstanding Dimensions"), false, false, "", $js);
 }
 else
 {
        $outstanding_only = 0;
-       page(_("Search Dimensions"), false, false, "", $js);
+       page(_($help_context = "Search Dimensions"), false, false, "", $js);
 }
 //-----------------------------------------------------------------------------------
 // Ajax updates
@@ -50,7 +51,6 @@ if (get_post('SearchOrders'))
        $Ajax->addDisable(true, 'OpenOnly', $disable);
 
        if ($disable) {
-//             $Ajax->addFocus(true, 'OrderNumber');
                set_focus('OrderNumber');
        } else
                set_focus('type_');
@@ -65,9 +65,9 @@ if (isset($_GET["stock_id"]))
 
 //--------------------------------------------------------------------------------------
 
-start_form(false, true, $_SERVER['PHP_SELF'] ."?outstanding_only=" . $outstanding_only . SID);
+start_form(false, false, $_SERVER['PHP_SELF'] ."?outstanding_only=$outstanding_only");
 
-start_table("class='tablestyle_noborder'");
+start_table(TABLESTYLE_NOBORDER);
 start_row();
 
 ref_cells(_("Reference:"), 'OrderNumber', '',null, '', true);
@@ -85,86 +85,47 @@ if (!$outstanding_only)
 else
        $_POST['OpenOnly'] = 1;
 
-submit_cells('SearchOrders', _("Search"), '', '', true);
+submit_cells('SearchOrders', _("Search"), '', '', 'default');
 
 end_row();
 end_table();
 
-end_form();
-
 $dim = get_company_pref('use_dimension');
 
 function view_link($row) 
 {
-       return get_dimensions_trans_view_str(systypes::dimension(), $row["id"]);
+       return get_dimensions_trans_view_str(ST_DIMENSION, $row["id"]);
 }
 
-function is_closed($row)
+function sum_dimension($row) 
 {
-       return $row['closed'] ? _('Yes') : _('No');
+       return get_dimension_balance($row['id'], $_POST['FromDate'], $_POST['ToDate']); 
 }
 
-function sum_dimension($row) 
+function is_closed($row)
 {
-       $sql = "SELECT SUM(amount) FROM ".TB_PREF."gl_trans WHERE tran_date >= '" .
-               date2sql($_POST['FromDate']) . "' AND
-               tran_date <= '" . date2sql($_POST['ToDate']) . "' AND (dimension_id = " .
-               $row['id']." OR dimension2_id = " .$row['id'].")";
-       $res = db_query($sql, "Sum of transactions could not be calculated");
-       $row = db_fetch_row($res);
-
-       return $row[0];
+       return $row['closed'] ? _('Yes') : _('No');
 }
 
 function is_overdue($row)
 {
-       return date_diff(Today(), sql2date($row["due_date"]), "d") > 0;
+       return date_diff2(Today(), sql2date($row["due_date"]), "d") > 0;
 }
 
 function edit_link($row)
 {
-       return $row["closed"] ?  '' :
-               pager_link(_("Edit"),
+       return pager_link(_("Edit"),
                        "/dimensions/dimension_entry.php?trans_no=" . $row["id"], ICON_EDIT);
 }
 
-$sql = "SELECT dim.id,
-       dim.reference,
-       dim.name,
-       dim.type_,
-       dim.date_,
-       dim.due_date,
-       dim.closed
-       FROM ".TB_PREF."dimensions as dim WHERE id > 0";
-
-if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "")
+function prt_link($row)
 {
-       $sql .= " AND reference LIKE '%". $_POST['OrderNumber'] . "%'";
-} else {
-
-       if ($dim == 1)
-               $sql .= " AND type_=1";
-
-       if (isset($_POST['OpenOnly']))
-       {
-               $sql .= " AND closed=0";
-       }
-
-       if (isset($_POST['type_']) && ($_POST['type_'] > 0))
-       {
-               $sql .= " AND type_=" . $_POST['type_'];
-       }
-
-       if (isset($_POST['OverdueOnly']))
-       {
-               $today = date2sql(Today());
+       return print_document_link($row['id'], _("Print"), true, ST_DIMENSION, ICON_PRINT);
+}
 
-               $sql .= " AND due_date < '$today' ";
-       }
 
-       $sql .= " AND date_ >= '" . date2sql($_POST['FromDate']) . "'
-               AND date_ <= '" . date2sql($_POST['ToDate']) . "'";
-}
+$sql = get_sql_for_search_dimensions($dim, $_POST['FromDate'], $_POST['ToDate'],
+       $_POST['OrderNumber'], $_POST['type_'], check_value('OpenOnly'), check_value('OverdueOnly'));
 
 $cols = array(
        _("#") => array('fun'=>'view_link'), 
@@ -172,10 +133,11 @@ $cols = array(
        _("Name"), 
        _("Type"), 
        _("Date") =>'date',
-       _("Due Date") => array('date', 'ord'=>'asc'), 
+       _("Due Date") => array('name'=>'due_date', 'type'=>'date', 'ord'=>'asc'), 
        _("Closed") => array('fun'=>'is_closed'),
        _("Balance") => array('type'=>'amount', 'insert'=>true, 'fun'=>'sum_dimension'),
-       array('insert'=>true, 'fun'=>'edit_link')
+       array('insert'=>true, 'fun'=>'edit_link'),
+       array('insert'=>true, 'fun'=>'prt_link')
 );
 
 if ($outstanding_only) {
@@ -185,16 +147,10 @@ if ($outstanding_only) {
 $table =& new_db_pager('dim_tbl', $sql, $cols);
 $table->set_marker('is_overdue', _("Marked dimensions are overdue."));
 
-if (get_post('SearchOrders')) {
-       $table->set_sql($sql);
-       $table->set_columns($cols);
-}
 $table->width = "80%";
-start_form();
 
 display_db_pager($table);
 
 end_form();
 end_page();
 
-?>