From 758354cb1862af0395edc8db180d4681b243adc4 Mon Sep 17 00:00:00 2001 From: larm-odoo Date: Thu, 9 Oct 2025 11:15:24 -0400 Subject: [PATCH] [ADD] Payroll: Working Schedules --- content/applications/hr/employees.rst | 8 +- content/applications/hr/payroll.rst | 57 ++++------- content/applications/hr/payroll/salaries.rst | 2 +- .../hr/payroll/working_schedules.rst | 91 ++++++++++++++++++ .../new-working-schedule.png | Bin .../working-schedules.png | Bin content/applications/hr/time_off.rst | 8 +- content/applications/services/planning.rst | 2 +- 8 files changed, 118 insertions(+), 50 deletions(-) create mode 100644 content/applications/hr/payroll/working_schedules.rst rename content/applications/hr/payroll/{ => working_schedules}/new-working-schedule.png (100%) rename content/applications/hr/payroll/{ => working_schedules}/working-schedules.png (100%) diff --git a/content/applications/hr/employees.rst b/content/applications/hr/employees.rst index 3ebf52e47e..5342d1fd97 100644 --- a/content/applications/hr/employees.rst +++ b/content/applications/hr/employees.rst @@ -105,11 +105,11 @@ Work organization Using the drop-down menu, select the default :guilabel:`Company Working Hours`. The default options are :guilabel:`Standard 40 hours/week`, :guilabel:`Appointment Resource Default Calendar`, and -:guilabel:`Standard 32 hours/week (4 work days, friday free)`. +:guilabel:`Standard 32 hours/week (4 work days, Friday free)`. -The available working hours listed are the same as the configured :ref:`working schedules -` in the **Payroll** app. Working hours can be created and modified from both -the **Payroll** and **Employees** apps. +The available working hours listed are the same as the configured :doc:`working schedules +` in the **Payroll** app. Working hours can be created and modified from +both the **Payroll** and **Employees** apps. Employee update rights ---------------------- diff --git a/content/applications/hr/payroll.rst b/content/applications/hr/payroll.rst index 774ffcc982..f6259d3452 100644 --- a/content/applications/hr/payroll.rst +++ b/content/applications/hr/payroll.rst @@ -66,52 +66,27 @@ Payroll Working schedules ----------------- -To view the currently configured working schedules, go to :menuselection:`Payroll app --> -Configuration --> Work Entries --> Working Schedules`. The working schedules that are available for -an employee's contracts are found in this list. +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`. -Working schedules are company-specific. Each company **must** identify each type of working schedule -they use. If the database is created for only one company, the company column is not available. - -.. example:: - An Odoo database containing multiple companies that use a standard 40-hour work week needs to - have a separate working schedule entry for each company that uses the 40-hour standard work week. - - A database with five companies that all use a standard 40-hour work week needs to have five - separate 40-hour working schedules configured. - -.. image:: payroll/working-schedules.png +.. image:: payroll/other-input.png :align: center - :alt: All working schedules available to use currently set up in the database for the company. - -.. _payroll/new-working-schedule: - -New working schedule -~~~~~~~~~~~~~~~~~~~~ + :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 working schedule, click the :guilabel:`New` button, and enter the information on the -form. - -The fields are auto-populated for a regular 40-hour work week but can be modified. First, change the -name of the working time by modifying the text in the :guilabel:`Name` field. Next, make any -adjustments to the days and times that apply to the new working time. - -In the :guilabel:`Working Hours` tab, modify the :guilabel:`Day of Week`, :guilabel:`Day Period`, -and :guilabel:`Work Entry Type` selections by clicking on the drop-down menus in each column and -making the desired selection. The :guilabel:`Work From` and :guilabel:`Work To` columns are modified -by typing in the time. - -.. note:: - The :guilabel:`Work From` and :guilabel:`Work To` times must be in a 24-hour format. For example, - `2:00 PM` would be entered as `14:00`. +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. -If the working time should be in a two-week configuration, click the :guilabel:`Switch to 2 weeks -calendar` button in the top-left. This creates entries for an :guilabel:`Even week` and an -:guilabel:`Odd week`. +.. 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/new-working-schedule.png +.. image:: payroll/input-type-new.png :align: center - :alt: New working schedule form. + :alt: A new Input Type form filled in. .. _payroll/salary-attachment-types: @@ -391,6 +366,7 @@ form. - :doc:`payroll/contracts` - :doc:`payroll/salaries` - :doc:`payroll/work_entries` + - :doc:`payroll/working_schedules` - :doc:`payroll/time_off_to_report` - :doc:`payroll/salary_attachments` - :doc:`payroll/payslips` @@ -407,6 +383,7 @@ form. payroll/contracts payroll/salaries payroll/work_entries + payroll/working_schedules payroll/time_off_to_report payroll/salary_attachments payroll/payslips diff --git a/content/applications/hr/payroll/salaries.rst b/content/applications/hr/payroll/salaries.rst index c7050a6f37..a1db42e7a9 100644 --- a/content/applications/hr/payroll/salaries.rst +++ b/content/applications/hr/payroll/salaries.rst @@ -90,7 +90,7 @@ Proceed to enter the following information in the fields: .. image:: salaries/new-structure.png :alt: New structure type form to fill out when creating a new structure type. -.. _new-default-working-hours: +.. _payroll/new-default-working-hours: New default working hours ------------------------- diff --git a/content/applications/hr/payroll/working_schedules.rst b/content/applications/hr/payroll/working_schedules.rst new file mode 100644 index 0000000000..7b1c11b3fa --- /dev/null +++ b/content/applications/hr/payroll/working_schedules.rst @@ -0,0 +1,91 @@ +================= +Working schedules +================= + +In Odoo, *working schedules* determine the hours employees are expected to work, according to their +:doc:`contract `, and informs the **Payroll** app how to compute work entries, ultimately +affecting salaries and payslips. It is necessary to ensure all working schedules for employees are +configured in the database. + +.. note:: + In Odoo's **Payroll** app, *working schedules* are referred to as *working hours* in :ref:`salary + structures `. + +To view the currently configured working schedules, navigate to :menuselection:`Payroll app --> +Configuration --> Working Schedules`, and the :guilabel:`Working Schedules` dashboard loads. + +Working schedules are company-specific. In a multi-company database, each company **must** identify +each type of working schedule they use. If the database is created for only one company, the +:guilabel:`Company` column is not available. + +.. example:: + An Odoo database containing multiple companies that use a standard 40-hour work week needs to + have a separate working schedule entry for each company that uses the 40-hour standard work week. + + A database with five companies that all use a standard 40-hour work week needs to have five + separate 40-hour working schedules configured. + +.. image:: working_schedules/working-schedules.png + :alt: All working schedules available to use currently set up in the database for the company. + +.. _payroll/new-working-schedule: + +New working schedule +==================== + +To create a new working schedule, navigate to :menuselection:`Payroll app --> Configuration --> +Working Schedules`, and click :guilabel:`New`. The :guilabel:`Working Schedules` form has two +sections, a general information section and a :guilabel:`Working Hours` tab listing out all the +individual working hours by day and time. + +Fill out the following information on the top-half of the form: + +- :guilabel:`Name`: Type in the name for the new default working schedule. This should be + descriptive and clear to understand, such as `Standard 20 Hours/Week`. +- :guilabel:`Flexible Hours`: Tick this checkbox if employees can work different hours from the + working schedule. +- :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:`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 workday. +- :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:`Company`: Select the company that can use these new default working hours from the + drop-down menu. A blank field indicates it is available for all companies. +- :guilabel:`Timezone`: Select the time zone to be used for the new default working hours from the + drop-down menu. + +Next, configure the individual hours in the :guilabel:`Working Hours` tab. This tab lists the +specific working hours for each day. + +The :guilabel:`Working Hours` are auto-populated for a default 40-hour work 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. + +.. note:: + The :guilabel:`Work From` and :guilabel:`Work To` times **must** be in a 24-hour format. For + example, `2:00 PM` is entered as `14:00`. + +Modify the :guilabel:`Day of Week`, :guilabel:`Day Period`, and :guilabel:`Work Entry Type` +selections by clicking on the drop-down menus in each column and making the desired selection. The +:guilabel:`Work From` and :guilabel:`Work To` columns are modified by typing in the time. + +.. important:: + Keep in mind, working hours are company-specific, and **cannot** be shared between companies. + Each company needs to have its own working hours set. + +.. tip:: + 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. + +.. image:: working_schedules/new-working-schedule.png + :alt: New working schedule form. diff --git a/content/applications/hr/payroll/new-working-schedule.png b/content/applications/hr/payroll/working_schedules/new-working-schedule.png similarity index 100% rename from content/applications/hr/payroll/new-working-schedule.png rename to content/applications/hr/payroll/working_schedules/new-working-schedule.png diff --git a/content/applications/hr/payroll/working-schedules.png b/content/applications/hr/payroll/working_schedules/working-schedules.png similarity index 100% rename from content/applications/hr/payroll/working-schedules.png rename to content/applications/hr/payroll/working_schedules/working-schedules.png diff --git a/content/applications/hr/time_off.rst b/content/applications/hr/time_off.rst index 0d6a06bb7c..cf4d3a0a00 100644 --- a/content/applications/hr/time_off.rst +++ b/content/applications/hr/time_off.rst @@ -453,13 +453,13 @@ Enter the following information on that new line: - :guilabel:`Start Date`: Using the date and time picker, select the date and time the holiday starts, then click :icon:`fa-check` :guilabel:`Apply`. 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 `). If the user's computer is set to a + the :doc:`working schedules `). If the user's computer is set to a different time zone, the start time is adjusted accordingly, compared to the company's time zone. - :guilabel:`End Date`: Using the date and time picker, select the date and time the holiday ends, then click :icon:`fa-check` :guilabel:`Apply`. 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 `). If the user's computer is set to a different time zone, the - start time is adjusted accordingly, compared to the company's time zone. + current date, and the time is set to the end time for the company (according to the :doc:`working + schedules `). If the user's computer is set to a different time zone, + the start time is adjusted accordingly, 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 diff --git a/content/applications/services/planning.rst b/content/applications/services/planning.rst index 86b29a6793..9663ec52ca 100644 --- a/content/applications/services/planning.rst +++ b/content/applications/services/planning.rst @@ -107,7 +107,7 @@ To create individual :guilabel:`Working Hours`, for example, for employees worki **Payroll**, if the employee's contract is configured to generate work entries based on shifts. .. seealso:: - :ref:`Payroll documentation on working schedules ` + :doc:`../hr/payroll/working_schedules` Planning roles ~~~~~~~~~~~~~~