Skip to content
Snippets Groups Projects
Commit 957d57ea authored by Nicolas Martinelli's avatar Nicolas Martinelli
Browse files

[FIX] hr_expense: mail to manager

When an employee submits an expense, no mail is sent to the manager.
This should be the case, since it works this way on holidays.

The trick, however, is that the expense is created as submitted, but the
followers are only added afterwards. We need to make sure to add the
followers at creation.

opw-751085
parent 61304087
No related branches found
No related tags found
No related merge requests found
......@@ -54,7 +54,7 @@
<field name="name">Submitted</field>
<field name="res_model">hr.expense.sheet</field>
<field name="description">Expense report submitted, waiting approval</field>
<field name="default" eval="False"/>
<field name="default" eval="True"/>
</record>
<record id="mt_expense_paid" model="mail.message.subtype">
<field name="name">Paid</field>
......
......@@ -412,10 +412,15 @@ class HrExpenseSheet(models.Model):
@api.model
def create(self, vals):
# Add the followers at creation, so they can be notified
if vals.get('employee_id'):
employee = self.env['hr.employee'].browse(vals['employee_id'])
users = self._get_users_to_subscribe(employee=employee) - self.env.user
vals['message_follower_ids'] = []
for partner in users.mapped('partner_id'):
vals['message_follower_ids'] += self.env['mail.followers']._add_follower_command(self._name, [], {partner.id: None}, {})[0]
sheet = super(HrExpenseSheet, self).create(vals)
self.check_consistency()
if vals.get('employee_id'):
sheet._add_followers()
return sheet
@api.multi
......@@ -450,16 +455,20 @@ class HrExpenseSheet(models.Model):
return 'hr_expense.mt_expense_paid'
return super(HrExpenseSheet, self)._track_subtype(init_values)
def _add_followers(self):
user_ids = []
employee = self.employee_id
def _get_users_to_subscribe(self, employee=False):
users = self.env['res.users']
employee = employee or self.employee_id
if employee.user_id:
user_ids.append(employee.user_id.id)
users |= employee.user_id
if employee.parent_id:
user_ids.append(employee.parent_id.user_id.id)
users |= employee.parent_id.user_id
if employee.department_id and employee.department_id.manager_id and employee.parent_id != employee.department_id.manager_id:
user_ids.append(employee.department_id.manager_id.user_id.id)
self.message_subscribe_users(user_ids=user_ids)
users |= employee.department_id.manager_id.user_id
return users
def _add_followers(self):
users = self._get_users_to_subscribe()
self.message_subscribe_users(user_ids=users.ids)
@api.onchange('employee_id')
def _onchange_employee_id(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment