From 81824320dbbd290858014cab839fc657d2e824f0 Mon Sep 17 00:00:00 2001 From: Ravibharathi <131471282+ravibharathi656@users.noreply.github.com> Date: Mon, 22 Sep 2025 11:26:56 +0530 Subject: [PATCH] Merge pull request #49470 from aerele/bank-clearance-tax-calculation fix(bank clearance): use base total taxes and charges if exists (cherry picked from commit 302ff49b7fdb11e1ba1b4aa7a34657a161466631) --- .../doctype/bank_clearance/bank_clearance.py | 25 +++++++++++-------- 1 file changed, 14 insertions(+), 11 deletions(-) diff --git a/erpnext/accounts/doctype/bank_clearance/bank_clearance.py b/erpnext/accounts/doctype/bank_clearance/bank_clearance.py index 6d1040a02ad..4ff2a13eae2 100644 --- a/erpnext/accounts/doctype/bank_clearance/bank_clearance.py +++ b/erpnext/accounts/doctype/bank_clearance/bank_clearance.py @@ -137,8 +137,10 @@ def get_payment_entries_for_bank_clearance( entries = [] condition = "" + pe_condition = "" if not include_reconciled_entries: condition = "and (clearance_date IS NULL or clearance_date='0000-00-00')" + pe_condition = "and (pe.clearance_date IS NULL or pe.clearance_date='0000-00-00')" journal_entries = frappe.db.sql( f""" @@ -163,19 +165,20 @@ def get_payment_entries_for_bank_clearance( payment_entries = frappe.db.sql( f""" select - "Payment Entry" as payment_document, name as payment_entry, - reference_no as cheque_number, reference_date as cheque_date, - if(paid_from=%(account)s, paid_amount + total_taxes_and_charges, 0) as credit, - if(paid_from=%(account)s, 0, received_amount + total_taxes_and_charges) as debit, - posting_date, ifnull(party,if(paid_from=%(account)s,paid_to,paid_from)) as against_account, clearance_date, - if(paid_to=%(account)s, paid_to_account_currency, paid_from_account_currency) as account_currency - from `tabPayment Entry` + "Payment Entry" as payment_document, pe.name as payment_entry, + pe.reference_no as cheque_number, pe.reference_date as cheque_date, + if(pe.paid_from=%(account)s, pe.paid_amount + if(pe.payment_type = 'Pay' and c.default_currency = pe.paid_from_account_currency, pe.base_total_taxes_and_charges, pe.total_taxes_and_charges) , 0) as credit, + if(pe.paid_from=%(account)s, 0, pe.received_amount + pe.total_taxes_and_charges) as debit, + pe.posting_date, ifnull(pe.party,if(pe.paid_from=%(account)s,pe.paid_to,pe.paid_from)) as against_account, pe.clearance_date, + if(pe.paid_to=%(account)s, pe.paid_to_account_currency, pe.paid_from_account_currency) as account_currency + from `tabPayment Entry` as pe + join `tabCompany` c on c.name = pe.company where - (paid_from=%(account)s or paid_to=%(account)s) and docstatus=1 - and posting_date >= %(from)s and posting_date <= %(to)s - {condition} + (pe.paid_from=%(account)s or pe.paid_to=%(account)s) and pe.docstatus=1 + and pe.posting_date >= %(from)s and pe.posting_date <= %(to)s + {pe_condition} order by - posting_date ASC, name DESC + pe.posting_date ASC, pe.name DESC """, { "account": account,