43 lines
2.0 KiB
Python
43 lines
2.0 KiB
Python
import logging
|
|
|
|
from datetime import timedelta, datetime, date
|
|
|
|
from odoo import fields, models, api
|
|
from odoo.exceptions import ValidationError, UserError
|
|
|
|
|
|
class JikimoBomWizard(models.TransientModel):
|
|
_name = 'jikimo.bom.wizard'
|
|
_description = '组装方式选择'
|
|
bom_id = fields.Many2one('jikimo.bom', '刀具组装清单')
|
|
assembly_options = fields.Selection([
|
|
('刀柄+整体式刀具', '刀柄+整体式刀具'),
|
|
('刀柄+刀杆+刀片', '刀柄+刀杆+刀片'),
|
|
('刀柄+刀盘+刀片', '刀柄+刀盘+刀片')
|
|
], string='组装方式', required=True)
|
|
is_ok = fields.Boolean('确认上述信息正确无误。')
|
|
|
|
|
|
@api.model
|
|
def default_get(self, fields):
|
|
res = super(JikimoBomWizard, self).default_get(fields)
|
|
# 根据某个字段的值设置默认选项
|
|
if 'default_bom_id' in self.env.context:
|
|
jikimo_bom = self.env['jikimo.bom'].browse(self.env.context['default_bom_id'])
|
|
if not jikimo_bom:
|
|
return res
|
|
|
|
if jikimo_bom.options:
|
|
res['assembly_options'] = jikimo_bom.options
|
|
# some_field_value = self.env.context.get('some_field')
|
|
# if some_field_value == 'condition_value':
|
|
# res['default_option'] = 'option2' # 设置为特定选项
|
|
return res
|
|
def submit(self):
|
|
if not self.bom_id:
|
|
raise UserError('缺少bom信息')
|
|
if self.bom_id.tool_inventory_id.functional_cutting_tool_model_id.name == '飞刀' and self.assembly_options == '刀柄+整体式刀具':
|
|
raise UserError('飞刀只可选 刀柄+刀杆+刀片 或 刀柄+刀盘+刀片')
|
|
if self.bom_id.tool_inventory_id.functional_cutting_tool_model_id.name in['中心钻','合金钻','合金刀','整体刀','倒角刀','丝锥'] and self.assembly_options != '刀柄+整体式刀具':
|
|
raise UserError('此功能刀具只可选 刀柄+整体式刀具')
|
|
self.bom_id.generate_bill_materials(self.assembly_options) |