Skip to content
Closed
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
2 changes: 2 additions & 0 deletions content/applications/hr/payroll.rst
Original file line number Diff line number Diff line change
Expand Up @@ -895,6 +895,7 @@ form.
.. seealso::
- :doc:`payroll/contracts`
- :doc:`payroll/work_entries`
- :doc:`payroll/time_off_to_report`
- :doc:`payroll/salary_attachments`
- :doc:`payroll/payslips`
- :doc:`payroll/batches`
Expand All @@ -909,6 +910,7 @@ form.

payroll/contracts
payroll/work_entries
payroll/time_off_to_report
payroll/salary_attachments
payroll/payslips
payroll/batches
Expand Down
77 changes: 77 additions & 0 deletions content/applications/hr/payroll/time_off_to_report.rst
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
==================
Time off to report
==================
Comment on lines +1 to +3
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Hi Lara! More lengthy of a comment here (:

Since this is a shorter doc, I'm wondering if you'd like to experiment with our new action-focused document type and rewrite this in a new style. Currently, the doc is clear in explaining the dashboard, context, and examples, but if this document is meant to be read for only one reason (resolve payroll discrepancies), we can shift this doc to be more about what the user needs to do and why.

So instead of titling this "Tiome off to report", for instance, we can title it something like "Resolve time off conflicts".

In addition, I have some questions for you to consider to help reframe this doc in a more action-oriented way:

  • Who is the intended user for this doc (payroll administrators, HR officers, or general employees)?
  • What is the specific goal this user is trying to accomplish when they open this page?
  • At what point in their workflow would the payroll admin land here? Can we structure the doc so they can get from “problem identified” → “steps to fix it” quickly?
  • Can we reframe the introduction: instead of explaining payroll theory, can we start with the problem the user faces (e.g., “An employee’s time off was approved after payroll was processed—what do you do?”)?
  • What is the main decision point for the user—defer multiple entries at once, or handle them one by one?
  • Would it help to start each section title with a verb (e.g., “Defer multiple time off entries” → “Defer multiple entries at once”)?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

To give you a sense of the vibe I'm going for, itl'l be something like this:

Defer multiple time off entries

When employees request time off after payroll has already been processed, those entries must be deferred to the next pay period.

  1. Open :menuselection:Payroll app --> Work Entries --> Time Off to Report.
  2. Select the time off requests to defer:
  • To select individual requests, check the box next to each line.
  • To select all requests, check the box at the top of the :guilabel:Employee column.
  1. At the top of the list, click :menuselection:Actions --> Defer to Next Month.
  2. The selected entries are deferred to the following pay period.

Deferring multiple time off entries ensures time off balances remain accurate and eliminates the need to reissue paychecks.


Payroll is often processed a few days before the end of a pay period, so that employees can be paid
in a timely manner. When work schedules are predictable, this method often works. However, sometimes
employees take time off unexpectedly, especially sick time. When this occurs, there can be
discrepancies in payroll that must be addressed.

.. example::
The payroll department for a medium-sized company processes paychecks every two weeks, on
Wednesdays. Each employee is paid on the Friday after.

One employee is sick on the last Thursday and Friday of the two-week pay period. Since they have
automatically generated work entries based on their working schedule, and payroll is processed on
Wednesdays, the paycheck they receive incorrectly states that they were paid for a regular work
day for all ten days of the two-week pay period.

Instead of cancelling the paycheck and reissuing it, causing delays for the employee and more
work for the payroll department, Odoo allows for the deferral of the time off taken, to the
following pay period.

This ensures all time off balances are correct, and the employee is properly compensated for
their time.

.. _payroll/time-off-dashboard:

Time off dashboard
==================

When time off requests are submitted for a time period that was already processed on a payslip, the
time off requests appear in the *Time Off* page of the **Payroll** app. To access this, navigate to
:menuselection:`Payroll app --> Work Entries --> Time Off to Report`.

The :guilabel:`Time Off` page default filter is :guilabel:`To Defer`, and displays all requests with
a :guilabel:`Payslip State` of :guilabel:`To defer to next payslip`. This is because the employee
was *already paid* for that time as worked time, and it was logged as regular time spent at work.

.. image:: time_off_to_report/time-off-to-report.png
:alt: A list of all time off requests that were not approved before payslips were generated.

Defer multiple time off entries
===============================

In order to keep the employee's time off balances correct, the time off request **must** be applied
to the following pay period. This not only ensures time off request balances are current, it also
eliminates the need to redo work entries, cancel paychecks, and reissue paychecks.

To select the work entries to defer, tick the box to the left of the work entry line on the
:ref:`Time Off page <payroll/time-off-dashboard>`. To select all work entries in the list, tick the
box to the left of the :guilabel:`Employee` column title, at the top of the list.

Once any work entry is selected, two buttons appear at the top of the report: a :guilabel:`(#)
selected` button, and an :icon:`fa-gear` :guilabel:`Actions` button. The :guilabel:`(#) selected`
button indicates how many entries are currently selected.

When all the desired work entries are selected, click the :icon:`fa-gear` :guilabel:`Actions`
button, and a menu appears with several choices. Click :guilabel:`Defer to Next Month` in the list,
and all selected entries are deferred to the following month.

Defer individual time off entries
=================================

Time off requests appearing on the :ref:`Time Off page <payroll/time-off-dashboard>` can be deferred
individually. Click on an individual time off request, and the details for that request load.

The specific details for the time off request appear on the left-hand side, and all of the
employee's submitted time off requests appear on the right-hand side (including the request in the
details on the left-hand side).

To defer the time off request to the next payslip, click the :guilabel:`Report to Next Month` button
in the upper-left corner. Once processed, the :guilabel:`Report to Next Month` button disappears,
and the :guilabel:`Payslip State` changes from :guilabel:`To defer to next payslip` to
:guilabel:`Computed in Current Payslip`.

.. image:: time_off_to_report/single-defer.png
:alt: The time off details for an individual request that needs to be deferred.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
78 changes: 0 additions & 78 deletions content/applications/hr/payroll/work_entries.rst
Original file line number Diff line number Diff line change
Expand Up @@ -259,81 +259,3 @@ Click the :guilabel:`Print` button, and a PDF file is created with all the speci
.. note::
The :guilabel:`Print` button does **not** appear until at least one payslip is selected in the
list.

Time off to report
==================

If a time off request is submitted for a time period that was already processed on a payslip, the
time off request appears in the *Time Off* page in the *Payroll* app, which is accessible by
navigating to :menuselection:`Payroll app --> Work Entries --> Time Off to Report`.

On the :guilabel:`Time Off` page, the request appears with a status of :guilabel:`To defer to next
payslip`. This is because the employee was already paid for that day, and it was logged as time
spent at work, as a typical work day.

In order to keep the employee's time off balances correct, the time off request **must** be applied
to the following pay period. This not only ensures time off request balances are current, it also
eliminates the need to redo work entries, cancel paychecks, and reissue paychecks.

The most common scenario when this situation occurs, is when payslips are processed a day or two
before the pay period ends, and an employee is unexpectedly sick on one of the last days of the pay
period. The employee puts in a time off request for a day that was already processed on a payslip as
a regular work day. Instead of cancelling the payslip, modifying the work entries, and reissuing the
paycheck, Odoo allows for those time off requests to be applied to the following pay period,
instead.

To view all the time off requests that need to be deferred to the next payslip, navigate to
:menuselection:`Payroll app --> Work Entries --> Time Off to Report`. The default filter for this
report is :guilabel:`To Defer`.

All time off requests that need to be applied to the following pay period appear with a
:guilabel:`Payslip State` of :guilabel:`To defer to next payslip`.

.. image:: work_entries/time-off-to-report.png
:align: center
:alt: A list of all time off requests that were not approved before payslips were generated.

Defer multiple time off entries
-------------------------------

To select the work entries to defer, click the box to the left of the work entry line. To select all
work entries in the list, click the box to the left of the :guilabel:`Employees` column title, at
the top of the list.

Once any work entry is selected, two buttons appear at the top of the report: a :guilabel:`(#)
Selected` button, and an :guilabel:`Actions` button. The :guilabel:`(#) Selected` button indicates
how many entries are currently selected.

When all the desired work entries are selected, click the :guilabel:`Actions` button, and a menu
appears with several choices. Click :guilabel:`Defer to Next Month` in the list, and all selected
entries are deferred to the following month.

.. image:: work_entries/batch-defer.png
:align: center
:alt: The actions button and # Selected buttons that appear after any selections are made.

Defer individual time off entries
---------------------------------

Time off requests appearing on the :guilabel:`Time Off to Report` list can be deferred individually.

Click on an individual time off request, and the details for that request load.

The specific details for the time off request appear on the left-hand side, and all of the
employee's submitted time off requests appear on the right-hand side (including the request in the
details on the left-hand side).

To defer the time off request to the next payslip, click the :guilabel:`Report to Next Month` button
at the top. Once processed, the :guilabel:`Report to Next Month` button disappears, and the
:guilabel:`Payslip State` changes from :guilabel:`To defer to next payslip` to :guilabel:`Computed
in Current Payslip`.

To go back to the :guilabel:`Time Off to Report` list, click on :guilabel:`Time Off` in the
breadcrumb menu.

.. image:: work_entries/single-defer.png
:align: center
:alt: The time off details for an individual request that needs to be deferred.

.. seealso::
:ref:`Configure work entries <payroll/work-entries-config>`
Binary file not shown.
Loading
Sorry, something went wrong. Reload?
Sorry, we cannot display this file.
Sorry, this file is invalid so it cannot be displayed.
Binary file not shown.
Binary file not shown.