外协流程更改
This commit is contained in:
@@ -6,6 +6,7 @@ import json
|
||||
import os
|
||||
import re
|
||||
import traceback
|
||||
from operator import itemgetter
|
||||
|
||||
import requests
|
||||
from itertools import groupby
|
||||
@@ -889,11 +890,40 @@ class MrpProduction(models.Model):
|
||||
workorders_values.append(
|
||||
self.env[
|
||||
'mrp.workorder']._json_workorder_surface_process_str(
|
||||
production, route, product_production_process.seller_ids[0].partner_id.id))
|
||||
production, route, product_production_process.seller_ids[0].partner_id.id if product_production_process.seller_ids else False))
|
||||
production.workorder_ids = workorders_values
|
||||
for workorder in production.workorder_ids:
|
||||
workorder.duration_expected = workorder._get_duration_expected()
|
||||
|
||||
def _create_subcontract_purchase_request(self,purchase_request_line):
|
||||
sorted_list = sorted(purchase_request_line, key=itemgetter('name'))
|
||||
grouped_purchase_request_line = {
|
||||
k: list(g)
|
||||
for k, g in groupby(sorted_list, key=itemgetter('name'))
|
||||
}
|
||||
for name, request_line in grouped_purchase_request_line.items():
|
||||
request_line_sorted_list = sorted(request_line, key=itemgetter('product_id'))
|
||||
grouped_purchase_request_line_sorted_list = {
|
||||
k: list(g)
|
||||
for k, g in groupby(request_line_sorted_list, key=itemgetter('product_id'))
|
||||
}
|
||||
purchase_request_model = self.env["purchase.request"]
|
||||
pr = purchase_request_model.create({
|
||||
"origin": name,
|
||||
"company_id": self.company_id.id,
|
||||
"picking_type_id": self.env.ref('stock.picking_type_in').id,
|
||||
"group_id": request_line[0].get('group_id'),
|
||||
"requested_by": self.env.context.get("uid", self.env.uid),
|
||||
"assigned_to": False,
|
||||
"bom_id":self[0].bom_id.id,
|
||||
})
|
||||
for product_id, request_line_list in grouped_purchase_request_line_sorted_list.items():
|
||||
cur_request_line = request_line_list[0]
|
||||
cur_request_line['product_qty'] = len(request_line_list)
|
||||
cur_request_line['request_id'] = pr.id
|
||||
cur_request_line['origin'] = name
|
||||
cur_request_line.pop('group_id', None)
|
||||
self.env["purchase.request.line"].create(cur_request_line)
|
||||
# 外协出入库单处理
|
||||
def get_subcontract_pick_purchase(self):
|
||||
production_all = self.sorted(lambda x: x.id)
|
||||
@@ -903,6 +933,7 @@ class MrpProduction(models.Model):
|
||||
for product_id, pd in grouped_product_ids.items():
|
||||
product_id_to_production_names[product_id] = [p.name for p in pd]
|
||||
sorted_workorders = None
|
||||
purchase_request_line = []
|
||||
for production in production_all:
|
||||
proc_workorders = []
|
||||
process_parameter_workorder = self.env['mrp.workorder'].search(
|
||||
@@ -917,11 +948,11 @@ class MrpProduction(models.Model):
|
||||
sorted_workorders = sorted(process_parameter_workorder, key=lambda w: w.sequence)
|
||||
if not sorted_workorders:
|
||||
return
|
||||
purchase_request_line = []
|
||||
for workorders in reversed(sorted_workorders):
|
||||
self.env['stock.picking'].create_outcontract_picking(workorders, production, sorted_workorders)
|
||||
self.env['purchase.order'].get_purchase_order(workorders, production, product_id_to_production_names)
|
||||
# self.env['purchase.order'].get_purchase_order(workorders, production, product_id_to_production_names)
|
||||
purchase_request_line = purchase_request_line + self.env['purchase.order'].get_purchase_request(workorders, production)
|
||||
self._create_subcontract_purchase_request(purchase_request_line)
|
||||
|
||||
# 工单排序
|
||||
def _reset_work_order_sequence1(self, k):
|
||||
|
||||
Reference in New Issue
Block a user