47 lines
1.6 KiB
Python
47 lines
1.6 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo, Flectra. See LICENSE file for full copyright and licensing details.
|
|
|
|
from flectra import api, fields, models
|
|
|
|
|
|
class HrExpenseRefuseWizard(models.TransientModel):
|
|
"""This wizard can be launched from an he.expense (an expense line)
|
|
or from an hr.expense.sheet (En expense report)
|
|
'hr_expense_refuse_model' must be passed in the context to differentiate
|
|
the right model to use.
|
|
"""
|
|
|
|
_name = "hr.expense.refuse.wizard"
|
|
_description = "Expense refuse Reason wizard"
|
|
|
|
reason = fields.Char(string='Reason', required=True)
|
|
hr_expense_ids = fields.Many2many('hr.expense')
|
|
hr_expense_sheet_id = fields.Many2one('hr.expense.sheet')
|
|
|
|
@api.model
|
|
def default_get(self, fields):
|
|
res = super(HrExpenseRefuseWizard, self).default_get(fields)
|
|
active_ids = self.env.context.get('active_ids', [])
|
|
refuse_model = self.env.context.get('hr_expense_refuse_model')
|
|
if refuse_model == 'hr.expense':
|
|
res.update({
|
|
'hr_expense_ids': active_ids,
|
|
'hr_expense_sheet_id': False,
|
|
})
|
|
elif refuse_model == 'hr.expense.sheet':
|
|
res.update({
|
|
'hr_expense_sheet_id': active_ids[0] if active_ids else False,
|
|
'hr_expense_ids': [],
|
|
})
|
|
return res
|
|
|
|
@api.multi
|
|
def expense_refuse_reason(self):
|
|
self.ensure_one()
|
|
if self.hr_expense_ids:
|
|
self.hr_expense_ids.refuse_expense(self.reason)
|
|
if self.hr_expense_sheet_id:
|
|
self.hr_expense_sheet_id.refuse_sheet(self.reason)
|
|
|
|
return {'type': 'ir.actions.act_window_close'}
|