Add TaxableMixin to sale line

issue9776
review326791003
This commit is contained in:
Cédric Krier committed 2020-12-22 00:21:36 +01:00
1 parent d15a8f86a4
commit f6cea792ea
2 files changed
+21 -11

No files matched your search

+2
View File
@@ -1,3 +1,5 @@
* Add TaxableMixin to sale line
Version 5.8.0 - 2020-11-02
* Bug fixes (see mercurial logs for details)
* Remove support for Python 3.5
+19 -11
View File
@@ -484,17 +484,8 @@ class Sale(
@property
def taxable_lines(self):
taxable_lines = []
# In case we're called from an on_change we have to use some sensible
# defaults
for line in self.lines:
if getattr(line, 'type', None) != 'line':
continue
taxable_lines.append((
getattr(line, 'taxes', None) or [],
getattr(line, 'unit_price', None) or Decimal(0),
getattr(line, 'quantity', None) or 0,
None,
))
taxable_lines.extend(line.taxable_lines)
return taxable_lines
@fields.depends(methods=['_get_taxes'])
@@ -1028,7 +1019,7 @@ class SaleRecreatedInvoice(ModelSQL):
ondelete='RESTRICT', select=True, required=True)
class SaleLine(sequence_ordered(), ModelSQL, ModelView):
class SaleLine(TaxableMixin, sequence_ordered(), ModelSQL, ModelView):
'Sale Line'
__name__ = 'sale.line'
sale = fields.Many2One('sale.sale', 'Sale', ondelete='CASCADE',
@@ -1222,6 +1213,23 @@ class SaleLine(sequence_ordered(), ModelSQL, ModelView):
return True
return False
@property
def taxable_lines(self):
# In case we're called from an on_change
# we have to use some sensible defaults
if getattr(self, 'type', None) == 'line':
return [(
getattr(self, 'taxes', None) or [],
getattr(self, 'unit_price', None) or Decimal(0),
getattr(self, 'quantity', None) or 0,
None,
)]
else:
return []
def _get_tax_context(self):
return self.sale._get_tax_context()
def _get_tax_rule_pattern(self):
'''
Get tax rule pattern