diff --git a/purchase_order_supplierinfo_update/models/purchase_order.py b/purchase_order_supplierinfo_update/models/purchase_order.py index bac3d63b244..cbfd2015168 100644 --- a/purchase_order_supplierinfo_update/models/purchase_order.py +++ b/purchase_order_supplierinfo_update/models/purchase_order.py @@ -26,7 +26,8 @@ def create(self, vals_list): def write(self, vals): res = super().write(vals) - if vals.get("price_unit") or vals.get("discount"): + sync_fields = self._get_synch_fields_line_to_supplierinfo() + if vals.get("price_unit") or any(key in sync_fields for key in vals.keys()): self.update_supplierinfo_price() return res @@ -70,5 +71,14 @@ def _update_supplierinfo(self, seller): # Set price if new_seller_price != seller.price: seller.sudo().price = new_seller_price - if self.discount != seller.discount: - seller.sudo().discount = self.discount + + sync_fields = self._get_synch_fields_line_to_supplierinfo() + for field in sync_fields: + if field in seller and field in self: + seller.sudo()[field] = self[field] + + def _get_synch_fields_line_to_supplierinfo(self): + sync_fields = ["discount"] + if "triple.discount.mixin" in self.env: + sync_fields += ["discount1", "discount2", "discount3"] + return sync_fields