Use instances when copying analytic account entries to new line
Closes #14988
This commit is contained in:
@@ -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__ = ()
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
@@ -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
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user