From 8bb2ca855a465905a3a53140de920ac6274d594d Mon Sep 17 00:00:00 2001 From: Raimon Esteve Date: Wed, 13 Dec 2023 07:33:33 +0100 Subject: [PATCH 1/3] issue12799.diff [sao] Convert negative id value as None when set by the client #163454 --- issue12799.diff | 15 +++++++++++++++ series | 2 ++ 2 files changed, 17 insertions(+) create mode 100644 issue12799.diff diff --git a/issue12799.diff b/issue12799.diff new file mode 100644 index 0000000..d3180c7 --- /dev/null +++ b/issue12799.diff @@ -0,0 +1,15 @@ +diff --git a/sao/src/model.js b/sao/src/model.js +index 81e8639d9e..8b55441294 100644 +--- a/sao/src/model.js ++++ b/sao/src/model.js +@@ -2071,6 +2071,10 @@ + rec_name = ''; + } + } ++ if (value < 0) { ++ value = null; ++ rec_name = ''; ++ } + Sao.setdefault( + record._values, this.name + '.', {}).rec_name = rec_name; + Sao.field.Many2One._super.set_client.call(this, record, value, diff --git a/series b/series index 55730c9..8bd5bff 100644 --- a/series +++ b/series @@ -61,3 +61,5 @@ account_statement_second_currency.diff # [account_statement] Support second curr update_trees_chart_accounts.diff # [account_account] Update trees of chart of accounts with 2 passes sao_document_field.diff # [sao] fix issue with loading of 'document' fields in sao + +issue12799.diff # [sao] Convert negative id value as None when set by the client From 6d9e63f64f2b550793d5714e93b3bb9f4eef6db3 Mon Sep 17 00:00:00 2001 From: Raimon Esteve Date: Wed, 13 Dec 2023 10:09:23 +0100 Subject: [PATCH 2/3] issue12547.diff [stock_lot] Check lot required only when changing move to done #161970 --- issue12547.diff | 25 +++++++++++++++++++++++++ issue12799.diff | 6 +++--- series | 2 ++ 3 files changed, 30 insertions(+), 3 deletions(-) create mode 100644 issue12547.diff diff --git a/issue12547.diff b/issue12547.diff new file mode 100644 index 0000000..469f35a --- /dev/null +++ b/issue12547.diff @@ -0,0 +1,25 @@ +diff --git a/tryton/modules/stock_lot/stock.py b/tryton/modules/stock_lot/stock.py +index 734018dbe8..1367b57e5f 100644 +--- a/tryton/modules/stock_lot/stock.py ++++ b/tryton/modules/stock_lot/stock.py +@@ -420,8 +420,7 @@ class Move(metaclass=PoolMeta): + + def check_lot(self): + "Check if lot is required" +- if (self.state == 'done' +- and self.internal_quantity ++ if (self.internal_quantity + and not self.lot + and self.product.lot_is_required( + self.from_location, self.to_location)): +@@ -430,8 +429,9 @@ class Move(metaclass=PoolMeta): + product=self.product.rec_name)) + + @classmethod +- def validate(cls, moves): +- super(Move, cls).validate(moves) ++ @ModelView.button ++ def do(cls, moves): ++ super().do(moves) + for move in moves: + move.check_lot() diff --git a/issue12799.diff b/issue12799.diff index d3180c7..f3a5ec7 100644 --- a/issue12799.diff +++ b/issue12799.diff @@ -1,7 +1,7 @@ -diff --git a/sao/src/model.js b/sao/src/model.js +diff --git a/tryton/sao/src/model.js b/tryton/sao/src/model.js index 81e8639d9e..8b55441294 100644 ---- a/sao/src/model.js -+++ b/sao/src/model.js +--- a/tryton/sao/src/model.js ++++ b/tryton/sao/src/model.js @@ -2071,6 +2071,10 @@ rec_name = ''; } diff --git a/series b/series index 8bd5bff..8e2a78d 100644 --- a/series +++ b/series @@ -63,3 +63,5 @@ update_trees_chart_accounts.diff # [account_account] Update trees of chart of ac sao_document_field.diff # [sao] fix issue with loading of 'document' fields in sao issue12799.diff # [sao] Convert negative id value as None when set by the client + +issue12547.diff # [stock_lot] Check lot required only when changing move to done From 4fd8dd6fc27bb128884ac000dd5584c57c3b205a Mon Sep 17 00:00:00 2001 From: Raimon Esteve Date: Wed, 13 Dec 2023 15:15:20 +0100 Subject: [PATCH 3/3] issue12823.diff [account] Use 0 as fallback for missing debit or credit in on_change functions #163599 --- issue12823.diff | 36 ++++++++++++++++++++++++++++++++++++ series | 2 ++ 2 files changed, 38 insertions(+) create mode 100644 issue12823.diff diff --git a/issue12823.diff b/issue12823.diff new file mode 100644 index 0000000..97d5508 --- /dev/null +++ b/issue12823.diff @@ -0,0 +1,36 @@ +diff --git a/tryton/modules/account/move.py b/tryton/modules/account/move.py +index b827237af4..ddbca0ae19 100644 +--- a/tryton/modules/account/move.py ++++ b/tryton/modules/account/move.py +@@ -1098,7 +1098,7 @@ class Line(MoveLineMixin, ModelSQL, ModelView): + def on_change_move(self): + if self.move: + if not self.debit and not self.credit: +- total = sum(l.debit - l.credit ++ total = sum((l.debit or 0) - (l.credit or 0) + for l in getattr(self.move, 'lines', [])) + self.debit = -total if total < 0 else Decimal(0) + self.credit = total if total > 0 else Decimal(0) +@@ -1169,7 +1169,8 @@ class Line(MoveLineMixin, ModelSQL, ModelView): + 'Set correct sign to amount_second_currency' + if self.amount_second_currency: + self.amount_second_currency = \ +- self.amount_second_currency.copy_sign(self.debit - self.credit) ++ self.amount_second_currency.copy_sign( ++ (self.debit or 0) - (self.credit or 0)) + + @fields.depends('account') + def on_change_account(self): +@@ -2402,9 +2403,11 @@ class ReconcileShow(ModelView): + if self.currency: + for line in self.lines: + if line.second_currency == self.currency: +- amount += line.amount_second_currency ++ amount += ( ++ line.amount_second_currency or 0) + elif line.currency == self.currency: +- amount += line.debit - line.credit ++ amount += ( ++ (line.debit or 0) - (line.credit or 0)) + amount = self.currency.round(amount) + self.write_off_amount = amount diff --git a/series b/series index 8e2a78d..7669a03 100644 --- a/series +++ b/series @@ -65,3 +65,5 @@ sao_document_field.diff # [sao] fix issue with loading of 'document' fields in s issue12799.diff # [sao] Convert negative id value as None when set by the client issue12547.diff # [stock_lot] Check lot required only when changing move to done + +issue12823.diff # [account] Use 0 as fallback for missing debit or credit in on_change functions