sf的销售订单生成制造订单的方法,该方法内,需让制造订单和工单的数据入数据库,以便生成表面外协工艺相关的外协出入库单及关联的库存(stock.move)记录的代码可转移至生成工单的该行代码production.workorder_ids = workorders_values前后左右

This commit is contained in:
jinling.yang
2023-04-19 18:05:41 +08:00
parent 5a639d6f55
commit 4e2947c107
5 changed files with 122 additions and 27 deletions

View File

@@ -171,23 +171,22 @@ class MrpProduction(models.Model):
workorders_values.append(
self.env['mrp.workorder'].json_workorder_str('', production, route))
production.workorder_ids = workorders_values
process_parameter_workorder = self.env['mrp.workorder'].search(
[('surface_technics_parameters_id', '!=', False), ('production_id', '=', 58)])
if process_parameter_workorder:
# for st in process_parameter_workorder:
aa = self.env['mrp.workorder'].get_no_data(production.id)
if aa:
consecutive_workorders = []
sorted_workorders = sorted(process_parameter_workorder, key=lambda w: w.id)
m =0
sorted_workorders = sorted(aa, 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
process_parameter_workorder = self.env['mrp.workorder'].search(
[('surface_technics_parameters_id', '!=', False), ('production_id', '=', production.id)])
for workorder in production.workorder_ids:
workorder.duration_expected = workorder._get_duration_expected()
# 判断外协工序是否连续有多个外协工序为同一个供应商(产品为表面工艺服务的供应商),
# 如果有的话则将连续的多个外协工序ID绑定同一张外协出入库单单独的供应商工序则生成单独的外协出入库单
# 如果没有连续的外协工序为同一个供应商则根据规则生成多张外协出入库单并绑定不同的工序ID
# 在之前的销售单上重新生成制造订单
def create_production1_values(self, production):