Return sale using a single copy call

This avoid to update the origin which is forbidden when it is an opportunity.

Closes #12116
This commit is contained in:
Cédric Krier committed 2023-03-12 22:48:06 +01:00
1 parent c7a0be2a76
commit c62161ecb6
1 file changed
+7 -8
+7 -8
View File
@@ -2148,14 +2148,13 @@ class ReturnSale(Wizard):
def do_return_(self, action):
sales = self.records
return_sales = self.model.copy(sales)
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
return_sale.lines = return_sale.lines # Force saving
self.model.save(return_sales)
return_sales = self.model.copy(sales, default={
'origin': lambda data: (
'%s,%s' % (self.model.__name__, data['id'])),
'lines.quantity': lambda data: (
data['quantity'] * -1 if data['type'] == 'line'
else data['quantity']),
})
data = {'res_id': [s.id for s in return_sales]}
if len(return_sales) == 1: