From a0c47965bc3385b45e11ac576a1db4e316d7eced Mon Sep 17 00:00:00 2001 From: Abdeali Chharchhoda Date: Thu, 20 Mar 2025 15:12:06 +0530 Subject: [PATCH 1/3] refactor: move `payment_document` query to `setup` --- .../bank_transaction/bank_transaction.js | 83 ++++--------------- 1 file changed, 16 insertions(+), 67 deletions(-) diff --git a/erpnext/accounts/doctype/bank_transaction/bank_transaction.js b/erpnext/accounts/doctype/bank_transaction/bank_transaction.js index bb9bfde3082..c1ab11c015d 100644 --- a/erpnext/accounts/doctype/bank_transaction/bank_transaction.js +++ b/erpnext/accounts/doctype/bank_transaction/bank_transaction.js @@ -2,89 +2,38 @@ // For license information, please see license.txt frappe.ui.form.on("Bank Transaction", { - onload(frm) { - frm.set_query("payment_document", "payment_entries", function () { - const payment_doctypes = frm.events.get_payment_doctypes(frm); + setup: function (frm) { + frm.set_query("party_type", function () { return { filters: { - name: ["in", payment_doctypes], + name: ["in", Object.keys(frappe.boot.party_account_types)], }, }; }); - frm.set_query("payment_entry", "payment_entries", function (doc, cdt, cdn) { - const row = locals[cdt][cdn]; - const filters = { + frm.set_query("payment_document", "payment_entries", function () { + const payment_doctypes = frm.events.get_payment_doctypes(frm); + return { filters: { - unreconciled_amount: [">", 0], + name: ["in", payment_doctypes], }, }; - - if (["Sales Invoice", "Purchase Invoice"].includes(row.payment_document)) { - return { ...filters, currency: frm.doc.currency, is_paid: 1 }; - } else if (row.payment_document == "Expense Claim") { - return { ...filters, is_paid: 1 }; - } else if (row.payment_document == "Payment Entry") { - if (frm.doc.credit - frm.doc.debit < 0) { - return { ...filters, paid_from_account_currency: frm.doc.currency }; - } else { - return { ...filters, paid_to_account_currency: frm.doc.currency }; - } - } - }); - - frm.set_query("party_type", function () { - return { - query: "erpnext.setup.doctype.party_type.party_type.get_party_type", - }; }); }, - refresh(frm) { - frm.page.clear_actions_menu(); - if (frm.doc.docstatus == 1 && frm.doc.unallocated_amount > 0) { - frm.page.add_action_item(__("Make payment entry"), function () { - make_new_doc(frm.doc, "Payment Entry"); - }); - } - - if (frm.doc.status === "Unreconciled" && frm.doc.docstatus === 1) { - frm.add_custom_button( - __("Set status as Closed"), - function () { - frm.trigger("close_bank_transaction"); - }, - __("Actions") - ); - } - if (frm.doc.docstatus == 1) { - frm.add_custom_button(__("Bank reconciliation"), function () { - frappe.set_route("bank-reconciliation"); + refresh(frm) { + if (!frm.is_dirty() && frm.doc.payment_entries.length > 0) { + frm.add_custom_button(__("Unreconcile Transaction"), () => { + frm.call("remove_payment_entries").then(() => frm.refresh()); }); - - frm.add_custom_button( - __("Unreconcile Transaction"), - () => { - frm.call("remove_payment_entries").then(() => frm.refresh()); - }, - __("Actions") - ); } }, - close_bank_transaction(frm) { - return frappe - .call({ - doc: frm.doc, - method: "close_transaction", - }) - .then((r) => { - frm.refresh(); - }); - }, - account_do_not_exist() { - frappe.throw(__("This bank account could not be found on the selected payment document")); + + bank_account: function (frm) { + set_bank_statement_filter(frm); }, - get_payment_doctypes() { + + get_payment_doctypes: function () { // get payment doctypes from all the apps return ["Payment Entry", "Journal Entry", "Sales Invoice", "Purchase Invoice"]; }, -- GitLab From 77a5c26069e4736cfa6d0aac8f04391e3375a832 Mon Sep 17 00:00:00 2001 From: Abdeali Chharchhoda Date: Thu, 20 Mar 2025 15:19:01 +0530 Subject: [PATCH 2/3] fix: add `Not Cancelled` filter for `payment_entry` in Bank Transaction --- .../accounts/doctype/bank_transaction/bank_transaction.js | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/erpnext/accounts/doctype/bank_transaction/bank_transaction.js b/erpnext/accounts/doctype/bank_transaction/bank_transaction.js index c1ab11c015d..85560e61927 100644 --- a/erpnext/accounts/doctype/bank_transaction/bank_transaction.js +++ b/erpnext/accounts/doctype/bank_transaction/bank_transaction.js @@ -19,6 +19,14 @@ frappe.ui.form.on("Bank Transaction", { }, }; }); + + frm.set_query("payment_entry", "payment_entries", function () { + return { + filters: { + docstatus: ["!=", 2], + }, + }; + }); }, refresh(frm) { -- GitLab From 7c6ca53c1d7f9de3d4ab70b470a02b2579e38f5e Mon Sep 17 00:00:00 2001 From: Abdeali Chharchhoda Date: Tue, 1 Apr 2025 12:12:37 +0530 Subject: [PATCH 3/3] chore: formatting --- .../accounts/doctype/bank_transaction/bank_transaction.js | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/erpnext/accounts/doctype/bank_transaction/bank_transaction.js b/erpnext/accounts/doctype/bank_transaction/bank_transaction.js index 85560e61927..ec3af60625b 100644 --- a/erpnext/accounts/doctype/bank_transaction/bank_transaction.js +++ b/erpnext/accounts/doctype/bank_transaction/bank_transaction.js @@ -11,6 +11,12 @@ frappe.ui.form.on("Bank Transaction", { }; }); + frm.set_query("bank_account", function () { + return { + filters: { is_company_account: 1 }, + }; + }); + frm.set_query("payment_document", "payment_entries", function () { const payment_doctypes = frm.events.get_payment_doctypes(frm); return { -- GitLab