refactor: set query filters for dimensions
diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js
index fc90c3d..99593de 100644
--- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js
+++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.js
@@ -95,6 +95,8 @@
this.frm.change_custom_button_type(__('Allocate'), null, 'default');
}
+ this.frm.trigger("set_query_for_dimension_filters");
+
// check for any running reconciliation jobs
if (this.frm.doc.receivable_payable_account) {
this.frm.call({
@@ -125,6 +127,25 @@
}
}
+ set_query_for_dimension_filters() {
+ frappe.call({
+ method: "erpnext.accounts.doctype.payment_reconciliation.payment_reconciliation.get_queries_for_dimension_filters",
+ args: {
+ company: this.frm.doc.company,
+ },
+ callback: (r) => {
+ if (!r.exc && r.message) {
+ r.message.forEach(x => {
+ this.frm.set_query(x.fieldname, () => {
+ return {
+ 'filters': x.filters
+ };
+ });
+ });
+ }
+ }
+ });
+ }
company() {
this.frm.set_value('party', '');
diff --git a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
index cb7d5ea..83bccf4 100644
--- a/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
+++ b/erpnext/accounts/doctype/payment_reconciliation/payment_reconciliation.py
@@ -813,3 +813,20 @@
@erpnext.allow_regional
def adjust_allocations_for_taxes(doc):
pass
+
+
+@frappe.whitelist()
+def get_queries_for_dimension_filters(company: str = None):
+ dimensions_with_filters = []
+ for d in get_dimensions()[0]:
+ filters = {}
+ meta = frappe.get_meta(d.document_type)
+ if meta.has_field("company") and company:
+ filters.update({"company": company})
+
+ if meta.is_tree:
+ filters.update({"is_group": 0})
+
+ dimensions_with_filters.append({"fieldname": d.fieldname, "filters": filters})
+
+ return dimensions_with_filters