Linkage template

This commit is contained in:
2026-07-07 16:37:53 +02:00
parent 4ea701d669
commit 94fd181c11
2 changed files with 190 additions and 18 deletions

View File

@@ -1836,6 +1836,19 @@ class ShipmentIn(metaclass=PoolMeta):
values.append(str(value or ''))
return '\n'.join(values)
@classmethod
def _report_table_rows(cls, rows, names, amount_names=()):
result = []
for row in rows:
values = {}
for index, name in enumerate(names):
value = row[index]
if name in amount_names:
value = cls._report_amount(value)
values[name] = str(value or '')
result.append(values)
return result
@property
def report_linkage_title(self):
purchase = self._get_report_linkage_purchase()
@@ -1911,6 +1924,13 @@ class ShipmentIn(metaclass=PoolMeta):
return self._report_column(
self._get_report_linkage_summary_rows(), 3, amount=True)
@property
def report_linkage_summary_rows(self):
return self._report_table_rows(
self._get_report_linkage_summary_rows(),
('group', 'cost_type', 'estimated', 'validated'),
{'estimated', 'validated'})
@property
def report_linkage_movement_types(self):
return self._report_column(self._get_report_linkage_movement_rows(), 0)
@@ -1951,6 +1971,13 @@ class ShipmentIn(metaclass=PoolMeta):
def report_linkage_movement_to_dates(self):
return self._report_column(self._get_report_linkage_movement_rows(), 9)
@property
def report_linkage_movement_rows(self):
return self._report_table_rows(
self._get_report_linkage_movement_rows(),
('type', 'reference', 'counterpart', 'commodity', 'quantity',
'delivery', 'basis', 'period', 'from_date', 'to_date'))
@property
def report_linkage_bank_deal(self):
purchase = self._get_report_linkage_purchase()
@@ -2009,6 +2036,12 @@ class ShipmentIn(metaclass=PoolMeta):
def report_linkage_pricing_input_prices(self):
return self._report_column(self._get_report_linkage_pricing_rows(), 5)
@property
def report_linkage_pricing_rows(self):
return self._report_table_rows(
self._get_report_linkage_pricing_rows(),
('deal', 'side', 'type', 'symbol', 'period', 'input_price'))
@property
def report_linkage_detail_groups(self):
return self._report_column(self._get_report_linkage_detail_rows(), 0)
@@ -2042,6 +2075,14 @@ class ShipmentIn(metaclass=PoolMeta):
def report_linkage_detail_validated(self):
return self._report_column(
self._get_report_linkage_detail_rows(), 7, amount=True)
@property
def report_linkage_detail_rows(self):
return self._report_table_rows(
self._get_report_linkage_detail_rows(),
('group', 'cost_type', 'counterpart', 'source', 'unit_price',
'quantity', 'estimated', 'validated'),
{'estimated', 'validated'})
def get_rec_name(self, name=None):
if self.number:

File diff suppressed because one or more lines are too long