From a3f350b69cb07fec47f680fd5a7c65aa6749ced3 Mon Sep 17 00:00:00 2001 From: gqh Date: Mon, 13 Feb 2023 17:28:20 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=B3=A8=E9=87=8A?= =?UTF-8?q?=EF=BC=8C=E5=89=8D=E5=90=8E=E7=BD=AE=E6=A3=80=E6=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/models/mrp_production.py | 7 ++++++- sf_manufacturing/models/mrp_workorder.py | 4 +++- sf_manufacturing/models/tray.py | 1 + 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index 4ecda315..4026c061 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -21,6 +21,7 @@ class MrpProduction(models.Model): for production in self: production.maintenance_count = len(production.request_ids) + #维修模块按钮 def button_maintenance_req(self): self.ensure_one() return { @@ -34,7 +35,7 @@ class MrpProduction(models.Model): }, 'domain': [('production_id', '=', self.id)], } - + #打开维修模块请求 def open_maintenance_request_mo(self): self.ensure_one() action = { @@ -135,6 +136,7 @@ class MrpProduction(models.Model): for workorder in production.workorder_ids: workorder.duration_expected = workorder._get_duration_expected() + #在之前的销售单上重新生成制造订单 def create_production1_values(self, production): production_values_str = {'origin': production.origin, 'product_id': production.product_id.id, @@ -156,6 +158,7 @@ class MrpProduction(models.Model): 'user_id': production.user_id.id} return production_values_str + #工单排序 def _reset_work_order_sequence1(self, k): for rec in self: current_sequence = 1 @@ -166,6 +169,7 @@ class MrpProduction(models.Model): for a in sfa: print(a) + #在制造订单上新增工单 def _create_workorder1(self, k): for production in self: if not production.bom_id or not production.product_id: @@ -229,6 +233,7 @@ class MrpProduction(models.Model): work.sequence = current_sequence current_sequence += 1 + #创建工单并进行排序 def _create_workorder(self): res = self._create_workorder3() self._reset_work_order_sequence() diff --git a/sf_manufacturing/models/mrp_workorder.py b/sf_manufacturing/models/mrp_workorder.py index 378cb280..fc5aaee3 100644 --- a/sf_manufacturing/models/mrp_workorder.py +++ b/sf_manufacturing/models/mrp_workorder.py @@ -136,6 +136,7 @@ class ResMrpWorkOrder(models.Model): except: raise UserError("参数计算有误") + #拼接工单对象属性值 def json_workorder_str(self, k, production, route): workorders_values_str = [0, '', { 'product_uom_id': production.product_uom_id.id, @@ -153,7 +154,7 @@ class ResMrpWorkOrder(models.Model): }] return workorders_values_str - # 工作中心看板按钮 + # 维修模块按钮 def button_maintenance_req(self): self.ensure_one() return { @@ -199,6 +200,7 @@ class ResMrpWorkOrder(models.Model): else: raise UserError('托盘码不能为空') + #托盘扫码绑定 def gettray_auto(self, barcode): if barcode != False: values = self.env['sf.tray'].search([("code", "=", barcode)]) diff --git a/sf_manufacturing/models/tray.py b/sf_manufacturing/models/tray.py index 4af97865..1fcf62d0 100644 --- a/sf_manufacturing/models/tray.py +++ b/sf_manufacturing/models/tray.py @@ -24,6 +24,7 @@ class Tray(models.Model): else: self.state = '空闲' + #解绑托盘 def unclamp(self): self.workorder_id = False self.production_id = False From 9d59917af9063bc961568aee389d7ceee4ba298a Mon Sep 17 00:00:00 2001 From: gqh Date: Thu, 16 Feb 2023 17:48:26 +0800 Subject: [PATCH 2/2] =?UTF-8?q?CNC=E8=8E=B7=E5=8F=96=E7=A8=8B=E5=BA=8F?= =?UTF-8?q?=E5=B7=A5=E5=8D=95=E8=87=AA=E5=8A=A8=E5=BC=80=E5=A7=8B=20?= =?UTF-8?q?=E5=B9=B6=E8=8E=B7=E5=8F=96cnc=E7=A8=8B=E5=BA=8F=E5=88=B0mrs?= =?UTF-8?q?=E7=BC=96=E7=A8=8B=E5=8D=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_manufacturing/models/mrp_production.py | 4 ++++ sf_manufacturing/views/mrp_workorder_view.xml | 19 ++++++++++--------- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/sf_manufacturing/models/mrp_production.py b/sf_manufacturing/models/mrp_production.py index 4026c061..0e388d20 100644 --- a/sf_manufacturing/models/mrp_production.py +++ b/sf_manufacturing/models/mrp_production.py @@ -136,6 +136,7 @@ class MrpProduction(models.Model): for workorder in production.workorder_ids: workorder.duration_expected = workorder._get_duration_expected() + #在之前的销售单上重新生成制造订单 def create_production1_values(self, production): production_values_str = {'origin': production.origin, @@ -232,6 +233,9 @@ class MrpProduction(models.Model): for work in rec.workorder_ids: work.sequence = current_sequence current_sequence += 1 + if work.name == '获取CNC加工程序': + work.button_start() + work.fetchCNC() #创建工单并进行排序 def _create_workorder(self): diff --git a/sf_manufacturing/views/mrp_workorder_view.xml b/sf_manufacturing/views/mrp_workorder_view.xml index 85ed09f0..2a847788 100644 --- a/sf_manufacturing/views/mrp_workorder_view.xml +++ b/sf_manufacturing/views/mrp_workorder_view.xml @@ -22,13 +22,13 @@ - {'invisible': ['|', '|', '|','|', ('production_state','in', ('draft', 'done', + {'invisible': ['|', '|', '|','|','|', ('production_state','in', ('draft', 'done', 'cancel')), ('working_state', '=', 'blocked'), ('state', 'in', ('done', 'cancel')), - ('is_user_working', '!=', False),("user_permissions","=",False)]} + ('is_user_working', '!=', False),("user_permissions","=",False),("name","=","获取CNC加工程序")]} - {'invisible': [("user_permissions","=",False)]} + {'invisible': ['|',("user_permissions","=",False),("name","=","获取CNC加工程序")]} 停工 @@ -103,20 +103,21 @@ +