details: https://code.tryton.org/tryton/commit/42e700f7f2e6
branch: default
user: Cédric Krier <[email protected]>
date: Tue Aug 04 15:56:21 2026 +0200
description:
Use instances when copying analytic account entries to new line
Closes #14988
diffstat:
modules/analytic_account/account.py | 9 +++++++++
modules/analytic_purchase/purchase.py | 7 ++-----
modules/analytic_sale/sale.py | 7 ++-----
3 files changed, 13 insertions(+), 10 deletions(-)
diffs (53 lines):
diff -r 5996cbb65d20 -r 42e700f7f2e6 modules/analytic_account/account.py
--- a/modules/analytic_account/account.py Thu Aug 13 23:44:29 2026 +0200
+++ b/modules/analytic_account/account.py Tue Aug 04 15:56:21 2026 +0200
@@ -436,6 +436,15 @@
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__ = ()
diff -r 5996cbb65d20 -r 42e700f7f2e6 modules/analytic_purchase/purchase.py
--- a/modules/analytic_purchase/purchase.py Thu Aug 13 23:44:29 2026 +0200
+++ b/modules/analytic_purchase/purchase.py Tue Aug 04 15:56:21 2026 +0200
@@ -26,11 +26,8 @@
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
diff -r 5996cbb65d20 -r 42e700f7f2e6 modules/analytic_sale/sale.py
--- a/modules/analytic_sale/sale.py Thu Aug 13 23:44:29 2026 +0200
+++ b/modules/analytic_sale/sale.py Tue Aug 04 15:56:21 2026 +0200
@@ -26,11 +26,8 @@
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