!6220 添加功能

Merge pull request !6220 from 李鹏宇/dev_zhou
This commit is contained in:
李鹏宇
2025-11-06 02:06:34 +00:00
committed by Gitee
5 changed files with 55 additions and 36 deletions
@@ -389,7 +389,7 @@ class YuthonVacationReports(models.Model):
def button_put(self):
url = f'https://oa.thtzjt.com/webh5/#/vacation?id={self.id}'
we_id = self.env['hr.employee'].search([('id', '=', self.employee_id.id)]).wecom_userid
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='default', user_id='18562027762', title="考勤确认",
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='default', user_id=we_id, title="考勤确认",
description=self.employee_id.name + '请确认你的考勤:',
url=url, btntxt="详细信息")
return {
@@ -403,15 +403,25 @@ class YuthonVacationReports(models.Model):
}
def button_all_put(self):
detail_ids = self.env["yuthon.vacation.reports"].browse(self._context.get('active_ids', self._context.get('active_id')))
detail_ids = self.env["yuthon.vacation.reports"].browse(
self._context.get('active_ids', self._context.get('active_id'))
)
unique_employee_ids = list({detail.employee_id.id for detail in detail_ids if detail.employee_id})
for employee_id in unique_employee_ids:
menu_id = self.env['ir.ui.menu'].search([('name', '=', '我的考勤确认'), ('parent_id', '!=', False)])
url = f'https://oa.thtzjt.com/web#id={self.id}&cids=2&action={menu_id.action.id}&model=hr.attendance.month.detail&view_type=list&menu_id={menu_id.id}'
we_id = self.env['hr.employee'].search([('id', '=', employee_id)]).wecom_userid
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='attendance', user_id=we_id, title="考勤确认",
description=employee_id.name + '请确认你的考勤:',
url=url, btntxt="详细信息")
# 筛选当前员工对应的考勤记录
employee_details = detail_ids.filtered(lambda d: d.employee_id.id == employee_id)
for detail in employee_details:
url = f'https://oa.thtzjt.com/webh5/#/vacation?id={detail.id}'
we_id = self.env['hr.employee'].browse(employee_id).wecom_userid
if we_id:
self.sudo().env["wecom.apps"].sync_send_message_textcard(
category='attendance',
user_id=we_id,
title="考勤确认",
description=f'{self.env["hr.employee"].browse(employee_id).name} 请确认你的考勤:',
url=url,
btntxt="详细信息"
)
return {
'type': 'ir.actions.client',
'tag': 'display_notification',
@@ -423,15 +433,22 @@ class YuthonVacationReports(models.Model):
}
def attendance_confirmation(self):
for record in self:
employee = self.env['hr.employee'].search([('id', '=', '叶华锋')])
menu_id = self.env['ir.ui.menu'].search([('name', '=', '我的考勤确认'), ('parent_id', '!=', False)])
url = f'https://oa.thtzjt.com/webh5/#/vacation?id={self.id}'
we_id = self.env['hr.employee'].search([('id', '=', employee.id)]).wecom_userid
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='default', user_id='18562027762',
title="考勤确认",
description=employee.name + '请确认你的考勤:',
url=url, btntxt="详细信息")
reports = self.env["yuthon.vacation.reports"].search([])
employee_ids = {report.employee_id for report in reports if report.employee_id}
for employee in employee_ids:
employee_reports = reports.filtered(lambda r: r.employee_id == employee)
for report in employee_reports:
url = f'https://oa.thtzjt.com/webh5/#/vacation?id={report.id}'
we_id = employee.wecom_userid
if we_id:
self.sudo().env["wecom.apps"].sync_send_message_textcard(
category='default',
user_id=we_id,
title="考勤确认",
description=f'{employee.name} 请确认你的考勤:',
url=url,
btntxt="详细信息"
)
def automatic_confirmation(self):
for rec in self:
+2 -1
View File
@@ -602,7 +602,8 @@ class InheritHrPayslip(models.Model):
"view_mode": "form",
"target": "new",
"context": {
'default_employee_id': self.employee_id.id
'default_employee_id': self.employee_id.id,
'default_payslip_ids': [(6, 0, [self.id])]
}
}
@@ -49,6 +49,7 @@ class InheritHrPayslipRun(models.Model):
])
for slip in run_payslips:
employee_list.append(slip.employee_id.id)
payslip_list = run_payslips.ids
return {
"type": "ir.actions.act_window",
@@ -58,7 +59,8 @@ class InheritHrPayslipRun(models.Model):
"target": "new",
"context": {
'default_employee_ids': employee_list,
'default_payslip_run_id': self.id
'default_payslip_run_id': self.id,
'default_payslip_ids': [(6, 0, payslip_list)]
}
}
+16 -16
View File
@@ -11,33 +11,33 @@ class PayslipSendWizard(models.Model):
name = fields.Char(string='你确定要发送吗?', readonly=1)
employee_ids = fields.Many2many('hr.employee', string='员工')
payslip_run_id = fields.Many2one('hr.payslip.run', string='工资单')
payslip_ids = fields.Many2many('hr.payslip', string='工资条')
def button_send(self):
self.ensure_one()
for employee_id in self.env['hr.employee'].search([('id', '=', self.employee_id.id)]):
if not employee_id.wecom_userid:
raise UserError("请同步{}的企业微信".format(employee_id.name))
url = f"https://oa.thtzjt.com/webh5/#/salary?id={employee_id.user_id.id}"
for payslip in self.payslip_ids:
# 获取工资单关联的员工
employee = payslip.employee_id
if not employee.wecom_userid:
raise UserError(f"请同步{employee.name}的企业微信")
url = f"https://oa.thtzjt.com/webh5/#/salary?id={payslip.id}"
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='task',
user_id=employee_id.wecom_userid,
user_id=employee.wecom_userid,
title="薪资确认",
url=url, btntxt="详细信息")
def button_all_send(self):
self.ensure_one()
for employee_id in self.env['hr.employee'].search([('id', '=', self.employee_ids.ids)]):
if not employee_id.wecom_userid:
raise UserError("请同步{}的企业微信".format(employee_id.name))
url = f"https://oa.thtzjt.com/webh5/#/salary?id={employee_id.user_id.id}"
for payslip in self.payslip_ids:
employee = payslip.employee_id
if not employee.wecom_userid:
raise UserError(f"请同步{employee.name}的企业微信")
url = f"https://oa.thtzjt.com/webh5/#/salary?id={payslip.id}"
self.sudo().env["wecom.apps"].sync_send_message_textcard(category='task',
user_id=employee_id.wecom_userid,
user_id=employee.wecom_userid,
title="薪资确认",
url=url, btntxt="详细信息")
self.payslip_run_id.run_stage = 'issued'
run_payslips = self.env["hr.payslip"].search([
('payslip_run_id', '=', self.payslip_run_id.id)
])
for slip in run_payslips:
for slip in self.payslip_ids:
meal_misunderstanding_fee = slip.meal_misunderstanding_fee
overtime_pay = slip.overtime_pay
base_salary = slip.base_salary
@@ -10,7 +10,6 @@
<group>
<group>
<field name="employee_ids" widget="many2many_tags" invisible="1"/>
<field name="payslip_run_id" invisible="1"/>
<field name="employee_id" invisible="1"/>
<field name="name" invisible="1"/>
</group>