如何阻止经理批准他们自己的请假申请? 我在holidays.py中添加了一个ename字段和函数。
'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})
现在经理不能批准他自己的假期,只有他的经理可以批准。现在添加上面的功能代码后,验证第二次批准的按钮不起作用。
请提供一些解决方案。 谢谢。
答案 0 :(得分:1)
您可以通过以下方式阻止经理批准自己的假期:
首先,您必须了解hr.holidays模型及其关系的以下概念。
employee_id:
每个请假申请都有一名员工
parent_id(经理字段):
每个员工都附有一个,这意味着每个员工都有一名经理。
user_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})
请在方法操作中添加以上代码,然后检查以验证请假请求。
我希望我的回答对您有所帮助:)。