From 149f7ee875594f925828d0ed7e7dfc319b09a252 Mon Sep 17 00:00:00 2001 From: Shreya Shah Date: Tue, 27 Mar 2018 11:29:25 +0530 Subject: [PATCH] [Fix] General Ledger Report (#13374) * error fix if party_type = student or shareholder * clear party filter when party_type changes to avoid error throw * dict with values of party_name in utils.js * fetch party_name from erpnext.utils.get_party_name * Update general_ledger.py --- erpnext/accounts/report/general_ledger/general_ledger.js | 8 +++++--- erpnext/accounts/report/general_ledger/general_ledger.py | 2 +- erpnext/public/js/utils.js | 6 ++++++ 3 files changed, 12 insertions(+), 4 deletions(-) diff --git a/erpnext/accounts/report/general_ledger/general_ledger.js b/erpnext/accounts/report/general_ledger/general_ledger.js index 631f8263fe..706c2ecd04 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.js +++ b/erpnext/accounts/report/general_ledger/general_ledger.js @@ -61,7 +61,10 @@ frappe.query_reports["General Ledger"] = { "label": __("Party Type"), "fieldtype": "Link", "options": "Party Type", - "default": "" + "default": "", + on_change: function() { + frappe.query_report_filters_by_name.party.set_value(""); + } }, { "fieldname":"party", @@ -82,8 +85,7 @@ frappe.query_reports["General Ledger"] = { frappe.query_report_filters_by_name.party_name.set_value(""); return; } - - var fieldname = frappe.scrub(party_type) + "_name"; + var fieldname = erpnext.utils.get_party_name(party_type) || "name"; frappe.db.get_value(party_type, party, fieldname, function(value) { frappe.query_report_filters_by_name.party_name.set_value(value[fieldname]); }); diff --git a/erpnext/accounts/report/general_ledger/general_ledger.py b/erpnext/accounts/report/general_ledger/general_ledger.py index 8e4259c542..3dc4fd789c 100644 --- a/erpnext/accounts/report/general_ledger/general_ledger.py +++ b/erpnext/accounts/report/general_ledger/general_ledger.py @@ -71,7 +71,7 @@ def set_account_currency(filters): if gle_currency: account_currency = gle_currency else: - account_currency = None if filters.party_type == "Employee" else \ + account_currency = None if filters.party_type in ["Employee", "Student", "Shareholder"] else \ frappe.db.get_value(filters.party_type, filters.party, "default_currency") filters["account_currency"] = account_currency or filters.company_currency diff --git a/erpnext/public/js/utils.js b/erpnext/public/js/utils.js index 6841354f47..0b3235892f 100644 --- a/erpnext/public/js/utils.js +++ b/erpnext/public/js/utils.js @@ -105,6 +105,12 @@ $.extend(erpnext.utils, { } }, + get_party_name: function(party_type) { + var dict = {'Customer': 'customer_name', 'Supplier': 'supplier_name', 'Employee': 'employee_name', + 'Member': 'member_name'}; + return dict[party_type]; + }, + copy_value_in_all_row: function(doc, dt, dn, table_fieldname, fieldname) { var d = locals[dt][dn]; if(d[fieldname]){