diff --git a/addons/account/models/account_reconcile_model.py b/addons/account/models/account_reconcile_model.py index d5790d0d654..c67f471c90d 100644 --- a/addons/account/models/account_reconcile_model.py +++ b/addons/account/models/account_reconcile_model.py @@ -257,13 +257,15 @@ class AccountReconcileModel(models.Model): if self.rule_type == 'invoice_matching' and (not self.match_total_amount or (self.match_total_amount_param == 100)): return [] + line_currency = st_line.currency_id or st_line.journal_id.currency_id or self.company_id.currency_id + if line_currency.is_zero(residual_balance): + # No writeoff needs to be done for a full reconciliation + return [] + lines_vals_list = [] for line in self.line_ids: - if not line.account_id or st_line.company_currency_id.is_zero(residual_balance): - return [] - if line.amount_type == 'percentage': balance = residual_balance * (line.amount / 100.0) elif line.amount_type == "regex": @@ -288,8 +290,6 @@ class AccountReconcileModel(models.Model): } lines_vals_list.append(writeoff_line) - residual_balance -= balance - if line.tax_ids: writeoff_line['tax_ids'] = [(6, None, line.tax_ids.ids)] tax = line.tax_ids