diff --git a/account_reconcile_oca/models/account_bank_statement_line.py b/account_reconcile_oca/models/account_bank_statement_line.py index 8ebd1f07..76724732 100644 --- a/account_reconcile_oca/models/account_bank_statement_line.py +++ b/account_reconcile_oca/models/account_bank_statement_line.py @@ -438,10 +438,11 @@ class AccountBankStatementLine(models.Model): "debit": self.manual_amount if self.manual_amount > 0 else 0.0, "analytic_distribution": self.analytic_distribution, } - if self.manual_line_id: + liquidity_lines, _suspense_lines, _other_lines = self._seek_for_lines() + if self.manual_line_id and self.manual_line_id.id not in liquidity_lines.ids: vals.update( { - "currency_amount": self.manual_line_id.currency_id._convert( + "currency_amount": self.manual_currency_id._convert( self.manual_amount, self.manual_in_currency_id, self.company_id, diff --git a/account_reconcile_oca/tests/test_bank_account_reconcile.py b/account_reconcile_oca/tests/test_bank_account_reconcile.py index d8ab3fad..4067b400 100644 --- a/account_reconcile_oca/tests/test_bank_account_reconcile.py +++ b/account_reconcile_oca/tests/test_bank_account_reconcile.py @@ -1315,7 +1315,10 @@ class TestReconciliationWidget(TestAccountReconciliationCommon): ) f.manual_reference = "account.move.line;%s" % line["id"] # simulate click on statement line, check amount does not recompute + f.manual_partner_id = inv1.partner_id self.assertEqual(f.manual_amount, 83.33) + # check currency amount is still fine + self.assertEqual(f.reconcile_data_info["data"][0]["currency_amount"], 100) f.add_account_move_line_id = inv1.line_ids.filtered( lambda line: line.account_id.account_type == "asset_receivable" )