Files
manufacture/mrp_component_operation_scrap_reason/wizards/mrp_component_operate.py

38 lines
1.2 KiB
Python

# Copyright 2022-23 ForgeFlow S.L. (https://www.forgeflow.com)
# License AGPL-3.0 or later (https://www.gnu.org/licenses/lgpl).
from odoo import api, fields, models
class MrpComponentOperate(models.Model):
_inherit = "mrp.component.operate"
scrap_reason_code_id = fields.Many2one(
comodel_name="scrap.reason.code",
string="Scrap Reason Code",
domain="[('id', 'in', allowed_reason_code_ids)]",
)
allowed_reason_code_ids = fields.Many2many(
comodel_name="scrap.reason.code",
compute="_compute_allowed_reason_code_ids",
)
@api.depends("product_id")
def _compute_allowed_reason_code_ids(self):
for rec in self:
codes = self.env["scrap.reason.code"]
if rec.product_id:
codes = codes.search(
[
"|",
("product_category_ids", "=", False),
("product_category_ids", "in", rec.product_id.categ_id.id),
]
)
rec.allowed_reason_code_ids = codes
def _create_scrap(self):
scrap = super()._create_scrap()
scrap.reason_code_id = self.scrap_reason_code_id
return scrap