创建制造订单后生成询价单

This commit is contained in:
jinling.yang
2024-07-25 17:21:44 +08:00
parent 33fdd0f051
commit 19c4b99bae
2 changed files with 18 additions and 30 deletions

View File

@@ -18,6 +18,7 @@ class StatusChange(models.Model):
server_product_none = [] server_product_none = []
for order in self.order_line: for order in self.order_line:
for item in order.product_template_id.model_process_parameters_ids: for item in order.product_template_id.model_process_parameters_ids:
if item.gain_way == '外协':
server_product = self.env['product.template'].search( server_product = self.env['product.template'].search(
[('server_product_process_parameters_id', '=', item.id), [('server_product_process_parameters_id', '=', item.id),
('detailed_type', '=', 'service')]) ('detailed_type', '=', 'service')])
@@ -25,25 +26,6 @@ class StatusChange(models.Model):
server_product_none.append(item.name) server_product_none.append(item.name)
if server_product_none: if server_product_none:
raise UserError(_("请先至产品中创建表面工艺参数为%s的服务产品", ", ".join(server_product_none))) raise UserError(_("请先至产品中创建表面工艺参数为%s的服务产品", ", ".join(server_product_none)))
# 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()

View File

@@ -272,21 +272,27 @@ class StockRule(models.Model):
product_id_to_production_names[product_id] = [production.name for production in all_production] product_id_to_production_names[product_id] = [production.name for production in all_production]
for production_item in productions: for production_item in productions:
if production_item.product_id.id in product_id_to_production_names: if production_item.product_id.id in product_id_to_production_names:
for st_item in production_item.product_id.model_process_parameters_ids: purchase_order = self.env['purchase.order'].search(
purchase_order = self.env['purchase.order'].search([('state','=','draft'),('origin','ilike',production_item.name)]) [('state', '=', 'draft'), ('origin', 'ilike', production_item.name)])
for po in purchase_order.order_line: # for po in purchase_order.order_line:
for pp in po.product_id.model_process_parameters_ids: for pp in production_item.product_id.model_process_parameters_ids:
if pp.gain_way == '外协':
purchase_order_line = self.env['purchase.order.line'].search(
[('order_id', '=', po.order_id)])
if not purchase_order_line:
server_product = self.env['product.template'].search( server_product = self.env['product.template'].search(
[('server_product_process_parameters_id', '=', pp.id), [('server_product_process_parameters_id', '=', pp.id),
('detailed_type', '=', 'service')]) ('detailed_type', '=', 'service')])
production_process = product_id_to_production_names.get(
production_item.product_id.id)
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': "同一个产品的制造订单数量", 'product_qty': len(production_process),
'product_uom': server_product.uom_id.id 'product_uom': server_product.uom_id.id
})) }))
self.env['purchase.order'].sudo().create({ self.env['purchase.order'].sudo().create({
'partner_id': server_product.seller_ids.partner_id.id, 'partner_id': server_product.seller_ids.partner_id.id,
'origin': "同一个产品的制造订单名称", 'origin': ','.join(production_process),
'state': 'draft', 'state': 'draft',
'order_line': order_line_ids, 'order_line': order_line_ids,
}) })