补全单据

This commit is contained in:
mgw
2025-02-26 17:39:34 +08:00
parent 82cbd95b7d
commit 513daa7c2b

View File

@@ -382,27 +382,46 @@ class SFSaleOrderCancelLine(models.TransientModel):
# 检查组件的制造单 # 检查组件的制造单
component_mos = self.env['mrp.production'].search([ component_mos = self.env['mrp.production'].search([
('origin', '=', mo.name), ('origin', '=', mo.name)])
('product_id', '=', move.product_id.id)
])
h = 0 h = 0
for comp_mo in component_mos: if component_mos:
h += 1 for comp_mo in component_mos:
vals = { h += 1
'wizard_id': wizard_id, vals = {
'sequence': sequence, 'wizard_id': wizard_id,
'category': '制造', 'sequence': sequence,
'doc_name': '组件制造', 'category': '制造',
'operation_type': '', 'doc_name': '组件制造单',
'doc_number': comp_mo.name, 'operation_type': '',
'line_number': h, 'doc_number': comp_mo.name,
'product_name': move.product_id.name, 'line_number': h,
'quantity': comp_mo.product_qty, 'product_name': move.product_id.name,
'doc_state': map_dict.get(comp_mo.state, comp_mo.state), 'quantity': comp_mo.product_qty,
'cancel_reason': '已有异动' if comp_mo.state not in ['technology_to_confirmed', 'cancel'] else '' 'doc_state': map_dict.get(comp_mo.state, comp_mo.state),
} 'cancel_reason': '已有异动' if comp_mo.state not in ['technology_to_confirmed', 'cancel'] else ''
lines.append(self.create(vals)) }
sequence += 1 lines.append(self.create(vals))
sequence += 1
for pinking_id in comp_mo.picking_ids:
y = 0
for move in pinking_id.move_ids:
y += 1
vals = {
'wizard_id': wizard_id,
'sequence': sequence,
'category': '子制造调拨',
'doc_name': '库存移动',
'doc_number': f'{comp_mo.name}-{pinking_id.name}',
'line_number': y,
'operation_type': pinking_id.picking_type_id.name,
'product_name': move.product_id.name if move.product_id else '',
'quantity': move.product_uom_qty,
'doc_state': map_dict.get(pinking_id.state, pinking_id.state),
'cancel_reason': '已有异动' if pinking_id.state not in ['cancel', 'waiting'] else ''
}
lines.append(self.create(vals))
# 检查制造订单的质检单 # 检查制造订单的质检单
quality_checks = self.env['quality.check'].search([ quality_checks = self.env['quality.check'].search([