Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
266 changes: 2 additions & 264 deletions content/applications/hr/payroll.rst
Original file line number Diff line number Diff line change
Expand Up @@ -354,270 +354,6 @@ calendar` button in the top-left. This creates entries for an :guilabel:`Even we
:align: center
:alt: New working schedule form.

Salary
======

.. _payroll/structure-types:

Structure types
---------------

In Odoo, structure types are used to identify group of people referring to the same payroll rules.
A structure type contains specific options and a subset of structures that will be used according
the situation.

In Odoo, an employee's payslip is based on *structures* and *structure types*, which both affect how
an employee enters timesheets. Each structure type is an individual set of rules for processing a
timesheet entry, which consists of different structures nested within it. Structure types define how
often an employee gets paid, the working hours, and if wages are based on a salary (fixed) or how
many hours the employee worked (varied).

For example, a structure type could be `Employee`, and that structure type could have two different
structures in it: a `Regular Pay` structure which includes all the separate rules for processing
regular pay, as well as a structure for an `End of Year Bonus` which includes the rules only for the
end of year bonus. Both the `Regular Pay` structure and `End of Year Bonus` structure are structures
within the `Employee` structure type.

The different :guilabel:`Structure Types` can be seen by navigating to :menuselection:`Payroll app
--> Configuration --> Salary: Structure Types`.

Two default structure types are configured in Odoo: :guilabel:`Employee` and :guilabel:`Worker`.

Typically, :guilabel:`Employee` is used for salaried employees, which is why the wage type is
:guilabel:`Monthly Fixed Wage`, and :guilabel:`Worker` is typically used for employees paid by the
hour, so the wage type is :guilabel:`Hourly Wage`.

.. image:: payroll/structure-type.png
:align: center
:alt: List of all currently configured structure types available to use.

.. _payroll/new-structure-type:

New structure type
~~~~~~~~~~~~~~~~~~

To make a new structure type, click the :guilabel:`New` button, and a blank structure type form
appears.

Proceed to enter information in the fields. Most fields are pre-populated, but all the fields can be
modified.

- :guilabel:`Structure Type`: enter the name for the new structure type, such as `Employee` or
`Worker`.
- :guilabel:`Country`: select the country that the new structure type applies to from the drop-down
menu.
- :guilabel:`Wage Type`: select what type of wage the new structure type uses, either
:guilabel:`Fixed Wage` or :guilabel:`Hourly Wage`.

If the type is to be used for salaried employees, who receive the same wage every pay period,
select :guilabel:`Fixed Wage`.

If the type is to be used for employees, who receive wages based on how many hours they worked
during a pay period, select :guilabel:`Hourly Wage`.
- :guilabel:`Default Scheduled Pay`: select the typical pay schedule for the new structure type from
the drop-down menu. Options are :guilabel:`Monthly`, :guilabel:`Quarterly`,
:guilabel:`Semi-annually`, :guilabel:`Annually`, :guilabel:`Weekly`, :guilabel:`Bi-weekly`,
:guilabel:`Bi-monthly`. This indicates how often this specific type of structure is paid out.
- :guilabel:`Default Working Hours`: select the default working hours for the new structure type
from the drop-down menu. All available working hours for the currently selected company appear in
the drop-down menu. The default working hours that are pre-configured in Odoo is the
:guilabel:`Standard 40 hours/week` option. If the needed working hours do not appear in the list,
a :ref:`new set of default working hours can be created <new-default-working-hours>`.
- :guilabel:`Regular Pay Structure`: type in the name for the regular pay structure. It will be
used as the default option when generating payslips.
- :guilabel:`Default Work Entry Type`: For employees whose contracts is referred under this
structure type, the main work entry type used for all period of work is defined here. It will
commonly be set as **Attendance**,
:guilabel:`Overtime Hours`, :guilabel:`Generic Time Off`, :guilabel:`Compensatory Time Off`,
:guilabel:`Home Working`, :guilabel:`Unpaid`, :guilabel:`Sick Time Off`, :guilabel:`Paid Time
Off`, :guilabel:`Out Of Contract`, :guilabel:`Extra Hours`, and :guilabel:`Long Term Time Off`.

To view all the options for the :guilabel:`Default Work Entry Type`, click the :guilabel:`Search
More..` button at the bottom of the drop-down list.

Depending on the localization settings, this list may contain more options in addition to the
default options.

.. image:: payroll/new-structure.png
:align: center
:alt: New structure type form to fill out when creating a new structure type.

.. _new-default-working-hours:

New default working hours
~~~~~~~~~~~~~~~~~~~~~~~~~

To make new default working hours, type the name for the new working hours in the :guilabel:`Default
Working Hours` field on the new structure type form. Click :guilabel:`Create and edit`. A default
working hours form pops up. The default working hours form has two sections, a general information
section and a tab listing out all the individual working hours by day and time. When the form is
completed, click :guilabel:`Save & Close`.

- :guilabel:`Name`: type in the name for the new default working hours. This should be descriptive
and clear to understand, such as `Standard 20 Hours/Week`.
- :guilabel:`Company`: select the company that can use these new default working hours from the
drop-down menu. Blank field means it's available for all companies.
- :guilabel:`Average Hour Per Day`: the average hours per day field is auto-populated, based on the
working hours configured in the :guilabel:`Working Hours` tab. This entry affects resource
planning, since the average daily hours affect what resources can be used, and in what quantity,
per work day.
- :guilabel:`Timezone`: select the time zone to be used for the new default working hours from the
drop-down menu.
- :guilabel:`Company Full Time`: enter the number of hours per week an employee would need to work
to be considered a full-time employee. Typically, this is approximately 40 hours, and this number
affects what types of benefits an employee can receive, based on their employment status
(full-time vs part-time).
- :guilabel:`Work Time Rate`: this percentage is auto-generated based on the entry for the
:guilabel:`Company Full Time` and the working hours configured in the :guilabel:`Working Hours`
tab. This number should be between `0.00%` and `100%`, so if the percentage is above `100%`, it is
an indication that the working times and/or :guilabel:`Company Full Time` hours need adjustment.
- :guilabel:`Working Hours` Tab: this tab is where each day's specific working hours are listed.
When a new default working hour form is created, the :guilabel:`Working Hours` tab is
pre-populated with a default 40-hour week, with each day divided into three timed sections.

Every day has morning (8:00-12:00), lunch (12:00-13:00), and evening (13:00-17:00) hours
configured, using a 24 hour time format.

To adjust any of these hours, click on the specific field to adjust, and make the adjustment using
the drop-down menus, or in the specific case of the times, type in the desired time.

Keep in mind, working hours are company-specific, and cannot be shared between companies. Each
company needs to have their own working hours set.

.. note::
If the working hours are not consistent each week, and the hours are on a bi-weekly schedule
instead, click the :guilabel:`Switch to 2 week calendar` button at the top of the new default
working hours form. This changes the :guilabel:`Working Hours` tab to display two weeks of
working times that can be adjusted.

Structures
----------

*Salary structures* are the different situations an employee could be paid within a specific
*structure*, and are specifically defined by various rules.

The amount of structures a company needs for each structure type depends on how many different ways
employees are paid, and how their pay is calculated. For example, a common structure that could be
useful to add may be a `Bonus`.

To view all the various structures for each structure type, go to :menuselection:`Payroll app -->
Configuration --> Salary --> Structures`.

Each :ref:`structure type <payroll/structure-types>` lists the various structures associated with
it. Each structure contains a set of rules that define it.

.. image:: payroll/salary-structure.png
:align: center
:alt: All available salary structures.

Click on a structure to view its :guilabel:`Salary Rules`. These rules define how the payslip will
be computed for the employee.

.. image:: payroll/structure-regular-pay-rules.png
:align: center
:alt: Salary structure details for Regular Pay, listing all the specific Salary Rules.

Rules
-----

Each structure has a set of salary rules used to compute the various amounts considered in the pay.
These rules are configured by the localization and affect the computation of the salaries. Modification
or creation of rules should only be done when necessary.

To view all the rules, go to :menuselection:`Payroll app --> Configuration --> Salary --> Rules`.
Click on a structure (such as :guilabel:`Regular Pay`) to view all the rules.

To make a new rule, click :guilabel:`New`. A new rule form appears. Enter the following information
in the fields.

Top section
~~~~~~~~~~~

- :guilabel:`Rule Name`: enter a name for the rule. This field is required.
- :guilabel:`Category`: select a category the rule applies to from the drop-down menu, or enter a
new one. This field is required.
- :guilabel:`Code`: enter a code to be used for this new rule. This field is required.
- :guilabel:`Sequence`: enter a number indicating when this rule is calculated in the sequence of
all other rules.
- :guilabel:`Salary Structure`: select a salary structure the rule applies to from the drop-down
menu, or enter a new one. This field is required.
- :guilabel:`Active`: enable this toggle, so the rule is available for use. Disable the toggle to
continue to show it on the payslip, but skip the computation.
- :guilabel:`Appears on payslip`: tick the checkbox to have the rule appear on employee printed
payslip.
- :guilabel:`View on Employer Cost Dashboard`: tick the checkbox to have the rule appear on the
:guilabel:`Employer Cost` report, located on the *Payroll* app dashboard.
- :guilabel:`View on Payroll Reporting`: tick the checkbox to have the rule appear on payroll
reports.

.. image:: payroll/new-rule.png
:align: center
:alt: Enter the information for the new rule on the new rule form.

General tab
~~~~~~~~~~~

Conditions
**********

- :guilabel:`Condition Based on`: select from the drop-down menu whether the rule is
:guilabel:`Always True` (always applies), a :guilabel:`Range` (applies to a specific range, which
is entered beneath the selection), or a :guilabel:`Python Expression` (the code is entered beneath
the selection). This field is required.

Computation
***********

- :guilabel:`Amount Type`: select from the drop-down menu whether the amount is a :guilabel:`Fixed
Amount`, a :guilabel:`Percentage (%)`, or a :guilabel:`Python Code`. Depending on what is
selected, the fixed amount, percentage, or Python code needs to be entered next. This field is
required.

Company contribution
********************

- :guilabel:`Partner`: if another company financially contributes to this rule, select the company
from the drop-down menu.

Description tab
~~~~~~~~~~~~~~~

Provide any additional information in this tab to help clarify the rule. This tab only appears in
the rule form.

Accounting tab
~~~~~~~~~~~~~~

- :guilabel:`Debit Account`: select the debit account from the drop-down menu the rule affects.
- :guilabel:`Credit Account`: select the credit account from the drop-down menu the rule affects.
- :guilabel:`Not computed in net accountability`: If checked, the amount of the rule will be show
independantly from the Net Salary, to allow a better reporting in Accounting.

Other input types
-----------------

When creating payslips, it is sometimes necessary to add other entries for specific circumstances,
like expenses, reimbursements, or deductions. These other inputs can be configured by navigating to
:menuselection:`Payroll app --> Configuration --> Salary --> Other Input Types`.

.. image:: payroll/other-input.png
:align: center
:alt: A list of other input types for payroll that can be selected when creating a new entry for
a payslip.

To create a new input type, click the :guilabel:`New` button. Enter the :guilabel:`Description`, the
:guilabel:`Code`, and which structure it applies to in the :guilabel:`Availability in Structure`
field.

.. important::
The :guilabel:`Code` is used in the salary rules to compute payslips. If the
:guilabel:`Availability in Structure` field is left blank, it indicates that the new input type
is available for all payslips and is not exclusive to a specific structure.

.. image:: payroll/input-type-new.png
:align: center
:alt: A new Input Type form filled in.

.. _payroll/salary-attachment-types:

Salary package configurator
Expand Down Expand Up @@ -894,6 +630,7 @@ form.

.. seealso::
- :doc:`payroll/contracts`
- :doc:`payroll/salaries`
- :doc:`payroll/work_entries`
- :doc:`payroll/time_off_to_report`
- :doc:`payroll/salary_attachments`
Expand All @@ -909,6 +646,7 @@ form.
:titlesonly:

payroll/contracts
payroll/salaries
payroll/work_entries
payroll/time_off_to_report
payroll/salary_attachments
Expand Down
Binary file not shown.
Binary file removed content/applications/hr/payroll/new-rule.png
Binary file not shown.
Binary file removed content/applications/hr/payroll/new-structure.png
Binary file not shown.
Loading