diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py index 3991447c96b49..cb5292a242bb8 100644 --- a/addons/hr_expense/models/hr_expense.py +++ b/addons/hr_expense/models/hr_expense.py @@ -972,9 +972,26 @@ def approve_expense_sheets(self): if not self.env.user in current_managers and not self.user_has_groups('hr_expense.group_hr_expense_user') and self.employee_id.expense_manager_id != self.env.user: raise UserError(_("You can only approve your department expenses")) - responsible_id = self.user_id.id or self.env.user.id - self.write({'state': 'approve', 'user_id': responsible_id}) + responsible_id = self.user_id.id or self.env.user.id + notification = { + 'type': 'ir.actions.client', + 'tag': 'display_notification', + 'params': { + 'title': _('There are no expense reports to approve.'), + 'type': 'warning', + 'sticky': False, #True/False will display for few seconds if false + }, + } + sheet_to_approve = self.filtered(lambda s: s.state in ['submit', 'draft']) + if sheet_to_approve: + notification['params'].update({ + 'title': _('The expense reports were successfully approved.'), + 'type': 'success', + 'next': {'type': 'ir.actions.act_window_close'}, + }) + sheet_to_approve.write({'state': 'approve', 'user_id': responsible_id}) self.activity_update() + return notification def paid_expense_sheets(self): self.write({'state': 'done'})