From 24b737b22926fe05ff33b4d98a7b7366a1ecf5bf Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 20 Jan 2020 11:06:23 +0100 Subject: [PATCH] Test both reverse operations to invalidate ratio and divisor When the value has repeating decimal, the comparison may fail for one comparison but we must consider as valid value. issue8966 review265001002 --- payment_term.py | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/payment_term.py b/payment_term.py index 7c7d14add3..552b78aa12 100644 --- a/payment_term.py +++ b/payment_term.py @@ -222,11 +222,10 @@ class PaymentTermLine(sequence_ordered(), ModelSQL, ModelView): gettext('account_invoice' '.msg_payment_term_invalid_ratio_divisor', line=line.rec_name)) - ratio = line.ratio - divisor = line.divisor - line.on_change_ratio() - line.on_change_divisor() - if (line.divisor != divisor) or (line.ratio != ratio): + if (line.ratio != round( + 1 / line.divisor, cls.ratio.digits[1]) + and line.divisor != round( + 1 / line.ratio, cls.divisor.digits[1])): raise PaymentTermValidationError( gettext('account_invoice' '.msg_payment_term_invalid_ratio_divisor',