优化及调试表面工艺外协出入库单,‘胚料’修改为‘坯料’

This commit is contained in:
jinling.yang
2023-04-20 19:39:12 +08:00
parent 4e2947c107
commit 82dcfb5018
13 changed files with 142 additions and 230 deletions

View File

@@ -11,7 +11,7 @@ class Sf_Bf_Connect(http.Controller):
cors="*")
def get_bfm_process_order_list(self, **kw):
"""
接收业务平台加工订单分配工厂时传送来的订单数据并生成销售订单和产品及
接收业务平台加工订单分配工厂时传送来的订单数据并生成销售订单和产品及
:param kw:
:return:
"""
@@ -52,16 +52,16 @@ class Sf_Bf_Connect(http.Controller):
bom.with_user(request.env.ref("base.user_admin")).bom_create_line_has(bom_data)
else:
if product.materials_type_id.gain_way == '自加工':
# 创建
# 创建
self_machining_embryo = request.env['product.template'].sudo().no_bom_product_create(
self_machining_id,
item,
order_id, 'self_machining', i)
# 创建料的bom
# 创建料的bom
self_machining_bom = request.env['mrp.bom'].with_user(
request.env.ref("base.user_admin")).bom_create(
self_machining_embryo, 'normal', False)
# 创建料里bom的组件
# 创建料里bom的组件
self_machining_bom_line = self_machining_bom.with_user(
request.env.ref("base.user_admin")).bom_create_line(
self_machining_embryo)
@@ -77,17 +77,17 @@ class Sf_Bf_Connect(http.Controller):
product_bom_self_machining.with_user(request.env.ref("base.user_admin")).bom_create_line_has(
self_machining_embryo)
elif product.materials_type_id.gain_way == '外协':
# 创建
# 创建
outsource_embryo = request.env['product.template'].sudo().no_bom_product_create(outsource_id,
item,
order_id,
'subcontract',
i)
# 创建料的bom
# 创建料的bom
outsource_bom = request.env['mrp.bom'].with_user(request.env.ref("base.user_admin")).bom_create(
outsource_embryo,
'subcontract', True)
# 创建料的bom的组件
# 创建料的bom的组件
outsource_bom_line = outsource_bom.with_user(
request.env.ref("base.user_admin")).bom_create_line(outsource_embryo)
if outsource_bom_line == False:

View File

@@ -35,44 +35,7 @@ class StatusChange(models.Model):
context = self._context.copy()
context.pop('default_name', None)
logging.info('函数已经执行=============4')
self.with_context(context)._action_confirm()
self.env.cr.commit()
print(self.mrp_production_ids)
# 判断外协工序是否连续有多个外协工序为同一个供应商(产品为表面工艺服务的供应商),
# 如果有的话则将连续的多个外协工序ID绑定同一张外协出入库单单独的供应商工序则生成单独的外协出入库单
# 如果没有连续的外协工序为同一个供应商则根据规则生成多张外协出入库单并绑定不同的工序ID
#以下代码可转移至生成工单的该行代码production.workorder_ids = workorders_values前后左右
for item in self.mrp_production_ids:
process_parameter_workorder = self.env['mrp.workorder'].search(
[('surface_technics_parameters_id', '!=', False), ('production_id', '=', 83)])
if process_parameter_workorder:
consecutive_workorders = []
m =0
sorted_workorders = sorted(process_parameter_workorder, key=lambda w: w.id)
for i in range(len(sorted_workorders) - 1):
if sorted_workorders[i].supplier_id == sorted_workorders[i + 1].supplier_id and \
sorted_workorders[i].id == sorted_workorders[i + 1].id - 1:
consecutive_workorders.append(sorted_workorders[i])
consecutive_workorders.append(sorted_workorders[i + 1])
m+1
else:
if m != len(sorted_workorders):
if consecutive_workorders:
self.env['stock.move'].create_outcontract_stock_move(consecutive_workorders,item)
# 当前面的连续工序生成对应的外协出入库单再生成当前工序的外协出入库单,并将前面的consecutive_workorders和m置为初始值
consecutive_workorders = []
m =0
self.env['stock.move'].create_outcontract_stock_move(consecutive_workorders, item)
if m == len(sorted_workorders):
self.env['stock.move'].create_outcontract_stock_move(consecutive_workorders, item)
if self.env.user.has_group('sale.group_auto_done_setting'):
logging.info('函数已经执行=============5')
self.action_done()