Merge branch 'master' of github.com:webnotes/erpnext
diff --git a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
index e414c82..ba1a06b 100644
--- a/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
+++ b/accounts/doctype/purchase_taxes_and_charges_master/purchase_taxes_and_charges_master.js
@@ -128,16 +128,14 @@
}
cur_frm.set_query("account_head", "purchase_tax_details", function(doc) {
- return {
- filters: [
- ["Account", "group_or_ledger", "=", "Ledger"],
- ["Account", "docstatus", "!=", 2],
- ["Account", "account_type", "in", "Tax, Chargeable, Expense Account"],
- ["Account", "is_pl_account", "=", "Yes"],
- ["Account", "debit_or_credit", "=", "Debit"],
- ["Account", "company", "=", doc.company]
- ]
- }
+ return {
+ query: "controllers.queries.tax_account_query",
+ filters: {
+ "account_type": ["Tax", "Chargeable", "Expense Account"],
+ "debit_or_credit": "Debit",
+ "company": doc.company
+ }
+ }
});
cur_frm.fields_dict['purchase_tax_details'].grid.get_field("cost_center").get_query = function(doc) {
diff --git a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js
index a2c3321..4430960 100644
--- a/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js
+++ b/accounts/doctype/sales_taxes_and_charges_master/sales_taxes_and_charges_master.js
@@ -139,11 +139,12 @@
cur_frm.fields_dict['other_charges'].grid.get_field("account_head").get_query = function(doc,cdt,cdn) {
return{
- filters:[
- ['Account', 'group_or_ledger', '=', 'Ledger'],
- ['Account', 'account_type', 'in', 'Tax, Chargeable, Income Account'],
- ['Account', 'company', '=', doc.company]
- ]
+ query: "controllers.queries.tax_account_query",
+ filters: {
+ "account_type": ["Tax", "Chargeable", "Income Account"],
+ "debit_or_credit": "Credit",
+ "company": doc.company
+ }
}
}
diff --git a/controllers/queries.py b/controllers/queries.py
index d5f8dcb..321e15c 100644
--- a/controllers/queries.py
+++ b/controllers/queries.py
@@ -166,14 +166,31 @@
if not filters.group_or_ledger:
filters.group_or_ledger = "Ledger"
- return webnotes.conn.sql("""select tabAccount.name, tabAccount.parent_account,
- tabAccount.debit_or_credit from tabAccount
+ return webnotes.conn.sql("""
+ select tabAccount.name, tabAccount.parent_account, tabAccount.debit_or_credit
+ from tabAccount
where tabAccount.docstatus!=2
+ and
and tabAccount.%(key)s LIKE "%(txt)s"
%(fcond)s %(mcond)s
limit %(start)s, %(page_len)s""" % {'key': searchfield,
'txt': "%%%s%%" % txt, 'fcond': get_filters_cond(doctype, filters, conditions),
'mcond':get_match_cond(doctype, searchfield), 'start': start, 'page_len': page_len})
+
+def tax_account_query(doctype, txt, searchfield, start, page_len, filters):
+ return webnotes.conn.sql("""select name, parent_account, debit_or_credit
+ from tabAccount
+ where tabAccount.docstatus!=2
+ and (account_type in (%s) or
+ (ifnull(is_pl_account, 'No') = 'Yes' and debit_or_credit = %s) )
+ and group_or_ledger = 'Ledger'
+ and company = %s
+ and `%s` LIKE %s
+ limit %s, %s""" %
+ (", ".join(['%s']*len(filters.get("account_type"))),
+ "%s", "%s", searchfield, "%s", "%s", "%s"),
+ tuple(filters.get("account_type") + [filters.get("debit_or_credit"),
+ filters.get("company"), "%%%s%%" % txt, start, page_len]))
def item_query(doctype, txt, searchfield, start, page_len, filters):
conditions = []