调拨单就绪问题处理
This commit is contained in:
@@ -121,16 +121,21 @@ class PurchaseOrder(models.Model):
|
|||||||
if not is_available:
|
if not is_available:
|
||||||
raise UserError('请先完成坯料入库')
|
raise UserError('请先完成坯料入库')
|
||||||
for production_id in productions:
|
for production_id in productions:
|
||||||
picking_id = production_id.picking_ids.filtered(
|
work_ids = production_id.workorder_ids.filtered(
|
||||||
|
lambda wk: wk.state not in ['done', 'rework', 'cancel'])
|
||||||
|
if not work_ids:
|
||||||
|
continue
|
||||||
|
min_sequence_wk = min(work_ids, key=lambda wk: wk.sequence)
|
||||||
|
if min_sequence_wk.is_subcontract:
|
||||||
|
picking_id = production_id.picking_ids.filtered(
|
||||||
lambda wk: wk.location_id.name == '制造前' and wk.location_dest_id.name == '外协加工区')
|
lambda wk: wk.location_id.name == '制造前' and wk.location_dest_id.name == '外协加工区')
|
||||||
move_out = picking_id.move_ids
|
move_out = picking_id.move_ids
|
||||||
for mo in move_out:
|
for mo in move_out:
|
||||||
if mo.state != 'done':
|
if mo.state != 'done':
|
||||||
mo.write({'state': 'assigned', 'production_id': False})
|
mo.write({'state': 'assigned', 'production_id': False})
|
||||||
if not mo.move_line_ids:
|
if not mo.move_line_ids:
|
||||||
self.env['stock.move.line'].create(
|
self.env['stock.move.line'].create(
|
||||||
mo.get_move_line(production_id,False))
|
mo.get_move_line(production_id, min_sequence_wk))
|
||||||
|
|
||||||
# product = self.env['mrp.production'].search([('product_id', '=', product_id)], limit=1)
|
# product = self.env['mrp.production'].search([('product_id', '=', product_id)], limit=1)
|
||||||
# match = re.search(r'(S\d{5}-\d)',product.name)
|
# match = re.search(r'(S\d{5}-\d)',product.name)
|
||||||
# pass
|
# pass
|
||||||
|
|||||||
Reference in New Issue
Block a user