如何在odoo 9中了解当前用户的最后一次出勤操作(' sign_in'或#39; sign_out')?

时间:2016-09-02 07:41:25

标签: openerp odoo-9

我已经扩展了hr_attendance模块,我想获得' action'的最后一个值。当前登录用户的信息(可以是' sign_in'或' sign_out')

我不知道如何访问该值。

在考勤模块中有以下功能:

def _altern_si_so(self, cr, uid, ids, context=None):
...

def _state(self, cr, uid, ids, name, args, context=None)
...

但我不知道如何在扩展模块中调用这些函数,或者是否有另一种方法来获取该值。

1 个答案:

答案 0 :(得分:0)

查看数据库表我找到了解决方案:

首先,我们获取与登录用户

相关联的employee_id
employee_id = {}
cr.execute('SELECT hr.id \
            FROM resource_resource AS res JOIN hr_employee AS hr \
            ON res.id = hr.resource_id \
            WHERE res.user_id = %s',[uid])
for res in cr.fetchall():
    employee_id = res[0]

然后,我们得到employee_id的最后一个动作

last_action = {}
cr.execute('SELECT hr_attendance.action \
            FROM hr_attendance \
            WHERE employee_id = %s',[employee_id])
for res in cr.fetchall():
    last_action = res[0]

'last_action'现在有“sign_in”或“sign_out”(当前用户在考勤模块中完成的最后一个操作)