统一处理质检单

This commit is contained in:
mgw
2025-02-27 13:54:28 +08:00
parent 75bbbaa027
commit ed17444f21

View File

@@ -209,28 +209,51 @@ class SFSaleOrderCancelLine(models.TransientModel):
lines.append(self.create(vals)) lines.append(self.create(vals))
sequence += 1 sequence += 1
# 成品质检单 # # 成品质检单
fin_quality_checks = self.env['quality.check'].search([ # fin_quality_checks = self.env['quality.check'].search([
('picking_id', '=', picking.id) # ('picking_id', '=', picking.id)
]) # ])
if fin_quality_checks: # if fin_quality_checks:
b1 = 0 # b1 = 0
for fin_qc in fin_quality_checks: # for fin_qc in fin_quality_checks:
b1 += 1 # b1 += 1
vals = { # vals = {
'wizard_id': wizard_id, # 'wizard_id': wizard_id,
'sequence': sequence, # 'sequence': sequence,
'category': '制造', # 'category': '制造',
'doc_name': '质检单', # 'doc_name': '质检单',
'operation_type': '', # 'operation_type': '',
'doc_number': fin_qc.name, # 'doc_number': fin_qc.name,
'line_number': b1, # 'line_number': b1,
'product_name': f'[{fin_qc.product_id.default_code}] {fin_qc.product_id.name}', # 'product_name': f'[{fin_qc.product_id.default_code}] {fin_qc.product_id.name}',
'quantity': 1, # 'quantity': 1,
'doc_state': map_dict.get(fin_qc.quality_state, fin_qc.quality_state), # 'doc_state': map_dict.get(fin_qc.quality_state, fin_qc.quality_state),
'cancel_reason': '已有异动' if fin_qc.quality_state not in ['none', 'cancel', 'waiting'] else '' # 'cancel_reason': '已有异动' if fin_qc.quality_state not in ['none', 'cancel', 'waiting'] else ''
} # }
lines.append(self.create(vals)) # lines.append(self.create(vals))
# 检查所有的质检单
quality_checks = self.env['quality.check'].search([
('product_id.name', 'like', f'%{order.name}%')])
if quality_checks:
b1 = 0
for quality_check in quality_checks:
b1 += 1
vals = {
'wizard_id': wizard_id,
'sequence': sequence,
'category': '质量',
'doc_name': '质检单',
'operation_type': '',
'doc_number': quality_check.name,
'line_number': 1,
'product_name': f'[{quality_check.product_id.default_code}] {quality_check.product_id.name}',
'quantity': quality_check.qty_line,
'doc_state': map_dict.get(quality_check.quality_state, quality_check.quality_state),
'cancel_reason': '已有异动' if quality_check.quality_state not in ['none', 'cancel', 'waiting'] else ''
}
lines.append(self.create(vals))
# 检查销售订单直接关联的采购单 # 检查销售订单直接关联的采购单
purchase_orders = self.env['purchase.order'].search([ purchase_orders = self.env['purchase.order'].search([
@@ -270,12 +293,12 @@ class SFSaleOrderCancelLine(models.TransientModel):
vals = { vals = {
'wizard_id': wizard_id, 'wizard_id': wizard_id,
'sequence': sequence, 'sequence': sequence,
'category': '客供料收货', 'category': '库存',
'doc_name': '库存移动', 'doc_name': '库存移动',
'doc_number': pkd.name, 'doc_number': pkd.name,
'line_number': x3, 'line_number': x3,
'operation_type': pkd.picking_type_id.name, 'operation_type': pkd.picking_type_id.name,
'product_name': move.product_id.name if move.product_id else '', 'product_name': f'[{move.product_id.default_code}] {move.product_id.name}',
'quantity': move.product_uom_qty, 'quantity': move.product_uom_qty,
'doc_state': map_dict.get(pkd.state, pkd.state), 'doc_state': map_dict.get(pkd.state, pkd.state),
'cancel_reason': '已有异动' if pkd.state not in ['waiting', 'cancel', 'confirmed'] else '' 'cancel_reason': '已有异动' if pkd.state not in ['waiting', 'cancel', 'confirmed'] else ''
@@ -542,29 +565,29 @@ class SFSaleOrderCancelLine(models.TransientModel):
} }
lines.append(self.create(vals)) lines.append(self.create(vals))
# 检查制造订单的质检单 # # 检查制造订单的质检单
quality_checks = self.env['quality.check'].search([ # quality_checks = self.env['quality.check'].search([
('production_id', '=', mo.id) # ('production_id', '=', mo.id)
]) # ])
if quality_checks: # if quality_checks:
i = 0 # i = 0
for check in quality_checks: # for check in quality_checks:
i += 1 # i += 1
vals = { # vals = {
'wizard_id': wizard_id, # 'wizard_id': wizard_id,
'sequence': sequence, # 'sequence': sequence,
'category': '制造', # 'category': '制造',
'doc_name': '质检单', # 'doc_name': '质检单',
'operation_type': '', # 'operation_type': '',
'doc_number': check.name, # 'doc_number': check.name,
'line_number': i, # 'line_number': i,
'product_name': f'[{check.product_id.default_code}] {check.product_id.name}', # 'product_name': f'[{check.product_id.default_code}] {check.product_id.name}',
'quantity': 1, # 'quantity': 1,
'doc_state': map_dict.get(check.quality_state, check.quality_state), # 'doc_state': map_dict.get(check.quality_state, check.quality_state),
'cancel_reason': '已有异动' if check.quality_state not in ['none', 'cancel', 'waiting'] else '' # 'cancel_reason': '已有异动' if check.quality_state not in ['none', 'cancel', 'waiting'] else ''
} # }
lines.append(self.create(vals)) # lines.append(self.create(vals))
sequence += 1 # sequence += 1
# 检查制造订单的编程单 # 检查制造订单的编程单
cloud_programming = mo._cron_get_programming_state() cloud_programming = mo._cron_get_programming_state()