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) # assembly_options_ids = fields.Many2many('sf.cutting.tool.material', string="组装方式") is_ok = fields.Boolean('确认上述信息正确无误。') 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)