From d0ee2a656400a646cc8b57eb384cfa9dee4b834a Mon Sep 17 00:00:00 2001 From: yuxianghui <3437689193@qq.com> Date: Wed, 28 May 2025 09:54:27 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=87=87=E8=B4=AD=E7=94=B3?= =?UTF-8?q?=E8=AF=B7=E7=8A=B6=E6=80=81=E4=B8=BA=E5=BE=85=E6=89=B9=E5=87=86?= =?UTF-8?q?=E6=97=B6=E7=9A=84=E6=B6=88=E6=81=AF=E9=80=9A=E7=9F=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- sf_message/data/bussiness_node.xml | 5 +++ sf_message/data/template_data.xml | 12 ++++++ sf_message/models/__init__.py | 1 + .../models/sf_message_purchase_request.py | 43 +++++++++++++++++++ 4 files changed, 61 insertions(+) create mode 100644 sf_message/models/sf_message_purchase_request.py diff --git a/sf_message/data/bussiness_node.xml b/sf_message/data/bussiness_node.xml index 14115e27..c6f6546a 100644 --- a/sf_message/data/bussiness_node.xml +++ b/sf_message/data/bussiness_node.xml @@ -126,6 +126,11 @@ mrp.production + + 采购申请待处理通知 + purchase.request + + 委外加工采购单提醒 purchase.order diff --git a/sf_message/data/template_data.xml b/sf_message/data/template_data.xml index 63e51101..3af63afe 100644 --- a/sf_message/data/template_data.xml +++ b/sf_message/data/template_data.xml @@ -339,6 +339,18 @@ 事项:请确认委外采购单并处理。 + + 采购申请待处理通知 + + purchase.request + + markdown + normal + ### 采购申请待处理提醒: +单号:[{{name}}]({{request_url}}) +事项:您有一张新的采购申请单待处理。 + + 外购订单采购单提醒 diff --git a/sf_message/models/__init__.py b/sf_message/models/__init__.py index 18c6b873..e0fe3787 100644 --- a/sf_message/models/__init__.py +++ b/sf_message/models/__init__.py @@ -14,3 +14,4 @@ from . import sf_message_mrp_production_wizard from . import sf_message_mrp_production_adjust_wizard from . import sf_message_product from . import sf_message_quality_check +from . import sf_message_purchase_request diff --git a/sf_message/models/sf_message_purchase_request.py b/sf_message/models/sf_message_purchase_request.py new file mode 100644 index 00000000..eb4b5bdb --- /dev/null +++ b/sf_message/models/sf_message_purchase_request.py @@ -0,0 +1,43 @@ +import logging +import re +from odoo import models, fields, api, _ +from urllib.parse import urlencode + + +class SFMessagePurchaseRequest(models.Model): + _name = 'purchase.request' + _description = "采购申请" + _inherit = ['purchase.request', 'jikimo.message.dispatch'] + + def write(self, vals): + original_state = self.state + res = super(SFMessagePurchaseRequest, self).write(vals) + if res and vals.get('state') == 'to_approve' and original_state != 'to_approve': + self.add_queue('采购申请待处理通知') + return res + + def _get_message(self, message_queue_ids): + contents = [] + for message_queue_id in message_queue_ids: + if message_queue_id.message_template_id.name == '采购申请待处理通知': + content = message_queue_id.message_template_id.content + url = self.request_url(int(message_queue_id.res_id)) + request_line = self.env['purchase.request'].search([('id', '=', int(message_queue_id.res_id))]) + content = content.replace('{{name}}', request_line.name).replace( + '{{request_url}}', url) + contents.append(content) + return contents, message_queue_ids + + def request_url(self, id): + url = self.env['ir.config_parameter'].get_param('web.base.url') + action_id = self.env.ref('purchase_request.purchase_request_form_action').id + menu_id = self.env.ref('purchase_request.menu_purchase_request_act').id + # 查询参数 + params = {'id': id, 'menu_id': menu_id, 'action': action_id, + 'model': 'purchase.request', + 'view_type': 'form'} + # 拼接查询参数 + query_string = urlencode(params) + # 拼接URL + full_url = url + "/web#" + query_string + return full_url