优化及调试表面工艺外协出入库单,‘胚料’修改为‘坯料’
This commit is contained in:
@@ -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()
|
||||
|
||||
Reference in New Issue
Block a user