Manager Expense [(1, '=', 1)] Team Approver Expense ['|', '|', '|', '|', ('employee_id.user_id', '=', user.id), ('employee_id.department_id.manager_id.user_id', '=', user.id), ('employee_id.parent_id.user_id', '=', user.id), ('employee_id.expense_manager_id', '=', user.id), ('sheet_id.user_id', '=', user.id)] Employee Expense [('employee_id.user_id', '=', user.id)] Manager Expense Sheet [(1, '=', 1)] Approver Expense Sheet ['|', '|', '|', '|', ('employee_id.user_id', '=', user.id), ('employee_id.department_id.manager_id.user_id', '=', user.id), ('employee_id.parent_id.user_id', '=', user.id), ('employee_id.expense_manager_id', '=', user.id), ('user_id', '=', user.id)] Employee Expense Sheet [('employee_id.user_id', '=', user.id), ('state', '=', 'draft')] Employee can't modify expense sheet that is not in draft state [('employee_id.user_id', '=', user.id), ('state', '!=', 'draft')] Expense multi company rule ['|',('company_id', '=', False), ('company_id', 'in', company_ids)] Expense Report multi company rule ['|',('company_id', '=', False), ('company_id', 'in', company_ids)] Expense Team Approver Account Move Line [('expense_id', '!=', False)]