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:
1 parent
c7a0be2a76
commit
c62161ecb6
1 file changed
+7
-8
@@ -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:
|
||||
|
||||
Reference in new issue
Block a user