From 1ff085876e62c642694c090cbee7a65160557776 Mon Sep 17 00:00:00 2001 From: "mergify[bot]" <37929162+mergify[bot]@users.noreply.github.com> Date: Wed, 5 Mar 2025 14:07:03 +0530 Subject: [PATCH] fix: Wrong Overdue Status in Sales Invoices (Floating-point arithmetic) (backport #46146) (#46310) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit fix: Wrong Overdue Status in Sales Invoices (Floating-point arithmetic) (#46146) * fix: Wrong Overdue Status in Sales Invoices (Floating-point arithmetic) * style: after run pre-commit (cherry picked from commit 89bcdd6fa5ccd9b7072a7fcc1e36f033e2db8c0e) Co-authored-by: Diógenes Souza <103958767+devdiogenes@users.noreply.github.com> --- .../accounts/doctype/sales_invoice/sales_invoice.py | 13 ++++++++----- 1 file changed, 8 insertions(+), 5 deletions(-) diff --git a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py index c860fe41a66..9fcb1ae526c 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -1937,13 +1937,16 @@ def is_overdue(doc, total): "base_payment_amount" if doc.party_account_currency != doc.currency else "payment_amount" ) - payable_amount = sum( - payment.get(payment_amount_field) - for payment in doc.payment_schedule - if getdate(payment.due_date) < today + payable_amount = flt( + sum( + payment.get(payment_amount_field) + for payment in doc.payment_schedule + if getdate(payment.due_date) < today + ), + doc.precision("outstanding_amount"), ) - return (total - outstanding_amount) < payable_amount + return flt(total - outstanding_amount, doc.precision("outstanding_amount")) < payable_amount def get_discounting_status(sales_invoice):