| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/hr-expense |
| GIT | |
| GIT | https://github.com/OCA/hr-expense.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/hr-expense/tree/18.0/hr_expense_advance_clearing |
| VERSION | |
| VERSION | 1.0.6 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ecosoft |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Ecosoft |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Saran440, Eduardo de Miguel, Christopher Rogos, David Bañón |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/hr-expense |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:30:16 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_expense - account - base_setup - base - web - onboarding - product - bus - web_tour - html_editor - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - hr - phone_validation - resource_mail |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Standard Expenses module allow employee to do the expense reimbursement only after the expense has been made. In other world, employee will need to pay first and reimburse later. This module, allow company to advance an amount to the employee. Employee can then use that advance amount to purchase product/service first, then back to company and do the clearing. There can be 3 scenarios for advance and clearing - When clearing amount = advance amount, no other operation is required. - When clearing amount \> advance amount, company will pay the extra to employee. - When clearing amount \< advance amount, employee will return the remain to company. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_employee_public_view_form |
hr.employee.public.form | hr.employee.public | xpath | Inherits hr.hr_employee_public_view_form |
hr_expense_sheet_view_search |
hr.expense.sheet.view.search | hr.expense.sheet | separator | Inherits hr_expense.hr_expense_sheet_view_search |
hr_expense_view_form |
hr.expense.view.form | hr.expense | h1 | Inherits hr_expense.hr_expense_view_form |
hr_expense_view_search |
hr.expense.view.search | hr.expense | separator | Inherits hr_expense.hr_expense_view_search |
view_account_payment_form |
account.payment.form | account.payment | xpath | Inherits account.view_account_payment_form |
view_account_payment_search |
account.payment.search | account.payment | xpath | Inherits account.view_account_payment_search |
view_employee_form |
hr.employee.form | hr.employee | xpath | Inherits hr.view_employee_form |
view_hr_expense_sheet_form |
hr.expense.sheet.form | hr.expense.sheet | xpath | Inherits hr_expense.view_hr_expense_sheet_form |
view_hr_expense_sheet_list |
hr.expense.sheet.list | hr.expense.sheet | field | Inherits hr_expense.view_hr_expense_sheet_tree |
No new fields.
Public methods (3)action_force_register_payment(self)
button_cancel(self)
button_draft(self)
advance_id
Many2one → hr.expense.sheet
comodel_name='hr.expense.sheet'
readonly=True
No public methods.
No new fields.
Public methods (0)No public methods.
advance_count
Integer
compute='_compute_advance_count'
help='Count advance sheet in expense report'
string='# of Advance'
advance_sheet_ids
One2many → hr.expense.sheet
comodel_name='hr.expense.sheet'
domain=[('advance', '=', True)]
inverse_name='employee_id'
readonly=True
action_open_advance_clearing(self)
advance
Boolean
default=False
string='Employee Advance'
av_line_id
Many2one → hr.expense
comodel_name='hr.expense'
help='Expense created from this advance expense line'
ondelete='set null'
string='Ref: Advance'
clearing_product_id
Many2one → product.product
comodel_name='product.product'
domain="[('can_be_expensed', '=', True),'|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Optional: On the clear advance, the clearing product will create default product line.'
ondelete='restrict'
string='Clearing Product'
tracking=True
onchange_advance(self)
advance
Boolean
string='Employee Advance'
advance_sheet_id
Many2one → hr.expense.sheet
comodel_name='hr.expense.sheet'
domain="[('advance', '=', True), ('employee_id', '=', employee_id), ('clearing_residual', '>', 0.0)]"
help='Show remaining advance of this employee'
string='Clear Advance'
advance_sheet_residual
Monetary
help='Remaining amount to clear the selected advance sheet'
related='advance_sheet_id.clearing_residual'
store=True
string='Advance Remaining'
amount_payable
Monetary
compute='_compute_amount_payable'
help='Final regiter payment amount even after advance clearing'
string='Payable Amount'
clearing_count
Integer
compute='_compute_clearing_count'
clearing_residual
Monetary
compute='_compute_clearing_residual'
help='Amount to clear of this expense sheet in company currency'
store=True
string='Amount to clear'
clearing_sheet_ids
One2many → hr.expense.sheet
comodel_name='hr.expense.sheet'
help='Show reference clearing on advance'
inverse_name='advance_sheet_id'
readonly=True
string='Clearing Sheet'
payment_return_ids
One2many → account.payment
comodel_name='account.payment'
help='Show reference return advance on advance'
inverse_name='advance_id'
readonly=True
string='Payment Return'
return_count
Integer
compute='_compute_return_count'
compute_sudo=True
action_open_clearings(self)
action_open_payment_return(self)
action_register_payment(self)
action_sheet_move_post(self)
create_clearing_expense_line(self, line)
get_domain_advance_sheet_expense_line(self)
open_clear_advance(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/hr-expense |
| GIT | |
| GIT | https://github.com/OCA/hr-expense.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/hr-expense/tree/17.0/hr_expense_advance_clearing |
| VERSION | |
| VERSION | 1.0.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ecosoft |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Ecosoft |
| COMMITTERS | |
| COMMITTERS | Weblate, OCA-git-bot, oca-ci, Saran440 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/hr-expense |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 19:20:08 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_expense - account - base_setup - base - web - onboarding - product - bus - web_tour - uom - analytic - portal - web_editor - http_routing - auth_signup - digest - resource - hr - phone_validation |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | Standard Expenses module allow employee to do the expense reimbursement only after the expense has been made. In other world, employee will need to pay first and reimburse later. This module, allow company to advance an amount to the employee. Employee can then use that advance amount to purchase product/service first, then back to company and do the clearing. There can be 3 scenarios for advance and clearing - When clearing amount = advance amount, no other operation is required. - When clearing amount \> advance amount, company will pay the extra to employee. - When clearing amount \< advance amount, employee will return the remain to company. |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_employee_public_view_form |
hr.employee.public.form | hr.employee.public | xpath | Inherits hr.hr_employee_public_view_form |
hr_expense_sheet_view_search |
hr.expense.sheet.view.search | hr.expense.sheet | separator | Inherits hr_expense.hr_expense_sheet_view_search |
hr_expense_view_form |
hr.expense.view.form | hr.expense | h1 | Inherits hr_expense.hr_expense_view_form |
hr_expense_view_search |
hr.expense.view.search | hr.expense | separator | Inherits hr_expense.hr_expense_view_search |
view_account_payment_form |
account.payment.form | account.payment | xpath | Inherits account.view_account_payment_form |
view_account_payment_search |
account.payment.search | account.payment | xpath | Inherits account.view_account_payment_search |
view_employee_form |
hr.employee.form | hr.employee | xpath | Inherits hr.view_employee_form |
view_hr_expense_sheet_form |
hr.expense.sheet.form | hr.expense.sheet | field | Inherits hr_expense.view_hr_expense_sheet_form |
view_hr_expense_sheet_tree |
hr.expense.sheet.tree | hr.expense.sheet | field | Inherits hr_expense.view_hr_expense_sheet_tree |
No new fields.
Public methods (2)button_cancel(self)
button_draft(self)
advance_id
Many2one → hr.expense.sheet
comodel_name='hr.expense.sheet'
readonly=True
No public methods.
No new fields.
Public methods (2)action_create_payments(self)
expense_post_return_advance(self)
advance_count
Integer
compute='_compute_advance_count'
help='Count advance sheet in expense report'
string='# of Advance'
advance_sheet_ids
One2many → hr.expense.sheet
comodel_name='hr.expense.sheet'
domain=[('advance', '=', True)]
inverse_name='employee_id'
readonly=True
action_open_advance_clearing(self)
advance
Boolean
default=False
string='Employee Advance'
av_line_id
Many2one → hr.expense
comodel_name='hr.expense'
help='Expense created from this advance expense line'
ondelete='set null'
string='Ref: Advance'
clearing_product_id
Many2one → product.product
comodel_name='product.product'
domain="[('can_be_expensed', '=', True),'|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Optional: On the clear advance, the clearing product will create default product line.'
ondelete='restrict'
string='Clearing Product'
tracking=True
onchange_advance(self)
advance
Boolean
string='Employee Advance'
advance_sheet_id
Many2one → hr.expense.sheet
comodel_name='hr.expense.sheet'
domain="[('advance', '=', True), ('employee_id', '=', employee_id), ('clearing_residual', '>', 0.0)]"
help='Show remaining advance of this employee'
string='Clear Advance'
advance_sheet_residual
Monetary
help='Remaining amount to clear the selected advance sheet'
related='advance_sheet_id.clearing_residual'
store=True
string='Advance Remaining'
amount_payable
Monetary
compute='_compute_amount_payable'
help='Final regiter payment amount even after advance clearing'
string='Payable Amount'
clearing_count
Integer
compute='_compute_clearing_count'
clearing_residual
Monetary
compute='_compute_clearing_residual'
help='Amount to clear of this expense sheet in company currency'
store=True
string='Amount to clear'
clearing_sheet_ids
One2many → hr.expense.sheet
comodel_name='hr.expense.sheet'
help='Show reference clearing on advance'
inverse_name='advance_sheet_id'
readonly=True
string='Clearing Sheet'
action_open_clearings(self)
action_register_payment(self)
action_sheet_move_create(self)
create_clearing_expense_line(self, line)
get_domain_advance_sheet_expense_line(self)
open_clear_advance(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/hr-expense |
| GIT | |
| GIT | https://github.com/OCA/hr-expense.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/hr-expense/tree/16.0/hr_expense_advance_clearing |
| VERSION | |
| VERSION | 1.0.3 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ecosoft |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Ecosoft |
| COMMITTERS | |
| COMMITTERS | Víctor Martínez, Weblate, OCA-git-bot, oca-ci, Saran440, Marcel Savegnago |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/hr-expense |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:53:53 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_expense - hr_contract - hr - base_setup - base - web - bus - web_tour - resource - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_employee_public_view_form |
hr.employee.public.form | hr.employee.public | xpath | Inherits hr.hr_employee_public_view_form |
hr_expense_sheet_view_search |
hr.expense.sheet.view.search | hr.expense.sheet | separator | Inherits hr_expense.hr_expense_sheet_view_search |
hr_expense_view_form |
hr.expense.view.form | hr.expense | h1 | Inherits hr_expense.hr_expense_view_form |
hr_expense_view_search |
hr.expense.view.search | hr.expense | separator | Inherits hr_expense.hr_expense_view_search |
view_account_payment_form |
account.payment.form | account.payment | xpath | Inherits account.view_account_payment_form |
view_account_payment_search |
account.payment.search | account.payment | xpath | Inherits account.view_account_payment_search |
view_employee_form |
hr.employee.form | hr.employee | xpath | Inherits hr.view_employee_form |
view_hr_expense_sheet_form |
hr.expense.sheet.form | hr.expense.sheet | field | Inherits hr_expense.view_hr_expense_sheet_form |
view_hr_expense_sheet_tree |
hr.expense.sheet.tree | hr.expense.sheet | field | Inherits hr_expense.view_hr_expense_sheet_tree |
No new fields.
Public methods (2)button_cancel(self)
button_draft(self)
advance_id
Many2one → hr.expense.sheet
comodel_name='hr.expense.sheet'
readonly=True
No public methods.
No new fields.
Public methods (3)action_create_payments(self)
default_get(self, fields_list)
expense_post_return_advance(self)
advance_count
Integer
compute='_compute_advance_count'
help='Count advance sheet in expense report'
string='# of Advance'
advance_sheet_ids
One2many → hr.expense.sheet
comodel_name='hr.expense.sheet'
domain=[('advance', '=', True)]
inverse_name='employee_id'
readonly=True
action_open_advance_clearing(self)
advance
Boolean
default=False
string='Employee Advance'
av_line_id
Many2one → hr.expense
comodel_name='hr.expense'
help='Expense created from this advance expense line'
ondelete='set null'
string='Ref: Advance'
clearing_product_id
Many2one → product.product
comodel_name='product.product'
domain="[('can_be_expensed', '=', True),'|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Optional: On the clear advance, the clearing product will create default product line.'
ondelete='restrict'
string='Clearing Product'
tracking=True
onchange_advance(self)
advance
Boolean
string='Employee Advance'
advance_sheet_id
Many2one → hr.expense.sheet
comodel_name='hr.expense.sheet'
domain="[('advance', '=', True), ('employee_id', '=', employee_id), ('clearing_residual', '>', 0.0)]"
help='Show remaining advance of this employee'
readonly=True
states={'draft': [('readonly', False)], 'submit': [('readonly', False)], 'approve': [('readonly', False)]}
string='Clear Advance'
advance_sheet_residual
Monetary
help='Remaining amount to clear the selected advance sheet'
related='advance_sheet_id.clearing_residual'
store=True
string='Advance Remaining'
amount_payable
Monetary
compute='_compute_amount_payable'
help='Final regiter payment amount even after advance clearing'
string='Payable Amount'
clearing_count
Integer
compute='_compute_clearing_count'
clearing_residual
Monetary
compute='_compute_clearing_residual'
help='Amount to clear of this expense sheet in company currency'
store=True
string='Amount to clear'
clearing_sheet_ids
One2many → hr.expense.sheet
comodel_name='hr.expense.sheet'
help='Show reference clearing on advance'
inverse_name='advance_sheet_id'
readonly=True
string='Clearing Sheet'
action_open_clearings(self)
action_register_payment(self)
action_sheet_move_create(self)
create_clearing_expense_line(self, line)
get_domain_advance_sheet_expense_line(self)
open_clear_advance(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/hr-expense |
| GIT | |
| GIT | https://github.com/OCA/hr-expense.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/hr-expense/tree/15.0/hr_expense_advance_clearing |
| VERSION | |
| VERSION | 1.3.2 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ecosoft |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Ecosoft |
| COMMITTERS | |
| COMMITTERS | Pedro M. Baeza, Weblate, OCA-git-bot, oca-ci, Saran440, Marcel Savegnago, ps-tubtim |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/hr-expense |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:46:39 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_expense - hr_contract - hr - base_setup - base - web - bus - web_tour - resource - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_employee_public_view_form |
hr.employee.public.form | hr.employee.public | xpath | Inherits hr.hr_employee_public_view_form |
hr_expense_sheet_view_search |
hr.expense.sheet.view.search | hr.expense.sheet | separator | Inherits hr_expense.hr_expense_sheet_view_search |
hr_expense_view_form |
hr.expense.view.form | hr.expense | h1 | Inherits hr_expense.hr_expense_view_form |
hr_expense_view_search |
hr.expense.view.search | hr.expense | separator | Inherits hr_expense.hr_expense_view_search |
view_account_payment_form |
account.payment.form | account.payment | xpath | Inherits account.view_account_payment_form |
view_account_payment_search |
account.payment.search | account.payment | xpath | Inherits account.view_account_payment_search |
view_employee_form |
hr.employee.form | hr.employee | xpath | Inherits hr.view_employee_form |
view_hr_expense_sheet_form |
hr.expense.sheet.form | hr.expense.sheet | field | Inherits hr_expense.view_hr_expense_sheet_form |
view_hr_expense_sheet_tree |
hr.expense.sheet.tree | hr.expense.sheet | field | Inherits hr_expense.view_hr_expense_sheet_tree |
No new fields.
Public methods (2)button_cancel(self)
button_draft(self)
advance_id
Many2one → hr.expense.sheet
comodel_name='hr.expense.sheet'
readonly=True
No public methods.
No new fields.
Public methods (3)action_create_payments(self)
default_get(self, fields_list)
expense_post_return_advance(self)
advance_count
Integer
compute='_compute_advance_count'
help='Count advance sheet in expense report'
string='# of Advance'
advance_sheet_ids
One2many → hr.expense.sheet
comodel_name='hr.expense.sheet'
domain=[('advance', '=', True)]
inverse_name='employee_id'
readonly=True
action_open_advance_clearing(self)
advance
Boolean
default=False
string='Employee Advance'
av_line_id
Many2one → hr.expense
comodel_name='hr.expense'
help='Expense created from this advance expense line'
ondelete='set null'
string='Ref: Advance'
clearing_product_id
Many2one → product.product
comodel_name='product.product'
domain="[('can_be_expensed', '=', True),'|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Optional: On the clear advance, the clearing product will create default product line.'
ondelete='restrict'
string='Clearing Product'
tracking=True
onchange_advance(self)
advance
Boolean
string='Employee Advance'
advance_sheet_id
Many2one → hr.expense.sheet
comodel_name='hr.expense.sheet'
domain="[('advance', '=', True), ('employee_id', '=', employee_id), ('clearing_residual', '>', 0.0)]"
help='Show remaining advance of this employee'
readonly=True
states={'draft': [('readonly', False)], 'submit': [('readonly', False)], 'approve': [('readonly', False)]}
string='Clear Advance'
advance_sheet_residual
Monetary
help='Remaining amount to clear the selected advance sheet'
related='advance_sheet_id.clearing_residual'
store=True
string='Advance Remaining'
amount_payable
Monetary
compute='_compute_amount_payable'
help='Final regiter payment amount even after advance clearing'
string='Payable Amount'
clearing_count
Integer
compute='_compute_clearing_count'
clearing_residual
Monetary
compute='_compute_clearing_residual'
help='Amount to clear of this expense sheet in company currency'
store=True
string='Amount to clear'
clearing_sheet_ids
One2many → hr.expense.sheet
comodel_name='hr.expense.sheet'
help='Show reference clearing on advance'
inverse_name='advance_sheet_id'
readonly=True
string='Clearing Sheet'
action_open_clearings(self)
action_register_payment(self)
action_sheet_move_create(self)
create_clearing_expense_line(self, line)
get_domain_advance_sheet_expense_line(self)
open_clear_advance(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/hr-expense |
| GIT | |
| GIT | https://github.com/OCA/hr-expense.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/hr-expense/tree/14.0/hr_expense_advance_clearing |
| VERSION | |
| VERSION | 1.5.8 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ecosoft |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Ecosoft |
| COMMITTERS | |
| COMMITTERS | oca-travis, Weblate, OCA-git-bot, oca-ci, Kitti U, Saran440, Marcel Savegnago, ps-tubtim, oca-git-bot |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/hr-expense |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:41:07 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_expense - hr_contract - hr - base_setup - base - web - bus - web_tour - resource - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_employee_public_view_form |
hr.employee.public.form | hr.employee.public | xpath | Inherits hr.hr_employee_public_view_form |
hr_expense_sheet_view_search |
hr.expense.sheet.view.search | hr.expense.sheet | separator | Inherits hr_expense.hr_expense_sheet_view_search |
hr_expense_view_form |
hr.expense.view.form | hr.expense | h1 | Inherits hr_expense.hr_expense_view_form |
hr_expense_view_search |
hr.expense.view.search | hr.expense | separator | Inherits hr_expense.hr_expense_view_search |
view_employee_form |
hr.employee.form | hr.employee | xpath | Inherits hr.view_employee_form |
view_hr_expense_sheet_form |
hr.expense.sheet.form | hr.expense.sheet | field | Inherits hr_expense.view_hr_expense_sheet_form |
view_hr_expense_sheet_tree |
hr.expense.sheet.tree | hr.expense.sheet | field | Inherits hr_expense.view_hr_expense_sheet_tree |
No new fields.
Public methods (2)button_cancel(self)
button_draft(self)
No new fields.
Public methods (3)action_create_payments(self)
default_get(self, fields_list)
expense_post_return_advance(self)
advance_count
Integer
compute='_compute_advance_count'
help='Count advance sheet in expense report'
string='# of Advance'
advance_sheet_ids
One2many → hr.expense.sheet
comodel_name='hr.expense.sheet'
domain=[('advance', '=', True)]
inverse_name='employee_id'
readonly=True
action_open_advance_clearing(self)
advance
Boolean
default=False
string='Employee Advance'
av_line_id
Many2one → hr.expense
comodel_name='hr.expense'
help='Expense created from this advance expense line'
ondelete='set null'
string='Ref: Advance'
clearing_product_id
Many2one → product.product
comodel_name='product.product'
domain="[('can_be_expensed', '=', True),'|', ('company_id', '=', False), ('company_id', '=', company_id)]"
help='Optional: On the clear advance, the clearing product will create default product line.'
ondelete='restrict'
string='Clearing Product'
tracking=True
onchange_advance(self)
advance
Boolean
compute='_compute_advance'
store=True
string='Employee Advance'
advance_sheet_id
Many2one → hr.expense.sheet
comodel_name='hr.expense.sheet'
domain="[('advance', '=', True), ('employee_id', '=', employee_id), ('clearing_residual', '>', 0.0)]"
help='Show remaining advance of this employee'
readonly=True
states={'draft': [('readonly', False)], 'submit': [('readonly', False)], 'approve': [('readonly', False)]}
string='Clear Advance'
advance_sheet_residual
Monetary
help='Remaining amount to clear the selected advance sheet'
related='advance_sheet_id.clearing_residual'
store=True
string='Advance Remaining'
amount_payable
Monetary
compute='_compute_amount_payable'
help='Final regiter payment amount even after advance clearing'
string='Payable Amount'
clearing_residual
Monetary
compute='_compute_clearing_residual'
help='Amount to clear of this expense sheet in company currency'
store=True
string='Amount to clear'
clearing_sheet_ids
One2many → hr.expense.sheet
comodel_name='hr.expense.sheet'
help='Show reference clearing on advance'
inverse_name='advance_sheet_id'
readonly=True
string='Clearing Sheet'
action_register_payment(self)
action_sheet_move_create(self)
create_clearing_expense_line(self, line)
get_domain_advance_sheet_expense_line(self)
open_clear_advance(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/hr-expense |
| GIT | |
| GIT | https://github.com/OCA/hr-expense.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/hr-expense/tree/13.0/hr_expense_advance_clearing |
| VERSION | |
| VERSION | 1.2.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ecosoft |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Ecosoft |
| COMMITTERS | |
| COMMITTERS | oca-travis, Weblate, OCA-git-bot, Kitti U, newtratip, Saran440 |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/hr-expense |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:34:17 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_expense - hr_contract - hr - base_setup - base - web - bus - web_tour - resource - mail_bot - account - product - uom - analytic - portal - web_editor - http_routing - auth_signup - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_expense_sheet_view_search |
hr.expense.sheet.view.search | hr.expense.sheet | separator | Inherits hr_expense.hr_expense_sheet_view_search |
hr_expense_view_view |
hr.expense.form | hr.expense | h1 | Inherits hr_expense.hr_expense_view_form |
view_hr_expense_sheet_form |
view.hr.expense.sheet.form | hr.expense.sheet | field | Inherits hr_expense.view_hr_expense_sheet_form |
advance
Boolean
default=False
string='Employee Advance'
onchange_advance(self)
advance
Boolean
compute='_compute_advance'
store=True
string='Employee Advance'
advance_sheet_id
Many2one → hr.expense.sheet
comodel_name='hr.expense.sheet'
domain="[('advance', '=', True), ('employee_id', '=', employee_id), ('clearing_residual', '>', 0.0)]"
help='Show remaining advance of this employee'
readonly=True
states={'draft': [('readonly', False)], 'submit': [('readonly', False)], 'approve': [('readonly', False)]}
string='Clear Advance'
advance_sheet_residual
Monetary
help='Remaining amount to clear the selected advance sheet'
related='advance_sheet_id.clearing_residual'
store=True
string='Advance Remaining'
amount_payable
Monetary
compute='_compute_amount_payable'
help='Final regiter payment amount even after advance clearing'
string='Payable Amount'
clearing_residual
Monetary
compute='_compute_clearing_residual'
help='Amount to clear of this expense sheet in company currency'
store=True
string='Amount to clear'
action_sheet_move_create(self)
open_clear_advance(self)
No new fields.
Public methods (3)default_get(self, field_list)
expense_post_payment(self)
expense_post_return_advance(self)
| REPOSITORY | |
|---|---|
| REPOSITORY | OCA/hr |
| GIT | |
| GIT | https://github.com/OCA/hr.git |
| GIT FOLDER | |
| GIT FOLDER | https://github.com/OCA/hr/tree/12.0/hr_expense_advance_clearing |
| VERSION | |
| VERSION | 1.3.0 |
| CATEGORY | |
| CATEGORY | Human Resources |
| LICENSE | |
| LICENSE | AGPL-3 |
| APPLICATION | |
| APPLICATION | No |
| AUTO-INSTALLABLE | |
| AUTO-INSTALLABLE | No |
| AUTHORS | |
| AUTHORS | Odoo Community Association (OCA), Ecosoft |
| MAINTAINERS | |
| MAINTAINERS | Odoo Community Association (OCA), Ecosoft |
| COMMITTERS | |
| COMMITTERS | david, OCA Transbot, oca-travis, Weblate, OCA-git-bot, Kitti U, Saran440, kittiu |
| WEBSITE | |
| WEBSITE | https://github.com/OCA/hr |
| LAST TRACKING UPDATE | |
| LAST TRACKING UPDATE | 2026-07-06 00:29:19 |
| ODOO DEPENDENCIES | |
| ODOO DEPENDENCIES |
odoo/odoo: - hr_expense - hr_contract - hr - base_setup - base - web - bus - web_tour - resource - account - product - decimal_precision - uom - analytic - portal - http_routing - digest |
| PYTHON DEPENDENCIES | |
| PYTHON DEPENDENCIES | Not have |
| SYSTEM DEPENDENCIES | |
| SYSTEM DEPENDENCIES | Not have |
| DESCRIPTION | |
| DESCRIPTION | |
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_expense_view_view |
hr.expense.form | hr.expense | h1 | Inherits hr_expense.hr_expense_view_form |
view_hr_expense_sheet_filter |
hr.expense.sheet.filter | hr.expense.sheet | separator | Inherits hr_expense.view_hr_expense_sheet_filter |
view_hr_expense_sheet_form |
view.hr.expense.sheet.form | hr.expense.sheet | field | Inherits hr_expense.view_hr_expense_sheet_form |
No new fields.
Public methods (0)No public methods.
advance
Boolean
default=False
string='Employee Advance'
onchange_advance(self)
advance
Boolean
compute='_compute_advance'
store=True
string='Employee Advance'
advance_sheet_id
Many2one → hr.expense.sheet
comodel_name='hr.expense.sheet'
domain="[('advance', '=', True), ('employee_id', '=', employee_id), ('clearing_residual', '>', 0.0)]"
help='Show remaining advance of this employee'
readonly=True
states={'draft': [('readonly', False)], 'submit': [('readonly', False)], 'approve': [('readonly', False)]}
string='Clear Advance'
advance_sheet_residual
Monetary
help='Remaining amount to clear the selected advance sheet'
related='advance_sheet_id.clearing_residual'
store=True
string='Advance Remaining'
amount_payable
Monetary
compute='_compute_amount_payable'
help='Final regiter payment amount even after advance clearing'
string='Payable Amount'
clearing_residual
Monetary
compute='_compute_clearing_residual'
help='Amount to clear of this expense sheet in company currency'
store=True
string='Amount to clear'
action_sheet_move_create(self)
open_clear_advance(self)
No new fields.
Public methods (3)default_get(self, field_list)
expense_post_payment(self)
expense_post_return_advance(self)
| STATUS | |
|---|---|
| STATUS | Open migration PR - not merged yet for this version |
| REPOSITORY | |
| REPOSITORY | OCA/hr-expense |
| PULL REQUEST | |
| PULL REQUEST | [19.0][MIG] hr_expense_advance_clearing: Migration to 19.0 (#358) |