diff --git a/sf_base/models/common.py b/sf_base/models/common.py index b6cea067..6fd7d814 100644 --- a/sf_base/models/common.py +++ b/sf_base/models/common.py @@ -61,7 +61,7 @@ class MrsMaterialModel(models.Model): supplier_ids = fields.One2many('sf.supplier.sort', 'materials_model_id', string='供应商') active = fields.Boolean('有效', default=True) - @api.constrains('supplier_ids') + @api.onchange('gain_way') def _check_gain_way(self): if not self.gain_way: raise UserError("请选择获取方式") diff --git a/sf_bf_connect/controllers/controllers.py b/sf_bf_connect/controllers/controllers.py index c5b57ba3..8c901610 100644 --- a/sf_bf_connect/controllers/controllers.py +++ b/sf_bf_connect/controllers/controllers.py @@ -62,7 +62,7 @@ class Sf_Bf_Connect(http.Controller): request.env.ref("base.user_admin")).bom_create_line( self_machining_embryo) if not self_machining_bom_line: - res['status'] = 2 + res['status'] = -2 res['message'] = '该订单模型的材料型号在您分配的工厂里暂未有原材料,请先配置再进行分配' request.cr.rollback() return json.JSONEncoder().encode(res) @@ -79,6 +79,11 @@ class Sf_Bf_Connect(http.Controller): order_id, 'subcontract', i) + if outsource_embryo == -3: + res['status'] = -3 + res['message'] = '该订单模型的材料型号在您分配的工厂里暂未设置获取方式和供应商,请先配置再进行分配' + request.cr.rollback() + return json.JSONEncoder().encode(res) # 创建坯料的bom outsource_bom = request.env['mrp.bom'].with_user(request.env.ref("base.user_admin")).bom_create( outsource_embryo, @@ -87,7 +92,7 @@ class Sf_Bf_Connect(http.Controller): outsource_bom_line = outsource_bom.with_user( request.env.ref("base.user_admin")).bom_create_line(outsource_embryo) if not outsource_bom_line: - res['status'] = 2 + res['status'] = -2 res['message'] = '该订单模型的材料型号在您分配的工厂里暂未有原材料,请先配置再进行分配' request.cr.rollback() return json.JSONEncoder().encode(res) @@ -101,6 +106,11 @@ class Sf_Bf_Connect(http.Controller): item, order_id, 'purchase', i) + if purchase_embryo == -3: + res['status'] = -3 + res['message'] = '该订单模型的材料型号在您分配的工厂里暂未设置获取方式和供应商,请先配置再进行分配' + request.cr.rollback() + return json.JSONEncoder().encode(res) # 产品配置bom product_bom_purchase = request.env['mrp.bom'].with_user( request.env.ref("base.user_admin")).bom_create(product, 'normal', False) diff --git a/sf_dlm/models/product_supplierinfo.py b/sf_dlm/models/product_supplierinfo.py index 23102d43..4141a363 100644 --- a/sf_dlm/models/product_supplierinfo.py +++ b/sf_dlm/models/product_supplierinfo.py @@ -100,7 +100,7 @@ class ResMrpBomMo(models.Model): if rate_of_waste <= 20: return embryo_has else: - return + return None # 查bom的原材料 def get_raw_bom(self, product): diff --git a/sf_manufacturing/models/product_template.py b/sf_manufacturing/models/product_template.py index d1ac4e7f..053edafd 100644 --- a/sf_manufacturing/models/product_template.py +++ b/sf_manufacturing/models/product_template.py @@ -678,11 +678,14 @@ class ResProductMo(models.Model): # 外协和采购生成的坯料需要根据材料型号绑定供应商 if route_type == 'subcontract' or route_type == 'purchase': no_bom_copy_product_id.purchase_ok = True - no_bom_copy_product_id.seller_ids = [ - (0, 0, {'partner_id': supplier.partner_id.id, 'delay': 1.0})] - if route_type == 'subcontract': - partner = self.env['res.partner'].search([('id', '=', supplier.partner_id.id)]) - partner.is_subcontractor = True + if supplier: + no_bom_copy_product_id.seller_ids = [ + (0, 0, {'partner_id': supplier.partner_id.id, 'delay': 1.0})] + if route_type == 'subcontract': + partner = self.env['res.partner'].search([('id', '=', supplier.partner_id.id)]) + partner.is_subcontractor = True + else: + return -3 no_bom_copy_product_id.write(vals) return no_bom_copy_product_id diff --git a/sf_quality/models/custom_quality.py b/sf_quality/models/custom_quality.py index b6fed11a..f80dd92e 100644 --- a/sf_quality/models/custom_quality.py +++ b/sf_quality/models/custom_quality.py @@ -11,26 +11,3 @@ class SfQualityPoint(models.Model): "('product', 'consu')), '|', ('company_id', '=', False), ('company_id', '=', company_id)]", help= "Quality Point will apply to every selected Products.") - check_state = fields.Selection([ - ('enable', '启用'), - ('close', '关闭') - ], string='审核状态', default='close') - - # 审核 - def action_check(self): - self.check_state = 'enable' - # picking_type_ids = fields.Many2many( - # 'stock.picking.type', string='执行节点', required=True, check_company=True) - - -class ResQualityAlertTeam(models.Model): - _inherit = 'quality.alert.team' - - check_state = fields.Selection([ - ('enable', '启用'), - ('close', '关闭') - ], string='审核状态', default='close') - - # 审核 - def action_check(self): - self.check_state = 'enable' diff --git a/sf_quality/views/view.xml b/sf_quality/views/view.xml index 1159a8d0..1edbca05 100644 --- a/sf_quality/views/view.xml +++ b/sf_quality/views/view.xml @@ -39,13 +39,6 @@ quality.point - - -