From 858c550bd7155552e43738350bf92ec325e56dd6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bernd=20Oliver=20S=C3=BCnderhauf?= <46800703+bosue@users.noreply.github.com> Date: Wed, 20 Sep 2023 09:06:35 +0200 Subject: [PATCH] fix: Add missing account filters. --- .../doctype/loan_product/loan_product.js | 50 +++++++++++-------- 1 file changed, 29 insertions(+), 21 deletions(-) diff --git a/lending/loan_management/doctype/loan_product/loan_product.js b/lending/loan_management/doctype/loan_product/loan_product.js index cdb3516e..052e05ea 100644 --- a/lending/loan_management/doctype/loan_product/loan_product.js +++ b/lending/loan_management/doctype/loan_product/loan_product.js @@ -3,28 +3,36 @@ frappe.ui.form.on('Loan Product', { onload: function(frm) { - $.each(["penalty_income_account", "interest_income_account"], function (i, field) { - frm.set_query(field, function () { - return { - "filters": { - "company": frm.doc.company, - "root_type": "Income", - "is_group": 0 - } - }; - }); - }); + const fieldMap = { + "disbursement_account": "Asset", + "loan_account": "Asset", + "payment_account": "Asset", + "suspense_interest_receivable": "Asset", + "interest_receivable_account": "Asset", + "penalty_receivable_account": "Asset", + "charges_receivable_account": "Asset", + "security_deposit_account": "Liability", + "interest_income_account": "Income", + "penalty_income_account": "Income", + "suspense_interest_income": "Income", + "principal_waiver_account": "Expense", + "interest_waiver_account": "Expense", + "penalty_waiver_account": "Expense", + "charges_waiver_account": "Expense", + "suspense_collection_account": "" + } + + const createFilters = (company, rootType) => { + const filters = { "company": company }; + if (rootType) { + filters["root_type"] = rootType; + } + filters["is_group"] = 0; + return { "filters": filters }; + }; - $.each(["payment_account", "loan_account", "disbursement_account"], function (i, field) { - frm.set_query(field, function () { - return { - "filters": { - "company": frm.doc.company, - "root_type": "Asset", - "is_group": 0 - } - }; - }); + Object.keys(fieldMap).forEach(field => { + frm.set_query(field, () => createFilters(frm.doc.company, fieldMap[field])); }); } });