餐饮
This commit is contained in:
@@ -67,6 +67,7 @@ class YuThonPhone(http.Controller):
|
||||
employee_id = request.env['hr.employee'].sudo().search([('user_id.id', '=', kw.get('user_id'))])
|
||||
data = {
|
||||
'name': employee_id.name,
|
||||
'employee_id': employee_id.id,
|
||||
'company_id': employee_id.company_id.name,
|
||||
# 'image': employee_id.image_128, # 后面改成url
|
||||
'mobile_phone': employee_id.mobile_phone,
|
||||
|
||||
@@ -1,19 +1,19 @@
|
||||
<?xml version="1.0" encoding="UTF-8" ?>
|
||||
<odoo>
|
||||
<data noupdate="1">
|
||||
<record forcecreate="True" id="yuthon_catering_time" model="ir.cron">
|
||||
<field name="name">定时任务:餐饮收集任务</field>
|
||||
<field name="model_id" ref="model_yuthon_catering"/>
|
||||
<field name="state">code</field>
|
||||
<field name="code">model.catering_task()</field>
|
||||
<field eval="True" name="active"/>
|
||||
<field name="user_id" ref="base.user_root"/>
|
||||
<field name="interval_number">1</field>
|
||||
<field name="interval_type">weeks</field>
|
||||
<field name="nextcall" eval="(DateTime.now()).strftime('%Y-%m-%d 00:00:00')"/>
|
||||
<field name="numbercall">-1</field>
|
||||
<field eval="False" name="doall"/>
|
||||
</record>
|
||||
<data>
|
||||
<!-- <record forcecreate="True" id="yuthon_catering_time" model="ir.cron">-->
|
||||
<!-- <field name="name">定时任务:餐饮收集任务</field>-->
|
||||
<!-- <field name="model_id" ref="model_yuthon_catering"/>-->
|
||||
<!-- <field name="state">code</field>-->
|
||||
<!-- <field name="code">model.catering_task()</field>-->
|
||||
<!-- <field eval="True" name="active"/>-->
|
||||
<!-- <field name="user_id" ref="base.user_root"/>-->
|
||||
<!-- <field name="interval_number">1</field>-->
|
||||
<!-- <field name="interval_type">weeks</field>-->
|
||||
<!-- <field name="nextcall" eval="(DateTime.now()).strftime('%Y-%m-%d 00:00:00')"/>-->
|
||||
<!-- <field name="numbercall">-1</field>-->
|
||||
<!-- <field eval="False" name="doall"/>-->
|
||||
<!-- </record>-->
|
||||
<record forcecreate="True" id="yuthon_task_catering_time" model="ir.cron">
|
||||
<field name="name">定时任务:餐饮通知</field>
|
||||
<field name="model_id" ref="model_yuthon_catering"/>
|
||||
|
||||
@@ -26,30 +26,18 @@ class YuthonCatering(models.Model):
|
||||
], default='unconfirmed', string='状态')
|
||||
|
||||
def task_catering(self):
|
||||
current_date = fields.Date.today()
|
||||
is_work = self._process_shift_days(current_date)
|
||||
if is_work:
|
||||
company_main = self.env["res.company"].search(
|
||||
[("name", "=", "集团本部")],
|
||||
limit=1
|
||||
employee_ids = self.env['yuthon.catering.conf'].search([])[0].employee_ids
|
||||
for emp in employee_ids:
|
||||
url = f"https://phone.thtzjt.com/phone/Restaurant/{emp.id}"
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(
|
||||
category='can',
|
||||
user_id=emp.wecom_userid,
|
||||
title="餐饮通知",
|
||||
description="这是明天的餐饮,请及时确认",
|
||||
url=url,
|
||||
btntxt="详细信息"
|
||||
)
|
||||
catering_conf = self.env["yuthon.catering.conf"].search(
|
||||
[("company_id", "=", company_main.id)]
|
||||
)
|
||||
for conf in catering_conf:
|
||||
for employee in conf.employee_ids:
|
||||
emp_id = employee.id
|
||||
url = f"https://phone.thtzjt.com/phone/Restaurant/{emp_id}"
|
||||
if not employee.wecom_userid:
|
||||
continue
|
||||
self.sudo().env["wecom.apps"].sync_send_message_textcard(
|
||||
category='can',
|
||||
user_id=employee.wecom_userid,
|
||||
title="餐饮通知",
|
||||
description="这是明天的餐饮,请及时确认",
|
||||
url=url,
|
||||
btntxt="详细信息"
|
||||
)
|
||||
|
||||
|
||||
def task_conf(self):
|
||||
tomorrow = fields.Date.today() + timedelta(days=1)
|
||||
@@ -315,14 +303,10 @@ class YuthonCatering(models.Model):
|
||||
target_url = f'https://phone.thtzjt.com/phone/Restaurant/{users_id}'
|
||||
# 发送消息,使用指定的格式
|
||||
if hasattr(self.env["wecom.apps"], 'sync_send_message_textcard'):
|
||||
# 构造消息内容
|
||||
description = f"您有{len(data['records'])}条待办未处理,请及时登OA系统处理,谢谢配合"
|
||||
# 设置消息标题
|
||||
title = "餐饮登记提醒"
|
||||
# 调用企业微信API发送消息卡片
|
||||
self.env["wecom.apps"].sync_send_message_textcard(
|
||||
category='oa', # 消息类别为OA
|
||||
# 获取员工的企业微信ID或登录名
|
||||
category='can', # 消息类别为OA
|
||||
user_id=employee.wecom_userid if hasattr(employee, 'wecom_userid') else employee.user_id.login if employee.user_id else '',
|
||||
title=title, # 消息标题
|
||||
description=description, # 消息内容
|
||||
|
||||
@@ -9,7 +9,7 @@
|
||||
<tree string="餐饮" editable="top">
|
||||
<header>
|
||||
<button name="batch_remind_catering" string="批量提醒" type="object" class="btn btn-primary"/>
|
||||
<!-- <button name="test_1" string="test" type="object" class="btn btn-primary"/>-->
|
||||
<button name="task_catering" string="test" type="object" class="btn btn-primary"/>
|
||||
</header>
|
||||
<field name="date"/>
|
||||
<field name="state"/>
|
||||
|
||||
@@ -162,7 +162,7 @@ class WeComApps(models.Model):
|
||||
"btntxt": btntxt
|
||||
},
|
||||
}
|
||||
elif category in ['task', 'att_ok', 'salary']:
|
||||
elif category in ['task', 'att_ok', 'salary', 'can']:
|
||||
data = {
|
||||
'touser': user_id,
|
||||
'msgtype': 'textcard',
|
||||
|
||||
Reference in New Issue
Block a user