# Hr Contract Employee Calendar Planning

This module ensures a consistent working times history when using the hr_contract and hr_employee_calendar_planning modules together.

There are 3 different data models which can relate to working time (resource.calendar) records:

- Employees (hr.employee)
- Contracts (hr.contract)
- Resources (resource.resource) -> related to hr.employee through resource.mixin

The hr_employee_calendar_planning module adds the calendar_ids field to employees, which allows a more flexible working times configuration: Instead of selecting a single resource.calendar, multiple calendars can be combined into one auto-generated calendar.

However, contracts are not considered when creating auto-generated calendars. This can lead to unexpected behaviour, because the active contract calendar and the employee calendar can diverge (calendar mismatch). Additionally, when configuring a new contract, or changing the existing contract calendar, the employee calendar will be overwritten by the contract calendar.

To resolve this issue, this module migrates current and previous contract calendars into the calendar_ids and thus the auto-generated calendar. Additionally, changes to the employee calendar by contracts are prevented. The resource_calendar_id field is hidden in contract views, since all working times should be managed in the calendar_ids field for each employee. However, it is still possible to keep a meaningful contract history, e.g. for salary information.

Table of contents

- Bug Tracker
- Credits
  - Authors
  - Contributors
  - Maintainers

## Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed feedback.

Do not contact contributors directly about support or help with technical issues.

## Credits

### Authors

- cibex

### Contributors

- Jonas Buchholz <J.Buchholz@cibex.net>

### Maintainers

This module is maintained by the OCA.

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

This module is part of the OCA/hr project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.