blob: 079b03aee0d0e7b495d840300da2abcabf7459e9 [file] [log] [blame]
Rushabh Mehta3966f1d2012-02-23 12:35:32 +05301# ERPNext - web based ERP (http://erpnext.com)
2# Copyright (C) 2012 Web Notes Technologies Pvt Ltd
3#
4# This program is free software: you can redistribute it and/or modify
5# it under the terms of the GNU General Public License as published by
6# the Free Software Foundation, either version 3 of the License, or
7# (at your option) any later version.
8#
9# This program is distributed in the hope that it will be useful,
10# but WITHOUT ANY WARRANTY; without even the implied warranty of
11# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12# GNU General Public License for more details.
13#
14# You should have received a copy of the GNU General Public License
15# along with this program. If not, see <http://www.gnu.org/licenses/>.
16
Anand Doshi486f9df2012-07-19 13:40:31 +053017from __future__ import unicode_literals
Rushabh Mehtad0251332012-02-21 17:26:50 +053018import webnotes
Anand Doshif9a3c8f2012-12-28 19:42:49 +053019from webnotes import _, msgprint
20from webnotes.utils import cint, comma_or
Rushabh Mehtad0251332012-02-21 17:26:50 +053021
22@webnotes.whitelist()
Rushabh Mehta16aea342012-05-29 10:53:37 +053023def get_sc_list(arg=None):
Anand Doshicdba51c2012-10-04 18:11:29 +053024 """return list of reports for the given module module"""
25 limit_start = webnotes.form_dict.get("limit_start")
26 limit_page_length = webnotes.form_dict.get("limit_page_length")
27 module = webnotes.form_dict.get("module")
28
29 webnotes.response['values'] = webnotes.conn.sql("""
30 select distinct criteria_name, doc_type, parent_doc_type
Rushabh Mehtad0251332012-02-21 17:26:50 +053031 from `tabSearch Criteria`
Anand Doshicdba51c2012-10-04 18:11:29 +053032 where module=%s
33 and docstatus in (0, NULL)
34 and ifnull(disabled, 0) = 0
35 order by criteria_name
36 limit %s, %s""" % \
37 ("%s", cint(limit_start), cint(limit_page_length)), (module,), as_dict=True)
Rushabh Mehta16aea342012-05-29 10:53:37 +053038
39@webnotes.whitelist()
40def get_report_list():
41 """return list on new style reports for modules"""
Anand Doshicdba51c2012-10-04 18:11:29 +053042 limit_start = webnotes.form_dict.get("limit_start")
43 limit_page_length = webnotes.form_dict.get("limit_page_length")
44 module = webnotes.form_dict.get("module")
45
46 webnotes.response['values'] = webnotes.conn.sql("""
47 select distinct tabReport.name, tabReport.ref_doctype,
48 if(ifnull(tabReport.query, '')!='', 1, 0) as is_query_report
Rushabh Mehta16aea342012-05-29 10:53:37 +053049 from `tabReport`, `tabDocType`
Anand Doshicdba51c2012-10-04 18:11:29 +053050 where tabDocType.module=%s
51 and tabDocType.name = tabReport.ref_doctype
52 and tabReport.docstatus in (0, NULL)
Rushabh Mehta8ebf1b82012-12-19 15:34:00 +053053 and ifnull(tabReport.disabled,0) != 1
Anand Doshicdba51c2012-10-04 18:11:29 +053054 order by tabReport.name
55 limit %s, %s""" % \
Anand Doshif9a3c8f2012-12-28 19:42:49 +053056 ("%s", cint(limit_start), cint(limit_page_length)), (module,), as_dict=True)
57
58def validate_status(status, options):
59 if status not in options:
60 msgprint(_("Status must be one of ") + comma_or(options), raise_exception=True)
Nabin Haita76a0682013-02-08 14:04:13 +053061
62def build_filter_conditions(filters):
63 conditions, filter_values = [], []
64 for key in filters:
65 conditions.append('`' + key + '` = %s')
66 filter_values.append(filters[key])
67
68 conditions = conditions and " and " + " and ".join(conditions) or ""
69 return conditions, filter_values