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.