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
 
 

Reply via email to