changeset bc97fcd2805c in modules/sale_shipment_cost:default
details: 
https://hg.tryton.org/modules/sale_shipment_cost?cmd=changeset&node=bc97fcd2805c
description:
        Use 'default' for default value of shipment cost on party

        issue11774
        review424051003
diffstat:

 party.py |  15 ++++++++++++++-
 sale.py  |   2 +-
 2 files changed, 15 insertions(+), 2 deletions(-)

diffs (48 lines):

diff -r 350e6c789c1f -r bc97fcd2805c party.py
--- a/party.py  Sun Oct 16 14:14:12 2022 +0200
+++ b/party.py  Fri Oct 28 00:43:56 2022 +0200
@@ -1,11 +1,20 @@
 # This file is part of Tryton.  The COPYRIGHT file at the top level of this
 # repository contains the full copyright notices and license terms.
 from trytond.model import fields
-from trytond.modules.sale.party import get_sale_methods
 from trytond.pool import Pool, PoolMeta
 from trytond.transaction import Transaction
 
 
+def get_sale_methods(field_name):
+    @classmethod
+    def func(cls):
+        pool = Pool()
+        Sale = pool.get('sale.sale')
+        return Sale.fields_get([field_name])[field_name]['selection'] + [
+            ('default', "")]
+    return func
+
+
 class Party(metaclass=PoolMeta):
     __name__ = 'party.party'
 
@@ -24,6 +33,10 @@
     get_sale_shipment_cost_method = get_sale_methods('shipment_cost_method')
 
     @classmethod
+    def default_sale_shipment_cost_method(cls, **pattern):
+        return 'default'
+
+    @classmethod
     def copy(cls, parties, default=None):
         context = Transaction().context
         default = default.copy() if default else {}
diff -r 350e6c789c1f -r bc97fcd2805c sale.py
--- a/sale.py   Sun Oct 16 14:14:12 2022 +0200
+++ b/sale.py   Fri Oct 28 00:43:56 2022 +0200
@@ -167,7 +167,7 @@
             self.carrier = None
         if not self.carrier:
             self.shipment_cost_method = None
-        elif self.party and self.party.sale_shipment_cost_method:
+        elif self.party and self.party.sale_shipment_cost_method != 'default':
             self.shipment_cost_method = self.party.sale_shipment_cost_method
         else:
             self.shipment_cost_method = self.default_shipment_cost_method()

Reply via email to