1、重写待质检提醒消息通知;2、优化采购申请已批准消息通知
This commit is contained in:
@@ -161,9 +161,13 @@
|
|||||||
<field name="model">purchase.order</field>
|
<field name="model">purchase.order</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="bussiness_quality_check" model="jikimo.message.bussiness.node">
|
<!-- <record id="bussiness_quality_check" model="jikimo.message.bussiness.node">-->
|
||||||
<field name="name">待质检提醒</field>
|
<!-- <field name="name">待质检提醒</field>-->
|
||||||
<field name="model">product.product</field>
|
<!-- <field name="model">product.product</field>-->
|
||||||
|
<!-- </record>-->
|
||||||
|
<record id="bussiness_quality_check_none" model="jikimo.message.bussiness.node">
|
||||||
|
<field name="name">待质检</field>
|
||||||
|
<field name="model">quality.check</field>
|
||||||
</record>
|
</record>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
|
|||||||
@@ -414,16 +414,28 @@
|
|||||||
</field>
|
</field>
|
||||||
</record>
|
</record>
|
||||||
|
|
||||||
<record id="template_quality_check" model="jikimo.message.template">
|
<!-- <record id="template_quality_check" model="jikimo.message.template">-->
|
||||||
|
<!-- <field name="name">待质检提醒</field>-->
|
||||||
|
<!-- <field name="model_id" ref="product.model_product_product"/>-->
|
||||||
|
<!-- <field name="model">product.product</field>-->
|
||||||
|
<!-- <field name="bussiness_node_id" ref="bussiness_quality_check"/>-->
|
||||||
|
<!-- <field name="msgtype">markdown</field>-->
|
||||||
|
<!-- <field name="urgency">normal</field>-->
|
||||||
|
<!-- <field name="content">### 待质检提醒:-->
|
||||||
|
<!--单号:产品[{{name}}]({{url}})-->
|
||||||
|
<!--事项:有{{num}}个质检单需要处理。</field>-->
|
||||||
|
<!-- </record>-->
|
||||||
|
<!-- </data>-->
|
||||||
|
<record id="template_quality_check_none" model="jikimo.message.template">
|
||||||
<field name="name">待质检提醒</field>
|
<field name="name">待质检提醒</field>
|
||||||
<field name="model_id" ref="product.model_product_product"/>
|
<field name="model_id" ref="quality.model_quality_check"/>
|
||||||
<field name="model">product.product</field>
|
<field name="model">quality.check</field>
|
||||||
<field name="bussiness_node_id" ref="bussiness_quality_check"/>
|
<field name="bussiness_node_id" ref="bussiness_quality_check_none"/>
|
||||||
<field name="msgtype">markdown</field>
|
<field name="msgtype">markdown</field>
|
||||||
<field name="urgency">normal</field>
|
<field name="urgency">normal</field>
|
||||||
<field name="content">### 待质检提醒:
|
<field name="content">### 待质检提醒:
|
||||||
单号:产品[{{name}}]({{url}})
|
单号:[{{name}}]({{url}})
|
||||||
事项:有{{num}}个质检单需要处理。</field>
|
事项:有一个质检单需要处理({{type_name}})。</field>
|
||||||
</record>
|
</record>
|
||||||
</data>
|
</data>
|
||||||
|
|
||||||
|
|||||||
@@ -12,7 +12,7 @@ class SFMessagePurchaseRequest(models.Model):
|
|||||||
def write(self, vals):
|
def write(self, vals):
|
||||||
original_state = self.state
|
original_state = self.state
|
||||||
res = super(SFMessagePurchaseRequest, self).write(vals)
|
res = super(SFMessagePurchaseRequest, self).write(vals)
|
||||||
if res and vals.get('state') == 'to_approve' and original_state != 'to_approve':
|
if res and vals.get('state') == 'approved' and original_state != 'approved':
|
||||||
self.add_queue('采购申请待处理通知')
|
self.add_queue('采购申请待处理通知')
|
||||||
return res
|
return res
|
||||||
|
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
import logging
|
import logging
|
||||||
from odoo import models, fields, api, _
|
from odoo import models, fields, api, _
|
||||||
|
from urllib.parse import urlencode
|
||||||
|
|
||||||
|
|
||||||
class SFMessageQualityCheck(models.Model):
|
class SFMessageQualityCheck(models.Model):
|
||||||
@@ -10,25 +11,70 @@ class SFMessageQualityCheck(models.Model):
|
|||||||
@api.model_create_multi
|
@api.model_create_multi
|
||||||
def create(self, vals_list):
|
def create(self, vals_list):
|
||||||
result = super().create(vals_list)
|
result = super().create(vals_list)
|
||||||
try:
|
# try:
|
||||||
# 判断是否为web页面创建请求
|
# # 判断是否为web页面创建请求
|
||||||
is_web_request = self.env.context.get('is_web_request', False)
|
# is_web_request = self.env.context.get('is_web_request', False)
|
||||||
if not is_web_request:
|
# if not is_web_request:
|
||||||
for obj in result:
|
# for obj in result:
|
||||||
jikimo_message_queue = self.get_message_queue(obj.product_id.id)
|
# jikimo_message_queue = self.get_message_queue(obj.product_id.id)
|
||||||
if not jikimo_message_queue:
|
# if not jikimo_message_queue:
|
||||||
obj.product_id.add_queue('待质检提醒')
|
# obj.product_id.add_queue('待质检提醒')
|
||||||
except Exception as e:
|
# except Exception as e:
|
||||||
logging.info('add_queue待质检提醒 error:%s' % e)
|
# logging.info('add_queue待质检提醒 error:%s' % e)
|
||||||
|
qc_ids = result.filiter(lambda qc: qc.quality_state == 'none')
|
||||||
|
if qc_ids:
|
||||||
|
message_template_id = self.env['jikimo.message.template'].sudo().search([('name', '=', '待质检提醒')])
|
||||||
|
for qc in qc_ids:
|
||||||
|
queue_id = self.env['jikimo.message.queue'].sudo().search(
|
||||||
|
[('message_template_id', '=', message_template_id[-1].id), ('res_id', '=', qc.id)])
|
||||||
|
if not queue_id and '制造' not in [pt.name for pt in qc.point_id.picking_type_ids]:
|
||||||
|
qc.add_queue('待质检')
|
||||||
return result
|
return result
|
||||||
|
|
||||||
def get_message_queue(self, res_id):
|
#
|
||||||
business_node_id = self.env.ref('sf_message.bussiness_quality_check').id
|
# def get_message_queue(self, res_id):
|
||||||
message_template = self.env["jikimo.message.template"].sudo().search([
|
# business_node_id = self.env.ref('sf_message.bussiness_quality_check').id
|
||||||
("name", "=", '待质检提醒'),
|
# message_template = self.env["jikimo.message.template"].sudo().search([
|
||||||
("bussiness_node_id", "=", business_node_id)
|
# ("name", "=", '待质检提醒'),
|
||||||
], limit=1)
|
# ("bussiness_node_id", "=", business_node_id)
|
||||||
jikimo_message_queue = self.env['jikimo.message.queue'].sudo().search(
|
# ], limit=1)
|
||||||
[('res_id', '=', res_id), ("message_status", "in", ("pending", "sent")),
|
# jikimo_message_queue = self.env['jikimo.message.queue'].sudo().search(
|
||||||
('message_template_id', '=', message_template.id)])
|
# [('res_id', '=', res_id), ("message_status", "in", ("pending", "sent")),
|
||||||
return jikimo_message_queue
|
# ('message_template_id', '=', message_template.id)])
|
||||||
|
# return jikimo_message_queue
|
||||||
|
def write(self, vals):
|
||||||
|
original_state = self.quality_state
|
||||||
|
res = super(SFMessageQualityCheck, self).write(vals)
|
||||||
|
if res and vals.get('quality_state') == 'none' and original_state != 'none':
|
||||||
|
message_template_id = self.env['jikimo.message.template'].sudo().search([('name', '=', '待质检提醒')])
|
||||||
|
queue_id = self.env['jikimo.message.queue'].sudo().search(
|
||||||
|
[('message_template_id', '=', message_template_id[-1].id), ('res_id', '=', self.id)])
|
||||||
|
if not queue_id and '制造' not in [pt.name for pt in self.point_id.picking_type_ids]:
|
||||||
|
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))
|
||||||
|
qc_line = self.env['quality.check'].search([('id', '=', int(message_queue_id.res_id))])
|
||||||
|
content = content.replace('{{name}}', qc_line.name).replace(
|
||||||
|
'{{request_url}}', url).replace('{{type_name}}', qc_line.point_id.title)
|
||||||
|
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('quality_control.quality_check_action_main').id
|
||||||
|
menu_id = self.env.ref('quality_control.menu_quality_checks').id
|
||||||
|
# 查询参数
|
||||||
|
params = {'id': id, 'menu_id': menu_id, 'action': action_id,
|
||||||
|
'model': 'quality.check',
|
||||||
|
'view_type': 'form'}
|
||||||
|
# 拼接查询参数
|
||||||
|
query_string = urlencode(params)
|
||||||
|
# 拼接URL
|
||||||
|
full_url = url + "/web#" + query_string
|
||||||
|
return full_url
|
||||||
|
|||||||
Reference in New Issue
Block a user