diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 011482d9..e35e33cc 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -1283,7 +1283,13 @@ class ResMrpWorkOrder(models.Model): workorder.state = 'waiting' continue purchase_orders_id = self._get_surface_technics_purchase_ids() - if purchase_orders_id.state == 'purchase': + location_id = self.env['stock.location'].search([('name', '=', '制造前')]) + quants = self.env['stock.quant'].search([ + ('product_id', '=', workorder.production_id.bom_id.bom_line_ids.product_id.id), + ('location_id', '=', location_id.id) + ]) + total_qty = sum(quants.mapped('quantity')) # 计算该位置的总库存量 + if purchase_orders_id.state == 'purchase' and total_qty >= workorder.production_id.product_qty: workorder.state = 'ready' picking_id = workorder.production_id.picking_ids.filtered( lambda wk: wk.location_id.name == '制造前' and wk.location_dest_id.name == '外协加工区')