diff --git a/sale.py b/sale.py
index 04d38d7beb..0ebef21ef8 100644
--- a/sale.py
+++ b/sale.py
@@ -894,10 +894,10 @@ class SaleLine(OSV):
moves = fields.One2Many('stock.move', 'sale_line', 'Moves',
readonly=True, select=1)
moves_ignored = fields.Many2Many('stock.move', 'sale_line_moves_ignored_rel',
- 'sale_line', 'move', 'Moves Ignored', readonly=True)
- moves_duplicated = fields.Many2Many('stock.move',
- 'sale_line_moves_duplicated_rel', 'sale_line', 'move',
- 'Moves Duplicated', readonly=True)
+ 'sale_line', 'move', 'Ignored Moves', readonly=True)
+ moves_recreated = fields.Many2Many('stock.move',
+ 'sale_line_moves_recreated_rel', 'sale_line', 'move',
+ 'Recreated Moves', readonly=True)
move_done = fields.Function('get_move_done', type='boolean',
string='Moves Done')
move_exception = fields.Function('get_move_exception', type='boolean',
@@ -961,7 +961,7 @@ class SaleLine(OSV):
res[line.id] = True
continue
skip_ids = set(x.id for x in line.moves_ignored)
- skip_ids.update(x.id for x in line.moves_duplicated)
+ skip_ids.update(x.id for x in line.moves_recreated)
quantity = line.quantity
for move in line.moves:
if move.state != 'done' \
@@ -981,7 +981,7 @@ class SaleLine(OSV):
for line in self.browse(cursor, user, ids, context=context):
val = False
skip_ids = set(x.id for x in line.moves_ignored)
- skip_ids.update(x.id for x in line.moves_duplicated)
+ skip_ids.update(x.id for x in line.moves_recreated)
for move in line.moves:
if move.state == 'cancel' \
and move.id not in skip_ids:
@@ -1176,7 +1176,7 @@ class SaleLine(OSV):
default = default.copy()
default['moves'] = False
default['moves_ignored'] = False
- default['moves_duplicated'] = False
+ default['moves_recreated'] = False
default['invoice_lines'] = False
return super(SaleLine, self).copy(cursor, user, ids,
default=default, context=context)
@@ -1201,7 +1201,7 @@ class SaleLine(OSV):
return
if line.product.type == 'service':
return
- skip_ids = set(x.id for x in line.moves_duplicated)
+ skip_ids = set(x.id for x in line.moves_recreated)
quantity = line.quantity
for move in line.moves:
if move.id not in skip_ids:
@@ -1398,7 +1398,7 @@ class Move(OSV):
type='selection',
selection=[('', ''),
('ignored', 'Ignored'),
- ('duplicated', 'Duplicated')],
+ ('recreated', 'Recreated')],
string='Exception State')
def get_sale(self, cursor, user, ids, name, arg, context=None):
@@ -1426,8 +1426,8 @@ class Move(OSV):
for move in self.browse(cursor, user, ids, context=context):
if not move.sale_line:
continue
- if move.id in (x.id for x in move.sale_line.moves_duplicated):
- res[move.id] = 'duplicated'
+ if move.id in (x.id for x in move.sale_line.moves_recreated):
+ res[move.id] = 'recreated'
if move.id in (x.id for x in move.sale_line.moves_ignored):
res[move.id] = 'ignored'
return res
@@ -1528,13 +1528,13 @@ class HandlePackingExceptionAsk(WizardOSV):
_name = 'sale.handle.packing.exception.ask'
_description = __doc__
- duplicate_moves = fields.Many2Many(
- 'stock.move', None, None, None, 'Duplicate Moves',
+ recreate_moves = fields.Many2Many(
+ 'stock.move', None, None, None, 'Recreate Moves',
domain="[('id', 'in', domain_moves)]", depends=['domain_moves'])
domain_moves = fields.Many2Many(
'stock.move', None, None, None, 'Domain Moves')
- def default_duplicate_moves(self, cursor, user, context=None):
+ def default_recreate_moves(self, cursor, user, context=None):
return self.default_domain_moves(cursor, user, context=context)
def default_domain_moves(self, cursor, user, context=None):
@@ -1551,7 +1551,7 @@ class HandlePackingExceptionAsk(WizardOSV):
domain_moves = []
for line in lines:
skip_ids = set(x.id for x in line.moves_ignored)
- skip_ids.update(x.id for x in line.moves_duplicated)
+ skip_ids.update(x.id for x in line.moves_recreated)
for move in line.moves:
if move.state == 'cancel' and move.id not in skip_ids:
domain_moves.append(move.id)
@@ -1589,57 +1589,30 @@ class HandlePackingException(Wizard):
sale_line_obj = self.pool.get('sale.line')
move_obj = self.pool.get('stock.move')
packing_obj = self.pool.get('stock.packing.out')
- to_duplicate = data['form']['duplicate_moves'][0][1]
+ to_recreate = data['form']['recreate_moves'][0][1]
domain_moves = data['form']['domain_moves'][0][1]
sale = sale_obj.browse(cursor, user, data['id'], context=context)
- duplicate_all = []
for line in sale.lines:
moves_ignored = []
- moves_duplicated = []
+ moves_recreated = []
skip_ids = set(x.id for x in line.moves_ignored)
- skip_ids.update(x.id for x in line.moves_duplicated)
+ skip_ids.update(x.id for x in line.moves_recreated)
for move in line.moves:
if move.id not in domain_moves or move.id in skip_ids:
continue
- if move.id in to_duplicate:
- moves_duplicated.append(move.id)
+ if move.id in to_recreate:
+ moves_recreated.append(move.id)
else:
moves_ignored.append(move.id)
- duplicate_all.extend(moves_duplicated)
sale_line_obj.write(
cursor, user, line.id,
{'moves_ignored': [('add', moves_ignored)],
- 'moves_duplicated': [('add', moves_duplicated)]},
+ 'moves_recreated': [('add', moves_recreated)]},
context=context)
- if duplicate_all:
- ctx = context and context.copy() or {}
- ctx['user'] = user
- packing_id = packing_obj.create(
- cursor, 0,
- {'planned_date': sale.sale_date,
- 'customer': sale.party.id,
- 'delivery_address': sale.packing_address.id,
- 'reference': sale.reference,
- 'warehouse': sale.warehouse.id,},
- context=ctx)
- default = {
- 'state': 'draft',
- 'packing_in': False,
- 'packing_out': packing_id,
- 'packing_in_return': False,
- 'packing_out_return': False,
- 'packing_internal': False,
- }
- move_obj.copy(
- cursor, user, duplicate_all, default=default, context=context)
-
- packing_obj.workflow_trigger_validate(cursor, 0, packing_id,
- 'waiting', context=ctx)
-
sale_obj.workflow_trigger_validate(cursor, user, data['id'],
'packing_ok', context=context)
diff --git a/sale.xml b/sale.xml
index 5f7129b59a..38431cc81a 100644
--- a/sale.xml
+++ b/sale.xml
@@ -183,20 +183,17 @@ this repository contains the full copyright notices and license terms. -->
form
-
-
-
+
-
-
+
+
-
]]>