Employee: views its forms record [('employee_id.user_id','=', user.id)] Division manager: views forms of its subordinates ['|',('department_id.manager_id.user_id','=', user.id), ('department_id','child_of', user.employee_id.department_id.id if user.employee_id and user.employee_id.department_id else False)] Allow HR : views custody receiving records of all employees [(1 ,'=', 1)] Employee effective form company rule ['|',('company_id','=',False),('company_id', 'in', company_ids)] Employee: views its overtime records [('employee_id.user_id','=', user.id)] Division manager: views overtime of its subordinates ['|',('employee_id.department_id.manager_id.user_id','=', user.id), ('employee_id.department_id','child_of', user.employee_id.department_id.id if user.employee_id and user.employee_id.department_id else False)] Allow HR : views custody receiving records of all employees [(1 ,'=', 1)] Employee effective form company rule ['|',('company_id','=',False),('company_id', 'in', company_ids)] Employee: views its overtime records [('employee_id.user_id','=', user.id)] Division manager: views overtime of its subordinates ['|',('employee_id.department_id.manager_id.user_id','=', user.id), ('employee_id.department_id','child_of', user.employee_id.department_id.id if user.employee_id and user.employee_id.department_id else False)] Allow HR : views custody receiving records of all employees [(1 ,'=', 1)] Employee effective form company rule ['|',('employee_id.company_id','=',False),('employee_id.company_id', 'in', company_ids)] Employee: views its clearance records [('employee_id.user_id','=', user.id)] Division manager: views clearances of its subordinates ['|','|',('department_id.manager_id','=',False), ('department_id.manager_id.user_id','=', user.id), ('department_id','child_of', user.employee_id.department_id.id if user.employee_id and user.employee_id.department_id else False)] Allow HR : views clearances of all employees [(1 ,'=', 1)] Employee clearances multi company rule ['|',('company_id','=',False),('company_id', 'in', company_ids)] Employee: views its permission records [('employee_id.user_id','=', user.id)] Division manager: views permissions of its subordinates ['|','|',('department_id.manager_id','=',False), ('department_id.manager_id.user_id','=', user.id), ('department_id','child_of', user.employee_id.department_id.id if user.employee_id and user.employee_id.department_id else False)] Allow HR : views permissions of all employees [(1 ,'=', 1)] Employee personal permission company rule ['|',('company_id','=',False),('company_id', 'in', company_ids)] Employee: views its Other Request [('employee_id.user_id','=', user.id)] Division manager: views Other Request of its subordinates ['|','|',('department_id.manager_id','=',False), ('department_id.manager_id.user_id','=', user.id), ('department_id','child_of', user.employee_id.department_id.id if user.employee_id and user.employee_id.department_id else False)] Allow HR : views Other Request of all employees [(1 ,'=', 1)] Employee: views its Department Jobs Request [('employee_id.user_id','=', user.id)] Division manager1: views Department Jobs Request ['|',('old_department_2_id.manager_id.user_id','=', user.id), ('old_department_2_id','child_of', user.employee_id.department_id.id if user.employee_id and user.employee_id.department_id else False)] Division manager2: views Department Jobs Request ['|',('new_department_id.manager_id.user_id','=', user.id), ('new_department_id','child_of', user.employee_id.department_id.id if user.employee_id and user.employee_id.department_id else False)] Allow HR : views Other Request of all employees [(1 ,'=', 1)] Employee department multi company rule ['|',('company_id','=',False),('company_id', 'in', company_ids)] Employee other request multi company rule ['|',('company_id','=',False),('company_id', 'in', company_ids)]