diff --git a/addons/hr_expense/hr_expense.py b/addons/hr_expense/hr_expense.py index c422a2d4948..73daa64f841 100644 --- a/addons/hr_expense/hr_expense.py +++ b/addons/hr_expense/hr_expense.py @@ -52,6 +52,9 @@ class hr_expense_expense(osv.osv): res[expense.id] = total return res + def _get_expense_from_line(self, cr, uid, ids, context=None): + return [line.expense_id.id for line in self.pool.get('hr.expense.line').browse(cr, uid, ids, context=context)] + def _get_currency(self, cr, uid, context=None): user = self.pool.get('res.users').browse(cr, uid, [uid], context=context)[0] if user.company_id: @@ -84,7 +87,10 @@ class hr_expense_expense(osv.osv): 'account_move_id': fields.many2one('account.move', 'Ledger Posting'), 'line_ids': fields.one2many('hr.expense.line', 'expense_id', 'Expense Lines', readonly=True, states={'draft':[('readonly',False)]} ), 'note': fields.text('Note'), - 'amount': fields.function(_amount, string='Total Amount', digits_compute=dp.get_precision('Account')), + 'amount': fields.function(_amount, string='Total Amount', digits_compute=dp.get_precision('Account'), + store={ + 'hr.expense.line': (_get_expense_from_line, ['unit_amount','unit_quantity'], 10) + }), 'currency_id': fields.many2one('res.currency', 'Currency', required=True, readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}), 'department_id':fields.many2one('hr.department','Department', readonly=True, states={'draft':[('readonly',False)], 'confirm':[('readonly',False)]}), 'company_id': fields.many2one('res.company', 'Company', required=True), diff --git a/addons/hr_expense/hr_expense_view.xml b/addons/hr_expense/hr_expense_view.xml index eab24b06717..7a98053a6e5 100644 --- a/addons/hr_expense/hr_expense_view.xml +++ b/addons/hr_expense/hr_expense_view.xml @@ -32,7 +32,7 @@ - +