2 /**********************************************************************
3 Copyright (C) FrontAccounting, LLC.
4 Released under the terms of the GNU Affero General Public License,
5 AGPL, as published by the Free Software Foundation, either version
6 3 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/agpl-3.0.html>.
11 ***********************************************************************/
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");
20 include_once($path_to_root . "/includes/data_checks.inc");
22 include_once($path_to_root . "/reporting/includes/reporting.inc");
24 if ($use_popup_windows)
25 $js .= get_js_open_window(800, 500);
26 page(_("View or Print Transactions"), false, false, "", $js);
28 //----------------------------------------------------------------------------------------
29 function view_link($trans)
31 return get_trans_view_str($trans["type"], $trans["trans_no"]);
34 function prt_link($row)
36 if ($row['type'] != 12 && $row['type'] != 2) // customer payment or bank deposit printout not defined yet.
37 return print_document_link($row['trans_no'], _("Print"), true, $row['type'], ICON_PRINT);
40 function gl_view($row)
42 return get_gl_view_str($row["type"], $row["trans_no"]);
45 function viewing_controls()
47 display_note(_("Only documents can be printed."));
49 start_table("class='tablestyle_noborder'");
52 systypes_list_cells(_("Type:"), 'filterType', null, true);
54 if (!isset($_POST['FromTransNo']))
55 $_POST['FromTransNo'] = "1";
56 if (!isset($_POST['ToTransNo']))
57 $_POST['ToTransNo'] = "999999";
59 ref_cells(_("from #:"), 'FromTransNo');
61 ref_cells(_("to #:"), 'ToTransNo');
63 submit_cells('ProcessSearch', _("Search"), '', '', true);
70 //----------------------------------------------------------------------------------------
72 function check_valid_entries()
74 if (!is_numeric($_POST['FromTransNo']) OR $_POST['FromTransNo'] <= 0)
76 display_error(_("The starting transaction number is expected to be numeric and greater than zero."));
80 if (!is_numeric($_POST['ToTransNo']) OR $_POST['ToTransNo'] <= 0)
82 display_error(_("The ending transaction number is expected to be numeric and greater than zero."));
85 if (!isset($_POST['filterType']) || $_POST['filterType'] == "")
91 //----------------------------------------------------------------------------------------
93 function handle_search()
96 if (check_valid_entries()==true)
98 $db_info = get_systype_db_info($_POST['filterType']);
100 if ($db_info == null)
103 $table_name = $db_info[0];
104 $type_name = $db_info[1];
105 $trans_no_name = $db_info[2];
106 $trans_ref = $db_info[3];
108 $sql = "SELECT DISTINCT $trans_no_name as trans_no";
111 $sql .= " ,$trans_ref ";
113 $sql .= ", ".$_POST['filterType']." as type FROM $table_name
114 WHERE $trans_no_name >= " . $_POST['FromTransNo']. "
115 AND $trans_no_name <= " . $_POST['ToTransNo'];
117 if ($type_name != null)
118 $sql .= " AND `$type_name` = " . $_POST['filterType'];
120 $sql .= " ORDER BY $trans_no_name";
123 $print_type = $_POST['filterType'];
124 $print_out = ($print_type == 10 || $print_type == 11 || $print_type == systypes::cust_dispatch() ||
125 $print_type == systypes::po() || $print_type == systypes::sales_order());
130 _("View") => array('insert'=>true, 'fun'=>'view_link'),
131 _("Print") => array('insert'=>true, 'fun'=>'prt_link'),
132 _("GL") => array('insert'=>true, 'fun'=>'gl_view')
135 array_remove($cols, 3);
138 array_remove($cols, 1);
141 $table =& new_db_pager('transactions', $sql, $cols);
142 if (list_updated('filterType')) {
143 $table->set_sql($sql);
144 $table->set_columns($cols);
146 $table->width = "40%";
147 display_db_pager($table);
152 //----------------------------------------------------------------------------------------
154 if (isset($_POST['ProcessSearch']))
156 if (!check_valid_entries())
157 unset($_POST['ProcessSearch']);
158 $Ajax->activate('transactions');
161 //----------------------------------------------------------------------------------------
163 start_form(false, true);