From b39e8eb27da7c1066a0b2bbd8cd4bda1bf1c70b3 Mon Sep 17 00:00:00 2001 From: "Pedro M. Baeza" Date: Thu, 11 Aug 2022 19:19:45 +0200 Subject: [PATCH] [FIX] account_mass_reconcile: Compare threshold level properly Not using float_compare can make this to produce incorrect results. TT38529 --- account_mass_reconcile/models/base_reconciliation.py | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/account_mass_reconcile/models/base_reconciliation.py b/account_mass_reconcile/models/base_reconciliation.py index 909c84e6..d0d53821 100644 --- a/account_mass_reconcile/models/base_reconciliation.py +++ b/account_mass_reconcile/models/base_reconciliation.py @@ -6,6 +6,7 @@ from functools import reduce from operator import itemgetter from odoo import _, fields, models +from odoo.tools import float_compare from odoo.tools.safe_eval import safe_eval @@ -104,7 +105,14 @@ class MassReconcileBase(models.AbstractModel): ) debit, credit = sums["debit"], sums["credit"] writeoff_amount = round(debit - credit, precision) - return bool(writeoff_limit >= abs(writeoff_amount)), debit, credit + return ( + float_compare( + writeoff_limit, abs(writeoff_amount), precision_digits=precision + ) + >= 0, + debit, + credit, + ) def _get_rec_date(self, lines, based_on="end_period_last_credit"): self.ensure_one()