From d213a2cf54c6405f5f4d79399a44d0132d64d0be Mon Sep 17 00:00:00 2001
From: yuxianghui <3437689193@qq.com>
Date: Fri, 31 May 2024 11:14:02 +0800
Subject: [PATCH 1/3] =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E8=B0=83=E6=95=B4?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_tool_management/controllers/controllers.py | 29 +++++++++++++++++++
1 file changed, 29 insertions(+)
diff --git a/sf_tool_management/controllers/controllers.py b/sf_tool_management/controllers/controllers.py
index 400dd60f..baba93fc 100644
--- a/sf_tool_management/controllers/controllers.py
+++ b/sf_tool_management/controllers/controllers.py
@@ -8,6 +8,35 @@ from odoo.http import request
class Manufacturing_Connect(http.Controller):
+ @http.route('/AutoDeviceApi/ToolGroup', type='json', auth='sf_token', methods=['GET', 'POST'], csrf=False,
+ cors="*")
+ def get_functional_tool_groups_Info(self, **kw):
+ """
+ 刀具组接口
+ :param kw:
+ :return:
+ """
+ logging.info('get_functional_tool_groups_Info:%s' % kw)
+ try:
+ datas = request.httprequest.data
+ ret = json.loads(datas)
+ # ret = json.loads(ret['result'])
+ logging.info('DeviceId:%s' % ret)
+ functional_tools = request.env['sf.tool.inventory'].sudo().search([])
+
+ res = {'Succeed': True, 'Datas': []}
+ if functional_tools:
+ for item in functional_tools:
+ res['Datas'].append({
+ 'GroupName': item.tool_groups_id.name,
+ 'ToolId': item.functional_cutting_tool_model_id.name,
+ 'ToolName': item.name
+ })
+ except Exception as e:
+ res = {'Succeed': False, 'ErrorCode': 202, 'Error': e}
+ logging.info('get_functional_tool_groups_Info error:%s' % e)
+ return json.JSONEncoder().encode(res)
+
@http.route('/AutoDeviceApi/ToolInventory', type='json', auth='none', methods=['GET', 'POST'], csrf=False,
cors="*")
def get_functional_tool_inventory_Info(self, **kw):
From 002727070de1693ec3e4b9bbe37ddede70020324 Mon Sep 17 00:00:00 2001
From: yuxianghui <3437689193@qq.com>
Date: Thu, 6 Jun 2024 14:38:10 +0800
Subject: [PATCH 2/3] =?UTF-8?q?1=E3=80=81=E4=BA=A7=E5=93=81=E7=9A=84?=
=?UTF-8?q?=E6=88=90=E5=93=81=E3=80=81=E5=88=B6=E9=80=A0=E8=AE=A2=E5=8D=95?=
=?UTF-8?q?=E3=80=81=E5=B7=A5=E5=8D=95=E6=B7=BB=E5=8A=A0=E9=9B=B6=E4=BB=B6?=
=?UTF-8?q?=E5=9B=BE=E5=8F=B7=E5=AD=97=E6=AE=B5=EF=BC=9B?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_dlm_management/views/product_template_management_view.xml | 1 +
sf_manufacturing/models/product_template.py | 2 ++
sf_manufacturing/views/mrp_production_addional_change.xml | 2 +-
sf_manufacturing/views/mrp_workorder_view.xml | 2 +-
4 files changed, 5 insertions(+), 2 deletions(-)
diff --git a/sf_dlm_management/views/product_template_management_view.xml b/sf_dlm_management/views/product_template_management_view.xml
index 8842f8bf..5361bcde 100644
--- a/sf_dlm_management/views/product_template_management_view.xml
+++ b/sf_dlm_management/views/product_template_management_view.xml
@@ -10,6 +10,7 @@
+
-
+
diff --git a/sf_manufacturing/views/mrp_workorder_view.xml b/sf_manufacturing/views/mrp_workorder_view.xml
index 85e3e5ed..2562b3b0 100644
--- a/sf_manufacturing/views/mrp_workorder_view.xml
+++ b/sf_manufacturing/views/mrp_workorder_view.xml
@@ -573,7 +573,7 @@
-
+
From 4459ed2e81b26c71f2f3ff6bb502b1772417f3bc Mon Sep 17 00:00:00 2001
From: mgw <1392924357@qq.com>
Date: Thu, 6 Jun 2024 15:44:20 +0800
Subject: [PATCH 3/3] =?UTF-8?q?=E5=BA=93=E5=AD=98=E5=A4=84=E5=A2=9E?=
=?UTF-8?q?=E5=8A=A0=E6=89=B9=E9=87=8F=E8=B0=83=E6=8B=A8=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
sf_bf_connect/models/jd_eclp.py | 7 +++--
sf_warehouse/models/model.py | 28 +++++++++++++++++--
.../views/change_stock_move_views.xml | 3 ++
3 files changed, 32 insertions(+), 6 deletions(-)
diff --git a/sf_bf_connect/models/jd_eclp.py b/sf_bf_connect/models/jd_eclp.py
index 6d6a0e38..e381242a 100644
--- a/sf_bf_connect/models/jd_eclp.py
+++ b/sf_bf_connect/models/jd_eclp.py
@@ -67,9 +67,10 @@ class JdEclp(models.Model):
"""
判断是否为出库单
"""
- if self.name:
- is_check_out = self.name.split('/')
- self.check_out = is_check_out[1]
+ for record in self:
+ if record.name:
+ is_check_out = record.name.split('/')
+ record.check_out = is_check_out[1]
@api.depends('carrier_tracking_ref')
def query_bill_pdf(self):
diff --git a/sf_warehouse/models/model.py b/sf_warehouse/models/model.py
index 1a7ba1e0..535e8351 100644
--- a/sf_warehouse/models/model.py
+++ b/sf_warehouse/models/model.py
@@ -859,14 +859,36 @@ class SfStockPicking(models.Model):
check_in = fields.Char(string='查询是否为入库单', compute='_check_is_in')
+ def batch_stock_move(self):
+ """
+ 批量调拨,非就绪状态的会被忽略,完成后有通知提示
+ """
+ for record in self:
+ if record.state != 'assigned':
+ continue
+ record.action_set_quantities_to_reservation()
+ record.button_validate()
+
+ notification_message = '批量调拨完成!请注意,状态非就绪的单据会被忽略'
+ return {
+ 'effect': {
+ 'fadeout': 'fast',
+ 'message': notification_message,
+ 'img_url': '/web/image/%s/%s/image_1024' % (
+ self.create_uid._name, self.create_uid.id) if 0 else '/web/static/img/smile.svg',
+ 'type': 'rainbow_man',
+ }
+ }
+
@api.depends('name')
def _check_is_in(self):
"""
判断是否为出库单
"""
- if self.name:
- is_check_in = self.name.split('/')
- self.check_in = is_check_in[1]
+ for record in self:
+ if record.name:
+ is_check_in = record.name.split('/')
+ record.check_in = is_check_in[1]
def button_validate(self):
"""
diff --git a/sf_warehouse/views/change_stock_move_views.xml b/sf_warehouse/views/change_stock_move_views.xml
index 677f1887..a77b916c 100644
--- a/sf_warehouse/views/change_stock_move_views.xml
+++ b/sf_warehouse/views/change_stock_move_views.xml
@@ -149,6 +149,9 @@
+
+
+