Use instances when copying analytic account entries to new line

Closes #14988
This commit is contained in:
Cédric Krier
2026-08-04 15:56:21 +02:00
parent f61dc1afdf
commit 73c805a054
3 changed files with 13 additions and 10 deletions
+9
View File
@@ -436,6 +436,15 @@ class AnalyticAccountEntry(ModelView, ModelSQL):
analytic_line.date = date
yield analytic_line
@classmethod
def copy_to(cls, entries, origin):
for entry in entries:
new = cls()
new.origin = origin
new.root = entry.root
new.account = entry.account
yield new
class AnalyticMixin(object):
__slots__ = ()
+2 -5
View File
@@ -26,11 +26,8 @@ class PurchaseLine(AnalyticMixin, metaclass=PoolMeta):
invoice_lines = super().get_invoice_line()
for invoice_line in invoice_lines:
new_entries = AnalyticAccountEntry.copy(self.analytic_accounts,
default={
'origin': None,
})
invoice_line.analytic_accounts = new_entries
invoice_line.analytic_accounts = AnalyticAccountEntry.copy_to(
self.analytic_accounts, invoice_line)
return invoice_lines
+2 -5
View File
@@ -26,11 +26,8 @@ class Line(AnalyticMixin, metaclass=PoolMeta):
invoice_lines = super().get_invoice_line()
for invoice_line in invoice_lines:
new_entries = AnalyticAccountEntry.copy(self.analytic_accounts,
default={
'origin': None,
})
invoice_line.analytic_accounts = new_entries
invoice_line.analytic_accounts = AnalyticAccountEntry.copy_to(
self.analytic_accounts, invoice_line)
return invoice_lines