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 @@