From ca20d418cc4de8809386c7b01b38ec635701def1 Mon Sep 17 00:00:00 2001 From: laurentbarontini Date: Tue, 28 Apr 2026 12:08:09 +0200 Subject: [PATCH] Bug --- modules/account/move.py | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/modules/account/move.py b/modules/account/move.py index 1c4c6d5..048d3f7 100755 --- a/modules/account/move.py +++ b/modules/account/move.py @@ -1123,6 +1123,10 @@ class Line(DescriptionOriginMixin, MoveLineMixin, ModelSQL, ModelView): if self.amount_second_currency and amount: return round(abs(self.amount_second_currency) / amount, 6) + def _set_rate_from_amounts(self): + if self.amount_second_currency and not self.rate: + self.rate = self.get_rate() + @fields.depends( 'debit', 'credit', 'date','second_currency','amount_second_currency', 'rate', @@ -1286,6 +1290,7 @@ class Line(DescriptionOriginMixin, MoveLineMixin, ModelSQL, ModelView): self.amount_second_currency = \ self.amount_second_currency.copy_sign( (self.debit or 0) - (self.credit or 0)) + self._set_rate_from_amounts() @fields.depends('account') def on_change_account(self): @@ -1590,6 +1595,13 @@ class Line(DescriptionOriginMixin, MoveLineMixin, ModelSQL, ModelView): for fname in move_fields(move_name=False): vals.setdefault(fname, None) lines = super(Line, cls).create(vlist) + to_save = [] + for line in lines: + if line.amount_second_currency and not line.rate: + line._set_rate_from_amounts() + to_save.append(line) + if to_save: + cls.save(to_save) period_and_journals = set((line.period, line.journal) for line in lines) for period, journal in period_and_journals: