diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.js b/accounts/doctype/purchase_invoice/purchase_invoice.js index e71a40815f..b00cfeadc1 100644 --- a/accounts/doctype/purchase_invoice/purchase_invoice.js +++ b/accounts/doctype/purchase_invoice/purchase_invoice.js @@ -172,16 +172,13 @@ return{ } } -cur_frm.fields_dict['entries'].grid.get_field("expense_head").get_query = function(doc) { +cur_frm.set_query("expense_head", "entries", function(doc) { return{ - filters:{ - 'debit_or_credit':'Debit', - 'account_type': 'Expense Account', - 'group_or_ledger': 'Ledger', - 'company': doc.company - } - } -} + query: "accounts.doctype.purchase_invoice.purchase_invoice.get_expense_account", + filters: {'company': doc.company} + } +}); + cur_frm.cscript.expense_head = function(doc, cdt, cdn){ var d = locals[cdt][cdn]; if(d.idx == 1 && d.expense_head){ diff --git a/accounts/doctype/purchase_invoice/purchase_invoice.py b/accounts/doctype/purchase_invoice/purchase_invoice.py index 9e220fd30c..3f94de3188 100644 --- a/accounts/doctype/purchase_invoice/purchase_invoice.py +++ b/accounts/doctype/purchase_invoice/purchase_invoice.py @@ -252,14 +252,14 @@ class DocType(BuyingController): self.doc.against_expense_account = ",".join(against_accounts) def po_required(self): - if webnotes.conn.get_single_value("Buying Settings", "po_required") == 'Yes': + if webnotes.conn.get_value("Buying Settings", None, "po_required") == 'Yes': for d in getlist(self.doclist,'entries'): if not d.purchase_order: msgprint("Purchse Order No. required against item %s"%d.item_code) raise Exception def pr_required(self): - if webnotes.conn.get_single_value("Buying Settings", "pr_required") == 'Yes': + if webnotes.conn.get_value("Buying Settings", None, "pr_required") == 'Yes': for d in getlist(self.doclist,'entries'): if not d.purchase_receipt: msgprint("Purchase Receipt No. required against item %s"%d.item_code) @@ -457,4 +457,18 @@ class DocType(BuyingController): "UOM Conversion Detail", {"parent": d.item_code, "uom": d.uom}, "conversion_factor")) or 1 - d.rm_supp_cost = rm_cost * flt(d.qty) * flt(d.conversion_factor) \ No newline at end of file + d.rm_supp_cost = rm_cost * flt(d.qty) * flt(d.conversion_factor) + +@webnotes.whitelist() +def get_expense_account(doctype, txt, searchfield, start, page_len, filters): + from controllers.queries import get_match_cond + + return webnotes.conn.sql("""select tabAccount.name from `tabAccount` + where (tabAccount.debit_or_credit="Debit" + or tabAccount.account_type = "Expense Account") + and tabAccount.group_or_ledger="Ledger" + and tabAccount.docstatus!=2 + and tabAccount.company = '%(company)s' + and tabAccount.%(key)s LIKE '%(txt)s' + %(mcond)s""" % {'company': filters['company'], 'key': searchfield, + 'txt': "%%%s%%" % txt, 'mcond':get_match_cond(doctype, searchfield)}) \ No newline at end of file diff --git a/accounts/doctype/sales_invoice/sales_invoice.py b/accounts/doctype/sales_invoice/sales_invoice.py index 09df5f6512..adadcc81d1 100644 --- a/accounts/doctype/sales_invoice/sales_invoice.py +++ b/accounts/doctype/sales_invoice/sales_invoice.py @@ -430,8 +430,8 @@ class DocType(SellingController): def so_dn_required(self): """check in manage account if sales order / delivery note required or not.""" dic = {'Sales Order':'so_required','Delivery Note':'dn_required'} - for i in dic: - if webnotes.conn.get_single_value('Selling Settings', dic[i]) == 'Yes': + for i in dic: + if webnotes.conn.get_value('Selling Settings', None, dic[i]) == 'Yes': for d in getlist(self.doclist,'entries'): if webnotes.conn.get_value('Item', d.item_code, 'is_stock_item') == 'Yes' \ and not d.fields[i.lower().replace(' ','_')]: @@ -979,6 +979,7 @@ def get_bank_cash_account(mode_of_payment): "cash_bank_account": val } +@webnotes.whitelist() def get_income_account(doctype, txt, searchfield, start, page_len, filters): from controllers.queries import get_match_cond diff --git a/stock/doctype/delivery_note/delivery_note.py b/stock/doctype/delivery_note/delivery_note.py index 25a70b6c66..5df531ea10 100644 --- a/stock/doctype/delivery_note/delivery_note.py +++ b/stock/doctype/delivery_note/delivery_note.py @@ -85,7 +85,7 @@ class DocType(SellingController): def so_required(self): """check in manage account if sales order required or not""" - if webnotes.conn.get_single_value("Selling Settings", 'so_required') == 'Yes': + if webnotes.conn.get_value("Selling Settings", None, 'so_required') == 'Yes': for d in getlist(self.doclist,'delivery_note_details'): if not d.prevdoc_docname: msgprint("Sales Order No. required against item %s"%d.item_code) diff --git a/stock/doctype/purchase_receipt/purchase_receipt.py b/stock/doctype/purchase_receipt/purchase_receipt.py index 703929ce81..9daff8faaf 100644 --- a/stock/doctype/purchase_receipt/purchase_receipt.py +++ b/stock/doctype/purchase_receipt/purchase_receipt.py @@ -118,7 +118,7 @@ class DocType(BuyingController): def po_required(self): - if webnotes.conn.get_single_value("Buying Settings", "po_required") == 'Yes': + if webnotes.conn.get_value("Buying Settings", None, "po_required") == 'Yes': for d in getlist(self.doclist,'purchase_receipt_details'): if not d.prevdoc_docname: msgprint("Purchse Order No. required against item %s"%d.item_code)