Price composition

This commit is contained in:
2026-05-20 14:29:31 +02:00
parent 9ad0217a69
commit ea3cb65d7d
4 changed files with 61 additions and 36 deletions

View File

@@ -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):