changeset 8530391cc764 in modules/sale:default
details: https://hg.tryton.org/modules/sale?cmd=changeset;node=8530391cc764
description:
        Allow copying attachments and notes to created records

        issue9154
        review266971002
diffstat:

 sale.py |  16 +++++++++++++++-
 1 files changed, 15 insertions(+), 1 deletions(-)

diffs (54 lines):

diff -r e0dd9e4edbe8 -r 8530391cc764 sale.py
--- a/sale.py   Mon Apr 13 12:21:55 2020 +0200
+++ b/sale.py   Mon Apr 13 17:25:02 2020 +0200
@@ -16,6 +16,8 @@
 from trytond.transaction import Transaction
 from trytond.pool import Pool
 
+from trytond.ir.attachment import AttachmentCopyMixin
+from trytond.ir.note import NoteCopyMixin
 from trytond.modules.account.tax import TaxableMixin
 from trytond.modules.account_product.exceptions import AccountError
 from trytond.modules.company.model import (
@@ -56,7 +58,9 @@
     return classmethod(method)
 
 
-class Sale(Workflow, ModelSQL, ModelView, TaxableMixin):
+class Sale(
+        Workflow, ModelSQL, ModelView, TaxableMixin,
+        AttachmentCopyMixin, NoteCopyMixin):
     'Sale'
     __name__ = 'sale.sale'
     _rec_name = 'number'
@@ -679,6 +683,14 @@
         return attributes
 
     @classmethod
+    def get_resources_to_copy(cls, name):
+        return {
+            'stock.shipment.out',
+            'stock.shipment.out.return',
+            'account.invoice',
+            }
+
+    @classmethod
     def copy(cls, sales, default=None):
         if default is None:
             default = {}
@@ -785,6 +797,7 @@
         invoice.save()
 
         Invoice.update_taxes([invoice])
+        self.copy_resources_to(invoice)
         return invoice
 
     def _group_shipment_key(self, moves, move):
@@ -848,6 +861,7 @@
             shipment.moves = (list(getattr(shipment, 'moves', []))
                 + [x[1] for x in grouped_moves])
             shipment.save()
+            self.copy_resources_to(shipment)
             shipments.append(shipment)
         if shipment_type == 'out':
             Shipment.wait(shipments)

Reply via email to