@@ -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:
|
||||
|
||||
@@ -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)]
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -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>
|
||||
|
||||
Reference in New Issue
Block a user