documentation/content/applications/hr/payroll/payslips.rst
Lara Martini (larm) 36a0e84a17 [ADD] Lunch: manage accounts
closes odoo/documentation#8700

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: jero-odoo <jero@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: StraubCreative <zst@odoo.com>
2024-04-13 03:51:46 +00:00

470 lines
22 KiB
ReStructuredText

========
Payslips
========
*Payslips* are created either by the employees themselves or their managers, and are approved by
authorized employees (typically managers). Then, once payslips are approved, employees are issued
payslips and are paid either by check or direct deposit, depending on how their employee profile is
configured.
The :guilabel:`Payslips` drop-down header of the :menuselection:`Payroll` application consists of
three sections: :guilabel:`To Pay`, :guilabel:`All Payslips`, and :guilabel:`Batches`.
These three sections provide all the tools needed to create payslips for employees, including
individual payslips, a batch of payslips, or commission payslips.
.. image:: payslips/payslips.png
:align: center
:alt: Payslips menu selection in Payroll.
.. _payroll/to-pay:
To pay
======
Click on :menuselection:`Payroll app --> Payslips --> To Pay` to see the payslips that need to be
paid. On this page, Odoo displays the payslips that have not been generated yet, and can be created
from this dashboard.
.. image:: payslips/all-pay-slips.png
:align: center
:alt: View all payslips that need to be paid on the Payslips To Pay page.
Each payslip lists the :guilabel:`Reference` number for the individual payslip, the
:guilabel:`Employee` name, the :guilabel:`Batch Name`, the :guilabel:`Company`, the :guilabel:`Basic
Wage`, :guilabel:`Gross Wage`, :guilabel:`Net Wage`, and the :guilabel:`Status` of the payslip.
Click on an individual payslip entry to view the details for that individual payslip.
.. _payroll/new-payslip:
Create a new payslip
--------------------
A new payslip can be created from either the :ref:`Payslips To Pay <payroll/to-pay>` page or the
:ref:`Employee Payslips <payroll/all-payslips>` page.
Create a new payslip by clicking the :guilabel:`New` button in the top-left corner.
A blank payslip form is loaded, where the necessary payslip information can be entered.
Payslip form
~~~~~~~~~~~~
On the blank payslip form, several fields are required. Most of the required fields auto-populate
after an employee is selected.
Fill out the following information on the payslip form:
- :guilabel:`Employee`: type in the name of an employee, or select the desired employee from the
drop-down list in this field. This field is **required**.
.. note::
It is recommended to **only** create payslips for employees that are already in the database.
If there is no current employee record (and therefore no employee contract) it is recommended
to create the new employee in the *Employees* application **before** creating payslips for that
employee. Refer to the :doc:`new employee <../employees/new_employee>` documentation for
instructions on how to add an employee.
- :guilabel:`Period`: the first day to the last day of the *current* month auto-populates the
:guilabel:`Period` fields by default. The dates can be changed, if desired.
To change the start date, click on the first date in the :guilabel:`Period` field to reveal a
pop-up calendar. On this calendar, use the :guilabel:`< (less-than)` and :guilabel:`>
(greater-than)` icons to select the desired month. Then, click on the desired day to select that
specific date.
Repeat this process to modify the end date for the payslip. These fields are **required**.
- :guilabel:`Contract`: using the drop-down menu, select the desired contract for the employee. Only
the available corresponding contracts for the selected employee appear as options. This field is
**required**.
- :guilabel:`Batch`: using the drop-down menu in this field, select the batch of payslips this new
payslip should be added to.
- :guilabel:`Structure`: using the drop-down menu, select the salary structure type. Only the
corresponding structures associated with the selected contract for the employee appear as options.
If no employee and/or no contract is selected yet, all available :guilabel:`Structures` appear in
the list. Once an employee and/or contract is selected, any unavailable :guilabel:`Structures` set
for that employee and/or contract do not appear. This field is **required**.
.. image:: payslips/new-payslip.png
:align: center
:alt: The top fields for a new payslip all filled out for a February payslip.
.. note::
Typically, after making a selection in the :guilabel:`Employee` field, Odoo auto-populates all
other required fields (besides the :guilabel:`Period` field), but **only** if that information is
already on that employee's form in the *Employees* app.
.. important::
If modifications to auto-populated fields are made, it is recommended to check with the
accounting department to ensure every entry that affects the *Accounting* application is correct.
.. _payroll/worked-days-inputs:
Worked days & inputs tab
************************
- :guilabel:`Worked Days`: the entries under :guilabel:`Worked Days` (including the
:guilabel:`Type`, :guilabel:`Description`, :guilabel:`Number of Days`, :guilabel:`Number of
Hours`, and :guilabel:`Amount`) are automatically filled in, based on what was entered for the
:guilabel:`Period`, :guilabel:`Contract`, and :guilabel:`Structure` fields of the payslip form.
- :guilabel:`Other Inputs`: additional inputs affecting the payslip can be entered in this section,
such as deductions, reimbursements, and expenses.
Click :guilabel:`Add a line` to create an entry in the :guilabel:`Other Inputs` section.
Using the drop-down menu in the :guilabel:`Type` column, select a :guilabel:`Type` for the input.
Next, enter a :guilabel:`Description`, if desired. Lastly, enter the amount in the
:guilabel:`Count` field.
.. image:: payslips/worked-days-tab.png
:align: center
:alt: The fields filled out in the worked days and inputs tab.
Salary computation tab
**********************
- :guilabel:`Salary Computation`: the :guilabel:`Salary Computation` tab is automatically filled in
after the :guilabel:`Compute Sheet` button is clicked. Doing so displays the wages, deductions,
taxes, etc. for the entry.
- :guilabel:`Has Negative Net To Report`: click the checkbox if the employee has a negative net
amount for this payslip. This **only** appears if the employee's payslip has a negative balance.
.. image:: payslips/salary-comp-tab.png
:align: center
:alt: The fields filled out in the salary computation tab.
Other info tab
**************
- :guilabel:`Payslip Name`: type in a name for the payslip in this field. The name should be short
and descriptive, such as `(Employee Name) April 2023`. This field is **required**.
- :guilabel:`Company`: select the company the payslip applies to using the drop-down menu in this
field. This field is **required**.
- :guilabel:`Close Date`: enter the date that the payment is made to the employee in this field.
Click in the field to reveal a calendar pop-up window. Using the :guilabel:`< >
(less-than/greater-than)` icons, navigate to the desired month and year.
Then, click on the desired date to select it.
- :guilabel:`Date Account`: enter the date on which the payslip should be posted in this field.
- :guilabel:`Salary Journal`: this field auto-populates after selecting an existing
:guilabel:`Employee`. This field **cannot** be edited, as it is linked to the *Accounting*
application. This field is **required**.
- :guilabel:`Accounting Entry`: if applicable, this field is automatically populated once the
payslip is confirmed. This field **cannot** be modified.
- :guilabel:`Add an Internal Note...`: any note or reference message for the new entry can be typed
in this field.
.. image:: payslips/other-info-tab.png
:align: center
:alt: The fields filled out in the other info tab.
Process the new payslip
~~~~~~~~~~~~~~~~~~~~~~~
When all the necessary information on the payslip is entered, click the :guilabel:`Compute Sheet`
button. Upon doing so, all the information on the payslip is saved, and the :guilabel:`Salary
Computation` tab auto-populates, based on the information on the employee's contract or attendance
records.
If any modifications need to be made, first click the :guilabel:`Cancel` button, then click the
:guilabel:`Set to Draft` button. Make any desired changes, then click the :guilabel:`Compute Sheet`
button once again, and the changes are reflected in the :guilabel:`Worked Days` and
:guilabel:`Salary Computation` tabs.
Once everything on the payslip form is correct, click the :guilabel:`Create Draft Entry` button to
create the payslip.
Then, a confirmation pop-up window appears, asking :guilabel:`Are you sure you want to proceed?`.
Click :guilabel:`OK` to confirm.
The chatter is automatically updated to show the email sent to the employee, along with a PDF copy
of the payslip.
.. note::
The database may need to be refreshed for the payslip and email to appear.
To print the payslip, click the :guilabel:`Print` button. To cancel the payslip, click the
:guilabel:`Cancel` button.
.. image:: payslips/payslip-chatter.png
:align: center
:alt: The new payslip is emailed to the employee and the email appears in the chatter.
Next, the payment must be sent to the employee. To do this, click the :guilabel:`Register Payment`
button. Doing so reveals a pop-up form, in which the desired :guilabel:`Bank Journal` that the
payment should be made against must be selected from a drop-down menu. Then, click the
:guilabel:`Confirm` button to confirm the journal, and return to the payslip.
.. important::
In order for a payslip to be paid, the employee *must* have a bank account entered in their
contact information. If there is no bank information, a payslip cannot be paid, and an error
appears when the :guilabel:`Make Payment` button is clicked. Banking information can be found in
the :ref:`Private Information <employees/private-info>` tab on the employee's card in the
*Employees* app. Edit the employee card, and add banking information, if it is missing.
.. image:: payslips/banking.png
:align: center
:alt: Banking information can be entered in an employee's card.
Odoo automatically checks bank account information. If there is an error with the employee's listed
bank account, an error appears in a pop-up window, stating, *The employee bank account is
untrusted.* If this error appears, update the employee's bank account information on their
:ref:`Employee Form <employees/private-info>`.
If a payment needs to be canceled or refunded, click the corresponding :guilabel:`Cancel` or
:guilabel:`Refund` button, located at the top-left of the screen.
.. tip::
Before processing payslips, it is best practice to check the *Warnings* section of the *Payroll*
app dashboard. Here, all possible issues concerning payroll appear.
To view the warnings, navigate to :menuselection:`Payroll app --> Dashboard`. The warnings appear
in the top-left corner of the dashboard.
.. image:: payslips/warnings.png
:align: center
:alt: The dashboard view of the Payroll app, with the warnings box highlighted.
Warnings are grouped by type, such as `Employees Without Running Contracts` or `Employees Without
Bank account Number`. Click on a warning to view all entries associated with that specific issue.
If the warnings are not resolved, at any point in the payslip processing process, an error may
occur. Errors appear in a pop-up window, and provide details for the error, and how to resolve
them.
Payslips **cannot** be completed if there are any warnings or issues associated with the payslip.
.. _payroll/all-payslips:
All payslips
============
To view all payslips, regardless of status, go to :menuselection:`Payroll app --> Payslips --> All
Payslips`. The :guilabel:`Employee Payslips` page loads, displaying all payslips, organized by
batch, in a default nested list view.
Click on the :guilabel:`▶ (right arrow)` next to an individual batch name to view all the payslips
in that particular batch, along with all the payslip details.
The number of payslips in the batch is written in parenthesis after the batch name. The
:guilabel:`Status` for each individual payslip appears on the far-right side, indicating one of the
following status options:
- :guilabel:`Draft`: the payslip is created, and there is still time to make edits, since the
amounts are not calculated.
- :guilabel:`Waiting`: the payslip has been calculated, and the salary details can be found in the
*Salary Computation* tab.
- :guilabel:`Done`: the payslip is calculated and ready to be paid.
- :guilabel:`Paid`: the employee has been paid.
.. image:: payslips/all-payslips.png
:align: center
:alt: View all payslips organized by batches. Click on the arrow to expand each batch.
Click on an individual payslip to view the details for that payslip on a separate page. Using the
breadcrumb menu, click :guilabel:`Employee Payslips` to go back to the list view of all payslips.
A new payslip can be created from the :guilabel:`Employee Payslips` page, by clicking the
:guilabel:`New` button in the upper-left corner. Doing so reveals a separate blank payslip form
page. On that blank payslip form page, enter all the necessary information, as described in the
:ref:`Create new payslips <payroll/new-payslip>` section.
To print PDF versions of payslips from the *Payslips to Pay* or :guilabel:`Employee Payslips` pages,
first select the desired payslips by clicking on the individual checkbox to the left of each payslip
to be printed. Or, click the box to the left of the :guilabel:`Reference` column title, which
selects all visible payslips on the page. Then, click the :guilabel:`Print` button to print the
payslips.
Payslips can also be exported to an Excel spreadsheet. To export **all** payslips, click on the
:guilabel:`⚙️ (gear)` icon at the end of the words :guilabel:`Employee Payslips` in the top-left
corner. This reveals a drop-down menu. Click :guilabel:`Export All` to export all payslips to a
spreadsheet.
.. image:: payslips/export.png
:align: center
:alt: Click on the Export All smart button to export all payslips to an Excel payslip.
To export only select payslips, first select the payslips to be exported from the list. Then, click
the checkbox to the left of each individual payslip to select it. As payslips are selected, a smart
button appears in the top-center of the page, indicating the number of selected payslips. Then,
click the :guilabel:`⚙️ (gear) Actions` icon in the top-center of the page, and click
:guilabel:`Export`.
.. image:: payslips/export-select.png
:align: center
:alt: The individual list of employee ayslips with three selected to be exported.
.. note::
Both *To Pay* and *All Payslips* display all the detailed information for each payslip.
Batches
=======
To view payslips in batches, navigate to :menuselection:`Payroll app --> Payslips --> Batches` to
display all the payslip batches that have been created. These payslip batches are displayed in a
list view, by default.
Each batch displays the :guilabel:`Name`, :guilabel:`Date From` and :guilabel:`Date To` dates, its
:guilabel:`Status`, the number of payslips in the batch (:guilabel:`Payslips Count`), and the
:guilabel:`Company`.
.. image:: payslips/batches.png
:align: center
:alt: View displaying all batches created.
Create a new batch
------------------
To create a new batch of payslips from the :guilabel:`Payslips Batches` page
(:menuselection:`Payroll app --> Payslips --> Batches`), click the :guilabel:`New` button in the
top-left corner. Doing so reveals a blank payslip batch form on a separate page.
On the new payslip batch form, enter the :guilabel:`Batch Name`.
Next, select the date range to which the batch applies. Click into one of the :guilabel:`Period`
fields, and a calendar pop-up window appears. From this calendar pop-up window, navigate to the
correct month, and click on the corresponding day for both the start and end dates of the batch.
The current company populates the :guilabel:`Company` field. If operating in a multi-company
environment, it is **not** possible to modify the :guilabel:`Company` from the form. The batch
**must** be created while in the database for the desired company.
.. image:: payslips/new-batch-details.png
:align: center
:alt: Enter the details for the new batch.
.. _payroll/batch-process:
Process a batch
---------------
Click on an individual batch to view the details for that batch on a separate page. On this batch
detail page, different options (buttons) appear at the top, depending on the status of the batch:
- :guilabel:`New` status: batches without any payslips added to them have a status of
:guilabel:`New`. The following button options appear for these batches:
.. image:: payslips/batch-new.png
:align: center
:alt: A batch with a status of new, with the available buttons highlighted.
- :guilabel:`Add Payslips`: click the :guilabel:`Add Payslips` button to add payslips to the
batch, and an :guilabel:`Add Payslips` pop-up window appears. Only payslips that can be added
to the batch (payslips not currently part of a batch) appear on the list.
Select the desired payslips by clicking the checkbox to the left of each payslip name, then
click the :guilabel:`Select` button to add them to the batch. Once payslips are selected and
added to the batch, the status changes to :guilabel:`Confirmed`.
- :guilabel:`Generate Payslips`: after payslips have been added to the batch, click the
:guilabel:`Generate Payslips` button to process the payslips and create individual payslips in
the database.
A :guilabel:`Generate Payslips` pop-up window appears. If only a specific :guilabel:`Salary
Structure` and/or specific :guilabel:`Department` is desired to make payslips for, select them
from the corresponding drop-down menus. If no selections are made, then all payslips listed in
the pop-up window are processed as usual.
Click the :guilabel:`Generate` button to create the payslips. The :guilabel:`Generate Payslips`
button changes to a :guilabel:`Create Draft Entry` button, and the status changes to
:guilabel:`Confirmed`.
- :guilabel:`Confirmed` status: batches that have been created and have payslips in them, but the
payslips have *not* been processed, have a status of :guilabel:`Confirmed`. The following two
button options appear for these batches:
.. image:: payslips/batch-confirmed.png
:align: center
:alt: A batch with a status of confirmed, with the available buttons highlighted.
- :guilabel:`Create Draft Entry`: click the :guilabel:`Create Draft Entry` button to confirm the
individual payslips (and the batch), and create a draft of the payslips. The batch now has a
status of :guilabel:`Done`.
- :guilabel:`Set to Draft`: if at any point the batch needs to be reverted back to a status of
:guilabel:`New`, click the :guilabel:`Set to Draft` button. This action does **not** remove any
payslips that have already been added to the batch.
- :guilabel:`Done` status: batches with confirmed payslips in them have a status of
:guilabel:`Done`. The following button options appear for these batches:
.. image:: payslips/batch-done.png
:align: center
:alt: A batch with a status of done, with the available buttons highlighted.
- :guilabel:`Create Payment Report`: click the :guilabel:`Create Payment Report` button, and a
:guilabel:`Select a bank journal` pop-up window appears. Select the correct bank journal from
the drop-down menu.
The batch name appears in the :guilabel:`File name` field, but this can be modified, if desired.
Finally, click :guilabel:`Confirm` to process the payslips, and pay the employees.
- :guilabel:`Mark as paid`: after the payments have been created via the :guilabel:`Create Payment
Report` button, the payslips need to be marked as paid in the database.
Click the :guilabel:`Mark as paid` button, and the status of the batch changes to
:guilabel:`Paid`.
- :guilabel:`Set to Draft`: if at any point the batch needs to be reverted back to a status of
:guilabel:`New`, click the :guilabel:`Set to Draft` button. This action does **not** remove any
payslips that have already been added to the batch.
- :guilabel:`Paid` status: batches that have been completed have a status of :guilabel:`Paid`. No
other button options appear for this status.
.. image:: payslips/batch-paid-2.png
:align: center
:alt: A batch with a status of paid, with the available buttons highlighted.
On the batch detail page, the individual payslips in the batch are accessible, via the
:guilabel:`Payslips` smart button, located above the batch information, in the center. Click the
:guilabel:`Payslips` smart button to view a list of all the individual payslips.
Use the breadcrumb menu to navigate back to the individual batch detail page, or back to the list of
all batches.
Generate warrant payslips
-------------------------
Commissions are paid to employees in Odoo using *warrant payslips*.
Warrant payslips can be generated directly from the :guilabel:`Payslips Batches` page
(:menuselection:`Payroll app --> Payslips --> Batches`).
First, select the desired batches by clicking the box to the left of each batch for which commission
payslips should be created. Next, click the :guilabel:`Generate Warrant Payslips` button at the top
of the page.
Doing so reveals a :guilabel:`Generate Warrant Payslips` pop-up window, in which the necessary
information **must** be filled out.
.. image:: payslips/commission-details.png
:align: center
:alt: Enter the commission details.
In this pop-up window, click on the drop-down menus, located beside the :guilabel:`Period` field, to
reveal calendar pop-up windows. On these calendar pop-up windows, select the desired period for
which the payslips are being generated. Using the :guilabel:`< (left)` and :guilabel:`> (right)`
arrow icons, navigate to the correct month, and click on the date to select it.
In the :guilabel:`Department` field, select the desired department from the drop-down menu.
When a department is selected, the employees listed for that department appear in the
:guilabel:`Employee` section.
Under the :guilabel:`Employee` section, enter the :guilabel:`Commission Amount` for each employee in
the far-right column. To remove an employee, click the :guilabel:`🗑️ (trash)` icon to remove the
line.
Add a new entry by clicking :guilabel:`Add a Line`, and entering the :guilabel:`Employee` and the
appropriate :guilabel:`Commission Amount`.
Click the :guilabel:`Upload your file` button to add a file, if necessary. Any file type is
accepted.
Once all the commissions are properly entered, click the :guilabel:`Generate Payslips` button to
create the warrant payslips in a batch.
:ref:`Process the batch <payroll/batch-process>` in the same way as a typical batch to complete the
payment process.