36 lines
1.3 KiB
Python
36 lines
1.3 KiB
Python
# -*- coding: utf-8 -*-
|
|
from odoo import models, fields, api
|
|
|
|
|
|
class C2CBomOutputLine(models.Model):
|
|
"""Stores additional finished product outputs on a BOM."""
|
|
_name = 'c2c.bom.output.line'
|
|
_description = 'C2C BOM Output Line'
|
|
|
|
bom_id = fields.Many2one('mrp.bom', string='Bill of Materials', ondelete='cascade', required=True)
|
|
product_id = fields.Many2one('product.product', string='Output Product', required=True)
|
|
product_qty = fields.Float('Quantity', default=1.0, required=True)
|
|
product_uom_id = fields.Many2one('uom.uom', string='Unit', related='product_id.uom_id', readonly=True, store=True)
|
|
tracking = fields.Selection(related='product_id.tracking', readonly=True)
|
|
quality_grade = fields.Selection(related='product_id.quality_grade', readonly=True)
|
|
description = fields.Char(string='Notes')
|
|
|
|
|
|
class MrpBom(models.Model):
|
|
_inherit = 'mrp.bom'
|
|
|
|
c2c_output_line_ids = fields.One2many(
|
|
'c2c.bom.output.line', 'bom_id',
|
|
string='Additional Output Products'
|
|
)
|
|
is_multi_output = fields.Boolean(
|
|
string='Multi-Output BOM',
|
|
compute='_compute_is_multi_output',
|
|
store=True
|
|
)
|
|
|
|
@api.depends('c2c_output_line_ids')
|
|
def _compute_is_multi_output(self):
|
|
for bom in self:
|
|
bom.is_multi_output = bool(bom.c2c_output_line_ids)
|