Cédric Krier pushed to branch branch/default at Tryton / Tryton


Commits:
d35b6431 by Cédric Krier at 2023-01-22T01:07:02+01:00
Use different pattern for sale extra and sale extra line

Also get_pattern functions are removed in favor of parameters in get_lines.

Closes #4746
- - - - -


1 changed file:

- modules/sale_extra/sale.py


Changes:

=====================================
modules/sale_extra/sale.py
=====================================
@@ -151,8 +151,8 @@
             ]
 
     @classmethod
-    def get_lines(cls, sale, pattern=None):
+    def get_lines(cls, sale, pattern=None, line_pattern=None):
         'Yield extra sale lines'
         pool = Pool()
         Currency = pool.get('currency.currency')
         extras = cls.search(cls._extras_domain(sale))
@@ -155,12 +155,12 @@
         'Yield extra sale lines'
         pool = Pool()
         Currency = pool.get('currency.currency')
         extras = cls.search(cls._extras_domain(sale))
-        if pattern is None:
-            pattern = {}
-        else:
-            pattern = pattern.copy()
-        pattern['sale_amount'] = Currency.compute(sale.currency,
-            sale.untaxed_amount, sale.company.currency)
+        pattern = pattern.copy() if pattern is not None else {}
+        line_pattern = line_pattern.copy() if line_pattern is not None else {}
+        sale_amount = Currency.compute(
+            sale.currency, sale.untaxed_amount, sale.company.currency)
+        pattern.setdefault('sale_amount', sale_amount)
+        line_pattern.setdefault('sale_amount', sale_amount)
 
         for extra in extras:
@@ -165,6 +165,4 @@
 
         for extra in extras:
-            epattern = pattern.copy()
-            epattern.update(extra.get_pattern(sale))
-            if extra.match(epattern):
+            if extra.match(pattern):
                 for line in extra.lines:
@@ -170,7 +168,5 @@
                 for line in extra.lines:
-                    lpattern = epattern.copy()
-                    lpattern.update(line.get_pattern(sale))
-                    if line.match(lpattern):
+                    if line.match(line_pattern):
                         yield line.get_line(sale)
                         break
 
@@ -174,9 +170,6 @@
                         yield line.get_line(sale)
                         break
 
-    def get_pattern(self, sale):
-        return {}
-
     def match(self, pattern):
         pattern = pattern.copy()
         sale_amount = pattern.pop('sale_amount')
@@ -237,9 +230,6 @@
         if self.extra and self.extra.currency:
             return self.extra.currency.id
 
-    def get_pattern(self, sale):
-        return {}
-
     def match(self, pattern):
         pattern = pattern.copy()
         sale_amount = pattern.pop('sale_amount')



View it on Heptapod: 
https://foss.heptapod.net/tryton/tryton/-/commit/d35b6431a65233b2c7530c28fbff0a3e06b96001

-- 
View it on Heptapod: 
https://foss.heptapod.net/tryton/tryton/-/commit/d35b6431a65233b2c7530c28fbff0a3e06b96001
You're receiving this email because of your account on foss.heptapod.net.


Reply via email to