From 336be29a222d1ec9726656a72f108c665ebfd8a7 Mon Sep 17 00:00:00 2001 From: Zuzanna Luczynska Date: Thu, 3 Apr 2025 07:30:28 +0000 Subject: [PATCH] [IMP] planning: auto assignment, split shifts tool 4219509 closes odoo/documentation#12780 X-original-commit: 4082f60f7372f9b2ace1315d8772b3be5177217a Signed-off-by: Audrey Vandromme (auva) Signed-off-by: Zuzanna Luczynska (zulu) --- content/applications/services/planning.rst | 20 ++++++++++++++---- .../services/planning/split-shifts.png | Bin 0 -> 20185 bytes 2 files changed, 16 insertions(+), 4 deletions(-) create mode 100644 content/applications/services/planning/split-shifts.png diff --git a/content/applications/services/planning.rst b/content/applications/services/planning.rst index feff380ef..b2aac8a94 100644 --- a/content/applications/services/planning.rst +++ b/content/applications/services/planning.rst @@ -90,6 +90,8 @@ Employees`, and choose the employee for whom you want to edit the settings. Then Two sections of the employee's :guilabel:`Work Information` tab have an impact on Planning: :guilabel:`Schedule` (namely, the :guilabel:`Working Hours` field) and :guilabel:`Planning`. +.. _planning/working-hours: + Working hours ~~~~~~~~~~~~~ @@ -254,6 +256,13 @@ by email. - Employees with a user account are redirected to the :guilabel:`My Planning` view in the backend view of Odoo. +.. tip:: + The **split shifts** tool allows to easily split a long shift into segments. To do so, hover the + mouse over the desired shift and click the :icon:`fa-scissors` (:guilabel:`scissors`) icon. + + .. image:: planning/split-shifts.png + :alt: Split shifts tool. + .. _planning/open-shifts: Open shifts and auto planning @@ -271,8 +280,11 @@ The following features have an impact on auto planning: they have assigned to them. - **Conflicts**: Employees or materials cannot be assigned multiple shifts at the same time. - **Time off**: The employees’ time off is taken into account, as well as public holidays. -- **Company working hours**: Are taken into account when assigning shifts to employees or materials. -- **Contracts**: Employees without an active contract cannot be assigned shifts. +- **Working hours**: Are taken into account when assigning shifts to employees or materials. It is + not possible to use the :guilabel:`Auto Plan` feature for an employee who is working + :ref:`flexible hours `. +- **Contracts**: If the employee has an active contract, they won't be assigned shifts that fall + outside of their contract period. Click :guilabel:`Publish` to confirm the schedule and notify the employees of their planning. @@ -305,7 +317,7 @@ it to themselves, they can click the :guilabel:`I take it` button. The following rules apply: - Only the shifts matching the employee's roles are displayed as available to them. - - Switching shifts is only available for shifts that are in the future. + - Switching shifts is not available for shifts in the past. Unassignment ~~~~~~~~~~~~ @@ -323,4 +335,4 @@ shift reverts to an open shift. The following rules apply: - Only the shifts matching the employee's roles are displayed in their schedule. - - Switching shifts is only available for shifts that are in the future. + - Unassigning shifts is not available for shifts in the past. diff --git a/content/applications/services/planning/split-shifts.png b/content/applications/services/planning/split-shifts.png new file mode 100644 index 0000000000000000000000000000000000000000..9899bcaeed1f2a385d46556c2c2f06eb8d557fca GIT binary patch literal 20185 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 literal 0 HcmV?d00001