添加表面工艺服务产品验证

This commit is contained in:
jinling.yang
2024-07-24 17:30:59 +08:00
parent 121861863f
commit 96c22a5d46

View File

@@ -14,25 +14,34 @@ class StatusChange(models.Model):
def action_confirm(self): def action_confirm(self):
# 在原有方法执行前记录日志和执行其他操作 # 在原有方法执行前记录日志和执行其他操作
logging.info('函数已经执行=============') logging.info('函数已经执行=============')
server_product_none = []
for order in self.order_lines: for order in self.order_lines:
for item in order.product_template_id.model_process_parameters_ids: for item in order.product_template_id.model_process_parameters_ids:
server_product = self.env['product.template'].search( server_product = self.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')])
logging.info('server_product:%s' % server_product.name) if not server_product:
if server_product: server_product_none.append(item.surface_technics_parameters_id.name)
order_line_ids.append((0, 0, { if server_product_none:
'product_id': server_product.product_variant_id.id, raise UserError(_("请先至产品中创建表面工艺为%s的服务产品", ", ".join(server_product_none)))
'product_qty': 1,
'product_uom': server_product.uom_id.id
}))
self.env['purchase.order'].sudo().create({
'partner_id': server_product.seller_ids.partner_id.id,
'origin': record.production_id.name,
'state': 'draft',
'order_line': order_line_ids,
})
# if not server_product_none:
# for st_item in order.product_template_id.model_process_parameters_ids:
# server_product = self.env['product.template'].search(
# [('server_product_process_parameters_id', '=', st_item.surface_technics_parameters_id.id),
# ('detailed_type', '=', 'service')])
# if server_product:
# order_line_ids.append((0, 0, {
# 'product_id': server_product.product_variant_id.id,
# 'product_qty': 1,
# 'product_uom': server_product.uom_id.id
# }))
# self.env['purchase.order'].sudo().create({
# 'partner_id': server_product.seller_ids.partner_id.id,
# 'origin': record.production_id.name,
# 'state': 'draft',
# 'order_line': order_line_ids,
# })
# 使用super()来调用原始方法(在本例中为'sale.order'模型的'action_confirm'方法) # 使用super()来调用原始方法(在本例中为'sale.order'模型的'action_confirm'方法)
res = super(StatusChange, self).action_confirm() res = super(StatusChange, self).action_confirm()
@@ -221,12 +230,12 @@ class FinishStatusChange(models.Model):
[('id', 'child_of', self.picking_type_id.warehouse_id.view_location_id.id), [('id', 'child_of', self.picking_type_id.warehouse_id.view_location_id.id),
('usage', '!=', 'supplier')]) ('usage', '!=', 'supplier')])
if self.env['stock.move'].search([ if self.env['stock.move'].search([
('state', 'in', ['confirmed', 'partially_available', 'waiting', 'assigned']), ('state', 'in', ['confirmed', 'partially_available', 'waiting', 'assigned']),
('product_qty', '>', 0), ('product_qty', '>', 0),
('location_id', 'in', wh_location_ids), ('location_id', 'in', wh_location_ids),
('move_orig_ids', '=', False), ('move_orig_ids', '=', False),
('picking_id', 'not in', self.ids), ('picking_id', 'not in', self.ids),
('product_id', 'in', lines.product_id.ids)], limit=1): ('product_id', 'in', lines.product_id.ids)], limit=1):
action = self.action_view_reception_report() action = self.action_view_reception_report()
action['context'] = {'default_picking_ids': self.ids} action['context'] = {'default_picking_ids': self.ids}
return action return action