58 lines
2.7 KiB
Python
58 lines
2.7 KiB
Python
from odoo import models, api
|
|
from urllib.parse import urlencode
|
|
|
|
|
|
class SFMessagefunctionalToolDismantle(models.Model):
|
|
_name = 'sf.functional.tool.dismantle'
|
|
_description = "刀具拆解单"
|
|
_inherit = ['sf.functional.tool.dismantle', 'jikimo.message.dispatch']
|
|
|
|
@api.model
|
|
def create(self, vals):
|
|
# 判断是否为web页面创建请求
|
|
is_web_request = self.env.context.get('is_web_request', False)
|
|
result = super(SFMessagefunctionalToolDismantle, self).create(vals)
|
|
if is_web_request:
|
|
return result
|
|
for obj in result:
|
|
if obj.dismantle_cause in ['寿命到期报废', '崩刀报废'] and obj.state == '待拆解':
|
|
obj.add_queue('功能刀具寿命到期')
|
|
return result
|
|
|
|
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
|
|
td_line = self.search([('id', '=', int(message_queue_id.res_id))])
|
|
url = self.request_url(int(message_queue_id.res_id))
|
|
content = content.replace('{{code}}', td_line.code).replace(
|
|
'{{request_url}}', url).replace('{{name}}', td_line.name)
|
|
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('sf_tool_management.sf_functional_tool_dismantle_view_act').id
|
|
menu_id = self.env.ref('sf_tool_management.menu_sf_functional_tool_dismantle').id
|
|
# 查询参数
|
|
params = {'id': id, 'menu_id': menu_id, 'action': action_id,
|
|
'model': 'sf.functional.tool.dismantle',
|
|
'view_type': 'form'}
|
|
# 拼接查询参数
|
|
tool_string = urlencode(params)
|
|
# 拼接URL
|
|
full_url = url + "/web#" + tool_string
|
|
return full_url
|
|
|
|
def get_special_url(self, id, tmplate_name, special_name, model_id):
|
|
menu_id = 0
|
|
action_id = 0
|
|
if tmplate_name == '调拨入库' and special_name == 'tool_expired_remind_special_url':
|
|
menu_id = self.env.ref('mrp.menu_mrp_root').id
|
|
action_id = self.env.ref('sf_tool_management.sf_functional_tool_dismantle_view_act').id
|
|
return super(SFMessagefunctionalToolDismantle, self).get_url(id, menu_id, action_id, model_id)
|
|
else:
|
|
return super(SFMessagefunctionalToolDismantle, self).get_special_url(id, tmplate_name, special_name,
|
|
model_id)
|