From 9bf2d8e919a55ee55b547749acefff06b9932e8b Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 20 Jan 2025 17:26:52 +0100 Subject: [PATCH] Use current account at the clearing date for clearing move of payment Closes #13826 --- modules/account_payment_clearing/payment.py | 21 ++++++++++++--------- 1 file changed, 12 insertions(+), 9 deletions(-) diff --git a/modules/account_payment_clearing/payment.py b/modules/account_payment_clearing/payment.py index 2f6cdf197f..0357f142ef 100644 --- a/modules/account_payment_clearing/payment.py +++ b/modules/account_payment_clearing/payment.py @@ -230,14 +230,17 @@ class Payment(metaclass=PoolMeta): @property def clearing_account(self): - if self.line: - return self.line.account - elif self.account: - return self.account - elif self.kind == 'payable': - return self.party.account_payable_used - elif self.kind == 'receivable': - return self.party.account_receivable_used + transaction = Transaction() + context = transaction.context + with transaction.set_context(date=context.get('clearing_date')): + if self.line: + return self.line.account.current() + elif self.account: + return self.account.current() + elif self.kind == 'payable': + return self.party.account_payable_used + elif self.kind == 'receivable': + return self.party.account_receivable_used @property def clearing_party(self): @@ -309,7 +312,7 @@ class Payment(metaclass=PoolMeta): counterpart.debit, counterpart.credit = 0, local_amount else: counterpart.debit, counterpart.credit = local_amount, 0 - counterpart.account = self.journal.clearing_account + counterpart.account = self.journal.clearing_account.current(date) if not local_currency: counterpart.amount_second_currency = self.amount.copy_sign( counterpart.debit - counterpart.credit)