处理工单可能为记录集的问题

This commit is contained in:
mgw
2024-05-06 11:29:17 +08:00
parent 3a22c817df
commit 9d157d6083

View File

@@ -772,55 +772,56 @@ class ResMrpWorkOrder(models.Model):
raise UserError(_('请先完成上一步工单')) raise UserError(_('请先完成上一步工单'))
def button_finish(self): def button_finish(self):
if self.routing_type == '装夹预调': for record in self:
if not self.material_center_point and self.X_deviation_angle > 0: if record.routing_type == '装夹预调':
raise UserError("请对前置三元检测定位参数进行计算定位") if not record.material_center_point and record.X_deviation_angle > 0:
if not self.rfid_code: raise UserError("请对前置三元检测定位参数进行计算定位")
raise UserError("请扫RFID码进行绑定") if not record.rfid_code:
self.workpiece_delivery_ids[0].write({'status': '待下发'}) raise UserError("请扫RFID码进行绑定")
record.workpiece_delivery_ids[0].write({'status': '待下发'})
if self.routing_type == '解除装夹': if record.routing_type == '解除装夹':
''' '''
记录结束时间 记录结束时间
''' '''
self.date_finished = datetime.now() record.date_finished = datetime.now()
if self.picking_out_id: if record.picking_out_id:
picking_out = self.env['stock.picking'].search([('id', '=', self.picking_out_id.id)]) picking_out = record.env['stock.picking'].search([('id', '=', record.picking_out_id.id)])
if picking_out.workorder_out_id: if picking_out.workorder_out_id:
order_line_ids = [] order_line_ids = []
for item in picking_out.workorder_out_id: for item in picking_out.workorder_out_id:
server_product = self.env['product.template'].search( server_product = record.env['product.template'].search(
[('server_product_process_parameters_id', '=', item.surface_technics_parameters_id.id), [('server_product_process_parameters_id', '=', item.surface_technics_parameters_id.id),
('detailed_type', '=', 'service')]) ('detailed_type', '=', 'service')])
if server_product: if server_product:
order_line_ids.append((0, 0, { order_line_ids.append((0, 0, {
'product_id': server_product.product_variant_id.id, 'product_id': server_product.product_variant_id.id,
'product_qty': 1, 'product_qty': 1,
'product_uom': server_product.uom_id.id 'product_uom': server_product.uom_id.id
})) }))
else: else:
raise UserError( raise UserError(
'请先在产品中配置表面工艺为%s相关的外协服务产品' % item.surface_technics_parameters_id.name) '请先在产品中配置表面工艺为%s相关的外协服务产品' % item.surface_technics_parameters_id.name)
self.env['purchase.order'].create({ record.env['purchase.order'].create({
'partner_id': server_product.seller_ids.partner_id.id, 'partner_id': server_product.seller_ids.partner_id.id,
'state': 'draft', 'state': 'draft',
'order_line': order_line_ids, 'order_line': order_line_ids,
}) })
super().button_finish() super().button_finish()
is_production_id = True is_production_id = True
for workorder in self.production_id.workorder_ids: for workorder in record.production_id.workorder_ids:
if workorder.state != 'done': if workorder.state != 'done':
is_production_id = False is_production_id = False
if is_production_id == True and self.name == '解除装夹': if is_production_id == True and record.name == '解除装夹':
for workorder in self.production_id.workorder_ids: for workorder in record.production_id.workorder_ids:
workorder.rfid_code_old = workorder.rfid_code workorder.rfid_code_old = workorder.rfid_code
workorder.rfid_code = None workorder.rfid_code = None
for move_raw_id in self.production_id.move_raw_ids: for move_raw_id in record.production_id.move_raw_ids:
move_raw_id.quantity_done = move_raw_id.product_uom_qty move_raw_id.quantity_done = move_raw_id.product_uom_qty
self.process_state = '已完工' record.process_state = '已完工'
self.production_id.button_mark_done1() record.production_id.button_mark_done1()
# self.production_id.state = 'done' # self.production_id.state = 'done'
# 将FTP的检测报告文件下载到临时目录 # 将FTP的检测报告文件下载到临时目录
def download_reportfile_tmp(self, workorder, reportpath): def download_reportfile_tmp(self, workorder, reportpath):