Как помешать менеджеру утвердить собственный отпуск в Odoo?
Как я могу помешать менеджерам утверждать свои собственные запросы на отпуск? Я добавил одно поле ename и функцию в holiday.py.
'ename':fields.many2one('res.users','Name',readonly=True),
def is_officer_employee(self,cr,uid,ids,ename,context=None):
user_obj = self.pool.get('res.users')
user_value = user_obj.browse(cr, uid, uid)
for leave in self.browse(cr,uid,ids,context=context):
if leave.ename.id == uid:
raise osv.except_osv(_('Warning!'), _('Can not approve own Leave!'))
else:
return self.write(cr, uid, ids, {'state':'validate1', 'manager_id': False})
Теперь менеджер не может утвердить свой собственный отпуск, только его менеджер может утвердить. Теперь после добавления вышеуказанного кода функции кнопка подтверждения для второго утверждения не работает.
Пожалуйста, предоставьте какое-нибудь решение. Благодарю вас.
1 ответ
Ниже вы можете запретить менеджеру утверждать свой отпуск:
Для начала вам необходимо понять приведенную ниже концепцию модели hr.holidays и ее взаимосвязи.
employee_id:
В каждом запросе на отпуск есть один сотрудник
parent_id (поле менеджера):
Что связано с каждым сотрудником, это означает, что каждый сотрудник имеет одного менеджера.
Идентификатор пользователя:
Каждый Сотрудник связан с одним связанным пользователем, что полезно для доступа к Сотруднику в качестве логина пользователя.
Это означает, что если вы хотите получить доступ к логину для каждого сотрудника, то соответствующее поле пользователя слишком важно для нас.
В вашем случае в принципе нет необходимости требовать добавления ename
поле для каждого запроса на отпуск.
так что вы можете сделать что-то вроде этого:
for leave in self.browse(cr,uid,ids,context=context):
if leave.employee_id.parent_id.user_id.id == uid:
raise osv.except_osv(_('Warning!'), _('Can not approve own Leave!'))
else:
return self.write(cr, uid, ids, {'state':'validate1', 'manager_id': False})
пожалуйста, добавьте приведенный выше код в действие вашего метода и проверьте, чтобы подтвердить, что оставить запрос.
Я надеюсь, что мой ответ может быть полезным для вас:)