diff --git a/erpnext/payroll/doctype/payroll_entry/payroll_entry.py b/erpnext/payroll/doctype/payroll_entry/payroll_entry.py index 5f2af74dca6..e6b1bfac4a9 100644 --- a/erpnext/payroll/doctype/payroll_entry/payroll_entry.py +++ b/erpnext/payroll/doctype/payroll_entry/payroll_entry.py @@ -346,6 +346,8 @@ class PayrollEntry(Document): "credit_in_account_currency": flt(payable_amt, precision), "exchange_rate": flt(exchange_rate), "cost_center": self.cost_center, + "reference_type": self.doctype, + "reference_name": self.name, }, accounting_dimensions, ) @@ -720,12 +722,21 @@ def get_month_details(year, month): def get_payroll_entry_bank_entries(payroll_entry_name): journal_entries = frappe.db.sql( - "select name from `tabJournal Entry Account` " - 'where reference_type="Payroll Entry" ' - "and reference_name=%s and docstatus=1", + """ + select + je.name + from + `tabJournal Entry` je, + `tabJournal Entry Account` jea + where + je.name = jea.parent + and je.voucher_type = 'Bank Entry' + and jea.reference_type = 'Payroll Entry' + and jea.reference_name = %s + """, payroll_entry_name, - as_dict=1, - ) + as_dict=True, + ) # nosemgrep return journal_entries diff --git a/erpnext/payroll/doctype/payroll_entry/test_payroll_entry.py b/erpnext/payroll/doctype/payroll_entry/test_payroll_entry.py index d94edef1b07..21dab42b80f 100644 --- a/erpnext/payroll/doctype/payroll_entry/test_payroll_entry.py +++ b/erpnext/payroll/doctype/payroll_entry/test_payroll_entry.py @@ -133,9 +133,17 @@ class TestPayrollEntry(FrappeTestCase): payment_entry = frappe.db.sql( """ - Select ifnull(sum(je.total_debit),0) as total_debit, ifnull(sum(je.total_credit),0) as total_credit from `tabJournal Entry` je, `tabJournal Entry Account` jea - Where je.name = jea.parent - And jea.reference_name = %s + select + ifnull(sum(je.total_debit),0) as total_debit, + ifnull(sum(je.total_credit),0) as total_credit + from + `tabJournal Entry` je, + `tabJournal Entry Account` jea + Where + je.name = jea.parent + and je.voucher_type = 'Bank Entry' + and jea.reference_type = 'Payroll Entry' + and jea.reference_name = %s """, (payroll_entry.name), as_dict=1, diff --git a/erpnext/stock/doctype/stock_entry/stock_entry.js b/erpnext/stock/doctype/stock_entry/stock_entry.js index 9cc8e237b6a..3503e3e4b29 100644 --- a/erpnext/stock/doctype/stock_entry/stock_entry.js +++ b/erpnext/stock/doctype/stock_entry/stock_entry.js @@ -1050,7 +1050,8 @@ erpnext.stock.select_batch_and_serial_no = (frm, item) => { if (frm.doc.purpose === 'Material Receipt') return; frappe.require("assets/erpnext/js/utils/serial_no_batch_selector.js", function() { - new erpnext.SerialNoBatchSelector({ + if (frm.batch_selector?.dialog?.display) return; + frm.batch_selector = new erpnext.SerialNoBatchSelector({ frm: frm, item: item, warehouse_details: get_warehouse_type_and_name(item),