Compare commits

..

35 Commits

Author SHA1 Message Date
mcsi-odoo
31f480261b [FIX] studio: can duplicate feature - list
task-4444001
2025-01-23 12:50:17 +01:00
lase@odoo.com
d2f5f224fd [IMP] marketing: match the Display Timezone description with tooltips
Issue:

The current descriptions and naming of the `Date` fields (`date_begin`,
`date_end`) and the `Timezone` field (`date_tz`) can be confusing in the
form view of the event model. Specifically:

The timezone used for converting the form dates to the database is
determined by the context and not by the `Timezone` field present on the
form. However, this `Timezone` field determines the timezone used
for displaying the event's date/time on the website. This change
clarifies the situation according to the update done in the community PR

opw-4323142

closes odoo/documentation#11815

X-original-commit: fe9d186b54
Related: odoo/odoo#194671
Signed-off-by: Lancelot Semal (lase) <lase@odoo.com>
2025-01-22 21:25:56 +00:00
Antoine Vandevenne (anv)
ca88450e9e [FIX] Makefile: output built HTML files in saas-18.1/ instead of master/
closes odoo/documentation#11814

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-01-22 21:25:47 +00:00
Antoine Vandevenne (anv)
818a633089 [IMP] supported_versions: release saas-18.1
closes odoo/documentation#11804

X-original-commit: 9b7d3d559b
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2025-01-21 18:21:12 +00:00
benderliz
97ae039524 [FIX] Inventory: Fixing reordering rules navigation for 18.0
closes odoo/documentation#11710

X-original-commit: b6b6cf9de8
Signed-off-by: Liz Bender (beli) <beli@odoo.com>
2025-01-21 18:21:09 +00:00
“Chiara
325d5cda17 [IMP] accounting: einvoicing by country mention
closes odoo/documentation#11792

X-original-commit: 3ab129a370
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Chiara Prattico (chpr) <chpr@odoo.com>
2025-01-21 15:37:36 +00:00
mcsi-odoo
c8b5ec9b8b [IMP] studio: can duplicate feature
task-4444001

closes odoo/documentation#11795

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-21 15:37:33 +00:00
xpl-odoo
01f3e490e2 [IMP] database: update status of supported versions
task-4485068

closes odoo/documentation#11785

X-original-commit: 36d407830e
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2025-01-20 11:20:09 +00:00
“Dallas”
beb10a0649 [FIX] accounting:update internal transfers doc to 18.0
Internal transfers are now handled via reconciliation model button instead of through payments. This PR moves the internal transfers documentation from the Payments section to the Bank section and updates it to reflect the process in 18.0.

task-4331744

closes odoo/documentation#11777

X-original-commit: cc6306277b
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Dallas Dean (dade) <dade@odoo.com>
2025-01-18 12:22:16 +00:00
xpl-odoo
584221de4b [IMP] l10n: odoo 18 update of the german l10n
Based on information from CBE and PR #11417

closes odoo/documentation#11771

X-original-commit: abdcb372ba
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2025-01-17 12:07:24 +00:00
jero-odoo
43226c1c1d [IMP] General: Outbound email servers correction
closes odoo/documentation#11763

X-original-commit: dfe54bdce3
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2025-01-16 14:40:31 +00:00
John Holton (hojo)
213a8b5272 [IMP] Inventory: add delivery slip setting to serial numbers
closes odoo/documentation#11736

X-original-commit: 78b9c43030
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-01-15 19:32:15 +00:00
fvz-odoo
9e0440653f [IMP] accounting/l10n_uy: clarify onboarding
Currently, users are having a hard time setting up their Uruware account. With the improvement to the documentation we are adding clarifications to simplify the onboarding process as well as adding a see also section so users have more documentation and smart classes/eLearning available.

closes odoo/documentation#11757

X-original-commit: 2628303bc4
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: dade-odoo <87431108+dade-odoo@users.noreply.github.com>
2025-01-15 19:32:13 +00:00
Christoforus Surjoputro
bc1e3def1d [FIX] payment_providers/xendit: remove step to enable optional 3ds
Enabling optional 3DS should not part of the official step. This configuration
is specific to cards payment, by default should perform 3DS, and only eligible
merchant able to perform cards payment with optional 3DS enabled.

closes odoo/documentation#11716

Forward-port-of: #11712
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-15 10:32:18 +00:00
Aaron Bohy
fd6286996d [IMP] javascript reference: document domain field options
Before this commit, options of the domain field weren't documented.
Now, they are.

closes odoo/documentation#11734

X-original-commit: 04ac6de366
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2025-01-15 07:39:53 +00:00
Florian Gilbert
69a5e540ea [IMP] account/bank: Consistent number for available banks
The aim of this commit is making sure that we have the same number of available banks.
 
no task id

closes odoo/documentation#11750

X-original-commit: 40c830298c
Signed-off-by: Florian Gilbert (flg) <flg@odoo.com>
2025-01-14 17:02:35 +00:00
Zuzanna Luczynska
8c334b663f [ADD] project/dashboard: project dashboard
task-id 4384333

closes odoo/documentation#11744

X-original-commit: 37d9b31da5
Signed-off-by: Zuzanna Luczynska (zulu) <zulu@odoo.com>
2025-01-13 13:28:15 +00:00
emmi-odoo
95e4fee78f [IMP] essentials/import data: add Import files section
task-4043639

closes odoo/documentation#11722

X-original-commit: 983346ae6b
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Emmanuel Minga (EMMI) <emmi@odoo.com>
2025-01-11 00:33:15 +00:00
jero-odoo
cd9a550691 [IMP] Helpdesk: Helpcenter updates
closes odoo/documentation#11723

X-original-commit: b78d7b86e6
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2025-01-10 22:13:35 +00:00
jero-odoo
deabf8bcb2 [IMP] Helpdesk: Update SLAs
closes odoo/documentation#11724

X-original-commit: 7c6aa7f2c4
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: dikd-odoo <dikd@odoo.com>
2025-01-10 22:13:34 +00:00
Donatienne (dopi)
7346b921e1 [IMP] ecommerce: delivery methods
taskid-4016678

closes odoo/documentation#11717

X-original-commit: 84abf415bc
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2025-01-09 14:21:37 +00:00
Zuzanna Luczynska
82d326b89c [IMP] project/tasks: correction in what triggers reccurence + icon
closes odoo/documentation#11705

Task-id: 3601222
X-original-commit: cb0cce2498
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Zuzanna Luczynska (zulu) <zulu@odoo.com>
2025-01-08 14:32:45 +00:00
paan-odoo
71c6e2c728 [ADD] point_of_sale: documentation for pos-based marketing
This PR adds the documentation needed to use pos-based marketing.

In this PR, we introduce configuration and flow related to Email
and WhatsApp marketing in Point of Sale from storing contact details
to sending emails and WhatsApp messages from the point of sale.

task-4053075

closes odoo/documentation#11641

X-original-commit: 2bb0fa8e68
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
Co-authored-by: Anantkumar Parmar <paan@odoo.com>
Co-authored-by: Loredana Perazzo <lrpz@odoo.com>
2025-01-08 14:32:39 +00:00
guillaume gallant (guga)
87250c8510 [ADD] project: task dependencies
task-4413833

closes odoo/documentation#11669

X-original-commit: a8959a121a
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Guillaume Gallant (guga) <guga@odoo.com>
2025-01-08 11:15:41 +00:00
“Dallas”
ffa8f068b3 [FIX] accounting/tax-return: fix tax return menu path
Fix the menu navigation path of the tax return and update for 18.0 UI

task-4424499

closes odoo/documentation#11687

X-original-commit: 27bddd133b
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Dallas Dean (dade) <dade@odoo.com>
2025-01-07 15:31:28 +00:00
jero-odoo
25ee78901b [IMP] Helpdesk: update basics 18
closes odoo/documentation#11699

X-original-commit: 21eb260fc8
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Liz Bender <92882399+benderliz@users.noreply.github.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
2025-01-06 22:58:57 +00:00
Sylvain Francis
b678d14483 [FIX] Egypt fiscal localizations: Update proxy install instructions
Since Odoo 16, to install the local proxy, users need to select the
"Odoo IoT" option install of the "Local Proxy Mode" to install the local
proxy.

This commit updates both the text and accompanying screenshot

closes odoo/documentation#11668

X-original-commit: beeeff9068
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Sylvain Francis (syf) <syf+odoo@odoo.com>
2025-01-06 15:05:07 +00:00
Felicious
ba6083172a [IMP] inventory: add bpost link
closes odoo/documentation#11681

X-original-commit: e38438c0ae
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
2025-01-06 08:53:09 +00:00
gmz-odoo
4142841a43 [IMP] accounting/l10n_pe: PLE 12.1 and PLE 13.1 inventory reports
Add new section for reports
Content based on V17
Images : [ADD]Inventory Reports: PLE 12.1 and PLE 13.1 - Images
Expected section to be added: [l10n_pe][USER DOC][ADD]Inventory Reports: PLE 12.1 and PLE 13.1

closes odoo/documentation#11695

X-original-commit: 1aac8f8dc6
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2025-01-02 23:31:39 +00:00
jero-odoo
85cbb4349f [IMP] Helpdesk: receiving tickets
closes odoo/documentation#11688

X-original-commit: 5dea50eef0
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2025-01-02 19:36:38 +00:00
Tiffany Chang (tic)
267ed1371c [I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#11672

X-original-commit: d4841aee90
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2025-01-02 08:32:23 +00:00
gmz-odoo
8cbe296a12 [IMP] accounting/l10n_pe: update GRE credentials section
closes odoo/documentation#11640

Context: after Odoo17 the menu changes on the settings from Accounting to Inventory, as this workflow is related to stock moves
X-original-commit: f3969af47e
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Gabriela Enriquez Manzano (gmz) <gmz@odoo.com>
2024-12-30 17:36:30 +00:00
Felicious
7b1341bb6c [ADD] inventory: compare packs and uom
closes odoo/documentation#11649

X-original-commit: 1ac6e5e975
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-12-27 00:41:56 +00:00
Parish Bracha
e6a052c4dd [IMP] Subscriptions: Contract in exception
closes odoo/documentation#11642

X-original-commit: ea2fc6dbc4
Signed-off-by: Parish Bracha (pabr) <pabr@odoo.com>
2024-12-24 16:25:04 +00:00
Christophe Monniez
6b399d13d1 [REL] saas-18.1 2024-12-24 10:21:00 +00:00
81 changed files with 1029 additions and 655 deletions

View File

@@ -27,7 +27,7 @@ SOURCE_DIR = content
HTML_BUILD_DIR = $(BUILD_DIR)/html
ifdef VERSIONS
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/master
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/saas-18.1
endif
ifneq ($(CURRENT_LANG),en)
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)

View File

@@ -22,7 +22,7 @@ copyright = 'Odoo S.A.'
# `version` is the version info for the project being documented, acts as replacement for |version|,
# also used in various other places throughout the built documents.
# `release` is the full version, including alpha/beta/rc tags. Acts as replacement for |release|.
version = release = 'master'
version = release = 'saas-18.1'
# `current_branch` is the technical name of the current branch.
# E.g., saas-15.4 -> saas-15.4; 12.0 -> 12.0, master -> master (*).
@@ -231,6 +231,7 @@ sphinx.transforms.i18n.docname_to_domain = (
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
versions_names = {
'master': "Master",
'saas-18.1': "Odoo Online",
'18.0': "Odoo 18",
'saas-17.4': "Odoo Online",
'saas-17.2': "Odoo Online",

View File

@@ -31,6 +31,12 @@ This matrix shows the support status of every version.
- On-Premise
- Release date
- End of support
* - Odoo SaaS 18.1
- |green|
- N/A
- N/A
- January 2025
-
* - **Odoo 18.0**
- |green|
- |green|
@@ -38,17 +44,17 @@ This matrix shows the support status of every version.
- October 2024
- October 2027 (planned)
* - Odoo SaaS 17.4
- |green|
- |red|
- N/A
- N/A
- July 2024
-
- October 2024
* - Odoo SaaS 17.2
- |green|
- |red|
- N/A
- N/A
- April 2024
-
- October 2024
* - **Odoo 17.0**
- |green|
- |green|

View File

@@ -28,15 +28,13 @@ select a record, tick the checkbox next to the corresponding record. Finally, cl
then :guilabel:`Export`.
.. image:: export_import_data/list-view-export.png
:align: center
:alt: View of the different things to enable/click to export data.
When clicking on :guilabel:`Export`, an :guilabel:`Export Data` pop-over window appears, with
several options for the data to export:
.. image:: export_import_data/export-data-overview.png
:align: center
:alt: Overview of options to consider when exporting data in Odoo..
:alt: Overview of options to consider when exporting data in Odoo.
#. With the :guilabel:`I want to update data (import-compatable export)` option ticked, the system
only shows the fields that can be imported. This is helpful in the case where the :ref:`existing
@@ -87,7 +85,6 @@ data into an Odoo database.
options: :guilabel:`Track history during import` and :guilabel:`Allow matching with subfields`.
.. image:: export_import_data/advanced-import.png
:align: center
:alt: Advanced import options when developer mode is activated.
If the model uses openchatter, the :guilabel:`Track history during import` option sets up
@@ -96,6 +93,8 @@ data into an Odoo database.
Should the :guilabel:`Allow matching with subfields` option be selected, then all subfields
within a field are used to match under the :guilabel:`Odoo Field` while importing.
.. _essentials/export_import_data/get-started:
Get started
-----------
@@ -103,30 +102,32 @@ Data can be imported on any Odoo business object using either Excel (`.xlsx`) or
(Comma-separated Values)` (`.csv`) formats. This includes: contacts, products, bank statements,
journal entries, and orders.
Open the view of the object to which the data should be imported/populated, and click on
:menuselection:`⚙️ (Action) --> Import records`.
Open the view of the object to which the data should be imported/populated, click the :icon:`fa-cog`
(:guilabel:`gear`) icon and select :guilabel:`Import records`.
.. image:: export_import_data/import-button.png
:align: center
:alt: Action menu revealed with the import records option highlighted.
After clicking :guilabel:`Import records`, Odoo reveals a separate page with templates that can be
downloaded and populated with the company's own data. Such templates can be imported in one click,
since the data mapping is already done. To download a template click :guilabel:`Import Template for
Customers` at the center of the page.
Click :icon:`fa-download`:guilabel:`Import Template for Customers` at the center of the page to
download a :ref:`template <essentials/export_import_data/adapt-a-template>` and populate it with
the company's own data. Such templates can be imported in one click since the data mapping is
already preconfigured.
.. important::
When importing a :abbr:`CSV (Comma-separated Values)` file, Odoo provides :guilabel:`Formatting`
options. These options do **not** appear when importing the proprietary Excel file type (`.xls`,
`.xlsx`).
To upload the downloaded template or your own file, follow the next steps:
.. image:: export_import_data/formatting.png
:align: center
:alt: Formatting options presented when a CVS file is imported in Odoo.
#. Click :guilabel:`Upload Data File` and select the desired file.
#. Adjust the :guilabel:`Formatting` options as needed (for CSV files only).
#. Ensure all data in the :guilabel:`File Column` is correctly mapped to the appropriate
:guilabel:`Odoo Field` and free of errors.
#. (Optional) Click :guilabel:`Load Data File` to reload the same file or upload a different one.
#. Click :guilabel:`Test` to verify that the data is valid.
#. Click :guilabel:`Import`.
Make necessary adjustments to the *Formatting* options, and ensure all columns in the
:guilabel:`Odoo field` and :guilabel:`File Column` are free of errors. Finally, click
:guilabel:`Import` to import the data.
.. note::
The :guilabel:`Formatting` options do **not** appear when importing the proprietary Excel file
type (i.e., `.xls` or `.xlsx`).
.. _essentials/export_import_data/adapt-a-template:
Adapt a template
----------------
@@ -144,7 +145,6 @@ Once the template is downloaded, proceed to follow these steps:
(ID) column.
.. image:: export_import_data/dragdown.gif
:align: center
:alt: An animation of the mouse dragging down the ID column, so each record has a unique ID.
.. note::
@@ -153,7 +153,6 @@ Once the template is downloaded, proceed to follow these steps:
Search the drop-down menu for the corresponding field.
.. image:: export_import_data/field_list.png
:align: center
:alt: Drop-down menu expanded in the initial import screen on Odoo.
Then, use this field's label in the import file to ensure future imports are successful.
@@ -203,7 +202,6 @@ If this happens, check the :guilabel:`Show fields of relation fields (advanced)
complete list of fields becomes available for each column.
.. image:: export_import_data/field_list.png
:align: center
:alt: Searching for the field to match the tax column.
Change data import format
@@ -401,6 +399,33 @@ respective contacts:
- :download:`Customers and their respective contacts
<export_import_data/o2m_customers_contacts.csv>`
Import image files
------------------
To import image files along with the :ref:`uploaded <essentials/export_import_data/get-started>`
CSV or Excel file, follow the next steps:
#. Add the image file names to the relevant :guilabel:`Image` column in the data file.
#. :ref:`Upload the data file <essentials/export_import_data/get-started>` or reload it by
clicking :guilabel:`Load Data File`.
#. Click :guilabel:`Upload your files` under the :guilabel:`Files to import` section.
#. Select the relevant image files. The number of files selected appears next to the button.
#. Click :guilabel:`Test` to verify that all data is valid.
#. Click :guilabel:`Import`. During the import process, Odoo performs a file check to automatically
link the uploaded images to the imported data file. If there is no match, the data file is
imported without any image.
.. note::
- The :guilabel:`Files to import` section is enabled if your product template has an
:guilabel:`Image` column with all fields populated.
- The image file names in the data file must correspond to the uploaded image files.
- When importing a large number of images, you can specify the maximum batch size in megabytes
and set a delay to prevent the system from becoming overloaded. To do so, :doc:`enable the
developer mode <../general/developer_mode>` and fill in the :guilabel:`Max size per
batch` and the :guilabel:`Delay after each batch` fields in the :guilabel:`Files to import`
section. By default, the delay meets the RPC/API call limit defined in the `Odoo Cloud -
Acceptable Use Policy <https://www.odoo.com/acceptable-use>`_.
Import records several times
----------------------------

View File

@@ -21,7 +21,7 @@ which include action buttons.
.. image:: bank/card.png
:alt: Bank journals are displayed on the Accounting Dashboard and contain action buttons
.. _bank_accounts/manage:
.. _accounting/bank/manage_accounts:
Manage your bank and cash accounts
==================================
@@ -36,7 +36,7 @@ follow the instructions.
.. seealso::
:doc:`bank/bank_synchronization`
.. _bank_accounts/create:
.. _accounting/bank/create_account:
Create a bank account
---------------------
@@ -61,7 +61,7 @@ To create a new cash journal, go to :menuselection:`Accounting --> Configuration
Journals`, click on :guilabel:`Create` and select :guilabel:`Cash` in the :guilabel:`Type` field.
For more information on the accounting information fields, read the
:ref:`bank_accounts/configuration` section of this page.
:ref:`accounting/bank/configuration` section of this page.
.. note::
A default cash journal is available and can be used straight away. You can review it by going to
@@ -73,7 +73,7 @@ Edit an existing bank or cash journal
To edit an existing bank journal, go to :menuselection:`Accounting --> Configuration --> Accounting:
Journals` and select the journal you want to modify.
.. _bank_accounts/configuration:
.. _accounting/bank/configuration:
Configuration
=============
@@ -137,7 +137,7 @@ Bank feeds
- :doc:`bank/bank_synchronization`
- :doc:`bank/transactions`
.. _bank/outstanding-accounts:
.. _accounting/bank/outstanding-accounts:
Outstanding accounts
====================
@@ -175,7 +175,6 @@ Payments` tab. To display the outstanding accounts column, click on the toggle b
:guilabel:`Outstanding Receipts/Payments accounts`, then update the account.
.. image:: bank/toggle-button.png
:align: center
:alt: Select the toggle button and click on outstanding Accounts
.. note::
@@ -192,5 +191,6 @@ Payments` tab. To display the outstanding accounts column, click on the toggle b
bank/transactions
bank/reconciliation
bank/reconciliation_models
bank/internal_transfers
bank/foreign_currency
bank/loans

View File

@@ -11,7 +11,7 @@ To check if your bank is compatible with Odoo, go to `Odoo Accounting Features
<https://www.odoo.com/page/accounting-features>`_, and click on
:guilabel:`See list of supported institutions`.
Odoo supports more than 25,000 institutions around the world.
Odoo supports more than 26,000 institutions around the world.
To connect to the banks, Odoo uses multiple web-services:

View File

@@ -0,0 +1,71 @@
==================
Internal transfers
==================
Internal money transfers can be handled in Odoo. At least two bank or cash accounts are needed to
make internal transfers.
.. seealso::
:ref:`How to add an additional bank account <accounting/bank/create_account>`
Configuration
=============
An internal transfer account is automatically created on your database based on your company's
:doc:`localization <../../fiscal_localizations>` and depending on your countrys legislation. To
modify the default :guilabel:`Internal Transfer` account, go to :menuselection:`Accounting -->
Configuration --> Settings` and scroll down to the :guilabel:`Default Accounts` section.
Register an internal transfer from one bank to another
======================================================
When money is transferred from one bank or cash account to another, that amount appears as two
transactions on the corresponding journals, whether the transactions are created manually, via
import, or via :doc:`bank synchronization <bank_synchronization>`. When reconciling the transaction,
select the :guilabel:`Internal Transfers` :doc:`reconciliation model <reconciliation_models>`
button. This reconciliation model button writes the transaction off to the :guilabel:`Internal
Transfer` account.
.. tip::
Remember to reconcile the transaction for both the outgoing transaction on the journal that sends
the payment and the incoming transaction on the journal that receives the payment.
.. example::
Take, for example, a transfer of $1000 from Bank A to Bank B:
- Bank journal (Bank A)
.. list-table::
:header-rows: 1
:stub-columns: 1
* - **Account**
- **Debit**
- **Credit**
* - Bank A account
-
- $1,000
* - **Internal transfer account**
- **$1,000**
-
- Bank journal (Bank B)
.. list-table::
:header-rows: 1
:stub-columns: 1
* - **Account**
- **Debit**
- **Credit**
* - Bank B account
- $1,000
-
* - **Internal transfer account**
-
- **$1,000**
.. seealso::
:doc:`reconciliation`
:doc:`reconciliation_models`

View File

@@ -15,7 +15,7 @@ for use at a later date:
reduce/settle unpaid invoices/bills.
.. seealso::
- :doc:`Internal transfers <payments/internal_transfers>`
- :doc:`Internal transfers <bank/internal_transfers>`
- :doc:`bank/reconciliation`
- `Odoo Tutorials: Bank Configuration
<https://www.odoo.com/slides/slide/bank-configuration-6832>`_
@@ -27,10 +27,10 @@ Registering payment from an invoice or bill
When clicking :guilabel:`Register payment` in a customer invoice or vendor bill, it generates a new
journal entry and changes the amount due according to the payment amount. The counterpart is
reflected in an :ref:`outstanding <bank/outstanding-accounts>` **receipts** or **payments** account.
At this point, the customer invoice or vendor bill is marked as :guilabel:`In payment`. Then, when
the outstanding account is reconciled with a bank transaction line, the invoice or vendor bill
changes to the :guilabel:`Paid` status.
reflected in an :ref:`outstanding <accounting/bank/outstanding-accounts>` **receipts** or
**payments** account. At this point, the customer invoice or vendor bill is marked as :guilabel:`In
payment`. Then, when the outstanding account is reconciled with a bank transaction line, the invoice
or vendor bill changes to the :guilabel:`Paid` status.
The :icon:`fa-info-circle` information icon next to the payment line displays more
information about the payment. To access additional information, such as the related journal, click
@@ -51,8 +51,8 @@ information about the payment. To access additional information, such as the rel
.. tip::
If the main bank account is set as an :ref:`outstanding account
<bank/outstanding-accounts>`, and the payment is registered in Odoo (not through a related
bank transaction), invoices and bills are directly registered as :guilabel:`Paid`.
<accounting/bank/outstanding-accounts>`, and the payment is registered in Odoo (not through a
related bank transaction), invoices and bills are directly registered as :guilabel:`Paid`.
.. _accounting/payments/not-tied:
@@ -184,7 +184,6 @@ finalize the payment workflow and mark the invoice or bill as :guilabel:`Paid`.
payments/batch
payments/batch_sdd
payments/follow_up
payments/internal_transfers
payments/pay_sepa
payments/pay_checks
payments/forecast

View File

@@ -17,7 +17,7 @@ into account checks yet to be cashed.
statement.
.. seealso::
* :ref:`Outstanding accounts <bank/outstanding-accounts>`
* :ref:`Outstanding accounts <accounting/bank/outstanding-accounts>`
* :ref:`Bank reconciliation <accounting/reconciliation>`
.. _checks/outstanding-account:

View File

@@ -1,73 +0,0 @@
==================
Internal transfers
==================
Internal money transfers can be handled in Odoo. At least two bank accounts are needed to make
internal transfers.
.. seealso::
:doc:`How to add an additional bank account <../bank>`
Configuration
=============
An internal transfer account is automatically created on your database based on your company's
localization and depending on your countrys legislation. To modify the default :guilabel:`Internal
transfer account`, go to :menuselection:`Accounting --> Configuration --> Settings` and scroll down
to the :guilabel:`Default Accounts` section.
Register an internal transfer from one bank to another
======================================================
If you want to transfer money from one bank to another, access the Accounting Dashboard, click the
drop-down selection button (:guilabel:`⋮`) on the bank from which you want to make the transfer,
then click :guilabel:`Payments`. Select or create a payment, tick the :guilabel:`Internal Transfer`
checkbox, and select a :guilabel:`Destination Journal` before you :guilabel:`Confirm` the internal
transfer.
The money is now booked in the transfer account and another payment is automatically created in the
destination journal.
.. example::
- Bank journal (Bank A)
.. list-table::
:header-rows: 1
:stub-columns: 1
* - **Account**
- **Debit**
- **Credit**
* - Outstanding Payments account
-
- $1,000
* - **Internal transfer account**
- **$1,000**
-
- Bank journal (Bank B)
.. list-table::
:header-rows: 1
:stub-columns: 1
* - **Account**
- **Debit**
- **Credit**
* - Outstanding Receipts account
- $1,000
-
* - **Internal transfer account**
-
- **$1,000**
There is **one outstanding payment** and **one outstanding receipt** pending in your two bank
account journals because the bank statement confirming the sending and receiving of the money
has not been booked yet.
Once this is done, you can book and reconcile your bank statement lines as usual.
.. seealso::
:doc:`../bank/reconciliation`

View File

@@ -35,9 +35,6 @@ To do so, go to :menuselection:`Accounting --> Configuration --> Settings`. Unde
- :guilabel:`Reminder`: define when Odoo should remind you to submit your tax return;
- :guilabel:`Journal`: select the journal in which to record the tax return.
.. image:: tax_returns/tax_return_periodicity.png
:align: center
:alt: Configure how often tax returns have to be made in Odoo Accounting
.. note::
This is usually configured during the :doc:`app's initial set up <../get_started>`.
@@ -53,16 +50,11 @@ You can see the :guilabel:`Tax Grids` by opening the :guilabel:`Journal Items` t
invoice and bill.
.. image:: tax_returns/tax_return_grids.png
:align: center
:alt: see which tax grids are used to record transactions in Odoo Accounting
To configure your tax grids, go to :menuselection:`Accounting --> Configuration --> Taxes`,
and open the tax you want to modify. There, you can edit your tax settings, along with the tax
grids that are used to record invoices or credit notes.
.. image:: tax_returns/tax_return_taxes.png
:align: center
:alt: Configure taxes and their tax grids in Odoo Accounting
grids that are used to record invoices or refunds.
.. note::
Taxes and reports are usually already pre-configured in Odoo: a :ref:`fiscal localization package
@@ -76,40 +68,41 @@ Close a tax period
.. _tax-returns/lock-date:
Tax Lock Date
Tax lock date
-------------
Any new transaction whose accounting date prior to the :guilabel:`Tax Lock Date` has its tax values
moved to the next open tax period. This is useful to make sure that no change can be made to a
report once its period is closed.
Any new transaction whose accounting date prior to the :guilabel:`Lock Tax Return` date has its tax
values moved to the next open tax period. This is useful to make sure that no change can be made to
a report once its period is closed.
Therefore, we recommend locking your tax date before working on your
:guilabel:`Closing Journal Entry`.
This way, other users cannot modify or add transactions that would have an impact on the
:guilabel:`Closing Journal Entry`, which can help you avoid some tax declaration errors.
To check the current :guilabel:`Tax Lock Date`, or to edit it, go to
:menuselection:`Accounting --> Accounting --> Actions: Lock Dates`.
.. image:: tax_returns/tax_return_lock.png
:align: center
:alt: Lock your tax for a specific period in Odoo Accounting
To check the current :guilabel:`Lock Tax Return` date, or to edit it, go to
:menuselection:`Accounting --> Accounting --> Lock Dates`.
.. _tax-returns/report:
Tax Report
Tax return
----------
Once all the transactions involving taxes have been posted for the period you want to report, open
your :guilabel:`Tax Report` by going to :menuselection:`Accounting --> Reporting -->
Audit Reports: Tax Report`. Make sure to select the right period you want to declare by using the
date filter, this way you can have an overview of your tax report. From this view, you can easily
access different formats of your tax report, such as `PDF` and XLSX. These include all the values to
report to the tax authorities, along with the amount you have to pay or be refunded.
the :guilabel:`Tax Return` report by going to :menuselection:`Accounting --> Reporting --> Tax
Return`. Select the period you want to declare using the date filter to have an overview of the tax
return. Then, click :guilabel:`Closing Entry` to create a tax closing journal entry. Odoo
automatically proposes the details of the journal entry. Make any necessary changes and click
:guilabel:`Post`.
.. image:: tax_returns/tax_return_report.png
:align: center
:alt: download the PDF with your Tax Report in Odoo Accounting
From the report, click :guilabel:`PDF` to download a PDF of the tax return. Alternatively, click the
:icon:`fa-cog` (:guilabel:`gear`) icon, then click :guilabel:`Download Excel` to download an XLSX of
the tax return. To save the report to the Documents app, click the :icon:`fa-cog` (:guilabel:`gear`)
icon, then click :guilabel:`Copy to Documents`. Select the format to :guilabel:`Export to`, the
:guilabel:`Documents Name`, the :guilabel:`Folder` to store it in, and add any :guilabel:`Tags`.
The report includes all the values to report to the tax authorities, along with the amount to be
paid or refunded.
.. note::
If you forgot to lock your tax date before clicking on :guilabel:`Closing Journal Entry`, then

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 70 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -24,6 +24,10 @@ localization.
- `l10n_at_saft`
- Adds the SAF-T export.
.. seealso::
:doc:`Documentation on e-invoicings legality and compliance in Austria
<../accounting/customer_invoices/electronic_invoicing/austria>`
Financial reports
=================

View File

@@ -11,6 +11,10 @@ Install the :guilabel:`🇧🇪 Belgium` :ref:`fiscal localization package
<fiscal_localizations/packages>` to get all the default accounting features of the Belgian
localization, following the :abbr:`IFRS(International Financial Reporting Standards)` rules.
.. seealso::
:doc:`Documentation on e-invoicings legality and compliance in Belgium
<../accounting/customer_invoices/electronic_invoicing/belgium>`
.. _belgium/coa:
Chart of accounts

View File

@@ -205,11 +205,11 @@ An Odoo local server works as a bridge between your computer and your Odoo datab
Download the Odoo Community installer from the page https://www.odoo.com/page/download and start the
installation on your computer.
Select :guilabel:`Local Proxy Mode` as the type of install.
Select :guilabel:`Odoo IoT` as the type of install.
.. image:: egypt/install-odoo-local-proxy.png
:align: center
:alt: Selection of "Local Proxy Mode" during the installation of Odoo Community.
:alt: Selection of "Odoo IoT" during the installation of Odoo Community.
.. note::
This installation of Odoo only works as a server and does not install any Odoo apps on your

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 10 KiB

View File

@@ -2,6 +2,10 @@
France
======
.. seealso::
:doc:`Documentation on e-invoicings legality and compliance in France
<../accounting/customer_invoices/electronic_invoicing/france>`
.. _localization/france/fec:
FEC - Fichier des Écritures Comptables

View File

@@ -2,222 +2,154 @@
Germany
=======
German Chart of Accounts
========================
Accounting
==========
The chart of accounts SKR03 and SKR04 are both supported in Odoo. You can choose the
one you want by going in :menuselection:`Accounting --> Configuration` then choose the
package you want in the Fiscal Localization section.
.. seealso::
:doc:`Documentation on e-invoicing's legality and compliance in Germany
<../accounting/customer_invoices/electronic_invoicing/germany>`
Be careful, you can only change the accounting package as long as you have not created any accounting entry.
Chart of accounts
-----------------
.. tip::
Both SKR03 and SKR04 charts of accounts are supported in Odoo. When you create a new Odoo Online
database, SKR03 is installed by default.
When you create a new Odoo Online database, the SKR03 is installed by default.
Verify which is installed by going to :menuselection:`Accounting --> Configuration --> Settings`
and checking the :guilabel:`Package` field under the :guilabel:`Fiscal Localization` section.
German Accounting Reports
=========================
.. warning::
Selecting another package is only possible if you have not created an accounting entry. If one
was posted, a new company or database must be set up to select another package. In
addition, all journal entries will need to be created again.
Here is the list of German-specific reports available on Odoo Enterprise:
Reports
-------
The following German-specific reports available on Odoo Enterprise:
- Balance Sheet
- Profit & Loss
- Tax Report (Umsatzsteuervoranmeldung)
- Partner VAT Intra
- EC Sales List
- Intrastat
Export from Odoo to Datev
=========================
Exporting entries from Odoo to DATEV
------------------------------------
It is possible to export your accounting entries from Odoo to Datev. To be able to use this
feature, the german accounting localization needs to be installed on your Odoo Enterprise database.
Then you can go in :menuselection:`Accounting --> Reporting --> General Ledger` then click on the
**Export Datev (csv)** button.
Provided that one of the German :ref:`fiscal localization packages
<fiscal_localizations/accounting>` is installed, you can export your accounting entries from Odoo to
DATEV from the general ledger.
.. _germany/pos:
Point of Sale in Germany: Technical Security System
===================================================
The **Kassensicherungsverordnung** (The Act on Protection against Manipulation of Digital Records)
requires that electronic record-keeping systems - including the :doc:`point of sale
</applications/sales/point_of_sale>` systems - must be equipped with a **Technical Security System**
(also called **TSS** or **TSE**).
Odoo offers a service that is compliant with the help of `fiskaly <https://fiskaly.com>`_, a
*cloud-based solution*.
.. important::
Since this solution is cloud-based, a working internet connection is required.
Two types of exports are needed: first the DATEV ATCH export, then the DATEV DATA export.
.. note::
The only VAT rates allowed are given by fiskaly. You can check these rates by consulting:
`fiskaly DSFinV-K API: VAT Definition
<https://developer.fiskaly.com/api/dsfinvk/v0/#tag/VAT-Definition>`_.
Both are needed at different stages to transfer the data correctly to DATEV, as DATEV works with
two interfaces, one for clients (DUO - DATEV Unternehmen Online) and one for tax advisors (DATEV
Rechnungswesen).
Configuration
-------------
1. DATEV ATCH
~~~~~~~~~~~~~
Modules installation
~~~~~~~~~~~~~~~~~~~~
Go to :menuselection:`Accounting --> Reporting --> General Ledger`, click the :icon:`fa-cog`
(:guilabel:`Actions`) button, and select :guilabel:`Datev ATCH (zip)`.
#. If your database was created before June 2021, :ref:`upgrade <general/upgrade>` your **Point of
Sale** app (`point_of_sale`) and the **Restaurant** module (`pos_restaurant`).
#. :ref:`Install <general/install>` the **Germany - Certification for Point of Sale**
(`l10n_de_pos_cert`) and **Germany - Certification for Point of Sale of type restaurant**
(`l10n_de_pos_res_cert`) modules.
.. image:: germany/datev-export.png
:alt: General ledger's actions menu with DATEV exports
.. tip::
If these modules are not listed, :ref:`update the app list <general/install>`.
Upload the downloaded ZIP file via the `DATEV Belegtransfer software <https://www.datev.de/web/de/service-und-support/software-bereitstellung/download-bereich/betriebliches-rechnungswesen/belegtransfer>`_.
.. image:: germany/pos-upgrade.png
:align: center
:alt: Upgrading Odoo Point of Sale from the Apps dashboard
If you do not have the DATEV Belegtransfer software installed on your computer, ask your tax advisor
to help you with this.
Register your company at the financial authority
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. warning::
The DATEV ATCH ZIP file includes the files (reports) linked to an Odoo invoice or bill. For
customer invoices, the file must have been generated by using the :guilabel:`Send` button. For
vendor bills, the file must have been received via an email alias or uploaded by using the
:guilabel:`Upload` button.
To register your company, go to :menuselection:`Settings --> General Settings --> Companies -->
Update Info`, fill out the following fields and *Save*.
.. admonition:: DATEV ATCH ZIP file
- **Company name**
- Valid **address**
- **VAT** number
- **St.-Nr** (Steuernummer): this number is assigned by the tax office to every taxable natural or
legal person. (e.g., `2893081508152`)
- **W-IdNr** (Wirtschafts-Identifikationsnummer): this number is used as a permanent
identification number for economically active persons.
The ZIP file contains two types of files:
You can then **register your company through fiskaly** by opening the *fiskaly* tab and clicking on
the *fiskaly Registration* button.
- the individual invoice/bill files (PDF, JPEG, etc.) for the selected period on the general
ledger, and
- a :file:`document.xml` file used to generate a unique ID (GUID) for each file.
.. image:: germany/fiskaly-registration.png
:align: center
:alt: Button to register a company through fiskaly in Odoo
These unique IDs are essential as they allow DATEV to automatically link the files to the
individual journal items, which will be imported with the DATEV DATA file in the next step.
.. tip::
If you do not see the *fiskaly Registration* button, make sure that you *saved* your company
details and are not in *editing mode* anymore.
2. DATEV DATA
~~~~~~~~~~~~~
Once the registration has been finalized, new fields appear:
Go to :menuselection:`Accounting --> Reporting --> General Ledger`, click the :icon:`fa-cog`
(:guilabel:`Actions`) button, and select :guilabel:`Datev DATA (zip)`.
- **fiskaly organization ID** refers to the ID of your company at the fiskaly side.
- **fiskaly API key** and **secret** are the credentials the system uses to access the services
offered by fiskaly.
Transfer the downloaded ZIP file to your tax advisor. They should import the ZIP file into DATEV
Rechnungswesen.
.. image:: germany/fiskaly-keys.png
:align: center
:alt: fiskaly keys as displayed on Odoo
Check with your tax advisor how often they need these files.
.. note::
It is possible to request new credentials if there is any issue with the current ones.
.. admonition:: DATEV ATCH ZIP file
Create and link a Technical Security System to your PoS
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The ZIP file contains three CSV files:
.. image:: germany/create-tss.png
:align: right
:alt: Create TSS option from a point of sale
To use your point of sale in Germany, you first have to create a :abbr:`TSS (Technical Security
System)` for it.
To do so, go to :menuselection:`Point of Sale --> Configuration --> Point of Sale`, open the point
of sale you want to edit, then check the box next to **Create TSS** and *Save*.
.. image:: germany/tss-ids.png
:align: right
:alt: Example of TSS ID and Client ID from fiskaly in Odoo Point of Sale
Once the creation of the TSS is successful, you can find your **TSS ID** and **Client ID** under the
*fiskaly API* section.
- **TSS ID** refers to the ID of your TSS at fiskaly's side.
- **Client ID** refers to your PoS but at fiskaly's side.
DSFinV-K
--------
.. image:: germany/dsfinv-k-export.png
:align: right
:alt: Menu to export DSFinV-K
Whenever you close a PoS session, the orders' details are sent to the :abbr:`DSFinV-K (Digitale
Schnittstelle der Finanzverwaltung für Kassensysteme)` service of fiskaly.
In case of an audit, you can export the data sent to DSFinV-K by going to :menuselection:`Point of
Sale --> Orders --> DSFinV-k exports`.
These fields are mandatory:
- **Name**
- **Start Datetime** (export data with dates larger than or equal to the given start date)
- **End Datetime** (export data with dates smaller than or equal to the given end date)
Leave the **Point of Sale** field blank if you want to export the data of all your points of sale.
Specify a Point of Sale if you want to export this specific PoS' data only.
The creation of a DSFinV-K export triggers on export at fiskaly's side.
.. image:: germany/dsfinv-k-export-fields.png
:align: center
:alt: Pending DSFinV-K export on Odoo
As you can see, the **State** is *Pending*. This means that the export has been successfully
triggered and is being processed. You have to click on *Refresh State* to check if it is ready.
- the :file:`EXTF_customer_accounts.csv` file containing all information related to your
customers,
- the :file:`EXTF_vendor_accounts.csv` file containing all information related to your vendors,
and
- the :file:`EXTF_accounting_entries.csv` containing all journal items for the period defined on
the general ledger, as well as the unique IDs (GUID) so that the journal items can be linked to
the files inside the DATEV ATCH ZIP file.
.. _germany/gobd:
German Tax Accounting Standards: Odoo's guide to GoBD Compliance
================================================================
GoBD compliance
---------------
**GoBD** stands for *Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern,
Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff*.
In short, it is a **guideline for the proper management and storage of books, records, and documents
in electronic form, as well as for data access**, that is relevant for the German tax authority, tax
declaration, and balance sheet.
Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff*. In short, it is a
guideline for the proper management and storage of books, records, and documents in electronic form,
as well as for data access, that is relevant for the German tax authority, tax declaration, and
balance sheet.
These principles have been written and published by the Federal Ministry of Finance (BMF) in
November 2014. Since January 2015, **they have become the norm** and replace previously accepted
practices linked to computer-based accounting. Several changes have been made by the BMF in 2019 and
January 2020 to specify some of the content and due to the development of digital solutions (cloud
hosting, paperless companies, etc.).
November 2014. Since January 2015, **they have become the norm** and have replaced previously
accepted practices linked to computer-based accounting. Several changes have been made by the BMF in
2019 and January 2020 to specify some of the content due to the development of digital solutions
(cloud hosting, paperless companies, etc.).
.. important::
Odoo gives you **the means to be compliant with GoBD**.
Odoo is certified **GoBD-compliant**.
What do you need to know about GoBD when relying on accounting software?
------------------------------------------------------------------------
Understanding GoBD in relation to accounting software
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. note::
If you can, the best way to understand GoBD is to Read the `Official GoBD text
<https://ao.bundesfinanzministerium.de/ao/2021/Anhaenge/BMF-Schreiben-und-gleichlautende-Laendererlasse/Anhang-64/anhang-64.html>`_.
It is a bit long but quite readable for non-experts. But in short, here is what to expect:
The **GoBD is binding for companies that have to present accounts, which includes SMEs, freelancers,
and entrepreneurs, to the financial authorities**. As such, **the taxpayer himself is the sole
responsible** for the complete and exhaustive keeping of fiscal-relevant data (above-mentioned
The **GoBD is binding for companies that have to present accounts**, which includes SMEs,
freelancers, and entrepreneurs, to the financial authorities. As such, **the taxpayer himself is the
sole responsible** for the complete and exhaustive keeping of fiscal-relevant data (above-mentioned
financial and related data).
Apart from software requirements, the user is required to ensure Internal control systems (*in
Apart from software requirements, the user is required to ensure internal control systems (*in
accordance with sec. 146 of the Fiscal Code*):
- Access rights control;
- Segregation of Duties, Functional separating;
- Entry controls (error notifications, plausibility checks);
- Reconciliation checks at data entry;
- Processing controls;
- Measures to prevent intentional or unintentional manipulation of software, data, or documents.
- access rights control;
- segregation of duties, functional separating;
- entry controls (error notifications, plausibility checks);
- reconciliation checks at data entry;
- processing controls; and
- measures to prevent intentional or unintentional manipulation of software, data, or documents.
The user must distribute tasks within its organization to the relevant positions (*control*) and
The user must distribute tasks within their organization to the relevant positions (*control*) and
verify that the tasks are properly and completely performed (*supervision*). The result of these
controls must be recorded (*documentation*), and should errors be found during these controls,
appropriate measures to correct the situation should be put into place (*prevention*).
What about data security?
-------------------------
Data security
~~~~~~~~~~~~~
**The taxpayer must secure the system against any data loss due to deletion, removal, or theft of
any data**. If the entries are not sufficiently secured, the bookkeeping will be regarded as not in
The taxpayer must **secure the system against any data loss** due to deletion, removal, or theft of
any data. If the entries are not sufficiently secured, the bookkeeping will be regarded as not in
accordance with the GoBD guidelines.
Once bookings have been finally posted, they can no longer be changed or deleted via the
@@ -229,104 +161,183 @@ application.
.. seealso::
`Odoo Cloud Hosting - Service Level Agreement <https://www.odooo.com/cloud-sla>`_
- If the server is operated locally, it is the responsibility of the user to create the necessary
backup infrastructure.
- If the server is operated locally, the user is responsible for creating the necessary backup
infrastructure.
.. important::
In some cases, data has to be kept for ten years or more, so always have backups saved. It is
even more important if you decide to change software provider.
Responsibility of the software editor
-------------------------------------
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Considering GoBD only applies between the taxpayer and the financial authority, **the software
editor can by no means be held responsible for the accurate and compliant documentation of financial
transactional data of their users**. It can merely provide the necessary tools for the user to
respect the software related guidelines described in the GoBD.
Considering GoBD applies only to the taxpayer, **the software editor can by no means be held
responsible for the accurate and compliant documentation of their users' financial transactional
data**. It can merely provide the necessary tools for the user to respect the software-related
guidelines described in the GoBD.
How can Odoo help you achieve Compliance?
-----------------------------------------
Ensuring compliance through Odoo
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The key words, when it comes to GoBD, are: **traceable, verifiable, true, clear, and continuous**.
In short, you need to have audit-proof archiving in place and Odoo provides you with the means to
The keywords, when it comes to GoBD are: **traceable, verifiable, true, clear, and continuous**.
In short, you need to have audit-proof archiving in place, and Odoo provides you with the means to
achieve all of these objectives:
#. | **Traceability and verifiability**
| Each record in Odoo is stamped with the creator of the document, the creation date, the
modification date, and who modified it. In addition, relevant fields are tracked thus it can be
seen which value was changed by whom in the chatter of the relevant object.
modification date, and who modified it. In addition, relevant fields are tracked. Thus, it can
be seen which value was changed by whom in the chatter of the relevant object.
#. | **Completeness**
| All financial data must be recorded in the system, and there can be no gaps. Odoo ensures that
there is no gap in the numbering of the financial transactions. It is the responsibility of the
user to encode all financial data in the system. As most financial data in Odoo is generated
user to encode all financial data in the system. As most financial data in Odoo is generated
automatically, it remains the responsibility of the user to encode all vendor bills and
miscellaneous operations completely.
#. | **Accuracy**
| Odoo ensures with the correct configuration that the correct accounts are used. In addition,
| Odoo ensures that, with the correct configuration, the correct accounts are used. In addition,
the control mechanisms between purchase orders and sales orders and their respective invoices
reflect the business reality. It is the responsibility of the user to scan and attach the
paper-based vendor bill to the respective record in Odoo. *Odoo Document helps you automate
this task*.
reflect the reality of the business. It is the responsibility of the user to scan and attach
the paper-based vendor bill to the respective record in Odoo. *Odoo Documents helps you
automate this task*.
#. | **Timely booking and record-keeping**
| As most financial data in Odoo is generated by the transactional objects (for example, the
invoice is booked at confirmation), Odoo ensures out-of-the-box timely record-keeping. It is
the responsibility of the user to encode all incoming vendor bills in a timely manner, as well
as the miscellaneous operations.
#. | **Order**
| Financial data stored in Odoo is per definition ordered and can be reordered according to most
fields present in the model. A specific ordering is not enforced by the GoBD, but the system
must ensure that a given financial transaction can be quickly found by a third-party expert.
Odoo ensures this out-of-the-box.
| Financial data stored in Odoo is, per definition, ordered and can be reordered according to
most fields present in the model. A specific ordering is not enforced by the GoBD, but the
system must ensure that a given financial transaction can be quickly found by a third-party
expert. Odoo ensures this out-of-the-box.
#. | **Inalterability**
| With the German Odoo localization, Odoo is in standard configured in such a way that the
inalterability clause can be adhered to without any further customization.
Do you need a GoBD-Export?
--------------------------
GoBD export
~~~~~~~~~~~
In the case of fiscal control, the fiscal authority can request three levels of access to the
accounting system (Z1, Z2, Z3). These levels vary from direct access to the interface to the
handover of the financial data on a storage device.
In case of a handover of the financial data on a storage device, the format is **not** enforced by
the GoBD. It can be, for example, in XLS, CSV, XML, Lotus 123, SAP-format, AS/400-format, or else.
Odoo supports the CSV and XLS-export of financial data out-of-the-box. The GoBD **recommends** the
export in a specific XML-based GoBD-format (see "Ergänzende Informationen zur
Datenntträgerüberlassung" §3) but it is not binding.
In the case of a handover of financial data to a storage device, the GoBD does **not** enforce the
format. It can be, for example, in XLS, CSV, XML, Lotus 123, SAP-format, AS/400-format, or else.
Odoo supports the CSV and XLS export of financial data out of the box. The GoBD **recommends** the
export in a specific XML-based GoBD format (see "Ergänzende Informationen zur
Datenträgerüberlassung" §3), but it is not binding.
What is the role and meaning of the compliance certification?
-------------------------------------------------------------
Non-compliance
~~~~~~~~~~~~~~
The GoBD clearly states that due to the nature of a state of the art accounting software, their
configuration possibilities, changing nature, and various forms of use, **no legally binding
certification can be given**, nor can the software be made liable towards a public authority.
Third-party certificates can indeed have **an informative value** for customers to make software
buying decisions but are by no means legally binding or of any other legal value (A. 12, § 181).
In the event of an infringement, you can expect a fine and a court order demanding the
implementation of specific measures.
A GoBD certificate states nothing more than that if you use the software according to its
guidelines, the software will not refrain you from respecting the GoBD. These certifications are
very expensive in terms of time and cost, and their value is very relative. Thus we focus our
efforts on ensuring GoBD compliance rather than pay for a marketing tool which does not, however,
offer our customer any legal certainty.
.. _germany/pos:
Point of Sale
=============
Technical security system
-------------------------
The **Kassensicherungsverordnung** (The Act on Protection against Manipulation of Digital Records)
requires that electronic record-keeping systems - including the :doc:`point of sale
</applications/sales/point_of_sale>` systems - must be equipped with a **technical security system**
(also called **TSS** or **TSE**).
Odoo offers a service that is compliant with the help of `fiskaly <https://fiskaly.com>`_, a
*cloud-based solution*.
.. important::
The BMF actually states the following in the `Official GoBD text
<https://ao.bundesfinanzministerium.de/ao/2021/Anhaenge/BMF-Schreiben-und-gleichlautende-Laendererlasse/Anhang-64/anhang-64.html>`_:
Since this solution is cloud-based, a working internet connection is required.
- 180. Positive attestations on the correctness of the bookkeeping - and thus on the correctness
of IT-based bookkeeping systems - are not issued either in the context of a tax field audit or
in the context of binding information.
- 181. "Certificates" or "attestations" from third parties can serve as a decision criterion for
the company when selecting a software product, but develop from the in margin no. 179 is not
binding on the tax authorities.
.. note::
The only VAT rates allowed are given by fiskaly. You can check these rates by consulting
`fiskaly DSFinV-K API: VAT Definition
<https://developer.fiskaly.com/api/dsfinvk/v0/#tag/VAT-Definition>`_.
.. note::
The previous content was `automatically translated from German with Google Translate
<https://translate.google.com/?sl=de&tl=en&text=180.%0APositivtestate%20zur%20Ordnungsm%C3%A4%C3%9Figkeit%20der%20Buchf%C3%BChrung%20-%20und%20damit%20zur%20Ordnungsm%C3%A4%C3%9Figkeit%20DV-gest%C3%BCtzter%20Buchf%C3%BChrungssysteme%20-%20werden%20weder%20im%20Rahmen%20einer%20steuerlichen%20Au%C3%9Fenpr%C3%BCfung%20noch%20im%20Rahmen%20einer%20verbindlichen%20Auskunft%20erteilt.%0A%0A181.%0A%E2%80%9EZertifikate%E2%80%9C%20oder%20%E2%80%9ETestate%E2%80%9C%20Dritter%20k%C3%B6nnen%20bei%20der%20Auswahl%20eines%20Softwareproduktes%20dem%20Unternehmen%20als%20Entscheidungskriterium%20dienen%2C%20entfalten%20jedoch%20aus%20den%20in%20Rz.%20179%20genannten%20Gr%C3%BCnden%20gegen%C3%BCber%20der%20Finanzbeh%C3%B6rde%20keine%20Bindungswirkung.%20&op=translate>`_.
Configuration
~~~~~~~~~~~~~
:ref:`Install <general/install>` the **Germany - Certification for Point of Sale**
(`l10n_de_pos_cert`) and **Germany - Certification for Point of Sale of type restaurant**
(`l10n_de_pos_res_cert`) modules.
What happens if you are not compliant?
--------------------------------------
.. tip::
If these modules are not listed, :ref:`update the app list <general/install>`.
In the event of an infringement, you can expect a fine but also a court order demanding the
implementation of specific measures.
Company registration at the financial authority
***********************************************
To register your company, open the :guilabel:`Settings` app, click :guilabel:`Update Info` under the
:guilabel:`Companies` section, and fill in the following fields:
- :guilabel:`Company Name`
- :guilabel:`Address`
- :guilabel:`VAT`
- :guilabel:`St.-Nr.` (Steuernummer) this number is assigned by the tax office to every taxable
natural or legal person (e.g., `2893081508152`).
- :guilabel:`W-IdNr.` (Wirtschafts-Identifikationsnummer) this number is used as a permanent
identification number for economically active persons.
You can then **register your company through fiskaly** by opening the :guilabel:`Fiskaly` tab and
clicking the :guilabel:`Fiskaly Registration` button.
.. tip::
If you do not see the :guilabel:`Fiskaly Registration` button, make sure that you *saved* your
company details and are not in *editing mode* anymore.
Once the registration has been finalized, new fields appear:
- :guilabel:`Fiskaly Organization ID` refers to the ID of your company on fiskaly's side.
- :guilabel:`Fiskaly API Key` and :guilabel:`Fiskaly API Secret` are the credentials the system
uses to access the services offered by fiskaly.
.. image:: germany/fiskaly-registration.png
:alt: Fiskaly registration tab
.. note::
It is possible to request new credentials if there is any issue with the current ones by clicking
the :guilabel:`New keys` button.
Create a technical security system and link it to a POS
*******************************************************
To use a point of sale in Germany, first create a :abbr:`TSS (Technical Security System)` by going
to :menuselection:`Point of Sale --> Configuration --> Point of Sale`, selecting the
:guilabel:`Point of Sale` to edit, then checking the :guilabel:`Create TSS` box under the
:guilabel:`Fiskaly API` section.
Once the creation of the TSS is successful, you can find the:
- :guilabel:`TSS ID`, which refers to the ID of your TSS on fiskaly's side, and
- :guilabel:`Fiskaly Client ID`, which refers to your POS on fiskaly's side.
.. image:: germany/fiskaly-tss.png
:alt: Fiskaly API section
DSFinV-K export
~~~~~~~~~~~~~~~
Whenever you close a PoS session, the details of the orders are sent to the :abbr:`DSFinV-K
(Digitale Schnittstelle der Finanzverwaltung für Kassensysteme)` service of fiskaly.
In case of an audit, you can export the data sent to DSFinV-K by going to :menuselection:`Point of
Sale --> Orders --> DSFinV-K Exports --> New`.
.. image:: germany/pos-orders-menu.png
:alt: Menu to export DSFinV-K
These fields are mandatory:
- :guilabel:`Start Datetime`: export data with dates larger than or equal to the given start date
- :guilabel:`End Datetime`: export data with dates smaller than or equal to the given end date
Leave the :guilabel:`Point of Sale` field blank to export the data of all your points of sale;
specify one if you want to export data for this specific POS only.
.. image:: germany/dsfinv-k-export.png
:alt: Exporting DSFinV-K
When an export is successfully triggered and is being processed, the :guilabel:`State` field should
mention :guilabel:`Pending`. Click :guilabel:`Refresh State` to check if it is ready.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.6 KiB

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.4 KiB

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

View File

@@ -33,6 +33,10 @@ localization:
- `l10n_it_stock_ddt`
- Transport documents - Documento di Trasporto (DDT)
.. seealso::
:doc:`Documentation on e-invoicings legality and compliance in Italy
<../accounting/customer_invoices/electronic_invoicing/italy>`
Company information
-------------------

View File

@@ -32,6 +32,10 @@ localization:
Installing the module :guilabel:`Luxembourg - Accounting Reports` installs all three modules at
once.
.. seealso::
:doc:`Documentation on e-invoicings legality and compliance in Luxembourg
<../accounting/customer_invoices/electronic_invoicing/luxembourg>`
Standard Chart of Accounts - PCN 2020
=====================================

View File

@@ -2,6 +2,10 @@
Netherlands
===========
.. seealso::
:doc:`Documentation on e-invoicings legality and compliance in the Netherlands
<../accounting/customer_invoices/electronic_invoicing/netherlands>`
XAF Export
==========

View File

@@ -24,6 +24,10 @@ localization.
.. image:: romania/romania-modules.png
:alt: Modules for the Romanian localization
.. seealso::
:doc:`Documentation on e-invoicings legality and compliance in Romania
<../accounting/customer_invoices/electronic_invoicing/romania>`
D.406 declaration
=================

View File

@@ -20,6 +20,12 @@ select a package in the :guilabel:`Fiscal Localization` section.
.. warning::
You can only change the accounting package as long as you have not created any accounting entry.
.. seealso::
- :doc:`Documentation on e-invoicings legality and compliance in Spain
<../accounting/customer_invoices/electronic_invoicing/spain>`
- :doc:`Documentation on e-invoicings legality and compliance in the Basque Country
<../accounting/customer_invoices/electronic_invoicing/basque_country>`
Chart of accounts
=================

View File

@@ -105,39 +105,61 @@ search for your company to verify the following:
Set up a Uruware account
------------------------
To set up a Uruware account, first be sure to have a valid Odoo subscription. Then follow the
proceeding steps.
To set up a Uruware account, follow these steps:
Locate the Uruware credentials settings by navigating to the :menuselection:`Accounting -->
Configuration --> Settings`. Scroll down to the :guilabel:`Uruguayan Localization` section and click
on :guilabel:`Create Uruware Account`.
#. Verify that you have a valid Odoo subscription.
#. Locate the Uruware credentials settings by navigating to the :menuselection:`Accounting -->
Configuration --> Settings`.
#. Scroll down to the :guilabel:`Uruguayan Localization` section and select the environment
(:guilabel:`Production` or :guilabel:`Testing`).
#. Click on :guilabel:`Create Uruware Account`.
Upon doing so, an email is sent to the address associated with your Odoo subscription with the
username and password to enter Uruware's portal and set up your account.
password to enter Uruware's portal and set up your account.
.. tip::
Your :guilabel:`Tax ID` needs to be setup to be able to create your account.
- The email with the credentials is not immediate; it might take up to 48 hours for the account to
be created.
- The company's :guilabel:`Tax ID` needs to be set up to be able to create an Uruware account.
- The password sent expires after 24 hours. In this case, reset it by using the *Forgot Password*
link in Uruware's portal.
.. note::
This action will create an account with Uruware with the following information:
- Legal name (razón social)
- RUT from the company
- User name (RUT.odoo)
- Username (the Odoo subscription email or `RUT`.odoo. For example: `213344556677.odoo`)
- Odoo database link
To ensure your account is created correctly, please add any missing information from above.
Once the account is created, a confirmation email is sent to the email linked to your subscription
in Odoo, containing the credentials to configure the account directly in the Uruware
`testing portal <https://odootest.ucfe.com.uy/Gestion/>`_ or
Once the account is created and you have received the email containing the credentials, configure
your accounts directly in the Uruware `testing portal <https://odootest.ucfe.com.uy/Gestion/>`_ or
`production portal <https://prod6109.ucfe.com.uy/Gestion/>`_:
Use the account credentials in the email to log in to the portal.
Use the account credentials in the email to log in to the to the corresponding (`test
<https://odootest.ucfe.com.uy/Gestion/>`_ or `production <https://prod6109.ucfe.com.uy/Gestion/>`_)
portal.
In Uruware's portal, the following steps are needed to be able to issue invoices from Odoo:
#. Complete and correct the company's information.
#. Add your digital certificate.
#. Add your :abbr:`CAEs (Constancia de Autorización para Emisión)` for each document-type you plan
to issue.
#. Configure the format of the PDF to be printed and sent to your customers.
.. important::
Be sure to configure two accounts, one for testing and one for production. The email address can
be changed in Uruware and the same can be used in both environments.
Be sure to configure two accounts, one for testing and one for production. The certificate is
needed in both environments, but :abbr:`CAEs (Constancia de Autorización para Emisión)` are only
needed in production.
.. seealso::
- `Odoo Tutorials: Uruguay Localization
<https://www.odoo.com/slides/smart-tutorial-localizacion-de-uruguay-432>`_
- `Odoo Help Forum: Uruguay
<https://www.odoo.com/forum/help-1?search=l10n_uy>`_
Electronic invoice data
-----------------------
@@ -156,6 +178,9 @@ First, select the :guilabel:`UCFE Web Services` environment:
to the |DGI|. For this reason, rejection errors will not appear in this mode. Every internal
validation can be tested in demo mode. Avoid selecting this option in a production database.
.. note::
Using :guilabel:`Demo` mode does not require a Uruware account.
Then, enter the :guilabel:`Uruware Data`:
- :guilabel:`Uruware WS Password`
@@ -166,9 +191,16 @@ Then, enter the :guilabel:`Uruware Data`:
:alt: Required information for electronic invoice.
.. note::
This data can be obtained from the Uruware portal, after configuring the :ref:`Uruware account
<l10n_uy/uruware-account>`. The :guilabel:`Uruware WS Password` differs from the password you use
to enter your Uruware account.
This data can be obtained from the Uruware portal after configuring the :ref:`Uruware account
<l10n_uy/uruware-account>`.
To get the :guilabel:`Uruware WS Password`, go to :menuselection:`Configuration --> Company -->
Edit` and look for the :guilabel:`Validators and Additional Information` tab to find
:guilabel:`WS Password`.
To get the :guilabel:`Commerce Code`, go to :menuselection:`Configuration --> Branches`.
To get the :guilabel:`Terminal Code`, go to :menuselection:`Configuration --> Issuing Points`.
Master data
-----------

View File

@@ -441,8 +441,8 @@ entries. We recommend you ask your accountant for advice.
By default, the :guilabel:`Bank Account` defined for the :ref:`payment journal
<payment_providers/journal>` is used, but you can also specify an :ref:`outstanding account
<bank/outstanding-accounts>` for each payment provider to separate the provider's payments from
other payments.
<accounting/bank/outstanding-accounts>` for each payment provider to separate the provider's
payments from other payments.
.. image:: payment_providers/bank_journal.png
:alt: Define an outstanding account for a payment provider.

View File

@@ -33,8 +33,6 @@ Configuration on the Xendit Dashboard
#. In the :guilabel:`Webhook URL` section, enter your Odoo database's URL, followed by
`/payment/xendit/webhook` (e.g., `https://example.odoo.com/payment/xendit/webhook`) in the field
:guilabel:`Invoices paid` and click the :guilabel:`Test and save` button next to it.
#. Navigate to the `Card Settings page <https://dashboard.xendit.co/settings/payment-methods/cards-configuration>`_
and ensure that :guilabel:`Optional 3DS` is enabled while :guilabel:`Dynamic 3DS` is disabled.
Configuration on Odoo
=====================

View File

@@ -100,9 +100,10 @@ Sending emails with an external SMTP server
the DNS of an Odoo subdomain is not feasible.
To add an external SMTP server in Odoo, open :guilabel:`Settings`, and enable the :guilabel:`Use
Custom Email Servers` option found under the :guilabel:`Discuss` section.
Custom Email Servers` option found under the :guilabel:`Emails` section. Then, click
:guilabel:`Save` at the top of the page to save the changes.
Still under the :guilabel:`Discuss` section, click :guilabel:`Outgoing Email Servers`, then `New` to
Returning to the :guilabel:`Emails` section, click :guilabel:`Outgoing Email Servers`, then `New` to
create an outgoing mail server record. Most fields are the common parameters used to set up a
connection to an SMTP server; use the values provided by your email provider.
@@ -158,9 +159,8 @@ transactional emails are given priority.
:alt: Example of split between transaction and mass mailing mail servers.
Now, go to :menuselection:`Email Marketing --> Configuration --> Settings`, enable
:guilabel:`Dedicated Server`, and select the appropriate email server. Odoo uses the server
with the lowest priority value for transactional emails, and the server selected here for mass
mailings.
:guilabel:`Dedicated Server`, and select the appropriate email server. Odoo uses the server with the
lowest priority value for transactional emails, and the server selected here for mass mailings.
.. image:: email_servers_outbound/dedicated-mass-mail-server.png
:alt: Dedicated mail server on Email Marketing app settings.
@@ -194,8 +194,8 @@ When an email is sent from Odoo, the following sequence is used to choose the ou
If the sender's email address is `test@example.com`, only an email server having a FROM filtering
value equal to `test@example.com` or `example.com` can be used.
- If no server is found based on the first criteria, Odoo looks for the first server
without a FROM filtering value set. The email will be overridden with the notification address.
- If no server is found based on the first criteria, Odoo looks for the first server without a FROM
filtering value set. The email will be overridden with the notification address.
- If no server is found based on the second criteria, Odoo uses the first server, and the email will
be overridden with the notification address.
@@ -228,8 +228,8 @@ server is set, the default Odoo's SMTP server will be used.
:alt: Splitting of Odoo mail server for transactional emails and Mail server for Mass mailing.
.. note::
On Odoo Online, the command line interface is equivalent to the default Odoo mail
server, using the same limit as if there was no outgoing mail server in place.
On Odoo Online, the command line interface is equivalent to the default Odoo mail server, using
the same limit as if there was no outgoing mail server in place.
.. tip::
On Odoo Online, the page also shows your daily email usage and your daily limit. On Odoo.sh, you

View File

@@ -140,8 +140,8 @@ serial number.
.. _inventory/product_management/incoming-outgoing-products:
Create serial numbers to incoming or outgoing products
------------------------------------------------------
Create serial numbers for incoming or outgoing products
-------------------------------------------------------
Serial numbers can be assigned to both incoming and outgoing goods. The receipt and delivery order
forms mirror one another; the instructions below can be followed to assign serial numbers in either
@@ -297,6 +297,43 @@ the desired serial numbers for each individual product.
When finished, click the receipt/delivery order's breadcrumbs, and the assigned serial numbers are
automatically saved.
Display serial numbers on delivery slips
========================================
When selling products tracked using serial numbers, it is possible to include the serial numbers on
the delivery slips sent to customers. This can be helpful to customers in cases where serial numbers
are needed, such as filing an RMA or repair request, or registering the product.
To include serial numbers on delivery slips, open the :menuselection:`Inventory` app, and navigate
to :menuselection:`Configuration --> Settings`. Scroll down to the :guilabel:`Traceability` section,
tick the :guilabel:`Display Lots & Serial Numbers on Delivery Slips` checkbox, and click
:guilabel:`Save`.
After enabling the :guilabel:`Display Lots & Serial Numbers on Delivery Slips` setting, serial
numbers are listed on delivery slips for products tracked by serial numbers, once the delivery order
is validated.
To view serial numbers on delivery orders and delivery slips, navigate to the
:menuselection:`Inventory` app, click on :guilabel:`Delivery Orders`, and select an order containing
a product tracked using serial numbers.
To view the serial numbers of products included in the order, make sure the :guilabel:`Operations`
tab is selected, then click the :icon:`oi-settings-adjust` :guilabel:`(adjust)` icon to the right of
the tab. Ensure that the :guilabel:`Serial Numbers` checkbox is ticked, which causes a
:guilabel:`Serial Numbers` column to appear. The serial number(s) for each product included in the
order are displayed in this column.
When the order is ready to be processed, click :guilabel:`Validate` to confirm the delivery and add
product information to the delivery slip.
At the top of the order's form, click the :icon:`fa-cog` :guilabel:`(Actions)` button, and select
:menuselection:`Print --> Delivery Slip`. The delivery slip is then downloaded. Open the delivery
slip using the device's browser or file manager. Serial numbers are listed next to their respective
products in the :guilabel:`Lot/Serial Number` column.
.. image:: serial_numbers/delivery-slip.png
:alt: The order lines section of a delivery slip, showing a product and its serial number.
Traceability & reporting
========================

View File

@@ -74,6 +74,21 @@ a form to provide details about the shipping provider, including:
- :guilabel:`Free if order amount is above`: checking this box enables free shipping if the customer
spends above the specified amount.
.. _inventory/shipping_receiving/availability:
Use the :guilabel:`Availability` tab to define conditions for the delivery method based on the
orders content or destination:
- :guilabel:`Countries`: Specify one or more countries where the method is available.
- :guilabel:`Max Weight`: Set a maximum weight; the method is only available for orders below
this limit.
- :guilabel:`Max Volume`: Set a maximum volume; the method is only available for orders below
this limit.
- :guilabel:`Must Have Tags`: The method is available only if at least one product in the order
has one of these tags.
- :guilabel:`Excluded Tags`: The method is unavailable if at least one product in the order has
one of these tags.
For examples on how to configure specific shipping methods, refer to the sections below.
.. _inventory/shipping/fixed:

View File

@@ -6,8 +6,8 @@ Set up the *Bpost* shipping connector in Odoo to manage Bpost shipments to clien
Odoo. To configure it, complete these steps:
#. Create a Bpost account.
#. Get the :ref:`Account ID and passphrase <inventory/shipping/Bpost-account>`.
#. Set up the shipping method in Odoo.
#. Get the :ref:`Account ID and passphrase <inventory/shipping_receiving/bpost-account>`.
#. :ref:`Set up the shipping method in Odoo <inventory/shipping_receiving/bpost-method>`.
Upon completion, it is possible to calculate the cost of shipping, based on package size and weight,
have the charges applied directly to a Bpost business account, and automatically print Bpost
@@ -19,8 +19,8 @@ tracking labels through Odoo.
- :doc:`dhl_credentials`
- :doc:`ups_credentials`
Bpost account setup
===================
Account setup
=============
To begin, go to the `Bpost website <https://parcel.bpost.be/en/home/business>`_ to create, or log
into, the company's Bpost business account. When creating the Bpost account, have the company's VAT
@@ -30,25 +30,24 @@ Follow the website's steps to complete registration, and sign up for shipping se
submits a request to enter a contractual business relationship between the company and Bpost.
.. important::
Odoo **cannot** be integrated with `non-business Bpost
<https://bpost.freshdesk.com/support/solutions/articles/174847-account-id-and-passphrase>`_
accounts.
Odoo **cannot** be integrated with `non-business Bpost <https://www.odoo.com/r/Z4wZ>`_ accounts.
After completing the setup, get the Bpost account ID and passphrase, by navigating to the
:guilabel:`Shipping Manager` menu item.
.. _inventory/shipping/bpost-account:
.. _inventory/shipping_receiving/bpost-account:
On the :guilabel:`Shipping Manager` page, go to the :guilabel:`Admin` tab, then the
:guilabel:`General Settings` tab, to find the :guilabel:`Account ID` and :guilabel:`Passphrase`
needed to configure Odoo's shipping method.
.. image:: bpost/credentials.png
:align: center
:alt: In the *Admin* tab, show the Account ID and Passphrase.
Configure Bpost shipping method
===============================
.. _inventory/shipping_receiving/bpost-method:
Shipping method configuration
=============================
With those necessary credentials, configure the Bpost shipping method in Odoo by going to
:menuselection:`Inventory app --> Configuration --> Shipping Methods`.
@@ -69,23 +68,20 @@ Product`, refer to the :doc:`Configure third-party carrier <third_party_shipper>
In the :guilabel:`Bpost Configuration` tab, complete the following fields:
- :guilabel:`Bpost Account Number` (required field): enter the company's unique :ref:`account ID
<inventory/shipping/bpost-account>` from the Bpost website.
<inventory/shipping_receiving/bpost-account>` from the Bpost website.
- :guilabel:`Passphrase` (required field): enter the :ref:`passphrase
<inventory/shipping/bpost-account>` from the Bpost website.
<inventory/shipping_receiving/bpost-account>` from the Bpost website.
- :guilabel:`Bpost Delivery Nature`: select either :guilabel:`Domestic` or :guilabel:`International`
shipping services. Choosing :guilabel:`Domestic` shows the :guilabel:`Options` section, while
:guilabel:`International` enables the :guilabel:`Bpost Shipment Type` and :guilabel:`Bpost Parcel
Return Instructions` fields.
- :guilabel:`Bpost Package Type`: select the type of shipping service from the drop-down menu.
For `domestic delivery
<https://help.shipmondo.com/en/articles/6092265-bpost-belgium-parcel-types-and-requirements>`_,
the options are: :guilabel:`bpack 24h Pro`, :guilabel:`bpack 24h business`, or :guilabel:`bpack
Bus`.
For `domestic delivery <https://www.odoo.com/r/uOVM>`_, the options are: :guilabel:`bpack 24h
Pro`, :guilabel:`bpack 24h business`, or :guilabel:`bpack Bus`.
For `international delivery <https://www.bpost.be/en/business-parcels-send/international>`_, the
options are: :guilabel:`bpack World Express Pro`, :guilabel:`bpack World Business`, or
:guilabel:`bpack Europe Business`.
For `international delivery <https://www.odoo.com/r/s6G>`_, the options are: :guilabel:`bpack
World Express Pro`, :guilabel:`bpack World Business`, or :guilabel:`bpack Europe Business`.
- :guilabel:`Bpost Shipment Type` (required field): for international deliveries, declare the type
of goods in the package as :guilabel:`SAMPLE`, :guilabel:`GIFT`, :guilabel:`GOODS`,
:guilabel:`DOCUMENTS`, or :guilabel:`OTHER`.
@@ -105,6 +101,5 @@ For domestic deliveries, these features are available in the :guilabel:`Options`
validating the delivery order.
.. image:: bpost/bpost.png
:align: center
:alt: Show Bpost shipping method.

View File

@@ -38,7 +38,7 @@ The following is a list of available shipping connectors in Odoo:
- United States of America
* - :doc:`Sendcloud <sendcloud_shipping>`
- Some European countries (see details below)
* - Bpost
* - :doc:`Bpost <bpost>`
- Belgium
* - Easypost
- North America

View File

@@ -26,19 +26,17 @@ In order to use reordering rules for a product, it must first be correctly confi
navigating to :menuselection:`Inventory app --> Products --> Products`, then select an existing
product, or create a new one by clicking :guilabel:`New`.
On the product form, under the :guilabel:`General Information` tab, make sure the :guilabel:`Product
Type` is set to :guilabel:`Storable Product`. This is necessary because Odoo only tracks stock
quantities for storable products, and this number is used to trigger reordering rules.
On the product form, under the :guilabel:`General Information` tab, make sure the
:guilabel:`Track Inventory` checkbox is ticked. This is necessary for Odoo to track the product's
stock levels and trigger reordering rules.
.. image:: reordering_rules/product-type.png
:align: center
:alt: Set the Product Type as Storable.
Next, click on the :guilabel:`Inventory` tab and select one or more routes from the
:guilabel:`Routes` section. Doing so tells Odoo which route to use to replenish the product.
.. image:: reordering_rules/select-routes.png
:align: center
:alt: Select one or more routes on the Inventory tab.
If the product is reordered using the :guilabel:`Buy` route, confirm that the :guilabel:`Can be
@@ -47,7 +45,6 @@ appear. Click on the :guilabel:`Purchase` tab, and specify at least one vendor,
they sell the product for, so that Odoo knows which company the product should be purchased from.
.. image:: reordering_rules/specify-vendor.png
:align: center
:alt: Specify a vendor and price on the Purchase tab.
If the product is replenished using the :guilabel:`Manufacture` route, it needs to have at least one
@@ -59,30 +56,40 @@ If a :abbr:`BoM (Bill of Materials)` does not already exist for the product, sel
:guilabel:`New` to configure a new :abbr:`BoM (Bill of Materials)`.
.. image:: reordering_rules/bom-smart-button.png
:align: center
:alt: The Bill of Materials smart button on a product form.
Create new reordering rules
===========================
To create a new reordering rule, navigate to :menuselection:`Inventory app --> Configuration -->
Reordering Rules`, then click :guilabel:`New`, and fill out the new line as follows:
To create a new reordering rule, navigate to :menuselection:`Inventory app --> Operations -->
Replenishment`, then click :guilabel:`New`, and fill out the following fields for the new reordering
rule line item:
- :guilabel:`Product`: The product that is replenished by the rule.
- :guilabel:`Location`: The location where the product is stored.
- :guilabel:`Min Quantity`: The minimum quantity that can be forecasted without the rule being
- :guilabel:`Min`: The minimum quantity that can be forecasted without the rule being
triggered. When forecasted stock falls below this number, a replenishment order for the product is
created.
- :guilabel:`Max Quantity`: The maximum quantity that stock is replenished up to.
- :guilabel:`Multiple Quantity`: Specify if the product should be replenished in batches of a
certain quantity (e.g., a product could be replenished in batches of 20).
- :guilabel:`Max`: The maximum quantity at which the stock is replenished.
- :guilabel:`To Order`: The number of units, according to the *UoM*, that should be replenished for
this reordering rule (e.g., a product could be replenished in batches of 20).
- :guilabel:`UoM`: The unit of measure used for reordering the product. This value can simply be
`Units` or a specific unit of measurement for weight, length, etc.
.. image:: reordering_rules/reordering-rule-form.png
:align: center
:alt: The form for creating a new reordering rule.
.. note::
Two other fields are automatically populated: :guilabel:`On Hand` (the number of units currently
available in inventory) and :guilabel:`Forecast` (the number of units expected to be available in
inventory after all orders are taken into account). These numbers will only change when an
:doc:`inventory adjustment <../inventory_management/count_products>` is made.
Also, additional fields can be accessed by clicking the :icon:`oi-settings-adjust`
:guilabel:`(additional options slider icon)`. For example, :guilabel:`Multiple Quantity`
specifies if the product should be replenished in batches of a certain quantity (e.g., a product
could be replenished in batches of 20).
.. tip::
Reordering rules can also be created from each product form. To do so, navigate to
:menuselection:`Inventory app --> Products --> Products`, and select a product. Then, click the
@@ -137,7 +144,6 @@ In the :guilabel:`Min Quantity` field and :guilabel:`Max Quantity` field, leave
`0.00`. In the :guilabel:`To Order` field, enter a value of `1.00`.
.. image:: reordering_rules/001-rule.png
:align: center
:alt: A 0/0/1 reordering rule.
With the reordering rule configured using these values, each time an |SO| causes the forecasted
@@ -183,7 +189,6 @@ titles, and enable the :guilabel:`Trigger` option from the additional options dr
appears.
.. image:: reordering_rules/enable-trigger.png
:align: center
:alt: Enable the Trigger field by toggling it in the additional options menu
In the :guilabel:`Trigger` column, select :guilabel:`Auto` or :guilabel:`Manual`. Refer to the
@@ -215,7 +220,6 @@ Automatic reordering rules, configured by setting the reordering rule's :guilabe
:guilabel:`Forecast` is `55.00`, the reordering rule is **not** triggered.
.. image:: reordering_rules/auto.png
:align: center
:alt: Show automatic reordering rule from the Reordering Rule page.
If the :guilabel:`Buy` route is selected, then an :abbr:`RFQ (Request for Quotation)` is generated.
@@ -252,7 +256,6 @@ When a product appears on the replenishment dashboard, clicking the :guilabel:`O
generates the purchase or manufacturing order with the specified amounts :guilabel:`To Order`.
.. image:: reordering_rules/manual.png
:align: center
:alt: Click the Order Once button on the replenishment dashboard to replenish stock.
.. _inventory/product_management/visibility-days:
@@ -284,11 +287,10 @@ advance.
is February 27th.
.. image:: reordering_rules/need-dates.png
:align: center
:alt: Graphic representing when the need appears on the replenishment dashboard: Feb 27th.
To see the product on the replenishment dashboard for the current date, February 20, set
the :guilabel:`Visibility Days` to `7.00`.
To see the product on the replenishment dashboard for the current date, February 20, set the
:guilabel:`Visibility Days` to `7.00`.
To determine the amount of visibility days needed to see a product on the replenishment dashboard,
subtract *today's date* from the *date the need appears* on the replenishment dashboard.
@@ -307,7 +309,6 @@ subtract *today's date* from the *date the need appears* on the replenishment da
the need **not** appearing on the replenishment dashboard.
.. image:: reordering_rules/visibility-days.png
:align: center
:alt: Show the replenishment dashboard with the correct and incorrect visibility days set.
.. _inventory/product_management/route:
@@ -332,7 +333,6 @@ Click inside of the column on the row of a reordering rule, and a drop-down menu
routes for that rule. Select one to set it as the preferred route.
.. image:: reordering_rules/select-preferred-route.png
:align: center
:alt: Select a preferred route from the drop-down.
.. important::

View File

@@ -62,10 +62,10 @@ The following are fields found on an event form:
pop-up window appears, displaying various pre-configured language translation options available
in the database.
- :guilabel:`Date`: when the event is scheduled to take place. This field is auto-populated, but
modifiable, and is **required**.
- :guilabel:`Timezone`: the corresponding timezone related to the event. This field is
auto-populated, but modifiable, and is **required**.
- :guilabel:`Date`: when the event is scheduled to take place (expressed in your local timezone).
This field is auto-populated, but modifiable, and is **required**.
- :guilabel:`Display Timezone`: the timezone in which the event dates/times will be displayed on the
website. This field is auto-populated, but modifiable, and is **required**.
- :guilabel:`Language`: designate a specific language for all event communications to be translated
into, if necessary. This field is blank, by default, so if event-related communications are being
sent to recipients who speak a different language, be sure to configure this field properly.

View File

@@ -5,7 +5,7 @@
Helpdesk
========
Odoo *Helpdesk* is a ticketing-based customer support application. Multiple teams can be configured
Odoo **Helpdesk** is a ticket-based customer support application. Multiple teams can be configured
and managed in one dashboard, each with their own pipeline for tickets submitted by customers.
Pipelines are organized in customizable stages that enable teams to track, prioritize, and solve
customer issues quickly and efficiently.
@@ -13,12 +13,11 @@ customer issues quickly and efficiently.
Create a Helpdesk team
======================
To view or modify *Helpdesk* teams, go to :menuselection:`Helpdesk app --> Configuration -->
Helpdesk Teams`. To create a new team, click the :guilabel:`New` button in the top-left of the
To view or modify **Helpdesk** teams, go to :menuselection:`Helpdesk app --> Configuration -->
Helpdesk Teams`. To create a new team, click the :guilabel:`New` button on the top-left of the
dashboard.
.. image:: helpdesk/helpdesk-teams-list.png
:align: center
:alt: View of the Helpdesk teams page in Odoo Helpdesk.
On the blank Helpdesk team form, enter a :guilabel:`Name` for the new team. Then, enter a
@@ -32,7 +31,6 @@ team is assigned to, select it from the :guilabel:`Company` drop-down menu.
use only.
.. image:: helpdesk/team-description-webform.png
:align: center
:alt: View of a Helpdesk team's website form displaying the team description.
Visibility & Assignment
@@ -47,13 +45,13 @@ Determine team visibility
Under the :guilabel:`Visibility` section, select one of the following options to determine who can
view this team and its tickets:
- :guilabel:`Invited internal users (private)`: internal users can access the team and the tickets
- :guilabel:`Invited internal users (private)`: Internal users can access the team and the tickets
they are following. This access can be modified on each ticket individually by adding or removing
the user as a follower. Internal users are considered *invited* once they are added as followers
to an individual ticket, or :ref:`to the team itself <helpdesk/follow>`.
- :guilabel:`All internal users (company)`: all internal users can access the team and all of its
- :guilabel:`All internal users (company)`: All internal users can access the team and all of its
tickets.
- :guilabel:`Invited portal users and all internal users (public)`: all internal users can access
- :guilabel:`Invited portal users and all internal users (public)`: All internal users can access
the team and all of its tickets. Portal users can only access the tickets they are following.
.. example::
@@ -65,7 +63,8 @@ view this team and its tickets:
.. warning::
A team's visibility can be altered after the initial configuration. However, if the team changes
from public access to either private or company-only access, portal users are removed as
from *Invited portal users and all internal users (public)* access to either *Invited internal
users (private)* or *All internal users (company)*-only access, portal users are removed as
followers from both the team, and from individual tickets.
.. _helpdesk/follow:
@@ -86,23 +85,20 @@ Automatically assign new tickets
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When tickets are received, they need to be assigned to a member of the team. This is done either
manually on each ticket individually, or through :guilabel:`Automatic Assignment`. Check the
manually on each individual ticket, or through :guilabel:`Automatic Assignment`. Check the
:guilabel:`Automatic Assignment` checkbox to enable this feature for the team.
.. image:: helpdesk/helpdesk-visibility-assignment.png
:align: center
:alt: View of a Helpdesk team settings page emphasizing the automatic assignment features in Odoo
Helpdesk.
As soon as :guilabel:`Automatic Assignment` has been enabled, additional fields appear.
Select one of the following assignment methods, based on how the workload should be allocated across
the team:
- :guilabel:`Each user is assigned an equal number of tickets`: tickets are assigned to team members
- :guilabel:`Each user is assigned an equal number of tickets`: Tickets are assigned to team members
based on total ticket count, regardless of the number of open or closed tickets they are
currently assigned.
- :guilabel:`Each user has an equal number of open tickets`: tickets are assigned to team members
- :guilabel:`Each user has an equal number of open tickets`: Tickets are assigned to team members
based on how many open tickets they are currently assigned.
.. note::
@@ -118,7 +114,7 @@ field empty to include all employees who have the proper assignments and access
their user account settings.
.. important::
If an employee has time off scheduled in the *Time Off* application, they are **not** assigned
If an employee has time off scheduled in the **Time Off** application, they are **not** assigned
tickets during that time. If no employees are available, the system looks ahead until there is a
match.
@@ -129,7 +125,7 @@ their user account settings.
Merge tickets
=============
If duplicate tickets are found in *Helpdesk*, they can be combined into a single ticket using the
If duplicate tickets are found in **Helpdesk**, they can be combined into a single ticket using the
*merge* feature.
.. important::
@@ -143,6 +139,44 @@ drop-down menu. Doing so opens a new page where the selected tickets are listed
:guilabel:`Similarity` rating. From here, click either :ref:`Merge <data_cleaning/merge-records>` to
combine the tickets, or :guilabel:`DISCARD`.
Convert tickets to opportunities
================================
Some tickets may be better handled by the sales team, rather than the support team. In this case,
tickets can be converted to *opportunities* and assigned to a sales team for follow-up.
.. important::
This feature is **only** available if the :doc:`CRM <../sales/crm>` app is installed.
To convert a ticket to an opportunity, first navigate to a ticket, either from a team's pipeline,
or by navigating to :menuselection:`Helpdesk app --> Tickets` and clicking a ticket to open it.
At the top of the ticket, click the :guilabel:`Convert to Opportunity` button.
.. note::
If :doc:`leads <../sales/crm/acquire_leads/convert>` are enabled on the **CRM** app, tickets are
converted to *leads*, and the button reads :guilabel:`Convert to Lead`.
This opens the :guilabel:`Convert to Opportunity` pop-up. Fill in or select the following
information on the pop-up:
- :guilabel:`Customer`: Select whether to :guilabel:`Create a new customer`, :guilabel:`Link to an
existing customer`, or :guilabel:`Do not link to a customer`. If :guilabel:`Link to a customer` is
chosen, select the appropriate customer name from the :guilabel:`Customer` drop-down.
- :guilabel:`Sales Team`: Specify which :guilabel:`Sales Team` and :guilabel:`Salesperson` this
created opportunity is assigned to.
.. image:: helpdesk/convert-to-opp.png
:alt: The convert to opportunity pop-up window.
After completing the form, click :guilabel:`Convert to Opportunity`. Doing so creates a new
opportunity in the **CRM** app. The original ticket is linked in the chatter of the new opportunity
for traceability.
.. note::
After the ticket is converted to an opportunity, the ticket is archived.
.. seealso::
- `Odoo Tutorials: Helpdesk <https://www.odoo.com/slides/helpdesk-51>`_

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 17 KiB

View File

@@ -2,25 +2,25 @@
Help Center
===========
Odoo *Helpdesk* integrates with the *Forum*, *eLearning*, and *Knowledge* apps to create the *Help
Center*. The *Help Center* is a centralized location where teams and customers can search for and
share detailed information about products and services.
.. |plus| replace:: :icon:`fa-plus` :guilabel:`(plus)` icon
Odoo **Helpdesk** integrates with the **Forums**, **eLearning**, and **Knowledge** apps to create
the *Help Center*. The *Help Center* is a centralized location where teams and customers can search
for and share detailed information about products and services.
.. image:: help_center/help-center-enable-features.png
:align: center
:alt: Overview of the settings page of a team emphasizing the Help Center features.
Configuration
=============
To activate any *Help Center* features (*Forums*, *eLearning*, or *Knowledge*) on a *Helpdesk* team,
go to :menuselection:`Helpdesk app --> Configuration --> Helpdesk Teams` and select a team, or
create a :doc:`new one <../../helpdesk>`. Verify the :guilabel:`Visibility` of the team is set to
:guilabel:`Invited portal users and all internal users (public)` in the :guilabel:`Visibility &
Assignment` section.
To activate any of the *Help Center* features on a *Helpdesk* team, go to :menuselection:`Helpdesk
app --> Configuration --> Helpdesk Teams` and select a team, or create a :doc:`new one
<../../helpdesk>`. Verify the :guilabel:`Visibility` of the team is set to :guilabel:`Invited portal
users and all internal users (public)` in the :guilabel:`Visibility & Assignment` section.
Additionally, the :guilabel:`Website Form` option on the *Helpdesk* team page **must** be enabled to
activate any of the *Help Center* features. When one or more of the *Help Center* features is
Additionally, the :guilabel:`Website Form` option on the **Helpdesk** team form **must** be enabled
to activate any of the *Help Center* features. When one or more of the *Help Center* features is
enabled, the :guilabel:`Website Form` is automatically enabled, as well.
.. danger::
@@ -28,8 +28,8 @@ enabled, the :guilabel:`Website Form` is automatically enabled, as well.
of them may result in the installation of additional modules or applications.
Installing a new application on a *One-App-Free* database will trigger a 15-day trial. At the end
of the trial, if a paid subscription has **not** been added to the database, it will no longer be
active or accessible.
of the trial, if a `paid subscription <https://www.odoo.com/pricing>`_ has **not** been added to
the database, it will no longer be active or accessible.
.. seealso::
:doc:`Helpdesk Overview <../../helpdesk>`
@@ -37,24 +37,29 @@ enabled, the :guilabel:`Website Form` is automatically enabled, as well.
Knowledge
=========
Odoo's *Knowledge* application is a collaborative library, where users can store, edit, and share
information. The *Knowledge* app is accessible throughout the database by clicking on the
:guilabel:`Knowledge (bookmark)` icon.
Odoo's **Knowledge** application is a collaborative library, where users can store, edit, and share
information. The **Knowledge** app can be used to publish user guides and :abbr:`FAQs (Frequently
Asked Questions)` with customers externally, while also collaborating internally on shared
documents.
.. image:: help_center/help-center-knowledge-bookmark-icon.png
:align: center
The **Knowledge** app is accessible throughout the database by clicking on the :guilabel:`Knowledge
(bookmark)` icon.
.. figure:: help_center/help-center-knowledge-bookmark-icon.png
:alt: View of a message in Helpdesk focusing on the Knowledge bookmark icon.
The Knowledge app is represented by the bookmark icon.
Enable Knowledge on a Helpdesk team
-----------------------------------
To enable the *Knowledge* feature on a *Helpdesk* team, go to :menuselection:`Helpdesk app -->
To enable the **Knowledge** feature on a *Helpdesk* team, go to :menuselection:`Helpdesk app -->
Configuration --> Helpdesk Teams` and select a team, or create a :doc:`new one <../../helpdesk>`.
When a team has been selected or created, Odoo displays that team's detail form.
On the team's detail form, scroll down to the :guilabel:`Help Center` section. Then, click the box
next to :guilabel:`Knowledge` to activate the *Knowledge* feature. When clicked, a new field
next to :guilabel:`Knowledge` to activate the **Knowledge** feature. When clicked, a new field
labeled, :guilabel:`Article` appears.
Clicking the :guilabel:`Article` field reveals a drop-down menu. At first, there is only one option
@@ -64,15 +69,14 @@ in the drop-down menu titled :guilabel:`Help`, which Odoo provides by default. S
.. tip::
To create a new article, go to the :menuselection:`Knowledge app`, then hover the cursor next to
the :guilabel:`Workspace` section heading, located in the left sidebar. Moving the cursor there
reveals a hidden :guilabel:` (plus sign)` icon.
reveals a hidden |plus|.
Click the :guilabel:` (plus sign)` icon to create a new article in the :guilabel:`Workspace`.
In the upper-right corner of the page, click the :guilabel:`Share` button, and slide the
:guilabel:`Share to Web` toggle switch until it reads :guilabel:`Article Published`. It can then
be added to a *Helpdesk* team.
Click the |plus| to create a new article in the :guilabel:`Workspace`. Click the
:icon:`fa-share-alt` :guilabel:`Share` icon, and slide the :guilabel:`Share to Web` toggle switch
until it reads :guilabel:`Article Published`. It can then be added to a **Helpdesk** team.
Once an article has been created and assigned to a *Helpdesk* team, content can be added and
organized through the *Knowledge* app.
Once an article has been created and assigned to a **Helpdesk** team, content can be added and
organized through the **Knowledge** app.
.. seealso::
:doc:`Editing Knowledge articles <../../../productivity/knowledge/articles_editing>`
@@ -80,10 +84,10 @@ organized through the *Knowledge* app.
Search articles from a Helpdesk ticket
--------------------------------------
When members of a *Helpdesk* team are trying to solve a ticket, they can search through the content
in the *Knowledge* app for more information on the issue.
When members of a **Helpdesk** team are trying to solve a ticket, they can search through the
content in the **Knowledge** app for more information on the issue.
To search *Knowledge* articles, open a ticket — either from the *Helpdesk* app dashboard, or by
To search **Knowledge** articles, open a ticket — either from the **Helpdesk** app dashboard, or by
going to :menuselection:`Helpdesk app --> Tickets --> All Tickets`, then select a ticket from the
list.
@@ -93,12 +97,11 @@ Click the :guilabel:`Knowledge (bookmark)` icon, located at the top-right of the
pop-up search window.
.. image:: help_center/help-center-knowledge-search.png
:align: center
:alt: View of knowledge search window from a helpdesk ticket.
.. tip::
*Knowledge* articles can also be searched by pressing :command:`Ctrl + K` to open the command
palette, then typing `?`, followed by the name of the desired article.
**Knowledge** articles can also be searched by pressing :command:`Ctrl + K` to open the command
palette, then typing :kbd:`?`, followed by the name of the desired article.
When Odoo reveals the desired article, click it, or highlight the :guilabel:`Article` title, and
press :command:`Enter`. This will open the article in the :guilabel:`Knowledge` application.
@@ -112,7 +115,8 @@ To open the article in a new tab, press :command:`Ctrl + Enter`.
Share an article to the Help Center
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To make a *Knowledge* article available to customers and website visitors, it **must** be published.
To make a **Knowledge** article available to customers and website visitors, it **must** be
published.
.. important::
Even though the *Help* article has been enabled on a team, Odoo does **not** share all the nested
@@ -120,17 +124,16 @@ To make a *Knowledge* article available to customers and website visitors, it **
be viewable on the website.
To publish an article, navigate to the desired article, by following the above steps, and click the
:guilabel:`Share` icon in the upper-right corner. This reveals a menu. Slide the toggle button
labeled :guilabel:`Share to Web` to read :guilabel:`Article Published`.
:icon:`fa-share-alt` :guilabel:`Share` icon. This reveals a menu. Slide the toggle button labeled
:guilabel:`Share to Web` to read :guilabel:`Article Published`.
.. image:: help_center/help-center-knowledge-sharing.png
:align: center
:alt: View of a knowledge article focused on sharing and publishing options.
Solve tickets with a clipboard box
----------------------------------
*Clipboard* boxes can be added to *Knowledge* articles to allow content to be reused, copied, sent
*Clipboard* boxes can be added to **Knowledge** articles to allow content to be reused, copied, sent
as messages, or added to the description on a ticket. This allows teams to maintain consistency when
answering customer tickets, and minimize the amount of time spent on responding to repeat questions.
@@ -138,33 +141,32 @@ Add clipboard boxes to articles
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To create a clipboard box, go to :menuselection:`Knowledge app --> Help`. Click on an existing
nested article or create a new one by clicking the :guilabel:` (plus sign)` icon next to *Help*.
nested article or create a new one by clicking the |plus| next to *Help*.
Type `/` to open the *powerbox*, and view a drop-down list of :doc:`commands
<../../../productivity/knowledge/articles_editing>`. Select or type `clipboard`. A gray block is
then added to the page. Add any necessary content to this block.
Type :kbd:`/` to open the *powerbox*, and view a drop-down list of :doc:`commands
<../../../productivity/knowledge/articles_editing>`. Select or type :kbd:`clipboard`. A gray block
is then added to the page. Add any necessary content to this block.
.. image:: help_center/help-center-knowledge-clipboard-options.png
:align: center
:alt: View of a clipboard in knowledge with focus on send and copy options.
.. note::
Clipboard boxes only display the :guilabel:`Use as description` or :guilabel:`Send as Message`
options if they are accessed directly from the *Helpdesk*.
options if they are accessed directly from the **Helpdesk**.
Use clipboard boxes in tickets
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Clipboard boxes can be used to respond directly to a *Helpdesk* ticket as a message, or to add
Clipboard boxes can be used to respond directly to a **Helpdesk** ticket as a message, or to add
information to the ticket's description.
To use clipboard boxes in a *Helpdesk* ticket, first, open a ticket, either from the
To use clipboard boxes in a **Helpdesk** ticket, first, open a ticket, either from the
:guilabel:`Helpdesk` dashboard or by going to :menuselection:`Helpdesk app --> Tickets --> All
Tickets` and selecting a ticket from the list.
Click on the :guilabel:`Knowledge (bookmark)` icon in the top-right corner. This opens a search
window. In this search window, select, or search, for the desired article. Doing so reveals that
article page in the Odoo *Knowledge* application.
article page in the Odoo **Knowledge** application.
To use a clipboard box to respond to a ticket, click :guilabel:`Send as message` in the upper-right
corner of the clipboard box, located in the body of the article.
@@ -184,13 +186,13 @@ Community Forum
===============
A *Community Forum* provides a space for customers to answer each other's questions and share
information. By integrating a forum with a *Helpdesk* team, tickets submitted by customers can be
information. By integrating a forum with a **Helpdesk** team, tickets submitted by customers can be
converted to posts and shared.
Enable forums on a Helpdesk team
--------------------------------
To enable :guilabel:`Community Forums` on a *Helpdesk* team, start by navigating to
To enable :guilabel:`Community Forums` on a **Helpdesk** team, start by navigating to
:menuselection:`Helpdesk app --> Configuration --> Helpdesk Teams` and select a team, or create a
:doc:`new one <../../helpdesk>`.
@@ -213,7 +215,7 @@ To create a new forum, type a name into the blank :guilabel:`Forums` field, then
Create a forum post from a Helpdesk ticket
------------------------------------------
When a *Helpdesk* team has a *Forum* enabled, tickets submitted to that team can be converted to
When a **Helpdesk** team has a *Forum* enabled, tickets submitted to that team can be converted to
forum posts.
To do that, select a ticket, either from a team's pipeline or from :menuselection:`Tickets --> All
@@ -222,7 +224,6 @@ Tickets` in the :guilabel:`Helpdesk` application.
At the top of the ticket detail form, click the :guilabel:`Share on Forum` button.
.. image:: help_center/help-center-share-on-forum.png
:align: center
:alt: Overview of the Forums page of a website to show the available ones in Odoo Helpdesk.
When clicked, a pop-up window appears. Here, the :guilabel:`Forum` post and :guilabel:`Title` can be
@@ -232,10 +233,29 @@ edited to correct any typos, or modified to remove any proprietary or client inf
users to locate during a search. When all adjustments have been made, click :guilabel:`Create and
View Post`.
Create a Helpdesk ticket from a forum post
------------------------------------------
Forum posts submitted by portal users can be converted to **Helpdesk** tickets.
To create a ticket, navigate to a forum post, and click the :icon:`fa-ellipsis-h`
:guilabel:`(ellipsis)` icon. Then, click :guilabel:`Create Ticket`.
.. image:: help_center/help-center-create-ticket.png
:alt: A forum post with the create ticket option visible.
This opens a :guilabel:`Create Ticket` pop-up. Make any necessary edits to the :guilabel:`Create
Ticket` field. Then, confirm the :guilabel:`Helpdesk Team` the ticket should be assigned to.
Click :guilabel:`Create & View Ticket` or :guilabel:`Create Ticket`.
.. note::
The original forum post is linked in the chatter on the new ticket.
eLearning
=========
Odoo *eLearning* courses offer customers additional training and content in the form of videos,
Odoo **eLearning** courses offer customers additional training and content in the form of videos,
presentations, and certifications/quizzes. Providing additional training enables customers to work
through issues and find solutions on their own. They can also develop a deeper understanding of the
services and products they are using.
@@ -243,7 +263,7 @@ services and products they are using.
Enable eLearning courses on a Helpdesk team
-------------------------------------------
To enable *eLearning* courses on a *Helpdesk* team, go to :menuselection:`Helpdesk app -->
To enable **eLearning** courses on a **Helpdesk** team, go to :menuselection:`Helpdesk app -->
Configuration --> Helpdesk Teams` and select a team, or create a :doc:`new one <../../helpdesk>`.
On the team's settings page, scroll to the :guilabel:`Help Center` section, and check the box next
@@ -257,10 +277,10 @@ courses can be assigned to a single team.
Create an eLearning course
--------------------------
A new *eLearning* course can be created from the :guilabel:`Helpdesk` team's settings page, as in
the step above, or from the *eLearning* app.
A new **eLearning** course can be created from the :guilabel:`Helpdesk` team's settings page, as in
the step above, or from the **eLearning** app.
To create a course directly through the *eLearning* application, navigate to
To create a course directly through the **eLearning** application, navigate to
:menuselection:`eLearning --> New`. This reveals a blank course template that can be customized and
modified as needed.
@@ -284,7 +304,6 @@ where instructed. Click :guilabel:`Save` when finished. Click :guilabel:`Add Sec
the course in sections.
.. image:: help_center/help-center-elearning-course-contents-page.png
:align: center
:alt: View of a course being published for Odoo Helpdesk.
.. note::
@@ -309,7 +328,7 @@ To allow customers to enroll in a course, both the course and the contents **mus
To make the entire course available at once, each piece of course content must be published first,
then the course can be published.
To publish a course, choose a course from the *eLearning* dashboard. On the course template page,
To publish a course, choose a course from the **eLearning** dashboard. On the course template page,
click the :guilabel:`Go to Website` smart button.
This will reveal the front end of the course's web page. At the top of the course web page, move
@@ -318,15 +337,14 @@ the :guilabel:`Unpublished` toggle switch to :guilabel:`Published`.
Publish eLearning course contents from the back-end
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To publish *eLearning* course content from the back-end, choose a course from the *eLearning*
To publish **eLearning** course content from the back-end, choose a course from the **eLearning**
dashboard. On the course template page, click the :guilabel:`Published Contents` smart button.
Doing so reveals a separate page displaying all the published content related to that course. Remove
the default :guilabel:`Published` filter from the search bar in the upper-right corner, to reveal
all the content related to the course - even the non-published content.
Click the :guilabel:`≣ (bars)` icon in the upper-right corner, directly beneath the search bar to
switch to list view.
Click the :icon:`oi-view-list` :guilabel:`(list)` icon to switch to list view.
While in list view, there is a checkbox on the far-left of the screen, above the listed courses, to
the left of the :guilabel:`Title` column title. When that checkbox is clicked, all the course
@@ -337,5 +355,4 @@ This reveals a pop-up window, asking for confirmation that all selected records
published. Click :guilabel:`Confirm` to automatically publish all course content.
.. image:: help_center/help-center-elearning-publish-back-end.png
:align: center
:alt: View of a course contents being published in Odoo Helpdesk back-end.

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 26 KiB

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 62 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -2,21 +2,23 @@
Service level agreements (SLA)
==============================
A *service level agreement* (SLA) defines the level of service a customer can expect from a
supplier. :abbr:`SLAs (Service Level Agreements)` provide a timeline that tells customers when they
can expect results, and keeps the support team on target.
.. |SLAs| replace:: :abbr:`SLAs (Service Level Agreements)`
.. |SLA| replace:: :abbr:`SLA (Service Level Agreements)`
A *service level agreement* (SLA) defines the level of support a customer can expect from a service
provider. |SLAs| provide a timeline that tells customers when they can expect results and keeps the
support team on target.
.. note::
The *SLA Policies* feature is enabled by default on newly created *Helpdesk* teams.
The *SLA Policies* feature is enabled by default on newly created **Helpdesk** teams.
To turn off the feature, or edit the working hours, navigate to :menuselection:`Helpdesk app -->
Configuration --> Helpdesk Teams`. Click on a team to open that team's configuration page.
From here, scroll to the :guilabel:`Performance` section. To turn off the :abbr:`SLAs (Service
Level Agreements)` feature for the team, clear the :guilabel:`SLA Policies` checkbox.
From here, scroll to the :guilabel:`Performance` section. To turn off the |SLAs| feature for the
team, clear the :guilabel:`SLA Policies` checkbox.
.. image:: sla/sla-enable.png
:align: center
:alt: View of a team page in Helpdesk focusing on the SLA Policies setting.
Create a new SLA policy
@@ -29,8 +31,8 @@ Alternatively, go to :menuselection:`Helpdesk app --> Configuration --> Helpdesk
on a team. Then, click the :guilabel:`SLA Policies` smart button at the top of the team's settings
page, and click :guilabel:`New`.
On the blank :abbr:`SLA (Service Level Agreement)` policy form, enter a :guilabel:`Title` and a
:guilabel:`Description` for the new policy, and proceed to fill out the form using the steps below.
On the blank |SLA| policy form, enter a :guilabel:`Title` and a :guilabel:`Description` for the new
policy, and proceed to fill out the form using the steps below.
Define the criteria for an SLA policy
-------------------------------------
@@ -42,89 +44,82 @@ Fill out the following fields to adjust the selection criteria:
.. note::
Unless otherwise indicated, multiple selections can be made for each field.
- :guilabel:`Helpdesk Team`: a policy can only be applied to one team. *This field is required.*
- :guilabel:`Priority`: the priority level for a ticket is identified by selecting one, two, or
three of the :guilabel:`(star)` icons, representing the priority level on the Kanban card or on
the ticket itself. The :abbr:`SLA (Service Level Agreement)` is **only** applied after the
priority level has been updated on the ticket to match the :abbr:`SLA (Service Level Agreement)`
criteria. If no selection is made in this field, this policy only applies to tickets marked as
`Low Priority`, meaning those with zero :guilabel:`(star)` icons.
- :guilabel:`Tags`: tags are used to indicate what the ticket is about. Multiple tags can be applied
- :guilabel:`Helpdesk Team`: A policy can only be applied to one team. *This field is required.*
- :guilabel:`Priority`: The priority level for a ticket is identified by selecting one, two, or
three of the :icon:`fa-star-o` :guilabel:`(star)` icons, representing the priority level on the
Kanban card or on the ticket itself. The |SLA| is **only** applied after the priority level has
been updated on the ticket to match the |SLA| criteria. If no selection is made in this field,
this policy only applies to tickets marked as `Low Priority`, meaning those with zero
:icon:`fa-star-o` :guilabel:`(star)` icons.
- :guilabel:`Tags`: Tags are used to indicate what the ticket is about. Multiple tags can be applied
to a single ticket.
- :guilabel:`Customers`: individual contacts or companies may be selected in this field.
- :guilabel:`Sales Order Items`: this field is available only if a team has the *Timesheets* app
enabled. This allows the ticket to link directly to a specific line on a sales order, which must
be indicated on the ticket in the :guilabel:`Sales Order Items` field.
- :guilabel:`Customers`: Individual contacts or companies may be selected in this field.
- :guilabel:`Services`: This field is available only if a team has the **Timesheets** app enabled.
This allows the ticket to link directly to a specific line on a sales order, which must be
indicated on the ticket in the :guilabel:`Sales Order Items` field.
.. example::
A support team needs to address urgent issues for VIP customers within one business day.
The new policy, titled `8 Hours to close`, is assigned to the `VIP Support` team. It **only**
applies to tickets that are assigned three :guilabel:`(star)` icons, which equates to an
`Urgent` priority level.
applies to tickets that are assigned three :icon:`fa-star-o` :guilabel:`(star)` icons, which
equates to an `Urgent` priority level.
At the same time, the tickets can be related to multiple issues, so the policy applies to tickets
with `Repair`, `Service`, or `Emergency` tags.
.. image:: sla/sla-create-new.png
:align: center
:alt: View of a new SLA policy record with all the relevant information entered.
Establish a target for an SLA policy
------------------------------------
A *target* is the stage a ticket needs to reach, and the time allotted to reach that stage, in order
to satisfy the :abbr:`SLA (Service Level Agreement)` policy. Any stage assigned to a team may be
selected for the :guilabel:`Reach Stage` field.
to satisfy the |SLA| policy. Any stage assigned to a team may be selected for the :guilabel:`Reach
Stage` field.
Time spent in stages selected in the :guilabel:`Excluding Stages` field are **not** included in the
calculation of the :abbr:`SLA (Service Level Agreement)` deadline.
calculation of the |SLA| deadline.
.. example::
An :abbr:`SLA (Service Level Agreement)` titled `8 Hours to Close` tracks the working time before
An |SLA| titled `8 Hours to Close` tracks the working time before
a ticket is completed, and would have `Solved` as the :guilabel:`Reach Stage`. Simultaneously, an
:abbr:`SLA (Service Level Agreement)` titled `2 Days to Start` tracks the working time before
|SLA| titled `2 Days to Start` tracks the working time before
work on a ticket has begun, and would have `In Progress` as the :guilabel:`Reach Stage`.
Meet SLA deadlines
==================
As soon as it is determined that a ticket fits the criteria of an :abbr:`SLA (Service Level
Agreement)` policy, a deadline is calculated. The deadline is based on the creation date of the
ticket, and the targeted working hours.
As soon as it is determined that a ticket fits the criteria of an |SLA| policy, a deadline is
calculated. The deadline is based on the creation date of the ticket, as well as the targeted
working hours.
.. note::
The value indicated next to the :guilabel:`Working Hours` field of an :abbr:`SLA (Service Level
Agreement)` policy is used to determine the deadline. By default, this is determined by the value
set in the :guilabel:`Company Working Hours` field under :menuselection:`Settings app -->
Employees --> Work Organization`.
The value indicated next to the :guilabel:`Working Hours` field of an |SLA| policy is used to
determine the deadline. By default, this is determined by the value set in the :guilabel:`Company
Working Hours` field under :menuselection:`Settings app --> Employees --> Work Organization`.
The deadline is then added to the ticket, as well as a tag indicating the name of the :abbr:`SLA
(Service Level Agreement)` applied.
The deadline is then added to the ticket, as well as a tag indicating the name of the |SLAs|
applied.
.. image:: sla/sla-open-deadline.png
:align: center
:alt: View of a ticket's form emphasizing an open SLA deadline on a ticket in Odoo Helpdesk.
When a ticket satisfies an :abbr:`SLA (Service Level Agreement)` policy, the :abbr:`SLA (Service
Level Agreement)` tag turns green, and the deadline disappears from view on the ticket.
When a ticket satisfies an |SLA| policy, the |SLA| tag turns green, and the deadline disappears
from view on the ticket.
.. image:: sla/sla-deadline.png
:align: center
:alt: View of a ticket's form emphasizing a satisfied SLA in Odoo Helpdesk.
.. important::
If a ticket fits the criteria for more than one :abbr:`SLA (Service Level Agreement)`, the
earliest occurring deadline is displayed on the ticket. After that deadline has passed, the next
deadline is displayed.
If a ticket fits the criteria for more than one |SLA|, the earliest occurring deadline is
displayed on the ticket. After that deadline has passed, the next deadline is displayed.
If the :abbr:`SLA (Service Level Agreement)` deadline passes and the ticket has not moved to the
:guilabel:`Reach Stage`, the :abbr:`SLA (Service Level Agreement)` tag turns red. After the
:abbr:`SLA (Service Level Agreement)` has failed, the red tag stays on the ticket, even after the
ticket is moved to the :guilabel:`Reach Stage`.
If the |SLA| deadline passes and the ticket has not moved to the :guilabel:`Reach Stage`, the |SLA|
tag turns red. After the |SLA| has failed, the red tag stays on the ticket, even after the ticket is
moved to the :guilabel:`Reach Stage`.
.. image:: sla/sla-passing-failing.png
:align: center
:alt: View of a ticket's form with a failing and passing SLA in Odoo Helpdesk.
.. _helpdesk/analyze-sla-performance:
@@ -132,20 +127,18 @@ ticket is moved to the :guilabel:`Reach Stage`.
Analyze SLA performance
=======================
The :guilabel:`SLA Status Analysis` report tracks how quickly an :abbr:`SLA (Service Level
Agreement)` is fulfilled, as well as the performance of individual team members. Navigate to the
report, and corresponding pivot table, by going to :menuselection:`Helpdesk app --> Reporting -->
SLA Status Analysis`.
The :guilabel:`SLA Status Analysis` report tracks how quickly an |SLA| is fulfilled, as well as the
performance of individual team members. Navigate to the report, and corresponding pivot table, by
going to :menuselection:`Helpdesk app --> Reporting --> SLA Status Analysis`.
Pivot view
----------
By default, the report displays in a :guilabel:`Pivot` view. Any :abbr:`SLA (Service Level
Agreement)` policies in the database with tickets that failed to fulfill a policy, are in progress,
or have satisfied a policy are listed. By default, they are grouped by team and ticket count.
By default, the report displays in a :guilabel:`Pivot` view. Any |SLA| policies in the database with
tickets that failed to fulfill a policy, are in progress, or have satisfied a policy are listed. By
default, they are grouped by team and ticket count.
.. figure:: sla/sla-status-analysis.png
:align: center
:alt: View of the SLA status analysis report in Odoo Helpdesk.
The pivot view aggregates data, which can be manipulated by adding measures and filters.
@@ -153,36 +146,32 @@ or have satisfied a policy are listed. By default, they are grouped by team and
To change the display, or add additional measurements, click the :guilabel:`Measures` button to
reveal a drop-down menu of reporting criteria, and choose from the options available.
Whenever a measurement is picked, a :guilabel:`✔️ (checkmark)` icon appears in the drop-down menu to
indicate that the measurement is included, and a corresponding new column emerges in the pivot table
to show the relevant calculations.
Whenever a measurement is picked, a :icon:`fa-check` :guilabel:`(check)` icon appears in the
drop-down menu to indicate that the measurement is included, and a corresponding new column emerges
in the pivot table to show the relevant calculations.
.. image:: sla/sla-pivot-measures.png
:align: center
:alt: View of the available measures in the SLA status analysis report.
To add a group to a row or column, click the :guilabel:` (plus)` icon next to the policy name and
then select one of the groups. To remove one, click the :guilabel:` (minus)` icon next to the
policy name.
To add a group to a row or column, click the :icon:`fa-plus-square` :guilabel:`(plus)` icon next to
the policy name and then select one of the groups. To remove one, click the
:icon:`fa-minus-square-o` :guilabel:`(minus)` icon next to the policy name.
.. image:: sla/sla-pivot-groups.png
:align: center
:alt: View of the available group by options in the SLA status analysis report.
Graph view
----------
The :guilabel:`SLA Status Analysis` report can also be viewed as a :guilabel:`Bar Chart`,
:guilabel:`Line Chart`, or :guilabel:`Pie Chart`. Toggle between these views by first selecting the
:guilabel:`Graph` button at the top-right of the dashboard. Then, select the appropriate chart icon
at the top-left of the graph.
Switch to the graph view by selecting the :icon:`fa-area-chart` :guilabel:`(graph view)` icon at the
top of the screen. To switch between the different charts, select the *related icon* at the top of
the chart, while in graph view.
.. tabs::
.. tab:: Bar Chart
.. figure:: sla/sla-report-bar.png
:align: center
:alt: View of the SLA status analysis report in bar view.
A bar chart can deal with larger data sets and compare data across several categories.
@@ -190,7 +179,6 @@ at the top-left of the graph.
.. tab:: Line Chart
.. figure:: sla/sla-report-line.png
:align: center
:alt: View of the SLA status analysis report in line view.
A line chart can visualize data trends or changes over time.
@@ -198,30 +186,27 @@ at the top-left of the graph.
.. tab:: Pie Chart
.. figure:: sla/sla-report-pie.png
:align: center
:alt: View of the SLA status analysis report in pie chart view.
A pie chart compares data among a small number of categories.
.. tip::
Both the :guilabel:`Bar Chart` and :guilabel:`Line Chart` views can be :guilabel:`Stacked` by
selecting the :guilabel:`Stacked` icon. This displays two or more groups on top of each other
instead of next to each other, making it easier to compare data.
Both the *bar chart* and *line chart* can utilize the *stacked* view option. This presents two
or more groups of data on top of each other, instead of next to each other, making it easier to
compare data. While viewing either a bar chart or line chart, click the :icon:`fa-database`
:guilabel:`(stacked)` icon to toggle the stacked view option on or off.
.. image:: sla/sla-report-stacked.png
:align: center
:alt: View of the SLA status analysis report in bar view, stacked.
Cohort view
-----------
The :guilabel:`Cohort` view is used to track the changes in data over a period of time. To display
the :guilabel:`SLA Status Analysis` report in a :guilabel:`Cohort` view, click the
:guilabel:`Cohort` button, represented by :guilabel:`(four cascading horizontal lines)`, in the
top-right corner, next to the other view options.
The *cohort* view is used to track the changes in data over a period of time. To display the
:guilabel:`SLA Status Analysis` report in a cohort view, click the :icon:`oi-view-cohort`
:guilabel:`(cohort)` icon, next to the other view options.
.. figure:: sla/sla-report-cohort.png
:align: center
:alt: View of the SLA status analysis report in cohort view.
The cohort view examines the life cycle of data over time.

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.0 KiB

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.5 KiB

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.8 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 26 KiB

View File

@@ -17,4 +17,5 @@ coworkers, and keep track of each project's profitability.
:titlesonly:
project/project_management
project/project_dashboard
project/tasks

View File

@@ -0,0 +1,113 @@
=================
Project dashboard
=================
The project dashboard allows you to get a comprehensive overview of your project's status. It
displays information such as the total number of tasks, timesheets, and planned hours linked to the
project, as well as detailed information about project milestones and its costs and revenues. Within
the project dashboard, you can create :guilabel:`Project updates`, which allow you to take a
snapshot of the project's status at a certain point in time. As such, it is a crucial tool for
effective project management and ensuring that your project stays on track.
Using the project dashboard
===========================
To access the project dashboard, open the **Project** app and hover over the desired projects
card. Then, click the :icon:`fa-vertical-ellipsis` (:guilabel:`vertical ellipsis`) icon and
select :guilabel:`Dashboard`.
The left side of the dashboard displays a list of existing :ref:`project updates <project/project-dashboard/updates>`,
and the right side provides :ref:`detailed information about records linked to the project
<project/project-dashboard/smart-buttons>`, as well as :ref:`milestones <project/project-dashboard/milestones>`,
:ref:`profitability <project/project-dashboard/profitability>`, and :ref:`budgets
<project/project-dashboard/budgets>`.
.. note::
The information displayed on the project dashboard varies depending on the applications installed
on your database. For example, you will not see information about **Timesheets**, **Planning**,
or **Purchase Orders** if the corresponding applications are not installed.
.. _project/project-dashboard/smart-buttons:
Totals smart buttons
--------------------
The following smart buttons are displayed on the top left of the project dashboard:
- :guilabel:`Tasks`: the number of completed (i.e., :guilabel:`Done` or :guilabel:`Canceled`
:ref:`tasks <project/tasks/task_stages_statuses/statuses>`) and all tasks, in format
completed/all, as well as the entire project's completion percentage estimation.
- :guilabel:`Timesheets`: the number of hours or days (depending on the **Timesheets** app
configuration) linked to the project. This includes all :doc:`timesheets <../timesheets>`,
whether or not they have been validated.
- :guilabel:`Planned`: the number of hours that have been planned for shifts in the **Planning**
app. This includes all :doc:`planned shifts <../planning>`, including past shifts and shifts that
have not yet been published.
- :guilabel:`Documents`: number of :doc:`documents <../../productivity/documents>` in the
projects workspace.
- :guilabel:`Burndown Chart`: click the smart button to access a :doc:`report </applications/essentials/reporting>`
on the status of the projects tasks over time.
- :guilabel:`Timesheets and Planning`: click the smart button to access a :doc:`report </applications/essentials/reporting>`
on the projects timesheets and shifts.
- **Additional fields**, such as :guilabel:`Sales Orders`, :guilabel:`Sales Order Items`,
:guilabel:`Purchase Orders`, and more, represent the number of records linked to the project.
.. tip::
Use the project dashboard smart buttons to update the project records easily. Click
:guilabel:`Timesheets` to validate timesheets, :guilabel:`Planned` to create project planning,
:guilabel:`Documents` to view and validate documents, etc.
.. _project/project-dashboard/milestones:
Milestones
----------
This section is only visible if :doc:`milestones </applications/sales/sales/invoicing/milestone>`
have been created for this project. Click :guilabel:`Add Milestone` to create a new milestone.
Click a milestone in the checklist to edit it, enable its checkbox to mark it as completed, or
click the :icon:`fa-trash` (:guilabel:`trash`) icon to remove it.
.. _project/project-dashboard/profitability:
Profitability
-------------
This section only applies to billable projects and provides a breakdown of project costs and
revenues.
.. _project/project-dashboard/budgets:
Budgets
-------
If a budget has been set for the project, its status and related details are displayed in this
section. Click :guilabel:`Add Budget` to create a new budget for the project.
.. note::
:doc:`Analytic accounting </applications/finance/accounting/reporting/analytic_accounting>` must
be enabled in your databases **Accounting** application in order for this section to be
displayed.
.. _project/project-dashboard/updates:
Project updates
===============
Project updates allow you to take a snapshot of the projects overall status at a given point in
time, for example, during a periodic (weekly, bi-weekly, or monthly) review. This allows you to
compare specific data points, note any aspects of the project that need improvement, and estimate
if the project is on or off track.
To create a new project update, go to the project dashboard, click :guilabel:`New`, and fill in the
following fields:
- :guilabel:`Status`: Choose between :guilabel:`On Track`, :guilabel:`At Risk`, :guilabel:`Off
Track`, :guilabel:`On Hold`, and :guilabel:`Done`. Once the status is set, a color-coded dot is
displayed on the projects Kanban card, allowing the project manager to easily identify which
projects need attention.
- :guilabel:`Progress`: Manually input the completion percentage based on the project's progress.
- :guilabel:`Date` and :guilabel:`Author`: These fields are automatically filled in with
appropriate information based on the user who created the update and the current date.
- :guilabel:`Description`: Use this rich-text field to gather notes. Depending on the project
configuration (e.g., if the project is billable), this field may be pre-filled with current
information on aspects such as profitability, budget, milestones, etc.

View File

@@ -11,3 +11,4 @@ Task management
tasks/task_creation
tasks/recurring_tasks
tasks/sub-tasks
tasks/task_dependencies

View File

@@ -18,22 +18,26 @@ activate :guilabel:`Recurring Tasks`, and press :guilabel:`Save`.
Set up task recurrence
----------------------
In an existing task, press the :guilabel:`Recurrent` button next to the :guilabel:`Planned date`.
Then, configure :guilabel:`Repeat Every` field according to your needs.
In an existing task, click the :icon:`fa-repeat` (:guilabel:`Recurrent`) button next to the
:guilabel:`Deadline` field. Then, configure the :guilabel:`Repeat Every` field according to your
needs.
A new task in recurrence will be created once either of this conditions is met:
- Previous task in recurrence has been closed.
- On the day of the planned recurrence.
A new task in recurrence will be created once the status of the previous task is set to
:guilabel:`Done` or :guilabel:`Canceled`.
The new task is created on your project dashboard with the following configuration:
The new task is created on the project dashboard with the following configuration:
- :guilabel:`Stage`: first stage of the project dashboard (:guilabel:`New` or equivalent);
- :guilabel:`Stage`: is set to the first stage of the project dashboard (:guilabel:`New` or
equivalent);
- :guilabel:`Name`, :guilabel:`Description`, :guilabel:`Project`, :guilabel:`Assignees`,
:guilabel:`Customer`, :guilabel:`Tags`: copied from the original task;
- :guilabel:`Milestones`, :guilabel:`Deadline`, :guilabel:`Timesheets`, :guilabel:`Chatter`,
:guilabel:`Activities`, :guilabel:`Subtasks`: those fields are not copied;
:guilabel:`Customer`, :guilabel:`Tags`: are copied from the original task;
- :guilabel:`Deadline`: is updated based on the :guilabel:`Repeat Every` field (e.g., if the task is
set to repeat once a week, 7 days will be added to the deadline);
- :guilabel:`Milestones`, :guilabel:`Timesheets`, :guilabel:`Chatter`,
:guilabel:`Activities`, :guilabel:`Subtasks`: are **not** copied from the original task.
- A **smart button** on the task displays the total number of existing recurrences.
Once a recurrence is configured, a **smart button** on the task displays the total number of
existing recurrences.
Edit or stop task recurrence
----------------------------

View File

@@ -0,0 +1,44 @@
=================
Task dependencies
=================
Odoo Project allows you to break down projects into tasks and establish relationships between those
tasks to determine the order in which they are executed. Task dependencies ensure that certain tasks
begin only after the preceding tasks are completed.
To enable task dependencies in projects, go to :menuselection:`Project --> Configuration -->
Settings`, enable :guilabel:`Task Dependencies`, and click :guilabel:`Save`.
Set task dependencies
=====================
Task dependencies can be created from the task form or the project's Gantt view by linking the
successor task (i.e., the task blocked by other tasks) to its predecessor task(s) (i.e., the tasks
blocking the successor task).
To create task dependencies from the task form, access the desired task and, in the
:guilabel:`Blocked by` tab, click :guilabel:`Add a line`. Click :guilabel:`View` to access the
predecessor task. To access the successor tasks from the predecessor task, click the
:guilabel:`Blocked Tasks` smart button.
To create a task dependency from the Gantt view, hover your mouse over the predecessor task, then
click one of the dots that appear around it. Drag and drop the dot onto the successor task. An arrow
appears, indicating the dependency from the predecessor task to the successor.
.. image:: task_dependencies/task-dependency.png
:scale: 80%
:alt: Task dependency
Odoo automatically manages task progress based on their dependency. Successor tasks are assigned the
:guilabel:`Waiting` status and cannot be moved to :guilabel:`In Progress` until their predecessor
task(s) are marked as :guilabel:`Approved`, :guilabel:`Cancelled`, or :guilabel:`Done`.
Remove dependencies
===================
To remove a task dependency, proceed as follows:
- From the task form, go to the **Blocked by** tab and click the :icon:`fa-times`
(:guilabel:`times`) button.
- From the Gantt view, click the red :icon:`fa-times` (:guilabel:`times`) button that appears at the
center of the arrow when you hover your mouse over it.

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

View File

@@ -47,6 +47,8 @@ there, click one of the following:
- :guilabel:`Delete`: to delete this stage.
- :guilabel:`Archive/Unarchive all`: to archive or unarchive all of the tasks in this stage.
.. _project/tasks/task_stages_statuses/statuses:
Task statuses
=============

View File

@@ -43,8 +43,8 @@ contacts, sales orders, products, etc.
- To structure a form, drag and drop the :guilabel:`Tabs and Columns` element found under the
:guilabel:`+ Add` tab.
- To prevent users from creating, editing, or deleting records, untick :guilabel:`Can Create`,
:guilabel:`Can Edit`, or :guilabel:`Can Delete`.
- To prevent users from creating, editing, deleting or duplicating records, untick :guilabel:`Can Create`,
:guilabel:`Can Edit`, :guilabel:`Can Delete` or :guilabel:`Can Duplicate`.
- To add a button, click :guilabel:`Add a button` at the top of the form, enter a :guilabel:`Label`,
and select the button's action:
@@ -136,8 +136,8 @@ List
The :guilabel:`List` :icon:`oi-view-list` view is used to overview many records at once, look for
records, and edit simple records.
- To prevent users from creating, editing, or deleting records, untick :guilabel:`Can Create`,
:guilabel:`Can Edit`, or :guilabel:`Can Delete`.
- To prevent users from creating, editing, deleting or duplicating records, untick
:guilabel:`Can Create`, :guilabel:`Can Edit`, :guilabel:`Can Delete`, or :guilabel:`Can Duplicate`.
- To create and edit records directly within the view, select either :guilabel:`Add record at the
bottom`, :guilabel:`Add record on top` or :guilabel:`Open form view` under
:guilabel:`When Creating Record`.

View File

@@ -1,7 +1,7 @@
:nosearch:
===============================
Checkout, payment, and shipping
Checkout, payment, and delivery
===============================
.. toctree::

View File

@@ -1,9 +1,9 @@
========
Shipping
Delivery
========
Odoo eCommerce allows you to configure various shipping methods, enabling customers to choose
their preferred option at checkout. These methods include :ref:`external providers
Odoo eCommerce allows you to configure various delivery methods, enabling customers to choose
their preferred option at :doc:`checkout <checkout>`. These methods include :ref:`external providers
<ecommerce/shipping/external-provider>`, :ref:`custom options <ecommerce/shipping/custom-method>`
such as flat-rate or free shipping, local carriers via
:doc:`Sendcloud <../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping>`
@@ -24,11 +24,11 @@ A shipping connector links to these providers, automating :doc:`tracking labels
<../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/labels>` and shipping
processes.
To enable a third-party shipping provider, go to :menuselection:`Website --> Configuration -->
Settings`, scroll to the :guilabel:`Shipping` section, select the desired shipping provider(s),
To enable a third-party delivery provider, go to :menuselection:`Website --> Configuration -->
Settings`, scroll to the :guilabel:`Delivery` section, select the desired delivery provider(s),
and :guilabel:`Save`.
Go to :menuselection:`Website --> Configuration --> Shipping Methods` and select the shipping method
Go to :menuselection:`Website --> Configuration --> Delivery Methods` and select the delivery method
in the list to :ref:`configure it <inventory/shipping_receiving/configure-delivery-method>`.
.. seealso::
@@ -36,10 +36,10 @@ in the list to :ref:`configure it <inventory/shipping_receiving/configure-delive
<../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/third_party_shipper>`
.. important::
The field used to define additional fees **must** be filled **in your third-party shipping
The field used to define additional fees **must** be filled **in your third-party delivery
provider account**, even if you do not plan to charge customers any additional fee. If you do not
want to apply a fee, enter `0`. If the field is left empty, the delivery price cannot be
calculated, and an error message prompts the customer to select an alternative shipping method.
calculated, and an error message prompts the customer to select an alternative delivery method.
Margin on delivery rate
-----------------------
@@ -61,47 +61,65 @@ field to add a fixed amount.
.. _ecommerce/shipping/custom-method:
Custom shipping method
Custom delivery method
======================
Custom shipping methods must be created, for example:
Custom delivery methods must be created, for example:
- to integrate shipping carriers through :doc:`Sendcloud
- to integrate delivery carriers through :doc:`Sendcloud
<../../../inventory_and_mrp/inventory/shipping_receiving/setup_configuration/sendcloud_shipping>`;
- to configure specific rules (e.g., to offer free shipping for orders above a specific amount) for
a specific provider;
- to configure :ref:`Fixed Price <inventory/shipping/fixed>` shipping or shipping
:ref:`Based on Rules <inventory/shipping/rules>`.
To create a custom shipping method, go to :menuselection:`Website --> Configuration -->
Shipping Methods`, click :guilabel:`New` and fill in the :ref:`fields
To create a custom delivery method, go to :menuselection:`Website --> Configuration --> Delivery
Methods`, click :guilabel:`New`, and fill in the :ref:`fields
<inventory/shipping_receiving/shipping-methods-details>`.
In the :guilabel:`Provider` field, select :ref:`Based on Rules <inventory/shipping/rules>`,
:ref:`Fixed Price <inventory/shipping/fixed>`, or :ref:`Pickup in store <inventory/shipping/pickup>`
if the shiping method does not involve any specific provider.
if the shipping method does not involve any specific provider.
.. tip::
Upon :ref:`configuring <inventory/shipping_receiving/configure-delivery-method>` a shipping
Upon :ref:`configuring <inventory/shipping_receiving/configure-delivery-method>` a delivery
method, you can:
- restrict it :doc:`to a specific website <../../website/configuration/multi_website>` by
selecting it in :guilabel:`Website` field;
- use the :guilabel:`Destination availability` tab to filter the delivery carriers displayed
based on the customer's area;
- click the :guilabel:`Test Environment` smart button to switch to
the :guilabel:`Production Environment`, then click :guilabel:`Unpublished` to
:guilabel:`Publish` the shipping method and make it available to website visitors.
- Restrict it :doc:`to a specific website <../../website/configuration/multi_website>` by
selecting it in the :guilabel:`Website` field;
- Click the :guilabel:`Test Environment` smart button to switch to the
:guilabel:`Production Environment`. Then, click :guilabel:`Unpublished` to :guilabel:`Publish`
the delivery method and make it available to website visitors;
- Use the :guilabel:`Availability` tab to define :ref:`conditions
<inventory/shipping_receiving/availability>` for the delivery method based on the orders
content or destination.
.. _ecommerce/shipping/instore-pickup:
In-store pickup
Click & Collect
===============
To allow customers to reserve products online and pay for/collect them in person at the store, go to
:menuselection:`Website --> Configuration --> Settings`, scroll to the :guilabel:`Shipping` section,
enable :guilabel:`On Site Payments & Picking`, and :guilabel:`Save`.
To allow customers to reserve products online and pay for/collect them in-store, follow these steps:
Then, click :guilabel:`Customize Pickup Sites`, select the shipping method or click :guilabel:`New`
to create a new one and :ref:`configure <inventory/shipping_receiving/configure-delivery-method>`
the fields. Make sure the :guilabel:`Provider` field is set to :guilabel:`Pickup in store`.
#. Go to :menuselection:`Website --> Configuration --> Settings`.
#. Scroll to the :guilabel:`Delivery` section, enable :guilabel:`Click & Collect`, and
:guilabel:`Save`.
#. Click :icon:`fa-arrow-right` :guilabel:`Configure Pickup Locations` to :ref:`configure
<inventory/shipping_receiving/configure-delivery-method>` the delivery method and ensure the
:guilabel:`Provider` field is set to :guilabel:`Pick up in store`.
#. In the :guilabel:`Stores` tab, click :guilabel:`Add a line` and select the warehouse(s) where
customers can collect their orders.
#. Once your setup is complete, click the :guilabel:`Unpublish` button to change the status to
:guilabel:`Publish` and make the delivery method available to customers.
.. note::
- When the product is in stock, a location selector is displayed on the :doc:`product
<../products>` and :doc:`checkout <checkout>` pages. Customers cannot select a pickup location
if the product is out of stock at that location. The :ref:`Continue selling
<ecommerce/products/stock-management>` option for out-of-stock products is not supported.
- If the :ref:`Show Available Qty <ecommerce/products/stock-management>` option is enabled for a
product, customers can view the stock quantity available for each warehouse in the location
selector on the product page.
- Each warehouse must have a **complete address** to ensure its location is accurately displayed
to customers. Incomplete addresses prevent the warehouse from being shown.
- The Click & Collect option is not available for services.

View File

@@ -828,6 +828,16 @@ Domain (`domain`)
- Supported field types: `char`
Options:
- `model`: the name of the char field encoding the `res_model` on which the domain applies.
- `foldable` (default: `false`): if true, the domain field is rendered compactly and unfolds
itself upon user interaction.
- `in_dialog` (default: `false`): if true, the widget opens a dialog when the user wants to edit
the domain whereas by default, the domain editor is rendered just below the value.
Link button (`link_button`)
The `LinkButton` widget actually simply displays a span with an icon and the
text value as content. The link is clickable and will open a new browser

View File

@@ -2,6 +2,7 @@
applications/finance/payment_providers/ogone.rst applications/finance/payment_providers/worldline.rst
applications/finance/payment_providers/sips.rst applications/finance/payment_providers/worldline.rst
applications/finance/accounting/payments/internal_transfers.rst applications/finance/accounting/bank/internal_transfers.rst
# applications/point of sale