documentation/content/applications/hr/time_off.rst
Lara Martini (larm) f16d89dbc7 [IMP] time off: updating images and directions
closes odoo/documentation#8021

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-03-28 14:16:44 +00:00

963 lines
47 KiB
ReStructuredText

========
Time Off
========
Odoo's *Time Off* application serves as a centralized hub for all time-off-related information. This
application manages requests, balances, allocations, approvals, and reports.
Users can :ref:`request time off <time_off/request-time-off>`, and see an overview of their requests
and time off balances. Managers can :ref:`allocate time off <time_off/allocate>` to individuals,
teams, or the whole company, and :ref:`approve time off requests <time_off/manage-time-off>`.
Detailed :ref:`reports <time_off/reporting>` can be run to see how much time off (and what kinds of
time off) are being used, :ref:`accrual plans <time_off/accrual-plans>` can be created, and
:ref:`public holidays <time_off/public-holidays>` can be set.
.. note::
Be advised, only users with specific access rights can see all aspects of the *Time Off*
application.
All users can access the :guilabel:`My Time Off` and :guilabel:`Overview` sections of the *Time
Off* application. All other sections require specific access rights.
To better understand how access rights affect the *Time Off* application, refer to the
:doc:`employees/new_employee` document, specifically the section about configuring the work
information tab.
Configuration
=============
In order to allocate time off to employees, and for employees to request and use their time off, the
various time off types must be configured first, then allocated to employees (if allocation is
required).
.. _time_off/time-off-types:
Time off types
--------------
To view the currently configured time off types, navigate to :menuselection:`Time Off app -->
Configuration --> Time Off Types`. The time off types are presented in a list view.
The *Time Off* application comes with four pre-configured time off types: :guilabel:`Paid Time Off`,
:guilabel:`Sick Time Off`, :guilabel:`Unpaid`, and :guilabel:`Compensatory Days`. These can be
modified to suit business needs or used as-is.
Create time off type
~~~~~~~~~~~~~~~~~~~~
To create a new time off type, navigate to :menuselection:`Time Off app --> Configuration --> Time
Off Types`. From here, click the :guilabel:`New` button to reveal a blank time off type form.
Enter the name for the particular type of time off in the blank line at the top of the form, such as
`Sick Time` or `Vacation`. Then, enter the following information on the form.
.. note::
The only **required** fields on the time off type form are the name of the :guilabel:`Time Off
Type`, the :guilabel:`Take Time Off In`, and the :guilabel:`Kind of Time Off`. In addition, the
:guilabel:`Time Off Requests` and :guilabel:`Allocation Requests` sections **must** be
configured.
Time Off Requests section
*************************
- :guilabel:`Approval`: select what specific kind of approval is required for the time off type. The
options are:
- :guilabel:`No Validation`: no approvals are required when requesting this type of time off. The
time off request is automatically approved.
- :guilabel:`By Time Off Officer`: only the specified :ref:`Time Off Officer
<time_off/time-off-officer>`, set on this form in the :guilabel:`Notified Time Off Officer`
field, is required to approve the time off request. This option is selected by default.
- :guilabel:`By Employee's Approver`: only the employee's specified approver for time off, which
is set on the *Work Information* tab on the :ref:`employee's form <employees/work-info-tab>`, is
required to approve the time off request.
- :guilabel:`By Employee's Approver and Time Off Officer`: both the employee's :ref:`specified
time off approver<employees/work-info-tab>` and the :ref:`Time Off Officer
<time_off/time-off-officer>` are required to approve the time off request.
Allocation Requests section
***************************
- :guilabel:`Requires allocation`: if the time off must be allocated to employees, select
:guilabel:`Yes`. If the time off can be requested without time off being previously allocated,
select :guilabel:`No Limit`. If :guilabel:`No Limit` is selected, the following options do not
appear on the form.
- :guilabel:`Employee Requests`: select :guilabel:`Extra Days Requests Allowed` if the employee is
able to request more time off than was allocated.
If employees should **not** be able to make requests for more time off than what was allocated,
select the :guilabel:`Not Allowed` option.
.. example::
Ten days are allocated to the employee for this particular type of time off, and the
:guilabel:`Extra Days Requests Allowed` option is enabled. The employee wants to take a
vacation for twelve days. They may submit a request for two additional days, since the
:guilabel:`Extra Days Requests Allowed` option is enabled.
.. important::
It is important to note that requesting additional time off does **not** guarantee that time
off is granted.
- :guilabel:`Approval`: select the type of approvals required for the allocation of this particular
time off type.
- :guilabel:`Approved by Time Off Officer` indicates the :ref:`Time Off Officer
<time_off/time-off-officer>` set on this form must approve the allocation.
- :guilabel:`No validation needed` indicates that no approvals are required.
Configuration section
*********************
.. _`time_off/time-off-officer`:
- :guilabel:`Notified Time Off Officer`: select the person who is notified and responsible for
approving requests and allocations for this specific type of time off.
- :guilabel:`Take Time Off in`: select the format the time off is requested in from the drop-down
menu.
The options are:
- :guilabel:`Day`: if time off can only be requested in full day increments (8 hours).
- :guilabel:`Half Day`: if time off can only be requested in half day increments (4 hours).
- :guilabel:`Hours`: if the time off can be taken in hourly increments.
.. _`time_off/deduct-extra-hours`:
- :guilabel:`Deduct Extra Hours`: enable this option if the time off request should factor in any
extra time accrued by the employee
.. example::
If an employee works two extra hours for the week, and requests five hours of time off, the
request would be for three hours, since the two extra worked hours are used first, and deducted
from the request.
- :guilabel:`Allow To Attach Supporting Document`: enable this option to allow the employee to
attach documents to the time off request. This is useful in situations where documentation is
required, such as long-term medical leave.
- :guilabel:`Kind of Time Off`: select from the drop-down menu the type of time off this is, either
:guilabel:`Worked Time` or :guilabel:`Absence`. :guilabel:`Worked Time` indicates that the time
off taken counts toward worked time for any type of accrual the employee is working towards,
whereas :guilabel:`Absence` does not count toward any type of accrual.
- :guilabel:`Company`: if multiple companies are created in the database, and this time off type
only applies to one company, select the company from the drop-down menu. If this field is left
blank, the time off type applies to all companies in the database. This field **only** appears in
a multi-company database.
Negative Cap section
********************
Enable the :guilabel:`Allow Negative Cap` option if employees are able to request more time off than
they currently have, allowing a negative balance. If enabled, an :guilabel:`Amount in Negative`
field appears. In this field, enter the maximum amount of negative time allowed, in days.
.. example::
Sara currently has three days of the time off type `Vacation`. She is planning a trip that
requires five days of time off.
The `Vacation` time off type has the :guilabel:`Allow Negative Cap` option enabled, and the
:guilabel:`Amount in Negative` is set to five.
These settings allow Sara to submit a request for five days of the `Vacation` time off type. If
approved, her `Vacation` time off balance will be negative two (-2) days.
.. image:: time_off/time-off-type-form-top.png
:align: center
:alt: The top half of the time off type form, with all the information filled out for sick time
off.
Payroll section
***************
If the time off type should create :doc:`../hr/payroll/work_entries` in the *Payroll* application,
select the :guilabel:`Work Entry Type` from the drop-down list.
Timesheets section
******************
.. note::
The :guilabel:`Timesheets` section only appears if the user is in developer mode. Refer to the
:ref:`developer-mode` document for details on how to access the developer mode.
When an employee takes time off, and is also using timesheets, Odoo creates entries in the
*Timesheets* application for the time off. This section defines how they are entered.
- :guilabel:`Project`: select the project that the time off type entries appear in.
- :guilabel:`Task`: select the task that appears in the timesheet for this time off type. The
default options are: :guilabel:`Time Off`, :guilabel:`Meeting`, or :guilabel:`Training`.
Display Option section
**********************
- :guilabel:`Color`: select a color to be used in the *Time Off* application dashboard.
- :guilabel:`Cover Image`: select an icon to be used in the *Time Off* application dashboard.
.. image:: time_off/time-off-type-form-bottom.png
:align: center
:alt: The lower half of the time off type form, with all the information filled out for sick time
off.
.. _time_off/accrual-plans:
Accrual plans
-------------
Some time off is earned through an accrual plan, meaning that for every specified amount of time an
employee works (hour, day, week, etc), they earn or *accrue* a specified amount of time off.
.. example::
If an employee accrues a vacation day for every week they work, they would earn 0.2 vacation days
for each hour they work. At the end of a forty hour work week, they would earn one whole vacation
day (8 hours).
Create accrual plan
~~~~~~~~~~~~~~~~~~~
To create a new accrual plan, navigate to :menuselection:`Time Off app --> Configuration --> Accrual
Plans`. Then, click the :guilabel:`New` button, which reveals a blank accrual plan form.
Enter the following information on the form:
- :guilabel:`Name`: enter the accrual plan name.
- :guilabel:`Accrued Gain Time`: select when the employee begins to accrue time off, either
:guilabel:`At the start of the accrual period` or :guilabel:`At the end of the accrual period`.
- :guilabel:`Carry-Over Time`: select when the employee received previously earned time. The options
are:
- :guilabel:`At the start of the year`: select this if the accrual rolls over on January 1 of the
upcoming year.
- :guilabel:`At the allocation date`: select this if the accrual rolls over as soon as time is
allocated to the employee.
- :guilabel:`Other`: select this option if neither of the other two options are applicable. When
selected, a :guilabel:`Carry-Over Date` field appears. Select the date using the two drop-down
menus, one for the day and one for the month.
- :guilabel:`Based on worked time`: enable this option if time off accrual is determined by the
employee's worked hours. Days **not** considered as worked time do **not** contribute to the
accrual plan in Odoo.
- :guilabel:`Milestone Transition`: this selection determines when employees move up to a new
milestone. If they qualify to change milestones in the middle of a pay period, select if the
employee changes milestones :guilabel:`Immediately` or :guilabel:`After this accrual's period`
(after the current pay period).
.. important::
The :guilabel:`Milestone Transition` field is **only** visible after a minimum of two
:ref:`rules <time_off/rules>` have been configured on the accrual plan.
- :guilabel:`Company`: using the drop-down menu, select the company the accrual plan applies to. If
left blank, the accrual plan can be used for all companies. This field only appears in a
multi-company database.
.. image:: time_off/accrual-plan-form.png
:align: center
:alt: An accrual plan form with all the entries filled out.
.. _time_off/rules:
Rules
*****
Rules must be created in order for employees to accrue time off from the accrual plan.
To create a new rule, click the :guilabel:`New Milestone` button in the gray :guilabel:`Rules`
section, and a :guilabel:`Create Milestone` modal form appears.
Fill out the following fields on the form:
- :guilabel:`Employee accrue`: select the parameters for earned time off in this section.
First, select either :guilabel:`Days` or :guilabel:`Hours` for the increment of accrued time using
the drop-down menu.
Next, enter the numerical amount of the selected parameter that is accrued. The numerical format
is `X.XXXX`, so that partial days or hours can also be configured.
Last, select how often the time is accrued using the drop-down menu. The default options are
:guilabel:`Hourly`, :guilabel:`Daily`, :guilabel:`Weekly`, :guilabel:`Twice a month`,
:guilabel:`Monthly`, :guilabel:`Twice a year`, and :guilabel:`Yearly`.
Depending on which option is selected, additional fields may appear. For example, if
:guilabel:`Twice a month` is selected, two additional fields appear, to specify the two days of
each month that the milestone occurs.
- :guilabel:`Cap accrued time`: if there is a maximum amount of days the employee can accrue with
this plan, enable this option.
When enabled, two additional fields appear beneath it. Select the type of time period from the
drop-down menu, either :guilabel:`Days` or :guilabel:`Hours`.
Then, enter a numerical value in the field to specify the maximum amount of time that can be
accrued.
- :guilabel:`Milestone reached`: enter the number and value of the time period that must pass before
the employee starts to accumulate time off. The first value is numerical; enter a number in the
first field.
Then, select the type of time period using the drop-down menu in the second field. The options
are: :guilabel:`Days`, :guilabel:`Months`, or :guilabel:`Years`.
- :guilabel:`Carry over`: select how any unused time off is handled. The options are either:
- :guilabel:`None. Accrued time reset to 0`: any unused time off is gone.
- :guilabel:`All accrued time carried over`: all unused time off is rolled over to the next
calendar year.
- :guilabel:`Carry over with a maximum`: unused time off is rolled over to the next calendar year,
but there is a cap. An :guilabel:`Up to` field appears if this is selected. Enter the maximum
number of :guilabel:`Days` that can roll over to the following year. Any time off beyond this
parameter is lost.
Once the form is completed, click :guilabel:`Save & Close` to save the form and close the modal, or
click :guilabel:`Save & New` to save the form and create another milestone. Add as many milestones
as desired.
.. image:: time_off/milestone.png
:align: center
:alt: A milestone form with all the entries filled out.
.. _time_off/public-holidays:
Public holidays
---------------
To observe public or national holidays, and provide extra days off as holidays to employees,
configure the observed *public holidays* in Odoo.
It is important to configure these days in Odoo, so employees are aware of the days they have off,
and do not request time off on days that are already set as a public holiday (non-working days).
Additionally, all public holidays configured in the *Time Off* app are also reflected in any app
that uses working schedules, such as *Calendar*, *Planning*, *Manufacturing*, and more.
Due to Odoo's integration with other apps that use working schedules, it is considered best practice
to ensure *all* public holidays are configured.
Create public holiday
~~~~~~~~~~~~~~~~~~~~~
To create a public holiday, navigate to :menuselection:`Time Off app --> Configuration --> Public
Holidays`.
All currently configured public holidays appear in a list view.
Click the :guilabel:`New` button, and a new line appears at the bottom of the list.
Enter the following information on that new line:
- :guilabel:`Name`: enter the name of the holiday.
- :guilabel:`Company`: if in a multi-company database, the current company populates this field by
default. It is not possible to edit this field.
.. note::
The :guilabel:`Company` field is hidden by default. To view this field, click the two dots in
the top-right corner of the list, to the far-right of the column titles, and activate the
:guilabel:`Company` selection from the drop-down menu that appears.
- :guilabel:`Start Date`: using the date and time picker, select the date and time that the holiday
starts. By default, this field is configured for the current date. The start time is set according
to the start time for the company (according to the :ref:`working schedules
<payroll/working-times>`). If the user's computer is set to a different time zone, the start time
is adjusted according to the difference in the time zone, compared to the company's time zone.
- :guilabel:`End Date`: using the date and time picker, select the date and time that the holiday
ends. By default, this field is configured for the current date, and the time is set to the end
time for the company (according to the :ref:`working schedules <payroll/working-times>`). If the
user's computer is set to a different time zone, the start time is adjusted according to the
difference in the time zone, compared to the company's time zone.
.. example::
A company located in San Francisco operates from 9:00 AM - 6:00 PM, with an eight hour work day
and one hour lunch break.
For a user in New York, with a computer time zone set to Eastern Standard Time, a created
public holiday displays a start time of 12:00 PM - 9:00 PM, accounting for the three hour time
zone difference.
Similarly, a user located in Los Angeles, with a computer time zone set to Pacific Standard
Time, sees a public holiday time as 9:00 AM - 6:00 PM.
- :guilabel:`Working Hours`: if the holiday should only apply to employees who have a specific set
of working hours, select the working hours from the drop-down menu. If left blank, the holiday
applies to all employees.
- :guilabel:`Work Entry Type`: if using the *Payroll* application, this field defines how the
:ref:`work entries <payroll/work-entries>` for the holiday appear. Select the work entry type
from the drop-down menu.
.. image:: time_off/holidays.png
:align: center
:alt: The list of public holidays in the configuration menu.
Mandatory days
--------------
Some companies have special days where specific departments, or the entire staff, is required to be
present, and time off is not allowed on those specific days.
These types of days are called *mandatory days* in Odoo. These can be configured to be company-wide,
or department specific. When configured, employees in the specified department or company are unable
to submit time off requests for these mandatory days.
Create mandatory days
~~~~~~~~~~~~~~~~~~~~~
No mandatory days are configured in Odoo by default. To create a mandatory day, navigate to
:menuselection:`Time Off app --> Configuration --> Mandatory Days`.
Click the :guilabel:`New` button in the top-left corner, and a blank line appears in the list.
Enter the following information on that new line:
- :guilabel:`Name`: enter the name of the mandatory day.
- :guilabel:`Company`: if in a multi-company database, this field is visible, and the current
company populates this field by default. Using the drop-down menu, select the company the
mandatory day is for.
- :guilabel:`Departments`: this column is hidden by default. First, click the :guilabel:`(optional
columns)` icon in the top-right corner, next to :guilabel:`Colors`, and then click the checkbox
next to :guilabel:`Departments` to reveal that column.
Next, select the desired departments from the drop-down menu. Multiple departments can be
selected, and there is no limit to the amount of departments that can be added.
If this field is left blank, the mandatory day applies to the entire company.
- :guilabel:`Start Date`: using the calendar picker, select the date the mandatory day starts.
- :guilabel:`End Date`: using the calendar picker, select the date the mandatory day ends. If
creating a single mandatory day, the end date should be the same as the start date.
- :guilabel:`Color`: if desired, select a color from the available presented options. If no color is
desired, select the `No color` option, represented by a white box with a red line diagonally
across it. The selected color appears on the main *Time Off* application dashboard, in both the
calendar and in the legend.
.. image:: time_off/mandatory.png
:align: center
:alt: The Mandatory Days section with three configured days.
.. _time_off/allocate:
Allocate time off
=================
Once time off types and accrual plans have been configured, the next step is to allocate, or give,
time off to employees. This section is only visible to users who have either :guilabel:`Time Off
Officer` or :guilabel:`Administrator` access rights for the *Time Off* application.
To create a new allocation, navigate to :menuselection:`Time Off app --> Management -->
Allocations`.
This presents a list of all current allocations, including their respective statuses.
Click :guilabel:`New` to allocate time off, and a blank allocation form appears.
After entering a name for the allocation on the first blank field of the form, enter the following
information:
- :guilabel:`Time Off Type`: using the drop-down menu, select the type of time off that is being
allocated to the employees.
- :guilabel:`Allocation Type`: select either :guilabel:`Regular Allocation` or :guilabel:`Accrual
Allocation`. If the allocation is **not** based on an accrual plan, select :guilabel:`Regular
Allocation`.
- :guilabel:`Accrual Plan`: if :guilabel:`Accrual Allocation` is selected for the
:guilabel:`Allocation Type`, the :guilabel:`Accrual Plan` field appears. Using the drop-down menu,
select the accrual plan with which the allocation is associated. An accrual plan **must** be
selected for an :guilabel:`Accrual Allocation`.
- :guilabel:`Validity Period/Start Date`: if :guilabel:`Regular Allocation` is selected for the
:guilabel:`Allocation Type`, this field is labeled :guilabel:`Validity Period`. If
:guilabel:`Accrual Allocation` is selected for the :guilabel:`Allocation Type`, this field is
labeled :guilabel:`Start Date`.
The current date populates the first date field by default. To select another date, click on the
pre-populated date to reveal a popover calendar window. Navigate to the desired start date for the
allocation, and click on the date to select it.
If the allocation expires, select the expiration date in the next date field. If the time off does
*not* expire, leave the second date field blank. `No Limit` appears in the field if no date is
selected.
If :guilabel:`Accrual Allocation` is selected for the :guilabel:`Allocation Type`, this second
field is labeled :guilabel:`Run until`.
- :guilabel:`Allocation`: enter the amount of time that is being allocated to the employees. This
field displays the time in either :guilabel:`Hours` or :guilabel:`Days`, depending on how the
selected :ref:`Time Off Type <time_off/time-off-types>` is configured (in hours or days).
- :guilabel:`Mode`: using the drop-down menu, select how the allocation is assigned. This selection
determines who receives the time off allocation. The options are :guilabel:`By Employee`,
:guilabel:`By Company`, :guilabel:`By Department`, or :guilabel:`By Employee Tag`.
Depending on what is selected for the :guilabel:`Mode`, this following field is labeled either:
:guilabel:`Employees`, :guilabel:`Company`, :guilabel:`Department`, or :guilabel:`Employee Tag`.
Using the drop-down menu, indicate the specific employees, company, department, or employee tags
who are receiving this time off.
Multiple selections can be made for either :guilabel:`Employees` or :guilabel:`Employee Tag`.
Only one selection can be made for the :guilabel:`Company` or :guilabel:`Department`.
- :guilabel:`Add a reason...`: if any description or note is necessary to explain the time off
allocation, enter it in this field at the bottom of the form.
.. image:: time_off/new-allocation.png
:align: center
:alt: A new allocation form with all the fields filled out for the annual two week vacation
granted to all employees.
.. _time_off/request-time-off:
Request time off
================
Once an employee has been allocated time off, a request to use the time off can be submitted. Time
off can be requested in one of two ways, either from the :ref:`dashboard <time_off/dashboard>` or
from the :ref:`My Time Off <time_off/my-time-off>` view.
To create a new request for time off, click the :guilabel:`New` button on either the main *Time Off*
:guilabel:`Dashboard` or the :guilabel:`My Time Off` list view.
.. note::
Both :guilabel:`New` buttons allow the user to request time off, but when requested from the
:guilabel:`Dashboard`, a :guilabel:`New Time Off` request form appears in a modal. When requested
from the :guilabel:`My Time Off` list view, the screen navigates to a new time off request page,
instead.
Enter the following information on the :guilabel:`New Time Off` request form:
- :guilabel:`Time Off Type`: select the type of time off being requested from the drop-down menu.
- :guilabel:`Dates`: enter the dates that the time off falls under. There are two fields to
populate, the start and end dates. Click on either date field and a popover calendar appears.
Click on the start date, then click on the end date. The selected start and end dates are circled,
and the dates between them are highlighted (if applicable).
If the time off requested is for a single day, click on the start date, then click the same date
again for the end date.
When the correct dates are selected/highlighted, click the :guilabel:`Apply` button.
The selected dates now populate the two portions of the :guilabel:`Dates` field.
If the selected :guilabel:`Time Off Type` is configured to have the time off taken in hours, the
following two fields also appear:
- :guilabel:`Half Day`: if the time off request is for a half day, check this box. When this is
selected, the second date field disappears, and is replaced with a drop-down menu. From that
drop-down menu, select either :guilabel:`Morning` or :guilabel:`Afternoon` to indicate which
half of the day is being requested.
- :guilabel:`Custom Hours`: if the time off requested is not a whole or half day, check this box.
A :guilabel:`From` and :guilabel:`To` field appears beneath this option, if selected. Using the
drop-down menu, select the start and end time for the time off request.
- :guilabel:`Duration`: this field updates automatically once the :guilabel:`Date` section is
completed. If the :guilabel:`Date` section is modified, this section automatically updates to
reflect the total time off requested. This field is in either hours or days, depending on how the
selected :guilabel:`Time Off Type` is configured.
- :guilabel:`Description`: enter a description for the time off request. This should include any
details that managers and approvers may need in order to approve the request.
- :guilabel:`Supporting Document`: this field only appears if the :guilabel:`Time Off Type` selected
allows for the attachments of documents. Click the :guilabel:`Attach File` button, and a file
explorer window appears.
Navigate to the desired files to attach, select them, then click the :guilabel:`Open` button. The
files then appear on the time off request form. Multiple documents can be attached, if necessary.
If the request was created from the :guilabel:`Dashboard`, click the :guilabel:`Save & Close` button
to save the information and submit the request.
If the form was completed from the :guilabel:`My Time Off` list view, the information is
automatically saved as it is entered. However, the form can be saved manually at any time by
clicking the *save manually* button, represented by a :guilabel:`(cloud upload)` icon.
.. image:: time_off/time-off-request.png
:align: center
:alt: A time off request form filled out for an employee home sick for two days with the flu.
.. _time_off/request-allocation:
Request allocation
==================
If an employee has used all their time off, or is going to run out of time off, they can request an
allocation for additional time. Allocations can be requested in one of two ways, either from the
:ref:`Dashboard <time_off/dashboard>` or the :ref:`My Allocations <time_off/my-allocations>` view.
To create a new allocation request, click either the :guilabel:`New Allocation Request` button on
the main *Time Off* dashboard, or the :guilabel:`New` button in the :guilabel:`My Allocations` list
view. Both buttons open a new allocation request form.
.. note::
Both :guilabel:`New` buttons open a :guilabel:`New Allocation` request form, but when requested
from the :guilabel:`Dashboard`, the form appears in a modal. When requested from the
:guilabel:`My Allocations` list view, the screen navigates to a new allocation request page,
instead.
Enter the following information on the :guilabel:`New Allocation` request form:
- :guilabel:`Time Off Type`: select the type of time off being requested for the allocation from the
drop-down menu. After a selection is made, the title updates with the time off type.
- :guilabel:`Validity Period`: this field **only** appears if requesting an allocation with a time
off type that has the :guilabel:`Take Time Off in` field :ref:`configured
<time_off/time-off-officer>` to either :guilabel:`Day` or :guilabel:`Half Day`. This field does
**not** appear if the :guilabel:`Take Time Off in` field is set to :guilabel:`Hours`.
Using the calendar selector, select a start and end date the allocation is valid for. By default,
the current date populates the first field, and :guilabel:`No Limit` populates the second field.
Adjust both of these dates, if desired.
- :guilabel:`Allocation`: enter the amount of time being requested in this field. The format is
presented in either days or hours, depending on how the time off type is configured. Once this
field is populated, the name of the allocation request is updated to include the amount of time
being requested.
- :guilabel:`Add a reason...`: enter a description for the allocation request. This should include
any details that managers and approvers may need in order to approve the request.
If the request was created from the :guilabel:`Dashboard`, click the :guilabel:`Save & Close` button
to save the information and submit the request.
If the form was completed from the :guilabel:`My Allocations` list view, the information is
automatically saved as it is entered. However, the form can be saved manually at any time by
clicking the *save manually* button, represented by a :guilabel:`(cloud upload)` icon.
.. image:: time_off/allocation-request.png
:align: center
:alt: An allocation request form filled out for an employee requesting an additional week of
sick time.
.. _time_off/approvals:
Management
==========
Time off and allocation requests typically undergo an approval process before being granted.
Requests either need one or two approvals, if any, depending on how the specific type of time off is
configured. These are all housed under the :guilabel:`Management` section of the *Time Off*
application.
Only users who can approve allocation and time off requests have the :guilabel:`Management` section
visible in the *Time Off* application.
.. _time_off/manage-time-off:
Manage time off
---------------
To view time off requests that need approval, navigate to :menuselection:`Time Off app -->
Management --> Time Off`. The only time off requests visible on this list are for employees the user
has either :guilabel:`Time Off Officer` or :guilabel:`Administrator` access rights for in the *Time
Off* application.
The default filter in the :guilabel:`Time Off` list is `Waiting For Me`. This only presents time off
requests that need to be approved for current employees on the user's team, with a status of either
:guilabel:`To Approve` or :guilabel:`Second Approval`.
The left side of the screen has various grouping options to narrow down the presented time off
requests. Since only time off requests that need to be approved are shown, the only status options
are :guilabel:`All`, :guilabel:`To Approve`, and :guilabel:`Second Approval`. The various
departments the user is a member of, and manages employees under, also appear on the left side of
the screen, under :guilabel:`Departments`.
.. note::
If there are no requests that fall under one of the status options or departments, that status
or department is **not** visible on the left-side menu.
To display time off requests for specific departments only, click on the :guilabel:`Department` on
the left-hand side. Only requests within the selected department are then presented.
The status column displays the status of each request, with the status highlighted in a specific
color.
The :guilabel:`To Approve` and :guilabel:`Second Approval` requests are highlighted in yellow and
are the only ones that appear in the list by default. If the `Waiting For Me` filter is removed,
then all statuses appear. :guilabel:`Approved` requests are highlighted in green, :guilabel:`To
Submit` (drafts) requests are highlighted in blue, and the :guilabel:`Refused` requests are
highlighted in gray.
To approve a time off request, click the :guilabel:`👍 Approve` button at the end of the line. To
validate a time off request that has already been approved, and is waiting on a second approval,
click the :guilabel:`✔️ Validate` button at the end of the line. To refuse a request, click the
:guilabel:`✖️ Refuse` button at the far end of the line.
.. image:: time_off/time-off-requests.png
:align: center
:alt: Time off requests with the filter, groupings, and status sections highlighted.
For more details, click anywhere on the time off request line (except for the :guilabel:`👍
Approve`, :guilabel:`✔️ Validate`, and :guilabel:`✖️ Refuse` buttons) to load the time off request
form. Depending on the rights of the user, changes can be made.
To modify the request, make any desired changes to the form. All changes are automatically saved.
It is also possible to approve or refuse the request from this form. Click the :guilabel:`Approve`
button to approve, or the :guilabel:`Refuse` button to refuse the request.
Manage allocations
------------------
To view allocations that need approval, navigate to :menuselection:`Time Off app --> Management -->
Allocations`. The only allocations visible on this list are for employees the user has either
:guilabel:`Time Off Officer` or :guilabel:`Administrator` access rights for in the *Time Off*
application.
The default filters that are configured to be in place when navigating to the
:guilabel:`Allocations` list are :guilabel:`My Team` and :guilabel:`Active Employee`. This *only*
presents employees on the user's team (who they manage) and active employees. Inactive users are not
shown.
The left side of the screen has various grouping options to narrow down the presented allocation
requests.
The :guilabel:`Status` options are :guilabel:`To Approve`, :guilabel:`Refused`, and
:guilabel:`Approved`. Click on a specific :guilabel:`Status` to view only requests with that status.
To view all allocation requests, click :guilabel:`All`.
It is also possible to display allocation requests by department. Click on the
:guilabel:`Department` in the left side of the screen to only present allocations for that specific
department.
.. note::
The groupings on the left side only present allocation requests that fall under the default
filters of :guilabel:`My Team` and :guilabel:`Active Employee`. Only the statuses for allocation
requests that fall under those filters are presented on the left side.
For example, if there are no requests with a status of :guilabel:`To Submit`, that status option
does not appear in the left-hand side.
All departments for the user's employees appear in the list. If there are no allocation requests
that fall under that department matching the pre-configured filters, the list is blank.
It is always possible to remove any of the pre-configured filters, by clicking the :guilabel:`✖️
(remove)` icon on the specific filter to remove it.
The status column displays the status of each request, with the status highlighted in a specific
color.
The :guilabel:`To Approve` requests are highlighted in yellow, :guilabel:`Approved` requests are
highlighted in green, and the :guilabel:`Refused` requests are highlighted in gray.
To approve an allocation request, click the :guilabel:`✔ Validate` button at the end of the line.
To refuse a request, click the :guilabel:`✖️ Refuse` button.
.. image:: time_off/allocations.png
:align: center
:alt: Allocations with the filter, groupings, and status sections highlighted.
If more details are needed, click anywhere on the allocation request line (except for the
:guilabel:`✔ Validate` and :guilabel:`✖️ Refuse` buttons) to view the request in detail.
Depending on the rights of the user, changes can be made to the allocation request form that
appears. To modify the request, make any desired changes to the form. All changes are automatically
saved.
It is also possible to approve or refuse the request from this form. Click the :guilabel:`Validate`
button to approve, or the :guilabel:`Refuse` button to refuse the request.
Overview
========
To view a color-coded schedule of the user's time off, and/or of the team managed by them, navigate
to :menuselection:`Time Off app --> Overview`. This presents a calendar with the default filter of
`My Team`, in a month view.
To change the time period displayed, click on the :guilabel:`Month` button to reveal a drop-down
menu. Then, select either :guilabel:`Day`, :guilabel:`Week`, or :guilabel:`Year` to present the
calendar in that corresponding view.
To navigate forward or backward in time, in the selected increment (:guilabel:`Month`,
:guilabel:`Week`, etc.), click the :guilabel:`← (left arrow)` or :guilabel:`→ (right arrow)` to move
either forward or backward in that specified amount of time.
For example, if :guilabel:`Month` is selected, the arrows adjust the view by one month.
To return to a view containing the current day, click the :guilabel:`Today` button at any time.
Team members are listed alphabetically on individual lines, and their requested time off,
regardless of the status (*validated* or *to approve*), is visible on the calendar.
Each employee is color-coded. The employee's color is selected at random, and does *not* correspond
to the type of time off they requested.
The status of the time off is represented by the color detail of the request, either appearing solid
(*validated*) or striped (*to approve*).
The number of days or hours requested is written on the request (if there is enough space).
At the bottom of the calendar, in the :guilabel:`Total` line, a bar graph shows how many people are
projected to be out on any given day. The number on each individual bar represents the number of
employees out for those highlighted days.
Click on a time off entry to view the details for the specific time off entry. The total number of
hours or days are listed, along with the start and end time of the time off. To view the details of
the time off request in a modal, click the :guilabel:`View` button.
.. image:: time_off/overview.png
:align: center
:alt: Overview of the user's team, with time off requests shown.
My time
=======
The :guilabel:`My Time` section of the *Time Off* application contains the time off dashboard, as
well as the user's time off requests and allocations.
.. _time_off/dashboard:
Dashboard
---------
All users have access to the time off dashboard, which is the default view in the *Time Off*
application. The dashboard can also be accessed at any point in the application by navigating to
:menuselection:`Time Off app --> My Time --> Dashboard`.
The current year is displayed, and the current day is highlighted in red.
To change the view, click on the :guilabel:`Year` button to reveal a drop-down menu. Then, select
either :guilabel:`Day`, :guilabel:`Week`, or :guilabel:`Month` to present the calendar in that
corresponding view.
To change the presented dates, click the :guilabel:`← (left arrow)` or :guilabel:`→ (right arrow)`
icons to the left of the :guilabel:`Year` button. The calendar view adjusts in increments of the
presented view.
For example, if :guilabel:`Year` is selected, the arrows adjust the view by one year.
To change the view at any point to a view that includes the current date, click the
:guilabel:`Today` button.
Above the calendar view is a summary of the user's time off balances. Every time off type that has
been allocated appears in its own summary box. Each summary lists the type of time off, the
corresponding icon, the current available balance (in hours or days), and an expiration date (if
applicable).
To view the full details of a time off balance, click the :guilabel:`? (question mark)` icon at the
end of the :guilabel:`(DAYS/HOURS) AVAILABLE` on the time off summary. The complete details are
presented in a popover window, including the :guilabel:`Allocated` time, future :guilabel:`Accrual`
time, :guilabel:`Approved` time off scheduled, :guilabel:`Planned` time off, and the currently
:guilabel:`Available` time off.
.. image:: time_off/balance-details.png
:align: center
:alt: A view of the complete time off balance details in the popover window.
A user is also able to see how much time off they will have accrued in the future. On the right side
of the time off summary blocks, there is a :guilabel:`Balance at the (date)` field. Click on the
date, and a calendar selector popover appears.
The current date is the default date selected. Navigate to the desired date, and Odoo displays the
time off balances the user will have on that date. This takes into account all time off currently
planned and approved. To return to the current date, click the :guilabel:`Today` button to the right
of the date field.
On the right side of the calendar, the various time off types are displayed, with their
corresponding colors. The :guilabel:`Legend` explains how the various statuses for time off requests
are presented.
Time off that has been validated appears in a solid color (in the color specified in the
:guilabel:`Time Off Type` section above the :guilabel:`Legend`). Time off requests that still need
to be approved appear with white stripes in the color. Refused time off requests have a colored line
through the dates.
New time off requests can be made from the dashboard. Click the :guilabel:`New` button at the top of
the dashboard, and a :ref:`New Time Off <time_off/request-time-off>` modal appears.
New allocation requests can also be made from the dashboard. Click the :guilabel:`New Allocation
Request` button at the top of the dashboard to request more time off, and a :ref:`New Allocation
<time_off/request-allocation>` modal appears.
.. image:: time_off/dashboard.png
:align: center
:alt: Time off dashboard view with the legend, time off summaries, and view buttons highlighted.
.. _time_off/my-time-off:
My time off
-----------
To view a list of all the user's time off requests, navigate to :menuselection:`Time Off app --> My
Time --> My Time Off`. Here, all time off requests, both past and present, appear in a list view.
The list includes the following information for each request: the :guilabel:`Time Off Type`,
:guilabel:`Description`, :guilabel:`Start Date`, :guilabel:`End Date`, :guilabel:`Duration`, and the
:guilabel:`Status`.
A new time off request can be made from this view. Click the :guilabel:`New` button to :ref:`request
time off <time_off/request-time-off>`.
.. _time_off/my-allocations:
My allocations
--------------
To view a list of all the user's allocations, navigate to :menuselection:`Time Off app --> My Time
--> My Allocations`. All allocations and requested allocations appear in a list view.
The information presented on the :guilabel:`My Allocations` page includes: the :guilabel:`Time Off
Type`, :guilabel:`Description`, :guilabel:`Amount`, :guilabel:`Allocation Type`, and
:guilabel:`Status`.
A new allocation request can be made from this view, as well. Click the :guilabel:`New` button to
:ref:`request an allocation <time_off/request-allocation>`.
.. _time_off/reporting:
Reporting
=========
The reporting feature allows users to view time off for their team, either by employee or type of
time off. This allows users to see which employees are taking time off, how much time off they are
taking, and what time off types are being used.
Any report can be added to a spreadsheet through the *Insert in Spreadsheet* button that appears in
the top-left of a report. If the *Documents* application is installed, an option to add the report
to a spreadsheet appears. If not, the report can be added to a *Dashboard*.
By employee
-----------
To view a report of employee time off requests, navigate to :menuselection:`Time Off app -->
Reporting --> by Employee`.
The default report presents the current year's data in a list view, displaying all the employees in
alphabetical order. Each employee's line is collapsed by default. To expand a line, click anywhere
on the line.
The view expands, and has the time off requests organized by time off type. Click anywhere on a time
off type line to expand it, and view all the individual time off requests that fall under that type.
The information shown in the list includes: the :guilabel:`Employee` name, :guilabel:`Number of
Days` off requested, the :guilabel:`Start Date`, :guilabel:`End Date`, :guilabel:`Status`, and
:guilabel:`Description`.
.. image:: time_off/employee-report.png
:align: center
:alt: Report of time off, shown by each employee in a list view.
The report can be displayed in other ways, as well. Click the corresponding button option in the
top-right corner of the page to view the data in that specific way. The various options are a
:guilabel:`List` (the default view), :guilabel:`Graph`, :guilabel:`Pivot` table, or
:guilabel:`Calendar` view.
.. image:: time_off/report-options.png
:align: center
:alt: The various other views highlighted, for the employee time off report.
When a selection has been made, additional options appear for that particular selection. For more
detailed information on the reports and their various options, refer to the :doc:`reporting
<../essentials/reporting>` documentation.
By type
-------
To view a list of all time off, organized by time off type, navigate to :menuselection:`Time Off app
--> Reporting --> by Type`. This shows all time off requests in a default bar chart.
Hover over a bar to view the :guilabel:`Duration (Days)` of that specific time off type.
.. image:: time_off/bar-chart.png
:align: center
:alt: The various time off types, and how many days requested, in a bar chart. Details are
highlighted in a red box.
Click on a bar to go to a detailed list view of all the time off requests for that time off type.
Each request is listed, with the following information displayed: the :guilabel:`Employee`,
:guilabel:`Number of Days`, :guilabel:`Request Type`, :guilabel:`Start Date`, :guilabel:`End Date`,
:guilabel:`Status`, and the :guilabel:`Description`.
The report can be displayed in other ways, as well. Click the corresponding button option in the
top-right corner of the page to view the data in that way. The various options are a
:guilabel:`Graph` (the default view), :guilabel:`List`, or :guilabel:`Pivot` table.
When a selection has been made, additional options appear for that particular selection. For more
detailed information on the reports and their various options, refer to the :doc:`reporting
<../essentials/reporting>` documentation.