[IMP] stock: picking and mo traceability improvements

We now only show the move lines that are processed before (in date and
location) when we display the move lines from a picking or a
manuficturing order, before it was showing all move lines that
where processed before (only in date) meaning that if you display a
delivery, you were also seeing the other deliveries done before this
one.

TASK-ID: 1873101
This commit is contained in:
Pierre Masereel
2018-08-21 22:25:26 +02:00
parent 0cd475124f
commit 9524341a81
+14 -16
View File
@@ -28,15 +28,17 @@ class MrpStockReport(models.TransientModel):
# if MTO
if move_line.move_id.move_orig_ids:
lines = move_line.move_id.move_orig_ids.mapped('move_line_ids').filtered(
lambda m: m.lot_id == move_line.lot_id
lambda m: m.lot_id == move_line.lot_id and m.state == 'done'
) - lines_seen
# if MTS
elif move_line:
elif move_line.location_id.usage == 'internal':
lines = self.env['stock.move.line'].search([
('product_id', '=', move_line.product_id.id),
('lot_id', '=', move_line.lot_id.id),
('location_dest_id', '=', move_line.location_id.id),
('id', 'not in', lines_seen.ids),
('date', '<', move_line.date),
('date', '<=', move_line.date),
('state', '=', 'done')
])
else:
continue
@@ -50,19 +52,18 @@ class MrpStockReport(models.TransientModel):
model = kw and kw['model_name'] or context.get('model')
rec_id = kw and kw['model_id'] or context.get('active_id')
level = kw and kw['level'] or 1
lines = []
lines = self.env['stock.move.line']
move_line = self.env['stock.move.line']
if rec_id and model in ('stock.production.lot', 'stock.move.line'):
if rec_id and model == 'stock.production.lot':
lines = move_line.search([
('lot_id', '=', context.get('lot_name') or rec_id),
('state', '=', 'done'),
])
if model == 'stock.move.line':
for line in lines:
dummy, is_used = self._get_linked_move_lines(line)
if is_used:
move_line |= is_used
lines = move_line
elif rec_id and model == 'stock.move.line' and context.get('lot_name'):
record = self.env[model].browse(rec_id)
dummy, is_used = self._get_linked_move_lines(record)
if is_used:
lines = is_used
elif rec_id and model in ('stock.picking', 'mrp.production'):
record = self.env[model].browse(rec_id)
if model == 'stock.picking':
@@ -174,11 +175,8 @@ class MrpStockReport(models.TransientModel):
if move_lines:
lines = move_lines
else:
if is_used:
# Traceability in case of consumed in.
move_line |= self._get_move_lines(move_line)
for line in move_line:
final_vals += self._make_dict_move(level, parent_id=line_id, move_line=line)
# Traceability in case of consumed in.
lines = self._get_move_lines(move_line)
for line in lines:
unfoldable = False
if line.consume_line_ids or ( line.lot_id and self._get_move_lines(line) and model != "stock.production.lot"):