[FIX] hr_expense: mark paid on reconciliation, precision
When comparing floats, `float_compare` must always be used to avoid precision issues. e.g., percentages like 1.0000000000000002 must be considered as equal to 1. opw-666459
This commit is contained in:
@@ -2,7 +2,7 @@
|
||||
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
||||
|
||||
from openerp import api, models
|
||||
|
||||
from openerp.tools import float_compare
|
||||
|
||||
class AccountMoveLine(models.Model):
|
||||
_inherit = "account.move.line"
|
||||
@@ -10,7 +10,7 @@ class AccountMoveLine(models.Model):
|
||||
@api.multi
|
||||
def reconcile(self, writeoff_acc_id=False, writeoff_journal_id=False):
|
||||
res = super(AccountMoveLine, self).reconcile(writeoff_acc_id=writeoff_acc_id, writeoff_journal_id=writeoff_journal_id)
|
||||
account_move_ids = [l.move_id.id for l in self if l.move_id.matched_percentage == 1]
|
||||
account_move_ids = [l.move_id.id for l in self if float_compare(l.move_id.matched_percentage, 1, precision_digits=5) == 0]
|
||||
if account_move_ids:
|
||||
expenses = self.env['hr.expense'].search([('account_move_id', 'in', account_move_ids)])
|
||||
expenses.paid_expenses()
|
||||
|
||||
Reference in New Issue
Block a user