From 89bcdd6fa5ccd9b7072a7fcc1e36f033e2db8c0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Di=C3=B3genes=20Souza?= <103958767+devdiogenes@users.noreply.github.com> Date: Wed, 5 Mar 2025 04:46:45 -0300 Subject: [PATCH] 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 --- .../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 ae12c717345..e326a165d31 100644 --- a/erpnext/accounts/doctype/sales_invoice/sales_invoice.py +++ b/erpnext/accounts/doctype/sales_invoice/sales_invoice.py @@ -1934,13 +1934,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):