From ee49ab66f96f6218b63ac5f6cc282baa2eb3b5e6 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Wed, 30 Oct 2024 17:11:43 +0100 Subject: [PATCH] Include the exceeding amount in the message about credit limit --- modules/account_credit_limit/message.xml | 2 +- modules/account_credit_limit/party.py | 11 ++++++++--- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/modules/account_credit_limit/message.xml b/modules/account_credit_limit/message.xml index 1475565203..d6885c4ea0 100644 --- a/modules/account_credit_limit/message.xml +++ b/modules/account_credit_limit/message.xml @@ -4,7 +4,7 @@ this repository contains the full copyright notices and license terms. --> - The party "%(party)s" has reached their credit limit of %(limit)s. + The party "%(party)s" will exceed their %(limit)s credit limit by %(amount)s. The party "%(party)s" has reached the credit limit level for dunning "%(dunning)s". diff --git a/modules/account_credit_limit/party.py b/modules/account_credit_limit/party.py index 5a1d44dbb6..18118b0e77 100644 --- a/modules/account_credit_limit/party.py +++ b/modules/account_credit_limit/party.py @@ -79,22 +79,27 @@ class Party(metaclass=PoolMeta): for model in self._credit_limit_to_lock(): Model = pool.get(model) Model.lock() - if self.credit_limit_amount < self.credit_amount + amount: + exceeded_amount = ( + self.credit_amount + amount - self.credit_limit_amount) + if exceeded_amount > 0: lang = Lang.get() limit = lang.currency(self.credit_limit_amount, company.currency) + amount = lang.currency(amount, company.currency) if not in_group(): raise CreditLimitError( gettext('account_credit_limit' '.msg_party_credit_limit_amount', party=self.rec_name, - limit=limit)) + limit=limit, + amount=amount)) warning_name = Warning.format('credit_limit_amount', [origin]) if Warning.check(warning_name): raise CreditLimitWarning(warning_name, gettext('account_credit_limit' '.msg_party_credit_limit_amount', party=self.rec_name, - limit=limit)) + limit=limit, + amount=amount)) if Dunning: dunnings = Dunning.search([