Price composition
This commit is contained in:
@@ -916,9 +916,22 @@ class Invoice(metaclass=PoolMeta):
|
||||
|
||||
@property
|
||||
def report_rate_lines(self):
|
||||
price_composition_lines = self._get_report_price_composition_lines()
|
||||
if price_composition_lines:
|
||||
return price_composition_lines
|
||||
rows = self.report_rate_rows
|
||||
if rows:
|
||||
return '\n'.join(row['label'] for row in rows)
|
||||
return ''
|
||||
|
||||
@property
|
||||
def report_rate_rows(self):
|
||||
price_composition_rows = self._get_report_price_composition_rows()
|
||||
if price_composition_rows:
|
||||
return price_composition_rows
|
||||
return [{
|
||||
'label': line,
|
||||
'amount': None,
|
||||
} for line in self._get_report_rate_line_details()]
|
||||
|
||||
def _get_report_rate_line_details(self):
|
||||
details = []
|
||||
for line in self._get_report_invoice_lines():
|
||||
currency = getattr(line, 'report_rate_currency_upper', '') or ''
|
||||
@@ -941,19 +954,18 @@ class Invoice(metaclass=PoolMeta):
|
||||
] if part)
|
||||
if detail:
|
||||
details.append(detail)
|
||||
return '\n'.join(details)
|
||||
return details
|
||||
|
||||
def _get_report_price_composition_lines(self):
|
||||
def _get_report_price_composition_rows(self):
|
||||
sale = self._get_report_sale()
|
||||
if sale and getattr(sale, 'report_price_composition_lines', None):
|
||||
return sale.report_price_composition_lines
|
||||
details = []
|
||||
if sale and getattr(sale, 'report_price_composition_rows', None):
|
||||
return sale.report_price_composition_rows
|
||||
for line in self._get_report_invoice_lines():
|
||||
origin = getattr(line, 'origin', None)
|
||||
sale = getattr(origin, 'sale', None)
|
||||
if sale and getattr(sale, 'report_price_composition_lines', None):
|
||||
return sale.report_price_composition_lines
|
||||
return '\n'.join(details)
|
||||
if sale and getattr(sale, 'report_price_composition_rows', None):
|
||||
return sale.report_price_composition_rows
|
||||
return []
|
||||
|
||||
@property
|
||||
def report_positive_rate_lines(self):
|
||||
|
||||
Reference in New Issue
Block a user