[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
diff --git a/erpnext/accounts/report/general_ledger/general_ledger.js b/erpnext/accounts/report/general_ledger/general_ledger.js
index 631f826..706c2ec 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.js
+++ b/erpnext/accounts/report/general_ledger/general_ledger.js
@@ -61,7 +61,10 @@
"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_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 8e4259c..3dc4fd7 100644
--- a/erpnext/accounts/report/general_ledger/general_ledger.py
+++ b/erpnext/accounts/report/general_ledger/general_ledger.py
@@ -71,7 +71,7 @@
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 6841354..0b32358 100644
--- a/erpnext/public/js/utils.js
+++ b/erpnext/public/js/utils.js
@@ -105,6 +105,12 @@
}
},
+ 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]){