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