From d3631860dbce5bfebedebf67c481369328aad6ae Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Mon, 22 Jun 2026 05:17:33 +0530 Subject: [PATCH] fix: clear stale payment rows on non-POS returns so they don't surface in bank reconciliation (backport #55903) (#56171) fix: clear stale payment rows on non-POS returns so they don't surface in bank reconciliation (#55903) (cherry picked from commit 322d4dff25fb3e73da70e5bd5c49478b97866854) # Conflicts: # erpnext/accounts/doctype/sales_invoice/sales_invoice.py # erpnext/accounts/doctype/sales_invoice/services/pos.py Co-authored-by: Jatin3128 --- erpnext/accounts/doctype/sales_invoice/sales_invoice.py | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index a7967de15a2..0fc0303edb4 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -460,8 +460,8 @@ class SalesInvoice(SellingController): validate_account_head(item.idx, item.income_account, self.company, _("Income")) def before_save(self): - self.set_account_for_mode_of_payment() self.set_paid_amount() + self.set_account_for_mode_of_payment() def before_submit(self): self.add_remarks() @@ -900,6 +900,13 @@ class SalesInvoice(SellingController): def set_paid_amount(self): paid_amount = 0.0 base_paid_amount = 0.0 + + if not cint(self.is_pos) and self.is_return: + self.set("payments", []) + self.paid_amount = paid_amount + self.base_paid_amount = base_paid_amount + return + for data in self.payments: data.base_amount = flt(data.amount * self.conversion_rate, self.precision("base_paid_amount")) paid_amount += data.amount