diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index d3417c1f..c3175ade 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -1495,23 +1495,25 @@ class MrpProduction(models.Model): picking_type_id = self._get_default_picking_type_id(vals.get('company_id', self.env.company.id)) vals['picking_type_id'] = picking_type_id vals['name'] = self.env['stock.picking.type'].browse(picking_type_id).sequence_id.next_by_id() - if not is_first: + product_id = self.env['product.product'].browse(vals['product_id']) + is_self_process = product_id.materials_type_id and product_id.materials_type_id.gain_way and product_id.materials_type_id.gain_way != '自加工' + if not is_first and is_self_process: is_first = True group_id = self.env["procurement.group"].create({'name': vals.get('name')}).id if not vals.get('procurement_group_id'): - product_id = self.env['product.product'].browse(vals['product_id']) if product_id.product_tmpl_id.single_manufacturing: - if product_id.categ_id.name =='成品': + if product_id.categ_id.name == '成品' and is_self_process: vals['procurement_group_id'] = group_id continue if product_id.id not in product_group_id.keys(): procurement_group_vals = self._prepare_procurement_group_vals(vals) - group_id = self.env["procurement.group"].create(procurement_group_vals).id - vals['procurement_group_id'] = group_id - product_group_id[product_id.id] = group_id + procurement_group_id = self.env["procurement.group"].create(procurement_group_vals).id + vals['procurement_group_id'] = procurement_group_id + product_group_id[product_id.id] = procurement_group_id else: vals['procurement_group_id'] = product_group_id[product_id.id] - vals['procurement_group_id'] = group_id + else: + vals['procurement_group_id'] = group_id return super(MrpProduction, self).create(vals_list) @api.depends('procurement_group_id.stock_move_ids.created_purchase_line_id.order_id',