From f3bb85e5abd60c74a1771af5af3a3b218a60ffc0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?C=C3=A9dric=20Krier?= Date: Tue, 10 Mar 2015 23:54:41 +0100 Subject: [PATCH] Set origin on returned sale issue4050 review14071002 --- sale.py | 11 +++++++---- tests/scenario_sale.rst | 2 ++ 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/sale.py b/sale.py index d07781c915..a80137e805 100644 --- a/sale.py +++ b/sale.py @@ -595,7 +595,7 @@ class Sale(Workflow, ModelSQL, ModelView, TaxableMixin): @classmethod def _get_origin(cls): 'Return list of Model names for origin Reference' - return [] + return ['sale.sale'] @classmethod def get_origin(cls): @@ -1677,11 +1677,14 @@ class ReturnSale(Wizard): sales = Sale.browse(Transaction().context['active_ids']) return_sales = Sale.copy(sales) - for sale in return_sales: - for line in sale.lines: + for return_sale, sale in zip(return_sales, sales): + return_sale.origin = sale + for line in return_sale.lines: if line.type == 'line': line.quantity *= -1 - line.save() + return_sale.lines = return_sale.lines # Force saving + Sale.save(return_sales) + data = {'res_id': [s.id for s in return_sales]} if len(return_sales) == 1: action['views'].reverse() diff --git a/tests/scenario_sale.rst b/tests/scenario_sale.rst index 3409a85a76..711b9edd41 100644 --- a/tests/scenario_sale.rst +++ b/tests/scenario_sale.rst @@ -649,6 +649,8 @@ Return sales using the wizard:: >>> returned_sale, = Sale.find([ ... ('state', '=', 'draft'), ... ]) + >>> returned_sale.origin == sale_to_return + True >>> sorted([x.quantity for x in returned_sale.lines]) [None, -1.0]