Accept Merge Request #2171: (feature/销售合同优化 -> develop)
Merge Request: 1、销售订单添加合同编号字段,bfm下单接口添加合同编号同步;2、优化解除装夹工单完工时解绑rfid逻辑,优化工单返工时新工单绑定rfid逻辑 Created By: @禹翔辉 Reviewed By: @胡尧 Approved By: @胡尧 Accepted By: @禹翔辉 URL: https://jikimo-hn.coding.net/p/jikimo_sfs/d/jikimo_sf/git/merge/2171
This commit is contained in:
@@ -45,8 +45,9 @@ class JikimoSaleRoutePicking(Sf_Bf_Connect):
|
|||||||
product.product_tmpl_id.is_customer_provided = True if item['embryo_redundancy_id'] else False
|
product.product_tmpl_id.is_customer_provided = True if item['embryo_redundancy_id'] else False
|
||||||
order_id.with_user(request.env.ref("base.user_admin")).sale_order_create_line(product, item)
|
order_id.with_user(request.env.ref("base.user_admin")).sale_order_create_line(product, item)
|
||||||
i += 1
|
i += 1
|
||||||
if kw.get('contract_file_name') and kw.get('contract_file'):
|
if kw.get('contract_file_name') and kw.get('contract_file') and kw.get('contract_code'):
|
||||||
order_id.create_sale_documents(kw.get('contract_file_name'), kw.get('contract_file'))
|
order_id.create_sale_documents(kw.get('contract_file_name'), kw.get('contract_file'))
|
||||||
|
order_id.write({'contract_code': kw.get('contract_code')})
|
||||||
res['factory_order_no'] = order_id.name
|
res['factory_order_no'] = order_id.name
|
||||||
order_id.confirm_to_supply_method()
|
order_id.confirm_to_supply_method()
|
||||||
except Exception as e:
|
except Exception as e:
|
||||||
|
|||||||
@@ -1592,25 +1592,17 @@ class ResMrpWorkOrder(models.Model):
|
|||||||
len(done_workorder) == len(
|
len(done_workorder) == len(
|
||||||
record.production_id.workorder_ids.filtered(lambda wo: wo.state != 'cancel'))):
|
record.production_id.workorder_ids.filtered(lambda wo: wo.state != 'cancel'))):
|
||||||
is_production_id = True
|
is_production_id = True
|
||||||
if record.routing_type in ['解除装夹'] or (
|
|
||||||
record.is_rework is True and record.routing_type in ['装夹预调']):
|
|
||||||
for workorder in record.production_id.workorder_ids:
|
|
||||||
if workorder.processing_panel == record.processing_panel:
|
|
||||||
rfid_code = workorder.rfid_code
|
|
||||||
if record.is_rework is not True:
|
|
||||||
workorder.write({'rfid_code_old': rfid_code, 'rfid_code': False})
|
|
||||||
elif workorder.routing_type != '装夹预调' and workorder.state != 'rework':
|
|
||||||
workorder.write({'rfid_code_old': False, 'rfid_code': False})
|
|
||||||
elif workorder.routing_type == '装夹预调' and workorder.state != 'rework':
|
|
||||||
workorder.write({'rfid_code_old': rfid_code, 'rfid_code': False})
|
|
||||||
self.env['stock.lot'].sudo().search([('rfid', '=', rfid_code)]).write(
|
|
||||||
{'tool_material_status': '可用'})
|
|
||||||
if workorder.rfid_code:
|
|
||||||
raise ValidationError(f'【{workorder.name}】工单解绑失败,请重新点击完成按钮!!!')
|
|
||||||
# workorder.rfid_code_old = rfid_code
|
|
||||||
# workorder.rfid_code = False
|
|
||||||
logging.info('workorder.rfid_code:%s' % workorder.rfid_code)
|
|
||||||
|
|
||||||
|
if record.routing_type in ['解除装夹']:
|
||||||
|
rfid_code = record.rfid_code
|
||||||
|
work_ids = record.production_id.workorder_ids.filtered(
|
||||||
|
lambda wo: wo.processing_panel == record.processing_panel and wo.state != 'rework')
|
||||||
|
work_ids.write({'rfid_code_old': rfid_code, 'rfid_code': False})
|
||||||
|
self.env['stock.lot'].sudo().search([('rfid', '=', rfid_code)]).write(
|
||||||
|
{'tool_material_status': '可用'})
|
||||||
|
if any(wo.rfid_code for wo in work_ids):
|
||||||
|
raise ValidationError(f'【{record.name}】工单解绑失败,请重新点击完成按钮!!!')
|
||||||
|
logging.info('work_ids.rfid_code:%s' % [wo.rfid_code for wo in work_ids])
|
||||||
if is_production_id is True:
|
if is_production_id is True:
|
||||||
logging.info('product_qty:%s' % record.production_id.product_qty)
|
logging.info('product_qty:%s' % record.production_id.product_qty)
|
||||||
for move_raw_id in record.production_id.move_raw_ids:
|
for move_raw_id in record.production_id.move_raw_ids:
|
||||||
|
|||||||
@@ -46,10 +46,10 @@ class ProductionWizard(models.TransientModel):
|
|||||||
mrp_workorder_list = self.mrp_production_id.workorder_ids.filtered(lambda kw: kw.rfid_code)
|
mrp_workorder_list = self.mrp_production_id.workorder_ids.filtered(lambda kw: kw.rfid_code)
|
||||||
for workorder in mrp_workorder_list:
|
for workorder in mrp_workorder_list:
|
||||||
rfid_code = workorder.rfid_code
|
rfid_code = workorder.rfid_code
|
||||||
workorder.filtered(lambda wo: wo.routing_type == '装夹预调' and wo.rfid_code is not False).write(
|
workorder.filtered(lambda wo: wo.routing_type == '装夹预调' and wo.rfid_code and wo.state != 'rework').write(
|
||||||
{'rfid_code_old': rfid_code, 'rfid_code': False})
|
{'rfid_code_old': rfid_code, 'rfid_code': False})
|
||||||
workorder.filtered(lambda wo: (wo.routing_type != '装夹预调' and
|
workorder.filtered(lambda wo: (wo.routing_type != '装夹预调' and
|
||||||
(wo.rfid_code_old is not False or wo.rfid_code is not False))).write(
|
(wo.rfid_code_old or wo.rfid_code) and wo.state != 'rework')).write(
|
||||||
{'rfid_code_old': False, 'rfid_code': False})
|
{'rfid_code_old': False, 'rfid_code': False})
|
||||||
|
|
||||||
if self.is_remanufacture is True:
|
if self.is_remanufacture is True:
|
||||||
|
|||||||
@@ -173,8 +173,12 @@ class ReworkWizard(models.TransientModel):
|
|||||||
# ====新工单绑定rfid===
|
# ====新工单绑定rfid===
|
||||||
for new_work_id in new_work_ids:
|
for new_work_id in new_work_ids:
|
||||||
if new_work_id.routing_type in ['CNC加工', '解除装夹']:
|
if new_work_id.routing_type in ['CNC加工', '解除装夹']:
|
||||||
new_work_id.write({'rfid_code': self.production_id.workorder_ids.filtered(
|
# 获取new_work_id同一个加工面已经绑定rfid的非返工的装夹预调工单
|
||||||
lambda wk: wk.sequence == new_work_id.sequence - 1).rfid_code})
|
work_id = self.production_id.workorder_ids.filtered(
|
||||||
|
lambda wk: (wk.processing_panel == new_work_id.processing_panel and wk.rfid_code
|
||||||
|
and wk.routing_type == '装夹预调' and wk.state != 'rework'))
|
||||||
|
if work_id:
|
||||||
|
new_work_id.write({'rfid_code': work_id.rfid_code})
|
||||||
self.production_id.detection_result_ids.filtered(
|
self.production_id.detection_result_ids.filtered(
|
||||||
lambda ap1: ap1.handle_result == '待处理').write({'handle_result': '已处理'})
|
lambda ap1: ap1.handle_result == '待处理').write({'handle_result': '已处理'})
|
||||||
panels = [] # 返工的加工面
|
panels = [] # 返工的加工面
|
||||||
|
|||||||
@@ -63,6 +63,7 @@ class ReSaleOrder(models.Model):
|
|||||||
|
|
||||||
model_display_version = fields.Char('模型展示版本', default="v1")
|
model_display_version = fields.Char('模型展示版本', default="v1")
|
||||||
|
|
||||||
|
contract_code = fields.Char('合同编号')
|
||||||
contract_document_id = fields.Many2one('documents.document', string='合同文件')
|
contract_document_id = fields.Many2one('documents.document', string='合同文件')
|
||||||
contract_file = fields.Binary(related='contract_document_id.datas', string='合同文件内容')
|
contract_file = fields.Binary(related='contract_document_id.datas', string='合同文件内容')
|
||||||
contract_file_name = fields.Char(related='contract_document_id.attachment_id.name', string='文件名')
|
contract_file_name = fields.Char(related='contract_document_id.attachment_id.name', string='文件名')
|
||||||
|
|||||||
Reference in New Issue
Block a user