From 262cafc430cc55ac08ac5dc5bd297e94b06ad126 Mon Sep 17 00:00:00 2001 From: Gursheen Anand Date: Sun, 3 Dec 2023 22:36:54 +0530 Subject: [PATCH] fix: query for against types --- .../doctype/journal_entry/journal_entry.js | 25 +++++++++++++++++++ .../doctype/journal_entry/journal_entry.py | 7 ++++++ 2 files changed, 32 insertions(+) diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.js b/erpnext/accounts/doctype/journal_entry/journal_entry.js index 9684a0d9d1..e1b436106a 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.js +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.js @@ -220,6 +220,16 @@ erpnext.accounts.JournalEntry = class JournalEntry extends frappe.ui.form.Contro return erpnext.journal_entry.account_query(me.frm); }); + me.frm.set_query("against_account_link", "accounts", function(doc, cdt, cdn) { + return erpnext.journal_entry.against_account_query(me.frm); + }); + + me.frm.set_query("against_type", "accounts", function(){ + return { + query: "erpnext.accounts.doctype.journal_entry.journal_entry.get_against_type", + } + }) + me.frm.set_query("party_type", "accounts", function(doc, cdt, cdn) { const row = locals[cdt][cdn]; @@ -591,6 +601,21 @@ $.extend(erpnext.journal_entry, { return { filters: filters }; }, + against_account_query: function(frm) { + if (frm.doc.against_type != "Account"){ + return { filters: {} }; + } + else { + let filters = { company: frm.doc.company, is_group: 0 }; + if(!frm.doc.multi_currency) { + $.extend(filters, { + account_currency: ['in', [frappe.get_doc(":Company", frm.doc.company).default_currency, null]] + }); + } + return { filters: filters }; + } + }, + reverse_journal_entry: function() { frappe.model.open_mapped_doc({ method: "erpnext.accounts.doctype.journal_entry.journal_entry.make_reverse_journal_entry", diff --git a/erpnext/accounts/doctype/journal_entry/journal_entry.py b/erpnext/accounts/doctype/journal_entry/journal_entry.py index eb9c7c74ca..e30e780bb6 100644 --- a/erpnext/accounts/doctype/journal_entry/journal_entry.py +++ b/erpnext/accounts/doctype/journal_entry/journal_entry.py @@ -1657,3 +1657,10 @@ def make_reverse_journal_entry(source_name, target_doc=None): ) return doclist + + +@frappe.whitelist() +def get_against_type(doctype, txt, searchfield, start, page_len, filters): + against_types = frappe.db.get_list("Party Type", pluck="name") + ["Account"] + doctype = frappe.qb.DocType("DocType") + return frappe.qb.from_(doctype).select(doctype.name).where(doctype.name.isin(against_types)).run()