优化表面工艺

This commit is contained in:
jinling.yang
2024-08-07 17:30:29 +08:00
parent 5393ef686a
commit 1547a6064f
6 changed files with 106 additions and 57 deletions

View File

@@ -274,13 +274,17 @@ class StockRule(models.Model):
if production_item.product_id.id in product_id_to_production_names:
sorted_process_parameters = sorted(production_item.product_id.model_process_parameters_ids,
key=lambda w: w.id)
consecutive_process_parameters = []
m = 0
for i in range(len(sorted_process_parameters) - 1):
if m == 0:
is_purchase = False
if sorted_process_parameters[i].supplier_id.id == sorted_process_parameters[
i + 1].supplier_id.id and sorted_process_parameters[i].gain_way == '外协':
if self.env['product.template']._get_process_parameters_product(
sorted_process_parameters[i]).partner_id == self.env[
'product.template']._get_process_parameters_product(sorted_process_parameters[
i + 1]).partner_id and \
sorted_process_parameters[i].gain_way == '外协':
if sorted_process_parameters[i] not in consecutive_process_parameters:
consecutive_process_parameters.append(sorted_process_parameters[i])
consecutive_process_parameters.append(sorted_process_parameters[i + 1])
@@ -289,15 +293,15 @@ class StockRule(models.Model):
else:
if m == len(consecutive_process_parameters) - 1 and m != 0:
self.env['purchase.order'].get_purchase_order(consecutive_process_parameters,
production_item,
product_id_to_production_names)
if sorted_process_parameters[i] in consecutive_workorders:
production_item,
product_id_to_production_names)
if sorted_process_parameters[i] in consecutive_process_parameters:
is_purchase = True
consecutive_process_parameters = []
m = 0
# 当前面的连续采购单生成再生成当前工序的外协采购单
if is_purchase is False:
self.env['purchase.order'].get_purchase_order(consecutive_process_parameters[i],
self.env['purchase.order'].get_purchase_order(consecutive_process_parameters,
production_item, product_id_to_production_names)
if m == len(consecutive_process_parameters) - 1 and m != 0:
self.env['purchase.order'].get_purchase_order(consecutive_process_parameters,
@@ -316,36 +320,6 @@ class StockRule(models.Model):
else:
self.env['purchase.order'].get_purchase_order(sorted_process_parameters[i], production_item,
product_id_to_production_names)
# for pp in production_item.product_id.model_process_parameters_ids:
# if pp.gain_way == '外协':
# server_product = self.env['product.template'].search(
# [('server_product_process_parameters_id', '=', pp.id),
# ('detailed_type', '=', 'service')])
# purchase_order_line = self.env['purchase.order.line'].search(
# [('product_id', '=', server_product.id)])
# if not purchase_order_line:
# is_exist = False
# else:
# for item in purchase_order_line:
# purchase_order = self.env['purchase.order'].search(
# [('state', '=', 'draft'), ('origin', 'ilike', production_item.name),
# ('id', '=', item.order_id)])
# if not purchase_order:
# is_exist = False
# if is_exist is False:
# production_process = product_id_to_production_names.get(
# production_item.product_id.id)
# self.env['purchase.order'].sudo().create({
# 'partner_id': server_product.seller_ids.partner_id.id,
# 'origin': ','.join(production_process),
# 'state': 'draft',
# 'order_line': [(0, 0, {
# 'product_id': server_product.product_variant_id.id,
# 'product_qty': len(production_process),
# 'product_uom': server_product.uom_id.id
# })]
# })
# # 同一个产品多个制造订单对应一个编程单和模型库
# # 只调用一次fetchCNC并将所有生产订单的名称作为字符串传递
if not production_item.programming_no: