summaryrefslogtreecommitdiff
path: root/addons/mrp/models/stock_traceability.py
diff options
context:
space:
mode:
authorstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
committerstephanchrst <stephanchrst@gmail.com>2022-05-10 21:51:50 +0700
commit3751379f1e9a4c215fb6eb898b4ccc67659b9ace (patch)
treea44932296ef4a9b71d5f010906253d8c53727726 /addons/mrp/models/stock_traceability.py
parent0a15094050bfde69a06d6eff798e9a8ddf2b8c21 (diff)
initial commit 2
Diffstat (limited to 'addons/mrp/models/stock_traceability.py')
-rw-r--r--addons/mrp/models/stock_traceability.py34
1 files changed, 34 insertions, 0 deletions
diff --git a/addons/mrp/models/stock_traceability.py b/addons/mrp/models/stock_traceability.py
new file mode 100644
index 00000000..1fddc4bf
--- /dev/null
+++ b/addons/mrp/models/stock_traceability.py
@@ -0,0 +1,34 @@
+from odoo import models, api
+
+class MrpStockReport(models.TransientModel):
+ _inherit = 'stock.traceability.report'
+
+ @api.model
+ def _get_reference(self, move_line):
+ res_model, res_id, ref = super(MrpStockReport, self)._get_reference(move_line)
+ if move_line.move_id.production_id and not move_line.move_id.scrapped:
+ res_model = 'mrp.production'
+ res_id = move_line.move_id.production_id.id
+ ref = move_line.move_id.production_id.name
+ if move_line.move_id.raw_material_production_id and not move_line.move_id.scrapped:
+ res_model = 'mrp.production'
+ res_id = move_line.move_id.raw_material_production_id.id
+ ref = move_line.move_id.raw_material_production_id.name
+ if move_line.move_id.unbuild_id:
+ res_model = 'mrp.unbuild'
+ res_id = move_line.move_id.unbuild_id.id
+ ref = move_line.move_id.unbuild_id.name
+ if move_line.move_id.consume_unbuild_id:
+ res_model = 'mrp.unbuild'
+ res_id = move_line.move_id.consume_unbuild_id.id
+ ref = move_line.move_id.consume_unbuild_id.name
+ return res_model, res_id, ref
+
+ @api.model
+ def _get_linked_move_lines(self, move_line):
+ move_lines, is_used = super(MrpStockReport, self)._get_linked_move_lines(move_line)
+ if not move_lines:
+ move_lines = (move_line.move_id.consume_unbuild_id and move_line.produce_line_ids) or (move_line.move_id.production_id and move_line.consume_line_ids)
+ if not is_used:
+ is_used = (move_line.move_id.unbuild_id and move_line.consume_line_ids) or (move_line.move_id.raw_material_production_id and move_line.produce_line_ids)
+ return move_lines, is_used