From 0612e60bf23e3ecde84a04e0bc53e94686be4f96 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Mon, 29 Mar 2021 23:40:01 +0200 Subject: [PATCH] Include package weight to weight parcel issue10145 review335721002 --- sale.py | 9 ++++++--- stock.py | 18 ++++++++++++++---- 2 files changed, 20 insertions(+), 7 deletions(-) diff --git a/sale.py b/sale.py index cf0809d1e5..4a70916b4a 100644 --- a/sale.py +++ b/sale.py @@ -18,10 +18,14 @@ class Sale(metaclass=PoolMeta): """ return () + def _parcel_weight(self, parcel): + if self.carrier: + return parcel_weight(parcel, self.carrier.weight_uom, 'unit') + def _get_carrier_context(self): context = super(Sale, self)._get_carrier_context() - if self.carrier.carrier_cost_method != 'weight': + if not self.carrier or self.carrier.carrier_cost_method != 'weight': return context context = context.copy() weights = [] @@ -32,6 +36,5 @@ class Sale(metaclass=PoolMeta): lines = sorted(lines, key=sortable_values(keyfunc)) for key, parcel in groupby(lines, key=keyfunc): - weights.append(parcel_weight( - parcel, self.carrier.weight_uom, 'unit')) + weights.append(self._parcel_weight(parcel)) return context diff --git a/stock.py b/stock.py index 3d3324eb32..d63e487372 100644 --- a/stock.py +++ b/stock.py @@ -19,8 +19,13 @@ class ShipmentIn(metaclass=PoolMeta): """ return () + @fields.depends('carrier') + def _parcel_weight(self, parcel): + if self.carrier: + return parcel_weight(parcel, self.carrier.weight_uom) + @fields.depends('carrier', 'incoming_moves', - methods=['_group_parcel_key']) + methods=['_group_parcel_key', '_parcel_weight']) def _get_carrier_context(self): context = super(ShipmentIn, self)._get_carrier_context() if not self.carrier: @@ -35,7 +40,7 @@ class ShipmentIn(metaclass=PoolMeta): lines = sorted(lines, key=sortable_values(keyfunc)) for key, parcel in groupby(lines, key=keyfunc): - weights.append(parcel_weight(parcel, self.carrier.weight_uom)) + weights.append(self._parcel_weight(parcel)) return context @@ -48,10 +53,15 @@ class ShipmentOut(metaclass=PoolMeta): """ return () + @fields.depends('carrier') + def _parcel_weight(self, parcel): + if self.carrier: + return parcel_weight(parcel, self.carrier.weight_uom) + @fields.depends( 'state', 'carrier', 'inventory_moves', 'outgoing_moves', 'warehouse_storage', 'warehouse_output', - methods=['_group_parcel_key']) + methods=['_group_parcel_key', '_parcel_weight']) def _get_carrier_context(self): context = super(ShipmentOut, self)._get_carrier_context() if not self.carrier: @@ -70,5 +80,5 @@ class ShipmentOut(metaclass=PoolMeta): lines = sorted(lines, key=sortable_values(keyfunc)) for key, parcel in groupby(lines, key=keyfunc): - weights.append(parcel_weight(parcel, self.carrier.weight_uom)) + weights.append(self._parcel_weight(parcel)) return context