2 /**********************************************************************
3 Copyright (C) FrontAccounting, LLC.
4 Released under the terms of the GNU General Public License, GPL,
5 as published by the Free Software Foundation, either version 3
6 of the License, or (at your option) any later version.
7 This program is distributed in the hope that it will be useful,
8 but WITHOUT ANY WARRANTY; without even the implied warranty of
9 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
10 See the License here <http://www.gnu.org/licenses/gpl-3.0.html>.
11 ***********************************************************************/
13 $path_to_root="../..";
15 include($path_to_root . "/includes/db_pager.inc");
16 include_once($path_to_root . "/includes/session.inc");
18 include_once($path_to_root . "/includes/date_functions.inc");
19 include_once($path_to_root . "/includes/ui.inc");
21 if ($use_popup_windows)
22 $js .= get_js_open_window(800, 500);
24 $js .= get_js_date_picker();
26 if (isset($_GET['outstanding_only']) && $_GET['outstanding_only'])
28 $outstanding_only = 1;
29 page(_("Search Outstanding Dimensions"), false, false, "", $js);
33 $outstanding_only = 0;
34 page(_("Search Dimensions"), false, false, "", $js);
36 //-----------------------------------------------------------------------------------
39 if (get_post('SearchOrders'))
41 $Ajax->activate('dim_table');
42 } elseif (get_post('_OrderNumber_changed'))
44 $disable = get_post('OrderNumber') !== '';
46 $Ajax->addDisable(true, 'FromDate', $disable);
47 $Ajax->addDisable(true, 'ToDate', $disable);
48 $Ajax->addDisable(true, 'type_', $disable);
49 $Ajax->addDisable(true, 'OverdueOnly', $disable);
50 $Ajax->addDisable(true, 'OpenOnly', $disable);
53 // $Ajax->addFocus(true, 'OrderNumber');
54 set_focus('OrderNumber');
58 $Ajax->activate('dim_table');
61 //--------------------------------------------------------------------------------------
63 if (isset($_GET["stock_id"]))
64 $_POST['SelectedStockItem'] = $_GET["stock_id"];
66 //--------------------------------------------------------------------------------------
68 start_form(false, true, $_SERVER['PHP_SELF'] ."?outstanding_only=" . $outstanding_only . SID);
70 start_table("class='tablestyle_noborder'");
73 ref_cells(_("Reference:"), 'OrderNumber', '',null, '', true);
75 number_list_cells(_("Type"), 'type_', null, 1, 2, _("All"));
76 date_cells(_("From:"), 'FromDate', '', null, 0, 0, -5);
77 date_cells(_("To:"), 'ToDate');
79 check_cells( _("Only Overdue:"), 'OverdueOnly', null);
81 if (!$outstanding_only)
83 check_cells( _("Only Open:"), 'OpenOnly', null);
86 $_POST['OpenOnly'] = 1;
88 submit_cells('SearchOrders', _("Search"), '', '', true);
95 $dim = get_company_pref('use_dimension');
97 function view_link($row)
99 return get_dimensions_trans_view_str(systypes::dimension(), $row["id"]);
102 function is_closed($row)
104 return $row['closed'] ? _('Yes') : _('No');
107 function sum_dimension($row)
109 $sql = "SELECT SUM(amount) FROM ".TB_PREF."gl_trans WHERE tran_date >= '" .
110 date2sql($_POST['FromDate']) . "' AND
111 tran_date <= '" . date2sql($_POST['ToDate']) . "' AND (dimension_id = " .
112 $row['id']." OR dimension2_id = " .$row['id'].")";
113 $res = db_query($sql, "Sum of transactions could not be calculated");
114 $row = db_fetch_row($res);
119 function is_overdue($row)
121 return date_diff(Today(), sql2date($row["due_date"]), "d") > 0;
124 function edit_link($row)
126 return $row["closed"] ? '' :
127 pager_link(_("Edit"),
128 "/dimensions/dimension_entry.php?trans_no=" . $row["id"], ICON_EDIT);
131 $sql = "SELECT dim.id,
138 FROM ".TB_PREF."dimensions as dim WHERE id > 0";
140 if (isset($_POST['OrderNumber']) && $_POST['OrderNumber'] != "")
142 $sql .= " AND reference LIKE '%". $_POST['OrderNumber'] . "%'";
146 $sql .= " AND type_=1";
148 if (isset($_POST['OpenOnly']))
150 $sql .= " AND closed=0";
153 if (isset($_POST['type_']) && ($_POST['type_'] > 0))
155 $sql .= " AND type_=" . $_POST['type_'];
158 if (isset($_POST['OverdueOnly']))
160 $today = date2sql(Today());
162 $sql .= " AND due_date < '$today' ";
165 $sql .= " AND date_ >= '" . date2sql($_POST['FromDate']) . "'
166 AND date_ <= '" . date2sql($_POST['ToDate']) . "'";
170 _("#") => array('fun'=>'view_link'),
175 _("Due Date") => array('name'=>'due_date', 'type'=>'date', 'ord'=>'asc'),
176 _("Closed") => array('fun'=>'is_closed'),
177 _("Balance") => array('type'=>'amount', 'insert'=>true, 'fun'=>'sum_dimension'),
178 array('insert'=>true, 'fun'=>'edit_link')
181 if ($outstanding_only) {
182 $cols[_("Closed")] = 'skip';
185 $table =& new_db_pager('dim_tbl', $sql, $cols);
186 $table->set_marker('is_overdue', _("Marked dimensions are overdue."));
188 if (get_post('SearchOrders')) {
189 $table->set_sql($sql);
190 $table->set_columns($cols);
192 $table->width = "80%";
195 display_db_pager($table);