From 3fce5f5b8d836b6bcecdfb80e4ff7328d42de080 Mon Sep 17 00:00:00 2001 From: "El-Shafei H." Date: Wed, 28 Jan 2026 14:54:15 +0300 Subject: [PATCH 1/2] fix: modify voucher type based on account type (cherry picked from commit 4e0722e0639f2787d1d5fdac0560586c72e176a3) --- hrms/payroll/doctype/payroll_entry/payroll_entry.py | 6 ++++-- hrms/payroll/doctype/payroll_entry/test_payroll_entry.py | 4 ++-- 2 files changed, 6 insertions(+), 4 deletions(-) diff --git a/hrms/payroll/doctype/payroll_entry/payroll_entry.py b/hrms/payroll/doctype/payroll_entry/payroll_entry.py index b2d0ee3ad3..e3dffbc0a3 100644 --- a/hrms/payroll/doctype/payroll_entry/payroll_entry.py +++ b/hrms/payroll/doctype/payroll_entry/payroll_entry.py @@ -865,7 +865,7 @@ def has_bank_entries(self) -> dict[str, bool]: .on(je.name == jea.parent) .select(je.name) .where( - (je.voucher_type == "Bank Entry") + ((je.voucher_type == "Bank Entry") | (je.voucher_type == "Cash Entry")) & (jea.reference_name == self.name) & (jea.reference_type == "Payroll Entry") ) @@ -1098,7 +1098,9 @@ def set_accounting_entries_for_bank_entry( return self.make_journal_entry( accounts, currencies, - voucher_type="Bank Entry", + voucher_type="Bank Entry" + if frappe.get_cached_value("Account", self.payment_account, "account_type") == "Bank" + else "Cash Entry", user_remark=_("Payment of {0} from {1} to {2}").format( _(user_remark), self.start_date, self.end_date ), diff --git a/hrms/payroll/doctype/payroll_entry/test_payroll_entry.py b/hrms/payroll/doctype/payroll_entry/test_payroll_entry.py index 1742a3e7cf..4d1849b376 100644 --- a/hrms/payroll/doctype/payroll_entry/test_payroll_entry.py +++ b/hrms/payroll/doctype/payroll_entry/test_payroll_entry.py @@ -129,7 +129,7 @@ def test_multi_currency_payroll_entry(self): 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 (je.voucher_type = 'Bank Entry' or je.voucher_type = 'Cash Entry') and jea.reference_name = %s """, payroll_entry.name, @@ -797,7 +797,7 @@ def run_test_for_loan_repayment_from_salary(self): SELECT je.total_debit, je.total_credit FROM `tabJournal Entry` je INNER JOIN `tabJournal Entry Account` jea ON je.name = jea.parent - WHERE je.voucher_type = 'Bank Entry' AND jea.reference_type = 'Payroll Entry' AND jea.reference_name = %s + WHERE (je.voucher_type = 'Bank Entry' or je.voucher_type = 'Cash Entry') AND jea.reference_type = 'Payroll Entry' AND jea.reference_name = %s LIMIT 1 """, payroll_entry.name, From 01eaee81ace8a3cc8012a9fbca80b5856704c7ef Mon Sep 17 00:00:00 2001 From: "El-Shafei H." Date: Sun, 15 Mar 2026 12:59:43 +0300 Subject: [PATCH 2/2] refactor: change voucher type logic for journal entry creation (cherry picked from commit 4f33f7b97cea572ad26653edf894ab59599a2eb7) --- hrms/payroll/doctype/payroll_entry/payroll_entry.py | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/hrms/payroll/doctype/payroll_entry/payroll_entry.py b/hrms/payroll/doctype/payroll_entry/payroll_entry.py index e3dffbc0a3..fd35642683 100644 --- a/hrms/payroll/doctype/payroll_entry/payroll_entry.py +++ b/hrms/payroll/doctype/payroll_entry/payroll_entry.py @@ -1098,9 +1098,9 @@ def set_accounting_entries_for_bank_entry( return self.make_journal_entry( accounts, currencies, - voucher_type="Bank Entry" - if frappe.get_cached_value("Account", self.payment_account, "account_type") == "Bank" - else "Cash Entry", + voucher_type="Cash Entry" + if frappe.get_cached_value("Account", self.payment_account, "account_type") == "Cash" + else "Bank Entry", user_remark=_("Payment of {0} from {1} to {2}").format( _(user_remark), self.start_date, self.end_date ),