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