TIP: You can type at any time to perform a new search.
Employee Contracts
hr_contract · odoo/odoo
- Repository
- odoo/odoo · module folder
- Module version
- 1.0
- Category
- Human Resources/Contracts
- Folder size
- 2.53 MB
- License
- LGPL-3
- Application
- Yes
- Auto-installable
- No
- Website
- https://www.odoo.com/app/employees
- Last tracking update
- 2026-08-15 22:24:36
- Authors
- Maintainers
- None
- Committers
- Xavier ALT, Raphael Collet, Christophe Simonis, Thibault Delavallée, Martin Trigaux, Odoo Translation Bot, Damien Bouvy, Yannick Tivisse, Odoo Online, Pierre Masereel, Adrien Dieudonné, Nasreddin Boulif (bon), Prakash Prajapati, Rémy Voet (ryv), Tiffany Chang (tic), Gorash, sofiagvaladze, Florian Damhaut, Audric Onockx (auon), Dossogne Bertrand, bve-odoo, Louis Wicket (wil), Pierre-Yves Dufays, Levi Siuzdak (sile), Dylan Kiss (dyki), Mattis Megevand (mmeg), omra-odoo, Paul Stroobant, Mélanie, Youssef Bashandy, ravb-odoo, Maryam Kia, jugj-odoo, Flotchet, Julien Carion (juca), Ahmad (khah), Louis (wil), sami odoo, Abdelrahman Mahmoud (amah), sapp-odoo, Kacper Gasior, Chris Duvivier, laro-odoo, Pierre Pulinckx (pipu), Ajit Singh, kareem, dhka-odoo, Einar Andersen (eian), assh-odoo, arpr-odoo, Arthur Pierrot
- Odoo dependencies
- Python dependencies
- None
- System dependencies
- None
- Required by
- hr_collective_agreement, hr_contract_document, hr_contract_employee_calendar_planning, hr_contract_reference, hr_contract_renew, hr_contract_update_overtime, hr_employee_service_contract, hr_holidays_contract, hr_job_category, hr_professional_category, hr_work_entry_contract, l10n_br_hr_contract, payroll, payroll_contract_advantages, test_hr_contract_calendar
- Description
Add all information on the employee form to manage contracts. ============================================================= * Contract * Place of Birth, * Medical Examination Date * Company Vehicle You can assign several contracts per employee.
Code Analysis ⓘ
Views touched (22)
| XML ID | Name | Model | Type | Status |
|---|---|---|---|---|
hr_contract_history_view_form |
hr.contract.history.form | hr.contract.history | form | New |
hr_contract_history_view_kanban |
hr.contract.history.view.kanban | hr.contract.history | kanban | New |
hr_contract_history_view_list |
hr.contract.history.list | hr.contract.history | list | New |
hr_contract_history_view_search |
hr.contract.history.search | hr.contract.history | search | New |
hr_contract_view_activity |
hr.contract.activity | hr.contract | activity | New |
hr_contract_view_form |
hr.contract.form | hr.contract | form | New |
hr_contract_view_kanban |
hr.contract.kanban | hr.contract | kanban | New |
hr_contract_view_search |
hr.contract.search | hr.contract | search | New |
hr_contract_view_tree |
hr.contract.list | hr.contract | list | New |
hr_departure_wizard_view_form |
hr.departure.wizard.view.form.extend | hr.departure.wizard | form | Inherits hr.hr_departure_wizard_view_form |
hr_employee_view_graph_inherit_hr_contract |
hr.employee.view.graph | hr.employee | graph | Inherits hr.hr_employee_view_graph |
hr_employee_view_pivot_inherit_hr_contract |
hr.employee.view.pivot | hr.employee | pivot | Inherits hr.hr_employee_view_pivot |
hr_employee_view_search |
hr.employee.view.search.inherit.contract | hr.employee | search | Inherits hr.view_employee_filter |
hr_employee_view_search |
hr.employee.view.search | hr.employee | search | Inherits hr.view_employee_filter |
hr_hr_employee_view_form2 |
hr.hr.employee.view.form2 | hr.employee | form | Inherits hr.view_employee_form |
hr_hr_employee_view_form3 |
hr.hr.employee.view.form3 | hr.employee | form | Inherits hr.view_employee_form |
hr_user_view_form |
hr.user.preferences.view.form.contract.inherit | res.users | form | Inherits hr.res_users_view_form_profile |
res_config_settings_view_form |
res.config.settings.view.form.inherit.hr.contract | res.config.settings | form | Inherits hr.res_config_settings_view_form |
resource_calendar_view_form |
resource.calendar.view.form.inherit.hr.contract | resource.calendar | form | Inherits resource.resource_calendar_form |
resource_calendar_view_tree |
resource.calendar.view.list.inherit.hr.contract | resource.calendar | list | Inherits resource.view_resource_calendar_tree |
view_employee_public_form |
hr.employee.public | form | Inherits hr.hr_employee_public_view_form | |
view_employee_tree |
hr.employee.list | hr.employee | list | Inherits hr.view_employee_tree |
HTTP endpoints (0)
No HTTP endpoints found for this module.
Models touched (15)
New fields (27)
-
activeBooleandefault=True -
active_employeeBooleanrelated='employee_id.active'string='Active Employee' -
calendar_mismatchBooleancompute='_compute_calendar_mismatch'compute_sudo=True -
company_country_idMany2one → res.countryreadonly=Truerelated='company_id.country_id'string='Company country' args: 'res.country' -
company_idMany2one → res.companycompute='_compute_employee_contract'default=<expr>readonly=Falserequired=Truestore=True args: 'res.company' -
contract_type_idMany2one → hr.contract.typetracking=True args: 'hr.contract.type', 'Contract Type' -
contract_wageMonetarycompute='_compute_contract_wage' args: 'Contract Wage' -
contracts_countIntegergroups='hr_contract.group_hr_contract_employee_manager'related='employee_id.contracts_count' -
country_codeChardepends=['company_country_id']readonly=Truerelated='company_country_id.code' -
currency_idMany2onereadonly=Truerelated='company_id.currency_id'string='Currency' -
date_endDatehelp="End date of the contract (if it's a fixed-term contract)."tracking=True args: 'End Date' -
date_startDatedefault=fields.Date.todayindex=Truerequired=Truetracking=True args: 'Start Date' -
department_idMany2one → hr.departmentcompute='_compute_employee_contract'domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"readonly=Falsestore=Truestring='Department' args: 'hr.department' -
employee_idMany2one → hr.employeedomain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"index=Truestring='Employee'tracking=True args: 'hr.employee' -
first_contract_dateDaterelated='employee_id.first_contract_date' -
hr_responsible_idMany2one → res.usersdomain=_get_hr_responsible_domainhelp="Person responsible for validating the employee's contracts."tracking=True args: 'res.users', 'HR Responsible' -
job_idMany2one → hr.jobcompute='_compute_employee_contract'domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"readonly=Falsestore=Truestring='Job Position' args: 'hr.job' -
kanban_stateSelectioncopy=Falsedefault='normal'string='Kanban State'tracking=True args: [('normal', 'Ongoing'), ('done', 'Ready'), ('blocked', 'Warning')] -
nameCharrequired=True args: 'Contract Reference' -
notesHtmlargs: 'Notes' -
permit_noCharreadonly=Falserelated='employee_id.permit_no' args: 'Work Permit No' -
resource_calendar_idMany2one → resource.calendarcompute='_compute_employee_contract'copy=Falsedefault=<expr>domain="['|', ('company_id', '=', False), ('company_id', '=', company_id)]"index=Truereadonly=Falsestore=Truetracking=True args: 'resource.calendar', 'Working Schedule' -
stateSelectioncopy=Falsedefault='draft'group_expand=Truehelp='Status of the contract'string='Status'tracking=True args: [('draft', 'New'), ('open', 'Running'), ('close', 'Expired'), ('cancel', 'Cancelled')] -
structure_type_idMany2one → hr.payroll.structure.typecompute='_compute_structure_type_id'readonly=Falsestore=Truestring='Salary Structure Type'tracking=True args: 'hr.payroll.structure.type' -
trial_date_endDatehelp='End date of the trial period (if there is one).' args: 'End of Trial Period' -
visa_noCharreadonly=Falserelated='employee_id.visa_no' args: 'Visa No' -
wageMonetaryaggregator='avg'help="Employee's monthly gross wage."required=Truetracking=True args: 'Wage'
-
action_open_contract_form(self) -
action_open_contract_history(self) -
action_open_contract_list(self) -
create(self, vals_list)@api.model_create_multi -
update_state(self)@api.model -
write(self, vals)
New fields (24)
-
active_employeeBooleanreadonly=True args: 'Active Employee' -
activity_stateSelectionrelated='contract_id.activity_state' -
company_country_idMany2one → res.countryreadonly=Truerelated='company_id.country_id'string='Company country' args: 'res.country' -
company_idMany2one → res.companyreadonly=Truestring='Company' args: 'res.company' -
contract_countIntegercompute='_compute_contract_count'string='# Contracts' -
contract_idMany2one → hr.contractreadonly=True args: 'hr.contract' -
contract_idsOne2many → hr.contractcompute='_compute_contract_ids'compute_sudo=Truereadonly=Truestring='Contracts' args: 'hr.contract' -
contract_type_idMany2one → hr.contract.typereadonly=True args: 'hr.contract.type', 'Contract Type' -
country_codeChardepends=['company_country_id']readonly=Truerelated='company_country_id.code' -
currency_idMany2onereadonly=Truerelated='company_id.currency_id'string='Currency' -
date_endDatereadonly=True args: 'End Date' -
date_hiredDatereadonly=True args: 'Hire Date' -
date_startDatereadonly=True args: 'Start Date' -
department_idMany2one → hr.departmentreadonly=Truestring='Department' args: 'hr.department' -
employee_idMany2one → hr.employeereadonly=Truestring='Employee' args: 'hr.employee' -
hr_responsible_idMany2one → res.usersreadonly=Truestring='HR Responsible' args: 'res.users' -
is_under_contractBooleanreadonly=True args: 'Is Currently Under Contract' -
job_idMany2one → hr.jobreadonly=Truestring='Job Position' args: 'hr.job' -
nameCharreadonly=True args: 'Contract Name' -
resource_calendar_idMany2one → resource.calendarreadonly=Truestring='Working Schedule' args: 'resource.calendar' -
stateSelectionreadonly=Truestring='Status' args: [('draft', 'New'), ('open', 'Running'), ('close', 'Expired'), ('cancel', 'Cancelled')] -
structure_type_idMany2one → hr.payroll.structure.typereadonly=Truestring='Salary Structure Type' args: 'hr.payroll.structure.type' -
under_contract_stateSelectioncompute='_compute_under_contract_state'string='Contractual Status' args: [('done', 'Under Contract'), ('blocked', 'Not Under Contract')] -
wageMonetaryaggregator='avg'help="Employee's monthly gross wage."readonly=True args: 'Wage'
-
hr_contract_view_form_new_action(self) -
init(self)
New fields (1)
-
set_date_endBooleandefault=<expr>help='Set the end date on the current contract.'string='Set Contract End Date'
-
action_register_departure(self)If set_date_end is checked, set the departure date as the end date to current running contract, and cancel all draft contracts
New fields (8)
-
calendar_mismatchBooleangroups='base.group_system,hr.group_hr_user'related='contract_id.calendar_mismatch' -
contract_idMany2one → hr.contractcopy=Falsedomain="[('company_id', '=', company_id), ('employee_id', '=', id)]"groups='hr.group_hr_user'help='Current contract of the employee'string='Current Contract' args: 'hr.contract' -
contract_idsOne2many → hr.contractgroups='hr.group_hr_user'string='Employee Contracts' args: 'hr.contract', 'employee_id' -
contract_warningBooleancompute='_compute_contract_warning'groups='hr.group_hr_user'store=Truestring='Contract Warning' -
contracts_countIntegercompute='_compute_contracts_count'groups='hr.group_hr_user'string='Contract Count' -
first_contract_dateDatecompute='_compute_first_contract_date'groups='hr.group_hr_user'store=True -
legal_nameCharcompute='_compute_legal_name'groups='hr.group_hr_user'readonly=Falsestore=True -
vehicleChargroups='hr.group_hr_user'string='Company Vehicle'
-
action_open_contract(self) -
filter_valid(self, checked_date) -
write(self, vals)
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (1)
-
first_contract_dateDatecompute='_compute_manager_only_fields'search='_search_first_contract_date'
No public methods.
New fields (4)
-
country_codeCharrelated='country_id.code' -
country_idMany2one → res.countrydefault=<expr>string='Country' args: 'res.country' -
default_resource_calendar_idMany2one → resource.calendardefault=<expr> args: 'resource.calendar', 'Default Working Hours' -
nameCharargs: 'Salary Structure Type'
No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (2)
-
contract_expiration_notice_periodIntegerdefault=7 args: 'Contract Expiry Notice Period' -
work_permit_expiration_notice_periodIntegerdefault=60 args: 'Work Permit Expiry Notice Period'
No public methods.
New fields (2)
-
contract_expiration_notice_periodIntegerreadonly=Falserelated='company_id.contract_expiration_notice_period'string='Contract Expiry Notice Period' -
work_permit_expiration_notice_periodIntegerreadonly=Falserelated='company_id.work_permit_expiration_notice_period'string='Work Permit Expiry Notice Period'
No public methods.
New fields (2)
-
bank_account_idMany2onerelated='employee_id.bank_account_id' -
vehicleCharrelated='employee_id.vehicle'
-
SELF_READABLE_FIELDS(self)@property
New fields (1)
-
contracts_countIntegercompute='_compute_contracts_count'groups='hr_contract.group_hr_contract_manager' args: '# Contracts using it'
-
action_open_contracts(self) -
transfer_leaves_to(self, other_calendar, resources=None, from_date=None)Transfer some resource.calendar.leaves from 'self' to another calendar 'other_calendar'. Transfered leaves linked to `resources` (or all if `resources` is None) and starting after 'from_date' (or today if None).
New fields (0)
No new fields.
Public methods (0)No public methods.
New fields (0)
No new fields.
Public methods (0)No public methods.
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…
Loading…