From 0ae1b367ebdd573842996d5168d203c4afed66a2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 26 Dec 2022 22:39:40 +0100 Subject: [PATCH] Set depends on is_valid_product_for_blanket_agreement Closes #11880 --- modules/purchase_blanket_agreement/purchase.py | 7 ++++--- modules/sale_blanket_agreement/sale.py | 7 ++++--- 2 files changed, 8 insertions(+), 6 deletions(-) diff --git a/modules/purchase_blanket_agreement/purchase.py b/modules/purchase_blanket_agreement/purchase.py index 1020301b9f..767fe80b74 100644 --- a/modules/purchase_blanket_agreement/purchase.py +++ b/modules/purchase_blanket_agreement/purchase.py @@ -788,14 +788,15 @@ class Line(metaclass=PoolMeta): self.quantity = remaining_quantity self.on_change_quantity() - @fields.depends( - 'blanket_agreement_line', 'product', - '_parent_blanket_agreement_line.product') + @fields.depends(methods=['is_valid_product_for_blanket_agreement']) def on_change_product(self): super().on_change_product() if not self.is_valid_product_for_blanket_agreement(): self.blanket_agreement_line = None + @fields.depends( + 'blanket_agreement_line', 'product', + '_parent_blanket_agreement_line.product') def is_valid_product_for_blanket_agreement(self): if self.blanket_agreement_line: return self.product == self.blanket_agreement_line.product diff --git a/modules/sale_blanket_agreement/sale.py b/modules/sale_blanket_agreement/sale.py index 78a086550b..1d2f536ad8 100644 --- a/modules/sale_blanket_agreement/sale.py +++ b/modules/sale_blanket_agreement/sale.py @@ -732,14 +732,15 @@ class Line(metaclass=PoolMeta): self.quantity = remaining_quantity self.on_change_quantity() - @fields.depends( - 'blanket_agreement_line', 'product', - '_parent_blanket_agreement_line.product') + @fields.depends(methods=['is_valid_product_for_blanket_agreement']) def on_change_product(self): super().on_change_product() if not self.is_valid_product_for_blanket_agreement(): self.blanket_agreement_line = None + @fields.depends( + 'blanket_agreement_line', 'product', + '_parent_blanket_agreement_line.product') def is_valid_product_for_blanket_agreement(self): if self.blanket_agreement_line: return self.product == self.blanket_agreement_line.product