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)