From d9543d42fd32a11b84c79fdaedc1bdbd1f33f548 Mon Sep 17 00:00:00 2001 From: mgw <1392924357@qq.com> Date: Fri, 10 May 2024 16:01:33 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=9C=A8=E5=B7=A5=E5=8D=95=E5=AE=8C?= =?UTF-8?q?=E6=88=90=E5=A4=84=E6=8E=A7=E5=88=B6=E7=8A=B6=E6=80=81=EF=BC=8C?= =?UTF-8?q?=E6=9D=A5=E9=81=BF=E5=85=8D=E9=9D=9E=E6=AD=A3=E5=B8=B8=E6=93=8D?= =?UTF-8?q?=E4=BD=9C=E5=AF=BC=E8=87=B4=E7=9A=84=E5=88=B6=E9=80=A0=E8=AE=A2?= =?UTF-8?q?=E5=8D=95=E7=8A=B6=E6=80=81=E5=BC=82=E5=B8=B8=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/controllers/controllers.py | 4 ++-- sf_manufacturing/models/mrp_production.py | 2 +- sf_manufacturing/models/mrp_workorder.py | 13 +++++++++++-- 3 files changed, 14 insertions(+), 5 deletions(-) diff --git a/sf_manufacturing/controllers/controllers.py b/sf_manufacturing/controllers/controllers.py index 80ae21e7..e42bb1c7 100644 --- a/sf_manufacturing/controllers/controllers.py +++ b/sf_manufacturing/controllers/controllers.py @@ -214,8 +214,8 @@ class Manufacturing_Connect(http.Controller): res = {'Succeed': False, 'ErrorCode': 202, 'Error': '该工单未开始'} return json.JSONEncoder().encode(res) workorder.button_finish() - workorder.process_state = '待解除装夹' - workorder.sudo().production_id.process_state = '待解除装夹' + # workorder.process_state = '待解除装夹' + # workorder.sudo().production_id.process_state = '待解除装夹' # 根据工单的实际结束时间修改排程单的结束时间、状态,同时修改销售订单的状态 if workorder.date_finished: diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index e2d6616a..a96f3383 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -67,7 +67,7 @@ class MrpProduction(models.Model): ('待加工', '待加工'), ('待解除装夹', '待解除装夹'), ('已完工', '已完工'), - ], string='工序状态', related='workorder_ids.process_state', store=True) + ], string='工序状态') # 零件图号 part_number = fields.Char('零件图号') diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 5c8ecdd6..704b0ec5 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -412,8 +412,8 @@ class ResMrpWorkOrder(models.Model): work = workorder.production_id.workorder_ids work.compensation_value_x = eval(self.material_center_point)[0] work.compensation_value_y = eval(self.material_center_point)[1] - work.process_state = '待加工' - self.sudo().production_id.state = 'pending_processing' + # work.process_state = '待加工' + # self.sudo().production_id.process_state = '待加工' self.date_finished = datetime.now() workorder.button_finish() @@ -828,6 +828,14 @@ class ResMrpWorkOrder(models.Model): if not record.rfid_code: raise UserError("请扫RFID码进行绑定") record.workpiece_delivery_ids[0].write({'status': '待下发'}) + record.process_state = '待加工' + # record.write({'process_state': '待加工'}) + record.production_id.process_state = '待加工' + + if record.routing_type == 'CNC加工': + record.process_state = '待解除装夹' + # record.write({'process_state': '待加工'}) + record.production_id.process_state = '待解除装夹' if record.routing_type == '解除装夹': ''' @@ -869,6 +877,7 @@ class ResMrpWorkOrder(models.Model): for move_raw_id in record.production_id.move_raw_ids: move_raw_id.quantity_done = move_raw_id.product_uom_qty record.process_state = '已完工' + record.production_id.process_state = '已完工' record.production_id.button_mark_done1() # self.production_id.state = 'done' From 016a2794531e28a552be02ad0bca9264421e30aa Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Fri, 10 May 2024 16:42:54 +0800 Subject: [PATCH 2/2] =?UTF-8?q?1=E3=80=81=E8=A7=A3=E5=86=B3=20=20=E5=9D=AF?= =?UTF-8?q?=E6=96=99=E5=A4=96=E5=8D=8F=E4=B8=8D=E7=94=9F=E6=88=90=E5=A4=96?= =?UTF-8?q?=E5=8D=8F=E5=87=BA=E5=BA=93=E5=8D=95=20=20=E7=9A=84bug=EF=BC=9B?= =?UTF-8?q?2=E3=80=81=E6=B7=BB=E5=8A=A0=E5=B7=A5=E4=BB=B6=E8=A3=85?= =?UTF-8?q?=E5=A4=B9=E5=B2=97=E5=AF=B9sf.functional.cutting.tool.entity?= =?UTF-8?q?=E6=A8=A1=E5=9E=8B=E7=9A=84=E6=9F=A5=E8=AF=A2=E6=9D=83=E9=99=90?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_dlm/models/product_supplierinfo.py | 19 ++++++++++++++++++- sf_dlm/views/product_template_view.xml | 3 +++ .../security/ir.model.access.csv | 1 + 3 files changed, 22 insertions(+), 1 deletion(-) diff --git a/sf_dlm/models/product_supplierinfo.py b/sf_dlm/models/product_supplierinfo.py index 2784cba0..05191b44 100644 --- a/sf_dlm/models/product_supplierinfo.py +++ b/sf_dlm/models/product_supplierinfo.py @@ -1,5 +1,8 @@ # -*- coding: utf-8 -*- -from odoo import models, fields +import logging + +import re +from odoo import models, fields, api class ResProductCategory(models.Model): @@ -28,6 +31,20 @@ class ResMrpBomMo(models.Model): _inherit = 'mrp.bom' subcontractor_id = fields.Many2one('res.partner', string='外包商') + subcontractor_name = fields.Char('', compute='_compute_subcontractor_ids', store=True) + + @api.depends('subcontractor_id') + def _compute_subcontractor_ids(self): + for item in self: + if item.subcontractor_id: + logging.info("subcontractor_ids: %s" % item.subcontractor_ids.ids) + subcontractor_id = int(re.sub(r"\D", "", str(item.subcontractor_id.id))) + item.subcontractor_ids = [subcontractor_id] + item.subcontractor_name = item.subcontractor_id.name + logging.info("subcontractor_ids: %s" % item.subcontractor_ids.ids) + else: + item.subcontractor_ids = [] + item.subcontractor_name = '' def bom_create_line_has(self, embryo): vals = { diff --git a/sf_dlm/views/product_template_view.xml b/sf_dlm/views/product_template_view.xml index 7803b263..c62ae8cd 100644 --- a/sf_dlm/views/product_template_view.xml +++ b/sf_dlm/views/product_template_view.xml @@ -110,6 +110,9 @@ + + + diff --git a/sf_tool_management/security/ir.model.access.csv b/sf_tool_management/security/ir.model.access.csv index 79800637..58879f72 100644 --- a/sf_tool_management/security/ir.model.access.csv +++ b/sf_tool_management/security/ir.model.access.csv @@ -1,6 +1,7 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_sf_functional_cutting_tool_entity,sf.functional.cutting.tool.entity,model_sf_functional_cutting_tool_entity,sf_base.group_sf_tool_user,1,1,1,0 access_sf_functional_cutting_tool_entity_group_plan_dispatch,sf.functional.cutting.tool.entity,model_sf_functional_cutting_tool_entity,sf_base.group_plan_dispatch,1,0,0,0 +access_sf_functional_cutting_tool_entity_group_sf_order_user,sf.functional.cutting.tool.entity,model_sf_functional_cutting_tool_entity,sf_base.group_sf_order_user,1,0,0,0 access_sf_functional_tool_warning,sf.functional.tool.warning,model_sf_functional_tool_warning,sf_base.group_sf_tool_user,1,1,1,0 access_sf_functional_tool_warning_group_plan_dispatch,sf.functional.tool.warning,model_sf_functional_tool_warning,sf_base.group_plan_dispatch,1,0,0,0