diff --git a/invoice.py b/invoice.py index db395a2f11..b08873455d 100644 --- a/invoice.py +++ b/invoice.py @@ -77,7 +77,8 @@ class Invoice(metaclass=PoolMeta): def copy(cls, invoices, default=None): if default is None: default = {} - default = default.copy() + else: + default = default.copy() default.setdefault('purchases', None) return super(Invoice, cls).copy(invoices, default=default) diff --git a/purchase.py b/purchase.py index 5f85532207..3bae9b691c 100644 --- a/purchase.py +++ b/purchase.py @@ -630,13 +630,13 @@ class Purchase(Workflow, ModelSQL, ModelView, TaxableMixin): def copy(cls, purchases, default=None): if default is None: default = {} - default = default.copy() - default['state'] = 'draft' - default['number'] = None - default['invoice_state'] = 'none' - default['invoices_ignored'] = None - default['moves'] = None - default['shipment_state'] = 'none' + else: + default = default.copy() + default.setdefault('number', None) + default.setdefault('invoice_state', 'none') + default.setdefault('invoices_ignored', None) + default.setdefault('moves', None) + default.setdefault('shipment_state', 'none') default.setdefault('purchase_date', None) return super(Purchase, cls).copy(purchases, default=default) @@ -1530,11 +1530,12 @@ class PurchaseLine(sequence_ordered(), ModelSQL, ModelView): def copy(cls, lines, default=None): if default is None: default = {} - default = default.copy() - default['moves'] = None - default['moves_ignored'] = None - default['moves_recreated'] = None - default['invoice_lines'] = None + else: + default = default.copy() + default.setdefault('moves', None) + default.setdefault('moves_ignored', None) + default.setdefault('moves_recreated', None) + default.setdefault('invoice_lines', None) return super(PurchaseLine, cls).copy(lines, default=default)