changeset ee3e97faf20e in modules/carrier_weight:default
details: 
https://hg.tryton.org/modules/carrier_weight?cmd=changeset&node=ee3e97faf20e
description:
        Include package weight to weight parcel

        issue10145
        review335721002
diffstat:

 sale.py  |   9 ++++++---
 stock.py |  18 ++++++++++++++----
 2 files changed, 20 insertions(+), 7 deletions(-)

diffs (78 lines):

diff -r 9a6633f66c19 -r ee3e97faf20e sale.py
--- a/sale.py   Sat Mar 13 23:43:51 2021 +0100
+++ b/sale.py   Mon Mar 29 23:40:01 2021 +0200
@@ -18,10 +18,14 @@
         """
         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 @@
         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 -r 9a6633f66c19 -r ee3e97faf20e stock.py
--- a/stock.py  Sat Mar 13 23:43:51 2021 +0100
+++ b/stock.py  Mon Mar 29 23:40:01 2021 +0200
@@ -19,8 +19,13 @@
         """
         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 @@
         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 @@
         """
         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 @@
         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

Reply via email to