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