diff --git a/addons/hr_expense/models/hr_expense.py b/addons/hr_expense/models/hr_expense.py index e2562fedc6a..6b747a54759 100644 --- a/addons/hr_expense/models/hr_expense.py +++ b/addons/hr_expense/models/hr_expense.py @@ -2,9 +2,10 @@ # Part of Odoo. See LICENSE file for full copyright and licensing details. import re -from odoo import api, fields, models, _ +from odoo import api, fields, Command, models, _ from odoo.exceptions import UserError, ValidationError from odoo.tools import email_split, float_is_zero, float_repr +from odoo.tools.misc import clean_context, format_date from odoo.addons.account.models.account_move import PAYMENT_STATE_SELECTION @@ -197,7 +198,7 @@ class HrExpense(models.Model): attachment_data = self.env['ir.attachment'].read_group([('res_model', '=', 'hr.expense'), ('res_id', 'in', self.ids)], ['res_id'], ['res_id']) attachment = dict((data['res_id'], data['res_id_count']) for data in attachment_data) for expense in self: - expense.attachment_number = attachment.get(expense.id, 0) + expense.attachment_number = attachment.get(expense._origin.id, 0) @api.depends('employee_id') def _compute_is_editable(self): @@ -385,7 +386,7 @@ Or send your receipts at 1 + @api.depends('employee_id') def _compute_can_reset(self): is_expense_user = self.user_has_groups('hr_expense.group_hr_expense_team_approver') for sheet in self: sheet.can_reset = is_expense_user if is_expense_user else sheet.employee_id.user_id == self.env.user @api.depends_context('uid') + @api.depends('employee_id') def _compute_can_approve(self): is_approver = self.user_has_groups('hr_expense.group_hr_expense_team_approver, hr_expense.group_hr_expense_user') is_manager = self.user_has_groups('hr_expense.group_hr_expense_manager') @@ -962,7 +974,12 @@ class HrExpenseSheet(models.Model): @api.model def create(self, vals): - sheet = super(HrExpenseSheet, self.with_context(mail_create_nosubscribe=True, mail_auto_subscribe_no_notify=True)).create(vals) + context = clean_context(self.env.context) + context.update({ + 'mail_create_nosubscribe': True, + 'mail_auto_subscribe_no_notify': True + }) + sheet = super(HrExpenseSheet, self.with_context(context)).create(vals) sheet.activity_update() return sheet @@ -1014,7 +1031,7 @@ class HrExpenseSheet(models.Model): expense_line_ids = self.mapped('expense_line_ids')\ .filtered(lambda r: not float_is_zero(r.total_amount, precision_rounding=(r.currency_id or self.env.company.currency_id).rounding)) - res = expense_line_ids.action_move_create() + res = expense_line_ids.with_context(clean_context(self.env.context)).action_move_create() for sheet in self.filtered(lambda s: not s.accounting_date): sheet.accounting_date = sheet.account_move_id.date to_post = self.filtered(lambda sheet: sheet.payment_mode == 'own_account' and sheet.expense_line_ids) diff --git a/addons/hr_expense/views/hr_expense_views.xml b/addons/hr_expense/views/hr_expense_views.xml index 988588f160f..0246f7b3757 100644 --- a/addons/hr_expense/views/hr_expense_views.xml +++ b/addons/hr_expense/views/hr_expense_views.xml @@ -689,7 +689,7 @@ groups="account.group_account_invoice"/>