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', 'child_of', user.employee_ids.ids),
('employee_id.expense_manager_id', '=', user.id),
('manager_id', '=', user.id)]
Employee Expense
[
'|', '&', ('employee_id.expense_manager_id', '=', user.id), ('state', 'in', ['draft', 'submitted', 'approved', 'refused']),
'&', ('employee_id.user_id', '=', user.id), ('state', '=', 'draft')
]
Employees can't modify an expense that is not in draft state
[
'|', '&', ('employee_id.user_id', '=', user.id), ('state', '!=', 'draft'),
'&', ('employee_id.expense_manager_id', '=', user.id), ('state', 'in', ['submitted', 'approved', 'refused'])
]
Expense multi company rule
[('company_id', 'in', company_ids)]
Expense Team Approver Account Move
[('expense_ids', '!=', False)]
Expense Team Approver Account Move Line
[('expense_id', '!=', False)]
Employee Expense Split
[
('expense_id.state', '=', 'draft'),
'|', ('expense_id.employee_id.user_id', '=', user.id), ('expense_id.manager_id', '=', user.id),
]
Approver Expense Split
[
('expense_id.state', 'in', ['draft', 'submitted']),
('expense_id.manager_id', 'in', [user.id, False])
]
All approver Expense Split
[
('expense_id.state', 'in', ['draft', 'submitted']),
'|', ('expense_id.employee_id.user_id', '!=', user.id), ('expense_id.manager_id', 'in', [user.id, False])
]
Manager Expense Split
[('expense_id.state', 'in', ['draft', 'submitted'])]
Accountant Expense Split
[('expense_id.state', 'in', ('draft', 'submitted', 'approved'))]