Compare commits

...

39 Commits

Author SHA1 Message Date
Donatienne (dopi) 7a0460bd1b [IMP] sign: tags, signing orders, reminders, expiration dates
task-3609727

New features are available in v17:
Modify tags on signed documents.
Send automatic email reminders to people who have yet to sign a document after a set delay.
Signing order available as soon as you have more than one signer
Setting expiration dates on signature requests.
2024-01-04 17:18:21 +01:00
Martin Trigaux 8ba87a67ce [I18N] *: export 17.0 translations
closes odoo/documentation#6727

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-11-30 19:55:12 +00:00
Martin Trigaux 1a44524ab5 [FIX] applications: fix typo
Part-of: odoo/documentation#6727
2023-11-30 19:55:12 +00:00
Marion (masp) 8ecbd48796 [FIX] Website: pages.rst menu bug
fixes bug introduced with https://github.com/odoo/documentation/pull/5307

closes odoo/documentation#6720

X-original-commit: 53cc4aacb5
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2023-11-30 18:37:59 +00:00
John Holton (hojo) 51b98a71d4 [ADD] Quality: Take a Picture Check
closes odoo/documentation#6715

X-original-commit: 2e605c9ec8
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-30 17:30:23 +00:00
“Audrey 61cad6cd0d [ADD] website: mail groups
task-2845181

closes odoo/documentation#6705

X-original-commit: 25bc655cfa
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2023-11-30 10:13:21 +00:00
Raphael Collet 2662fa5437 [IMP] core: add SQL wrapper
This completes https://github.com/odoo/odoo/pull/134677.

closes odoo/documentation#6674

Signed-off-by: Raphael Collet <rco@odoo.com>
2023-11-30 07:37:10 +00:00
Marion (masp) ebc80297af [IMP] Contributing: typo seealso admonition
closes odoo/documentation#6642

X-original-commit: 70d5a55909
Signed-off-by: Marion Spindler (masp) <masp@odoo.com>
2023-11-30 07:37:06 +00:00
Felicious b44913931d [IMP] barcode: add zebra scanner section
add more figures

closes odoo/documentation#6601

X-original-commit: 56cda37610
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2023-11-28 21:21:01 +00:00
Sam Lieber (sali) be835f7493 [IMP] accounting/l10n_co: additional context
closes odoo/documentation#6690

X-original-commit: 6045a60dd5
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: dade-odoo <87431108+dade-odoo@users.noreply.github.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
2023-11-28 17:28:48 +00:00
Jess Rogers (jero) 11076c8cdd [IMP] crm: update manage lost opps
closes odoo/documentation#6681

X-original-commit: 21f0ad60f8
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2023-11-28 17:28:47 +00:00
Donatienne (dopi) 23b88dbff5 [IMP] documents: new features
task-3433587

closes odoo/documentation#6672

X-original-commit: 2ba79f54a5
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-28 00:31:04 +00:00
Samuel Degueldre 8e3008f06a [FIX] developer: remove confusing section about starting services
When writing the documentation page for standalone Owl apps, it was
originally required to create the env and start the services manually,
and then mount the application by giving it a bunch of configuration
parameters. During review, it was noted that this was error prone and
confusing, and as such a corresponding PR added a helper to mount the
application without needing to do much by hand. While the code was
adapted in the documentation that was merged, the text still referred to
starting the services and creating the environment which is no longer
necessary.

This commit removes references to those things, and because the
resulting section is very small and not very interesting it has been
merged into the previous section.

closes odoo/documentation#6669

Signed-off-by: Samuel Degueldre (sad) <sad@odoo.com>
2023-11-27 21:39:19 +00:00
Donatienne (dopi) d337b38433 [IMP] sign: update for 16.0
task-3433578

closes odoo/documentation#6661

X-original-commit: 71446b0668
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-27 09:51:07 +00:00
Xavier (XPL) c9affa54a8 [IMP] reporting: improve grammar and remove image centering
closes odoo/documentation#6653

X-original-commit: 3ead6e0f99
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-25 04:36:03 +00:00
“Chiara 1860805474 [IMP] accounting: branch management in main page
taskid-3609491

closes odoo/documentation#6646

X-original-commit: eafe834cf4
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-25 04:36:02 +00:00
“Chiara 8025fdd915 [IMP] accounting: peppol changes
taskid-3450738

closes odoo/documentation#6634

X-original-commit: 4728e6db23
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-24 11:17:02 +00:00
Xavier (XPL) ae08218516 [IMP] outlook: remove note about multi-user sync spam
task-3575806

closes odoo/documentation#6625

X-original-commit: b4302e4023
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-24 08:52:34 +00:00
Xavier (XPL) 25a7492e74 [FIX] accounting: update link to getting started video tutorial
task-3608613

closes odoo/documentation#6614

X-original-commit: c0653112a1
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-24 08:52:33 +00:00
Claire Bretton (clbr) 32517aa638 [FIX] getting_started: remove useless lambda
The lambda function here is useless and makes newdooers think
they need to use it everytime.
`default=fields.Date.add(fields.Date.today(), months=3))`
should do the trick, no lambda involved.

closes odoo/documentation#6631

X-original-commit: 620508fb29
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Claire Bretton (clbr) <clbr@odoo.com>
2023-11-24 06:53:31 +00:00
Claire Bretton (clbr) e8106a55c4 [FIX] getting_started: invalid addons-path
The "../technical-training-sandbox" is added too early in the path since
its still empty, and results into an "invalid addons-path" error.

X-original-commit: 8707609b38
Part-of: odoo/documentation#6631
2023-11-24 06:53:31 +00:00
Felicious 05da049af4 [ADD] inventory: cluster picking
closes odoo/documentation#6591

X-original-commit: 32900efbb9
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: meng-odoo <101904966+meng-odoo@users.noreply.github.com>
2023-11-24 06:53:30 +00:00
Xavier (XPL) 4d48d1dfa6 [IMP] paypal: add note about supported currencies
task-3608056

closes odoo/documentation#6571

X-original-commit: 5f1881a88a
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-23 08:52:05 +00:00
Felicious 3da8280f33 [IMP] inventory: update delivery methods from 12 to 16
closes odoo/documentation#6602

X-original-commit: 4e2b634a50
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2023-11-23 07:40:03 +00:00
KC (ksc) ccf0b02713 [IMP] sales: updated deadline doc for 16
closes odoo/documentation#6584

X-original-commit: 75c24e7e88
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-23 07:40:03 +00:00
John Holton (hojo) 37e10a53d9 [ADD] Quality: Measure quality check
closes odoo/documentation#6578

X-original-commit: 78713f1637
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-23 07:40:02 +00:00
Xavier (XPL) b50ca9703a [IMP] upgrade: add note on bank synch neutralization
task-3605690

closes odoo/documentation#6562

X-original-commit: dc48273e7e
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-22 18:12:41 +00:00
Donatienne (dopi) 01d5b97ee0 [IMP] website: use plausible.io servers and account
This addition explains how to create and connect an existing plausible.io account in Odoo.

task-3540753

closes odoo/documentation#6545

X-original-commit: cd11937f43
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2023-11-22 07:43:09 +00:00
John Holton (hojo) ff6f914a09 [ADD] Quality: Pass - Fail quality checks
closes odoo/documentation#6551

X-original-commit: 1a11e3c35c
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-22 04:35:20 +00:00
Jess Rogers (jero) 2459ad79b9 [REM] crm: google spreadsheet integration
closes odoo/documentation#6537

X-original-commit: a11fa7e5b2
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2023-11-22 00:46:20 +00:00
Jonathan Castillo (jcs) 386a3a9e10 [IMP] sales: add link to OQT - PDF quote video
This commit adds a seealso section in the intro of the PDF quote builder
doc, with a link to the related Odoo Quick Tips video.

closes odoo/documentation#6534

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2023-11-22 00:46:15 +00:00
Xavier (XPL) 4fff23c50e [FIX] payroll: add missing show-content metadata
Without the :show-content: metadata markup, it is not possible to open the
page by navigating from the toctree.

closes odoo/documentation#6531

X-original-commit: 16e339a7a3
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-21 23:24:02 +00:00
Samuel Degueldre 1fc36ffa82 [IMP] developer: document how to create standalone owl apps
Since we've introduced Owl, developers want more and more to create
standalone Owl applications outside of the webclient. This commit
introduces a How-to for doing just that.

task-3580007

closes odoo/documentation#6493

Related: odoo/odoo#142498
Signed-off-by: Samuel Degueldre (sad) <sad@odoo.com>
2023-11-21 20:06:45 +00:00
Rémy Voet (ryv) 01625aa661 [FIX] performance: change example with the new _read_group
closes odoo/documentation#6459

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-11-21 14:33:44 +00:00
Mathieu (mano) 80aa3b74dc [IMP] odoo_theme: toctrees-l1,l2 design improvement
Issue 1:
========
The toctrees in the documentation are visually inconsistent because of
the content. Sometimes we have titles that are also links and visually
collides with the rest of the toc making it hard to read. This applies
to toctree-l1 and toctree-l2.

Fix 1:
========
When we have a link and title toctree-l2 in a list containing other
nested toc, we apply another styling displaying it with the same color
as a title, but with an icon and hover behavior indicating that it is a
link. (This commit also changes the direction of the i-link icon to make
it standard).

Issue 2:
========
When we have only have toctree-l1 links without nested toc the toctree
is uselessly taking a lot of space.

Fix: 2
========

In these scenario we add a class to the toctree wrapper to replace the
toctree-l1 style with a toctree-l2.

task-3138525
task-3138563

part of

task-3059178

closes odoo/documentation#6511

X-original-commit: c62bf21987
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-11-21 12:56:56 +00:00
Rémi Rahir (rar) 9be2b43adb [FIX] dev/reference: Fix external reference
The tour utils were red and moved in Odoo (odoo/odoo#107618).

closes odoo/documentation#6514

X-original-commit: 1746c57ff4
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
2023-11-20 11:13:29 +00:00
Felicious e946be6abd [IMP] barcode: split docs + hone in on language
closes odoo/documentation#6519

X-original-commit: 9081e45aab
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2023-11-20 01:14:04 +00:00
oco-odoo a70677317a [IMP] accounting: new tag selector for custom reports
https://github.com/odoo/enterprise/commit/0c0cf8ebc943a8dc2d9bdd952dc7b5c2dabbd60a
added a new way to select accounts in the account_codes engine. This
commit adds some explanation in the doc on how to use this new syntax.

closes odoo/documentation#6507

X-original-commit: 1a32165180
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2023-11-20 01:14:02 +00:00
John Holton (hojo) d7218a2d75 [ADD] MRP: Three-step manufacturing
closes odoo/documentation#5163

closes odoo/documentation#6489

X-original-commit: 5689f7cf22
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-20 01:13:56 +00:00
169 changed files with 14447 additions and 4213 deletions
+2
View File
@@ -210,6 +210,8 @@ upgrade goes live.
#. Scheduled actions are disabled.
#. Outgoing mail servers are disabled by archiving the existing ones and adding a fake one.
#. Payment providers and delivery carriers are reset to the test environment.
#. Bank synchronization is disabled. Should you want to test the synchronization, contact your
bank synchronization provider to get sandbox credentials.
Testing as many of your business flows as possible is strongly recommended to ensure they are
working correctly and to get more familiar with the new version.
@@ -96,6 +96,12 @@ gains and losses after reconciling the journal items.
.. seealso::
:doc:`Manage a bank in a foreign currency <accounting/bank/foreign_currency>`
Branch management
=================
Multiple branches can be managed thanks to multi-company hierarchies. This allows to post journal
entries on each branch as well as setting up a common lock date managed by the main company.
International standards
=======================
@@ -72,33 +72,6 @@ You can define a specific e-invoicing format for each customer. To do so, go to
.. image:: electronic_invoicing/customer-form.png
:alt: Select an EDI format for a specific customer
Peppol formats
--------------
Use the fields :guilabel:`Peppol e-address (EAS)` and :guilabel:`Peppol Endpoint` to identify the
recipient in the Peppol Network.
.. seealso::
`Peppol BIS Billing 3.0 - Electronic Address Scheme (EAS) code list
<https://docs.peppol.eu/poacc/billing/3.0/codelist/eas/>`_
.. example::
.. list-table::
:header-rows: 1
* - Partner's country
- Peppol e-address (EAS)
- Peppol Endpoint
* - Luxembourg
- 9938 - Luxemburg VAT number
- a valid Luxemburgish VAT number
* - Netherlands
- 0190 - Dutch Originator's Identification Number
- a valid OIN number
* - Belgium
- 9925 - Belgium VAT number
- a valid Belgian VAT number
National electronic invoicing
-----------------------------
@@ -121,3 +94,45 @@ e-invoicing option to generate and attach the e-invoice file.
.. image:: electronic_invoicing/send-window.png
:alt: The Peppol option is checked and an e-invoicing XML file is attached to the email.
Peppol
======
The `Peppol <https://peppol.org/about/>`_ network ensures the exchange of documents and information
between enterprises and governmental authorities. It is primarily used for electronic invoicing, and
its access points (connectors to the Peppol network) allow enterprises to exchange electronic
documents.
Odoo is now an **access point** enabling electronic invoicing transactions without the need to send
invoices and bills by email or post.
Configuration
-------------
First, :ref:`install <general/install>` the :guilabel:`Peppol` module (`account_peppol`).
.. image:: electronic_invoicing/peppol-module.png
:alt: Peppol module install
Then, go to :menuselection:`Accounting --> Configuration --> Settings`, tick the
:guilabel:`Use PEPPOL Invoicing`, and fill in the following information:
- `PEPPOL EAS <https://ec.europa.eu/digital-building-blocks/wikis/display/DIGITAL/Code+lists/>`_
- :guilabel:`Peppol Endpoint`
- :guilabel:`Phone Number`, including the country code (e.g., `+32` in Belgium)
- :guilabel:`Primary contact email`
If you are migrating from another access point, insert the :guilabel:`Migration key` from
the previous provider.
.. image:: electronic_invoicing/peppol-settings.png
:alt: Configuration for peppol
Finally, click on :guilabel:`Validate registration`.
A text message containing a code is sent to the phone number provided to finalize the registration
process.
.. image:: electronic_invoicing/phone-registration.png
:alt: phone validation
All invoices and vendor bills are now sent directly using the Peppol network.
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.9 KiB

@@ -187,7 +187,8 @@ Send yourself a sample invoice by email to make sure everything is correctly con
* :doc:`get_started/chart_of_accounts`
* :doc:`bank/bank_synchronization`
* :doc:`../fiscal_localizations`
* `Odoo Tutorials: Accounting Basics <https://www.odoo.com/r/lsZ>`_
* `Odoo Tutorials: Accounting and Invoicing - Getting started [video]
<https://www.odoo.com/slides/slide/getting-started-1692>`_
.. toctree::
:titlesonly:
@@ -220,6 +220,42 @@ To match the letter `C` or `D` in a prefix and not use it as a suffix, use an em
| `21D\\()`
| This formula matches accounts whose code starts with `21D`, regardless of their balance sign.
In addition to using code prefixes to include accounts, you can also match them with **account
tags**. This is especially useful, for example, if your country lacks a standardized chart of
accounts, where the same prefix might be used for different purposes across companies.
.. example::
| `tag(25)`
| This formula matches accounts whose associated tags contain the one with id *25*.
If the tag you reference is defined in a data file, an xmlid can be used instead of the id.
.. example::
| `tag(my_module.my_tag)`
| This formula matches accounts whose associated tags include the tag denoted by
*my_module.my_tag*.
You can also use arithmetic expressions with tags, possibly combining them with prefix selections.
.. example::
| `tag(my_module.my_tag) + tag(42) + 10`
| The balances of accounts tagged as *my_module.my_tag* will be summed with those of accounts
linked to the tag with ID *42* and accounts with the code prefix `10`
`C` and `D` suffixes can be used in the same way with tags.
.. example::
| `tag(my_module.my_tag)C`
| This formula matches accounts with the tag *my_module.my_tag* and a credit balance.
Prefix exclusion also works with tags.
.. example::
| `tag(my_module.my_tag)\\(10)`
| This formula matches accounts with the tag *my_module.my_tag* and a code not starting with
`10`.
'External Value' engine
-----------------------
+168 -74
View File
@@ -2,16 +2,15 @@
Documents
=========
**Odoo Documents** allows you to store, view and manage files within Odoo.
**Odoo Documents** allows you to store, view, and manage files within Odoo.
You can upload any type of file (max 64MB per file on Odoo Online), and organize them in various
workspaces.
You can upload any file (max 64MB per file on Odoo Online) and organize them in various workspaces.
.. seealso::
- `Odoo Documents: product page <https://www.odoo.com/app/documents>`_
- `Odoo Tutorials: Documents basics <https://www.odoo.com/slides/slide/documents-basics-674>`_
- `Odoo Tutorials: Using Documents with your Accounting App
<https://www.odoo.com/slides/slide/using-documents-with-your-accounting-app-675?fullscreen=1#>`_
- `Odoo Tutorials: Documents basics [video]
<https://www.odoo.com/slides/slide/documents-basics-674>`_
- `Odoo Tutorials: Using Documents with your Accounting App [video] <https://www.odoo.com/slides/slide/using-documents-with-your-accounting-app-675?fullscreen=1#>`_
Configuration
=============
@@ -20,11 +19,10 @@ By going to :menuselection:`Documents --> Configuration --> Settings`, you can e
centralization of files attached to a specific area of your activity. For example, by ticking
:guilabel:`Human Resources`, your HR documents are automatically available in the HR workspace,
while documents related to Payroll are automatically available in the Payroll sub-workspace . You
can change the default workspace by using the dropdown menu and edit its properties by clicking the
can change the default workspace using the dropdown menu and edit its properties by clicking the
internal link button (:guilabel:`➔`).
.. image:: documents/files-centralization.png
:align: center
:alt: Enable the centralization of files attached to a specific area of your activity.
.. note::
@@ -33,8 +31,7 @@ internal link button (:guilabel:`➔`).
synchronization.
.. image:: documents/accounting-files-centralization.png
:align: center
:alt: Enable the centralization of files attached to your accounting.
:alt: Enable the centralization of files attached to your accounting.
- If you select a new workspace, existing documents aren't moved. Only newly created documents
will be found under the new workspace.
@@ -42,34 +39,55 @@ internal link button (:guilabel:`➔`).
Workspaces
==========
Workspaces are hierarchical folders having their own set of tags and actions. Default workspaces
exist, but you can create your own by going to :menuselection:`Documents --> Configuration -->
Workspaces` and clicking on :guilabel:`Create`.
Workspaces are hierarchical folders having their own set of tags and :ref:`actions
<documents/workflow-actions>`. Default workspaces exist, but you can create your own by going to
:menuselection:`Documents --> Configuration --> Workspaces` and clicking :guilabel:`New`. On the new
page, fill in the following information:
.. note::
:guilabel:`Workspaces` and :guilabel:`Sub-workspaces` can be created, edited, or deleted by
clicking on the gear icon :guilabel:`⚙` on the left menu.
.. image:: documents/sub-workspaces-creation.png
:align: center
:alt: Create sub-workspaces from the left menu
- :guilabel:`Name`
- :guilabel:`Parent Workspace`: if you want to create a sub-workspace, select its :guilabel:`Parent
Workspace`
Tags
====
----
Tags are used within workspaces to add a level of differentiation between documents. They are
organized per category and filters can be used to sort them.
organized per category, and filters can be used to sort them.
Tags can be created from the :guilabel:`Tags` tab. Click :guilabel:`Add a line`, create the
:guilabel:`Tag Category`, and :guilabel:`Name` your tags.
.. note::
- The tags of a parent workspace apply to the child workspaces automatically.
- Tags can be created and modified by going to :menuselection:`Configuration --> Tags`.
- Tags can also be created, edited, or deleted, by clicking on the gear icon :guilabel:`⚙`, on
the left menu.
- The tags of a parent workspace apply to the child workspaces automatically;
- Tags can be created and modified by going to :menuselection:`Configuration --> Tags`;
- Tags can also be created or edited by clicking the gear icon :guilabel:`⚙` on the left menu.
Access rights
-------------
To manage your workspace access rights, go to :menuselection:`Documents --> Configuration -->
Workspaces`, open the workspace you want to edit, and go to the :guilabel:`Access Rights` tab.
You can add :guilabel:`Write Groups` that can view, create, and edit the workspace's documents.
You can also add :guilabel:`Read Groups` that can only view the workspace's documents.
Description
-----------
You can add descriptive information to your workspace by going to :menuselection:`Documents -->
Configuration --> Workspaces`, opening the workspace you want to describe and going to the
:guilabel:`Description` tab.
.. note::
Workspaces can also be created and edited by clicking the gear icon :guilabel:`⚙` on the left
menu.
.. image:: documents/sub-workspaces-creation.png
:alt: Create sub-workspaces from the left menu
Documents management
====================
When clicking on a specific document, the right panel displays different options. On the top,
When selecting or opening a document, the right panel displays different options. On the top,
additional options might be available: :guilabel:`Download`, :guilabel:`Share`, :guilabel:`Replace`,
:guilabel:`Lock` or :guilabel:`Split`. It is also possible to :guilabel:`Open chatter` or
:guilabel:`Archive` the document.
@@ -80,7 +98,7 @@ additional options might be available: :guilabel:`Download`, :guilabel:`Share`,
Then, you can modify the name of your file by clicking on :guilabel:`Document`. A
:guilabel:`Contact` or an :guilabel:`Owner` can be assigned. The related :guilabel:`Workspace` can
be modified and it is possible to access the related :guilabel:`Journal Entry` or to add
be modified and it is possible to access the related :guilabel:`Journal Entry` or add
:guilabel:`Tags`.
.. note::
@@ -88,30 +106,111 @@ be modified and it is possible to access the related :guilabel:`Journal Entry` o
view the document and not modify it. I.e.: an existing supplier in your database is the contact
for their bill.
- The person who creates a document is, by default :guilabel:`Owner` of it and has complete
rights to the document. It is possible to replace the owner of a document. I.e.: an employee
rights to it. It is possible to replace the owner of a document. I.e., an employee
must be owner of a document to be able to see it in "My Profile".
Finally, different :guilabel:`Actions` are available at the bottom of the right panel, depending on
the workspace where your document is stored.
Different :ref:`Actions <documents/workflow-actions>` are available at the bottom of the right
panel, depending on the workspace where your document is stored.
Split PDF documents
-------------------
Select the PDF you want to split, and click the scissors icon. A new view displays all the pages of
the document.
By default, each page of the document will be split when clicking :guilabel:`Split`. To remove a
split between two pages, click on the scissors icon.
.. image:: documents/split-pdf.png
:alt: split your documents
.. tip::
To merge documents from your dashboard, select them and click the scissors icon. Click on the
scissors between the two documents and click :guilabel:`Split` to merge the documents.
Additional features
-------------------
Select a workspace and click the arrow next to the :guilabel:`Upload` button to access additional
features:
Request
~~~~~~~
You can create "missing documents" and organize them as documents, to remind users to download them.
Select the workspace where the file should be stored, click :guilabel:`Upload`, then
:guilabel:`Request`. Add the :guilabel:`Document Name`, select the person you need it from in the
:guilabel:`Request To` field, fill in the :guilabel:`Due Date In`, confirm the
:guilabel:`Workspace`, the document should belong to, and add :guilabel:`Tags` and a
:guilabel:`Note`, if needed. Then, click :guilabel:`Request`. A placeholder for the missing document
is created in the workspace.
When your document is available, click the placeholder to upload it.
You can see all missing documents by going to the **Activity** view and to the :guilabel:`Requested
Document` column.
.. tip::
From the :guilabel:`Activity` view, you can send a **reminder email** to users from whom you are
expecting a document. Go to the :guilabel:`Requested Document` column, click on ⋮ and
:guilabel:`Document Request: Reminder`.
Click on a date to see the details of a specific request. You can update it by clicking on the
pen icon, :guilabel:`Preview` the content of the reminder email, or :guilabel:`Send Now` to send
a reminder email.
.. image:: documents/reminder-email.png
:alt: send a reminder email from the Activity view
Add a link
~~~~~~~~~~
To add a link to your documents dashboard, click on :guilabel:`Add a Link`, enter the
:guilabel:`URL`, and :guilabel:`Name` it.
Share
~~~~~
You can create a share link to a document or all documents of a workspace. It allows anyone to
download the file(s) or upload files to a workspace.
To do so, select the workspace or the document and click the arrow next to the :guilabel:`Upload`
button then :guilabel:`Share`. On the pop-up, the share :guilabel:`URL` is displayed.
:guilabel:`Copy` it to share it with anyone. :guilabel:`Name` the share link and set a validity date
for the URL by filling in the :guilabel:`Valid Until` field. Tick the :guilabel:`Include Sub
Folders` box if you also want to share a workspace's sub-folders. To let users upload their own
documents, select :guilabel:`Download and Upload`.
.. note::
It is possible to only share one or more documents (without their workspace) by selecting them
and clicking :guilabel:`Share`.
New spreadsheet
~~~~~~~~~~~~~~~
To create a new :doc:`spreadsheet <spreadsheet>`, click :guilabel:`New Spreadsheet`. You can select
a :guilabel:`Blank spreadsheet` or an :doc:`existing template <spreadsheet/templates>`.
.. _documents/workflow-actions:
Workflow actions
================
Workflow actions help you streamline the management of your documents and your overall business
operations. These are automated actions that can be created and customized for each workspace. For
example, create documents, process bills, sign, organize files, add tags to a file or move it to
another workspace with a single click etc. These workflow actions appear on the right panel when it
meets the criteria you set.
Workflow actions help manage documents and overall business operations. These are automated actions
that can be created and customized for each workspace. With a single click you can, for example,
create, move, sign, and add tags to a document, and process bills.
These workflow actions appear on the right panel when a document meets the set criteria.
Create workflow actions
-----------------------
To create workflow actions, go to :menuselection:`Documents --> Configuration --> Actions` and then
click on :guilabel:`Create`.
To create workflow actions, go to :menuselection:`Documents --> Configuration --> Actions` and click
:guilabel:`New`.
.. note::
An action applies to all :guilabel:`Child Workspaces` under the :guilabel:`Parent Workspace` you
selected.
An action applies to all **sub-workspaces** under the :guilabel:`Related Workspace` you selected.
Set the conditions
------------------
@@ -122,7 +221,7 @@ You can :guilabel:`Create` a new :guilabel:`Action` or edit an existing one. You
There are three basic types of conditions you can set:
#. :guilabel:`Tags`: you can both use the :guilabel:`Contains` and :guilabel:`Does not contain`
#. :guilabel:`Tags`: you can use the :guilabel:`Contains` and :guilabel:`Does not contain`
conditions, meaning the files *must have* or *mustn't have* the tags set here.
#. :guilabel:`Contact`: the files must be associated with the contact set here.
@@ -130,43 +229,34 @@ There are three basic types of conditions you can set:
#. :guilabel:`Owner`: the files must be associated with the owner set here.
.. image:: documents/basic-condition-example.png
:align: center
:alt: Example of a workflow action's basic condition in Odoo Documents
.. tip::
If you don't set any conditions, the action button appears for all files located inside the
selected workspace.
If you don't set any conditions, the action button appears for all files inside the selected
workspace.
Advanced condition type: domain
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
.. important::
It is recommended to have some knowledge of Odoo development to properly configure *Domain*
filters.
It is recommended to have some knowledge of Odoo development to configure *Domain* filters
properly.
To access the *Domain* condition, the :ref:`developer mode <developer-mode>` needs to be activated.
Once that's done, select the :guilabel:`Domain` condition type, and click on :guilabel:`Add Filter`.
.. image:: documents/activate-domain-condition.png
:align: center
:alt: Activating the domain condition type in Odoo Documents
The :ref:`developer mode <developer-mode>` needs to be activated to access the :guilabel:`Domain`
condition from the :guilabel:`Actions` tab. Once done, select the :guilabel:`Domain` condition type
and click :guilabel:`Add condition`.
To create a rule, you typically select a :guilabel:`field`, an :guilabel:`operator`, and a
:guilabel:`value`. For example, if you want to add a workflow action to all the PDF files inside a
workspace, set the :guilabel:`field` to *Mime Type*, the :guilabel:`operator` to *contains*, and the
:guilabel:`value` to *pdf*.
pdf :guilabel:`value`.
.. image:: documents/domain-condition-example.png
:align: center
:alt: Example of a workflow action's domain condition in Odoo Documents
Click on :guilabel:`Add node` (plus-circle icon) and :guilabel:`Add branch` (ellipsis icon) to add
conditions and sub-conditions. You can then specify if your rule should match :guilabel:`ALL` or
:guilabel:`ANY` conditions. You can also edit the rule directly using the :guilabel:`Code editor`.
.. image:: documents/use-domain-condition.png
:align: center
:alt: Add a node or a branch to a workflow action's condition in Odoo Documents
Click :guilabel:`Add New Rule` (plus icon) and :guilabel:`Add branch` to add conditions and
sub-conditions. You can then specify if your rule should match :guilabel:`all` or :guilabel:`any`
conditions. You can also edit the rule directly using the :guilabel:`Code editor`.
Configure the actions
---------------------
@@ -178,19 +268,24 @@ Select the :guilabel:`Actions` tab to set up your action. You can simultaneously
- **Move to Workspace**: move the file to any workspace.
- **Create**: create one of the following items attached to the file in your database:
- **Product template**: create a product you can edit directly.
- **Task**: create a Project task you can edit directly.
- **Signature request**: create a new Sign template to send out.
- **Sign directly**: create a Sign template to sign directly.
- **Link to record**: link the document to a record (i.e. link to a vehicle in Fleet);
- **Product template**: create a product you can edit directly;
- **Task**: create a Project task you can edit directly;
- **Signature PDF template**: create a new Sign template to send out;
- **PDF to sign**: create a PDF to sign;
- **Applicant**: create a new HR application you can edit directly;
- **Vendor bill**: create a vendor bill using OCR and AI to scrape information from the file
content.
content;
- **Customer invoice**: create a customer invoice using OCR and AI to scrape information from
the file.
the file;
- **Vendor credit note**: create a vendor credit note using OCR and AI to scrape information
from the file.
from the file;
- **Credit note**: create a customer credit note using OCR and AI to scrape information from
the file.
- **Applicant**: create a new HR application you can edit directly.
the file;
- **Miscellaneous Operations**: create a record in :guilabel:`Miscellaneous Operations`
in Accounting;
- **Bank Statement**: create a Bank Statement in Finance;
- **Expense**: create an expense automatically based on a file's content.
- **Set Tags**: add, remove, and replace any number of tags.
- **Activities - Mark all as Done**: mark all activities linked to the file as done.
@@ -198,15 +293,14 @@ Select the :guilabel:`Actions` tab to set up your action. You can simultaneously
the action. You can choose to set the activity on the document owner.
.. image:: documents/workflow-action-example.png
:align: center
:alt: Example of a workflow action Odoo Documents
Digitize documents with AI and optical character recognition (OCR)
==================================================================
Documents available in the Finance workspace can be digitized. Select the document you want to
digitize, click on :guilabel:`Create Bill`, :guilabel:`Create Customer Invoice` or
:guilabel:`Create credit note`, and then click on :guilabel:`Send for Digitization`.
Documents available in the Finance workspace can be digitized. Select the document to digitize,
click :guilabel:`Create Bill`, :guilabel:`Create Customer Invoice`, or
:guilabel:`Create credit note`, and then click :guilabel:`Send for Digitization`.
.. seealso::
:doc:`AI-powered document digitization <../finance/accounting/vendor_bills/invoice_digitization>`
Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 7.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.8 KiB

@@ -4,15 +4,16 @@ Colombia
.. |DIAN| replace:: :abbr:`DIAN (Dirección de Impuestos y Aduanas Nacionales)`
Odoo's Colombian localization package provides accounting, fiscal and legal features in Colombia
such as chart of accounts, taxes and electronic invoicing.
Odoo's Colombian localization package provides accounting, fiscal, and legal features for databases
in Colombia such as chart of accounts, taxes, and electronic invoicing.
In addition, we have a series of videos covering how to start from scratch, configuration, main
workflows, and specific use cases.
In addition, a series of videos on the subject is also available. These videos cover how to start
from scratch, set up configurations, complete common workflows, and provide in-depth looks at some
specific use cases as well.
.. seealso::
`Odoo Colombian localization videos
<https://www.youtube.com/playlist?list=PL1-aSABtP6ABxZshems3snMjx7bj_7ZsZ>`_.
`Smart Tutorial - Colombian Localization
<https://www.odoo.com/slides/smart-tutorial-localizacion-de-colombia-132>`_.
.. _colombia/configuration:
@@ -36,74 +37,78 @@ localization:
- `l10n_co`
- Default :ref:`fiscal localization package <fiscal_localizations/packages>`. This module adds
the base accounting features for the Colombian localization: chart of accounts, taxes,
withholdings, identification document type.
withholdings, and identification document type.
* - :guilabel:`Colombian - Accounting Reports`
- `l10n_co_reports`
- Includes accounting reports for sending certifications to suppliers for withholdings applied.
* - :guilabel:`Electronic invoicing for Colombia with Carvajal`
- `l10n_co_edi`
- This module includes the features that are required for the integration with Carvajal and
generates the electronic invoices and support document related to the vendor bills based on
- This module includes the features required for integration with Carvajal, and
generates the electronic invoices and support documents related to the vendor bills, based on
|DIAN| regulations.
* - :guilabel:`Colombian - Point of Sale`
- `l10n_co_pos`
- Includes Point of Sale Receipt for Colombian Localization.
- Includes Point of Sale receipts for Colombian localization.
.. note::
When a database is created from scratch selecting :guilabel:`Colombia` as the country, Odoo
automatically installs the base modules *Colombia - Accounting* and *Colombia - Accounting
Reports*.
When `Colombia` is selected for a company's :guilabel:`Fiscal Localization`, Odoo automatically
installs certain modules.
Company configuration
---------------------
To configure your company information, go to the :menuselection:`Contacts` app and search for your
company. Alternatively, activate :ref:`developer mode <developer-mode>` and navigate to
To configure your company information, go to the :menuselection:`Contacts` app, and search for your
company.
Alternatively, activate :ref:`developer mode <developer-mode>` and navigate to
:menuselection:`General Setting --> Company --> Update Info --> Contact`. Then, edit the contact
form to configure the following information:
form and configure the following information:
- :guilabel:`Company Name`.
- :guilabel:`Address`: Including :guilabel:`City`, :guilabel:`Department` and :guilabel:`Zip Code`.
- :guilabel:`Tax ID`: When it is a `NIT`, it must have the *verification digit* at the end of the ID
followed by a hyphen (`-`).
- :guilabel:`Address`: Including :guilabel:`City`, :guilabel:`Department` and :guilabel:`ZIP` code.
- :guilabel:`Identification Number`: Select the :guilabel:`Identification Type` (`NIT`, `Cédula de
Ciudadanía`, `Registro Civil`, etc.). When the :guilabel:`Identification Type` is `NIT`, the
:guilabel:`Identification Number` **must** have the *verification digit* at the end of the ID
prefixed by a hyphen (`-`).
Next, configure the :guilabel:`Fiscal Information` in the :guilabel:`Sales & Purchase` tab:
- :guilabel:`Obligaciones y Responsabilidades`: Select the fiscal responsibility for the company
(:guilabel:`O-13` Gran Contribuyente, :guilabel:`O-15` Autorretenedor, :guilabel:`O-23` Agente de
retención IVA, :guilabel:`O-47` Regimen de tributación simple, :guilabel:`R-99-PN` No Aplica).
(`O-13` Gran Contribuyente, `O-15` Autorretenedor, `O-23` Agente de retención IVA, `O-47` Regimen
de tributación simple, `R-99-PN` No Aplica).
- :guilabel:`Gran Contribuyente`: If the company is *Gran Contribuyente* this option should be
selected.
- :guilabel:`Fiscal Regimen`: Select the Tribute Name for the company (:guilabel:`IVA`,
:guilabel:`INC`, :guilabel:`IVA e INC`, :guilabel:`No Aplica`)
- :guilabel:`Fiscal Regimen`: Select the Tribute Name for the company (`IVA`, `INC`, `IVA e INC`,
or `No Aplica`)
- :guilabel:`Commercial Name`: If the company uses a specific commercial name, and it needs to be
displayed in the invoice.
Carjaval credentials configuration
----------------------------------
Once the modules installed, the user credentials must be configured in order to connect with
Carvajal Web Service. Navigate to :menuselection:`Accounting --> Configuration --> Settings` and
scroll to the :guilabel:`Colombian Electronic Invoicing` section. Then, fill in the required
configuration information provided by Carvajal:
Once the modules are installed, the user credentials **must** be configured, in order to connect
with Carvajal Web Service. To do so, navigate to :menuselection:`Accounting --> Configuration -->
Settings` and scroll to the :guilabel:`Colombian Electronic Invoicing` section. Then, fill in the
required configuration information provided by Carvajal:
- :guilabel:`Username` and :guilabel:`Password`: Correspond to the username and password provided
by Carvajal to the company.
- :guilabel:`Username` and :guilabel:`Password`: Username and password (provided by Carvajal) to the
company.
- :guilabel:`Company Registry`: Company's NIT number *without* the verification code.
- :guilabel:`Account ID`: Company ID followed by `_01`.
- :guilabel:`Colombia Template Code`: Select one of the two available templates (:guilabel:`CGEN03`
or :guilabel:`CGNE04`) to be used in the PDF format of the electronic invoice.
- :guilabel:`Account ID`: Company's NIT number followed by `_01`.
- :guilabel:`Colombia Template Code`: Select one of the two available templates (`CGEN03` or
`CGNE04`) to be used in the PDF format of the electronic invoice.
Enable the :guilabel:`Test mode` checkbox to connect with the Carvajal testing environment.
Once Odoo and Carvajal are fully configured and ready for production, deactivate the :guilabel:`Test
mode` checkbox to use the production database.
.. image:: colombia/carvajal-configuration.png
:align: center
:alt: Configure credentials for Carvajal web service in Odoo.
.. note::
Check the :guilabel:`Test mode` checkbox to connect with the Carvajal testing environment. Once
Odoo and Carvajal are fully configured and ready for production, uncheck the :guilabel:`Test
mode` checkbox to use the production database.
.. important::
:guilabel:`Test mode` must be used **only** on replicated databases, **not** the production
:guilabel:`Test mode` must **only** be used on duplicated databases, **not** the production
environment.
Report data configuration
@@ -112,8 +117,17 @@ Report data configuration
Report data can be defined for the fiscal section and bank information of the PDF as part of the
configurable information sent in the XML.
Navigate to :menuselection:`Accounting --> Configuration --> Settings` and scroll to the
:guilabel:`Colombian Electronic Invoicing` section.
Navigate to :menuselection:`Accounting --> Configuration --> Settings`, and scroll to the
:guilabel:`Colombian Electronic Invoicing` section, in order to find the :guilabel:`Report
Configuration` fields. Here the header information for each report type can be configured.
- :guilabel:`Gran Contribuyente`
- :guilabel:`Tipo de Régimen`
- :guilabel:`Retenedores de IVA`
- :guilabel:`Autorretenedores`
- :guilabel:`Resolución Aplicable`
- :guilabel:`Actividad Económica`
- :guilabel:`Bank Information`
.. _colombia/master-data:
@@ -123,67 +137,85 @@ Master data configuration
Partner
~~~~~~~
Partner contacts can be created in the *Contacts* app. To do so, navigate to
:menuselection:`Contacts`, and click the :guilabel:`Create` button.
Then, name the contact, and using the radio buttons, select the contact type, either
:guilabel:`Individual` or :guilabel:`Company`.
Complete the full :guilabel:`Address`, including the :guilabel:`City`, :guilabel:`State`, and
:guilabel:`ZIP` code. Then, complete the identification and fiscal information.
Identification information
**************************
Document types defined by the |DIAN| are available on the partner form as part of the Colombian
localization. Colombian partners must have their :guilabel:`Identification Number` (VAT) and
:guilabel:`Document Type` set.
Identification types, defined by the |DIAN|, are available on the partner form, as part of the
Colombian localization. Colombian partners **must** have their :guilabel:`Identification Number`
(VAT) and :guilabel:`Document Type` set.
.. tip::
When the :guilabel:`Document Type` is `NIT`, the :guilabel:`Identification Number` needs to be
configured in Odoo, including the *verification digit*; Odoo splits this number when the data to
is sent to the third party.
configured in Odoo, including the *verification digit at the end of the ID, prefixed by a hyphen
(`-`)*.
Fiscal information
******************
The partner's responsibility codes (section 53 in the RUT document) are included as part of the
electronic invoicing module, as it is required by the |DIAN|.
The partner's responsibility codes (section 53 in the :abbr:`RUT (Registro único tributario)`
document) are included as part of the electronic invoicing module, as it is required by the |DIAN|.
The required fields can be found under :menuselection:`Partner --> Sales & Purchase Tab --> Fiscal
Information`:
Information section`:
- :guilabel:`Obligaciones y Responsabilidades`: Select the fiscal responsibility for the company
(:guilabel:`O-13` Gran Contribuyente, :guilabel:`O-15` Autorretenedor, :guilabel:`O-23` Agente de
retención IVA, :guilabel:`O-47` Regimen de tributación simple, :guilabel:`R-99-PN` No Aplica).
(`O-13` Gran Contribuyente, `O-15` Autorretenedor, `O-23` Agente de retención IVA, `O-47` Regimen
de tributación simple, or `R-99-PN` No Aplica).
- :guilabel:`Gran Contribuyente`: If the company is *Gran Contribuyente* this option should be
selected.
- :guilabel:`Fiscal Regimen`: Select the Tribute Name for the company (:guilabel:`IVA`,
:guilabel:`INC`, :guilabel:`IVA e INC`, :guilabel:`No Aplica`)
- :guilabel:`Fiscal Regimen`: Select the tribute name for the company (`IVA`, `INC`, `IVA e INC`, or
`No Aplica`)
- :guilabel:`Commercial Name`: If the company uses a specific commercial name, and it needs to be
displayed in the invoice.
Products
~~~~~~~~
In addition to adding general information (in the :guilabel:`General Information` tab) on the
product form, either the :guilabel:`UNSPSC Category`, :guilabel:`Barcode`, or :guilabel:`Internal
Reference` field must also be configured.
To manage products, navigate to :menuselection:`Accounting --> Customers --> Products`, then click
on a product.
When adding general information on the product form, it is required that either the
:guilabel:`UNSPSC Category` (:guilabel:`Accounting` tab), or :guilabel:`Internal Reference`
(:guilabel:`General Information` tab) field is configured. Be sure to :guilabel:`Save` the product
once configured.
Taxes
~~~~~
If sales transactions include products with taxes, the :guilabel:`Value Type` field in the
:guilabel:`Advanced Options` tab needs to be configured per tax. To do so, go to
:menuselection:`Accounting --> Configuration --> Taxes`, and select the related tax.
To create or modify taxes, go to :menuselection:`Accounting --> Configuration --> Taxes`, and select
the related tax.
Retention tax types (:guilabel:`ICA`, :guilabel:`IVA`, :guilabel:`Fuente`) are also included. This
configuration is used to display taxes in the invoice PDF correctly.
If sales transactions include products with taxes, the :guilabel:`Value Type` field in the
:guilabel:`Advanced Options` tab needs to be configured per tax. Retention tax types
(:guilabel:`ICA`, :guilabel:`IVA`, :guilabel:`Fuente`) are also included. This configuration is used
to display taxes correctly in the invoice PDF.
.. image:: colombia/retention-tax-types.png
:align: center
:alt: The ICA, IVA and Fuente fields in the Advanced Options tab in Odoo.
.. _co-journals:
Sales journals
~~~~~~~~~~~~~~
.. _co-journals:
Once the |DIAN| has assigned the official sequence and prefix for the electronic invoice resolution,
the sales journals related to the invoice documents must be updated in Odoo. To do so, navigate to
:menuselection:`Accounting --> Configuration --> Journals`.
the sales journals related to the invoice documents **must** be updated in Odoo. To do so, navigate
to :menuselection:`Accounting --> Configuration --> Journals`, and select an existing sales journal,
or create a new one with the :guilabel:`Create` button.
Configure the following data in the :guilabel:`Advanced Settings` tab:
On the sales journal form, input the :guilabel:`Journal Name`, :guilabel:`Type`, and set a unique
:guilabel:`Short Code` in the :guilabel:`Journals Entries` tab. Then, configure the following data
in the :guilabel:`Advanced Settings` tab:
- :guilabel:`Electronic invoicing`: Enable :guilabel:`UBL 2.1 (Colombia)`.
- :guilabel:`Invoicing Resolution`: Resolution number issued by |DIAN| to the company.
@@ -193,32 +225,31 @@ Configure the following data in the :guilabel:`Advanced Settings` tab:
- :guilabel:`Range of Numbering (maximum)`: Last authorized invoice number.
.. note::
The sequence and resolution of the journal must match the one configured in Carvajal and the
The sequence and resolution of the journal **must** match the one configured in Carvajal and the
|DIAN|.
Invoice sequence
****************
The invoice sequence and prefix must be correctly configured when the first document is created.
The invoice sequence and prefix **must** be correctly configured when the first document is created.
.. note::
Odoo automatically assigns a prefix and sequence to the following documents.
Odoo automatically assigns a prefix and sequence to the following invoices.
Purchase journals
*****************
Once the |DIAN| has assigned the official sequence and prefix for the support document related to
Once the |DIAN| has assigned the official sequence and prefix for the *support document* related to
vendor bills, the purchase journals related to their supporting documents need to be updated in
Odoo. The process is similar to the configuration of the :ref:`sales journals <co-journals>`.
Chart of accounts
*****************
The :doc:`chart of accounts
</applications/finance/accounting/get_started/chart_of_accounts>` is installed by default as part of
the localization module, the accounts are mapped automatically in taxes, default account payable,
and default account receivable. The chart of accounts for Colombia is based on the PUC (Plan Unico
de Cuentas).
The :doc:`chart of accounts </applications/finance/accounting/get_started/chart_of_accounts>` is
installed by default as part of the localization module, the accounts are mapped automatically in
taxes, default account payable, and default account receivable. The chart of accounts for Colombia
is based on the PUC (Plan Unico de Cuentas).
.. _colombia/workflows:
@@ -228,18 +259,38 @@ Main workflows
Electronic invoices
-------------------
The following is a breakdown of the main workflow for electronic invoices with the Colombian
localization:
#. Sender creates an invoice.
#. Electronic invoice provider generates the legal XML file.
#. Electronic invoice provider creates the CUFE (Invoice Electronic Code) with the electronic
signature.
#. Electronic invoice provider sends a notification to |DIAN|.
#. |DIAN| validates the invoice.
#. |DIAN| accepts or rejects the invoice.
#. Electronic invoice provider generates the PDF invoice with a QR code.
#. Electronic invoice provider sends invoice to the acquirer.
#. Acquirer sends a receipt of acknowledgement, and accepts or rejects the invoice.
#. Sender downloads a :file:`.zip` file with the PDF and XML.
.. image:: colombia/workflow-electronic-invoice.png
:align: center
:alt: Electronic invoice workflow for Colombian localization.
.. _colombia/invoice-creation:
Invoice creation
~~~~~~~~~~~~~~~~
.. note::
The functional workflow taking place before an invoice validation does not alter the main changes
introduced with the electronic invoice.
The functional workflow taking place before an invoice validation does **not** alter the main
changes introduced with the electronic invoice.
Electronic invoices are generated and sent to both the |DIAN| and customer through Carvajal's web
service integration. These documents can be created from your sales order or manually. Go to
:menuselection:`Accounting --> Customers --> Invoices` and configure:
service integration. These documents can be created from your sales order or manually generated. To
create a new invoice, go to :menuselection:`Accounting --> Customers --> Invoices`, and select
:guilabel:`Create`. On the invoice form configure the following fields:
- :guilabel:`Customer`: Customer's information.
- :guilabel:`Journal`: Journal used for electronic invoices.
@@ -259,9 +310,10 @@ invoice is then processed asynchronously by the E-invoicing service UBL 2.1 (Col
also displayed in the chatter.
.. image:: colombia/invoice-sent.png
:align: center
:alt: Carvajal XML invoice file in Odoo chatter.
The :guilabel:`Electronic Invoice Name` field is now displayed in the :guilabel:`EDI Documents` tab
The :guilabel:`Electronic Invoice Name` field is now displayed in the :guilabel:`EDI Documents` tab,
with the name of the XML file. Additionally, the :guilabel:`Electronic Invoice Status` field is
displayed with the initial value :guilabel:`To Send`. To process the invoice manually, click on the
:guilabel:`Process Now` button.
@@ -271,7 +323,7 @@ displayed with the initial value :guilabel:`To Send`. To process the invoice man
Reception of legal XML and PDF
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The electronic invoice vendor (Carvajal) receives the XML file and proceeds to validate its
The electronic invoice vendor (Carvajal) receives the XML file, and proceeds to validate its
structure and information.
After validating the electronic invoice, proceed to generate a legal XML which includes a digital
@@ -279,10 +331,11 @@ signature and a unique code (CUFE), a PDF invoice that includes a QR code and th
generated. If everything is correct the :guilabel:`Electronic Invoicing` field value changes to
:guilabel:`Sent`.
A ZIP containing the legal electronic invoice in XML format and the invoice in PDF format is
downloaded and displayed in the invoice chatter:
A :file:`.zip` containing the legal electronic invoice (in XML format) and the invoice in (PDF
format) is downloaded and displayed in the invoice chatter:
.. image:: colombia/invoice-zip.png
:align: center
:alt: ZIP file displayed in the invoice chatter in Odoo.
The electronic invoice status changes to :guilabel:`Accepted`.
@@ -292,7 +345,7 @@ Credit notes
The process for credit notes is the same as for invoices. To create a credit note with reference to
an invoice, go to :menuselection:`Accounting --> Customers --> Invoices`. On the invoice, click
:guilabel:`Add Credit Note` and complete the following information:
:guilabel:`Add Credit Note`, and complete the following information:
- :guilabel:`Credit Method`: Select the type of credit method.
@@ -316,7 +369,7 @@ Debit notes
The process for debit notes is similar to credit notes. To create a debit note with reference to an
invoice, go to :menuselection:`Accounting --> Customers --> Invoices`. On the invoice, click the
:guilabel:`Add Debit Note` button and complete the following information:
:guilabel:`Add Debit Note` button, and enter the following information:
- :guilabel:`Reason`: Type the reason for the debit note.
- :guilabel:`Debit note date`: Select the specific options.
@@ -331,7 +384,7 @@ Support document for vendor bills
---------------------------------
With master data, credentials, and the purchase journal configured for support documents related to
vendor bills, you can start using support documents.
vendor bills, you can start using *support documents*.
Support documents for vendor bills can be created from your purchase order or manually. Go to
:menuselection:`Accounting --> Vendors --> Bills` and fill in the following data:
@@ -372,6 +425,7 @@ Commerce (ICA) tax. The report can be found under :menuselection:`Accounting -->
Colombian Statements --> Certificado de Retención en ICA`.
.. image:: colombia/ica-report.png
:align: center
:alt: Certificado de Retención en ICA report in Odoo Accounting.
Certificado de Retención en IVA
@@ -382,6 +436,7 @@ can be found under :menuselection:`Accounting --> Reporting --> Colombian Statem
de Retención en IVA`.
.. image:: colombia/iva-report.png
:align: center
:alt: Certificado de Retención en IVA report in Odoo Accounting.
Certificado de Retención en la Fuente
@@ -392,4 +447,5 @@ be found under :menuselection:`Accounting --> Reporting --> Colombian Statements
Retención en Fuente`.
.. image:: colombia/fuente-report.png
:align: center
:alt: Certificado de Retención en Fuente report in Odoo Accounting.
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

@@ -5,6 +5,11 @@ PayPal
`Paypal <https://www.paypal.com/>`_ is an American online payment provider available worldwide, and
one of the few that does not charge a subscription fee.
.. note::
While PayPal is available in `over 200 countries/regions
<https://www.paypal.com/webapps/mpp/country-worldwide>`_, only `a selection of currencies are
supported <https://developer.paypal.com/docs/reports/reference/paypal-supported-currencies>`_.
Settings in PayPal
==================
+155 -65
View File
@@ -2,18 +2,18 @@
Sign
====
**Odoo Sign** allows you to send, sign and approve documents online, using electronic signatures.
**Odoo Sign** allows you to send, sign, and approve documents online, using electronic signatures.
An **electronic signature** shows a person's agreement to the content of a document. Just like a
handwritten signature, the electronic one represents a legal bounding by the terms of the signed
document.
With Sign, you can upload any PDF file and add fields to it. These fields are automatically filled
in with the user's details present in your database.
With Sign, you can upload any PDF file and add fields to it. These fields can be automatically
filled in with the user's details present in your database.
.. seealso::
- `Odoo Sign: product page <https://www.odoo.com/app/sign>`_
- `Odoo Tutorials: Sign <https://www.odoo.com/slides/sign-61>`_
- `Odoo Tutorials: Sign [video] <https://www.odoo.com/slides/sign-61>`_
Validity of electronic signatures
=================================
@@ -82,16 +82,69 @@ Overall, to be recognized as valid, electronic signatures have to meet five crit
is up-to-date. We advise contacting a local attorney for legal advice regarding electronic
signature compliance and validity.
Send a document to sign
=======================
One-time signature
------------------
You can click :guilabel:`Upload a PDF to sign` from your dashboard for a one-time signature. Select
your document, open it, and drag and drop the required :ref:`fields <sign/fields>` in your document.
You can modify the :ref:`role <sign/role>` assigned to a field by clicking on it and selecting the
one you want.
When ready, click :guilabel:`Send`, and fill in the required fields. Once sent, your document
remains available. Go to :menuselection:`Documents --> All Documents` to see your document
and the status of the signatures.
.. image:: sign/signature-status.png
:alt: Signature status
Validity dates and reminders
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
You can set **validity dates** on limited-duration agreement documents or send **automatic email
reminders** to obtain signatures on time. From your dashboard, click :guilabel:`Send` on your
document. On the new page, go to the :guilabel:`Options` section and fill in the :guilabel:`Valid
Until` and :guilabel:`Reminder` fields.
Templates
---------
You can create document templates when you have to send the same document several times. From your
dashboard, click :guilabel:`Upload a PDF template`. Select the document and add the required
:ref:`fields <sign/fields>`. You can modify the :ref:`role <sign/role>` of a field by clicking on it
and selecting the one you want.
Click :guilabel:`Template Properties` to add :guilabel:`Tags` to your template, define a
:guilabel:`Signed Document Workspace`, add :guilabel:`Signed Document Tags`, set a
:guilabel:`Redirect Link` that will be available in the signature confirmation message received
after the signature, or define :guilabel:`Authorized Users` if you want to restrict the use of your
template to specific authorized users or groups.
Your templates are visible by default on your dashboard. You can click :guilabel:`Send` to quickly
send a document template to a signer or :guilabel:`Sign Now` if you are ready to sign your document
immediately.
.. tip::
You can **create a template from a document that was previously sent**. To do so, go to
:menuselection:`Documents --> All Documents`. On the document you want to retrieve, click on the
the vertical ellipsis (:guilabel:`⋮`), then :guilabel:`Template`. Click on the vertical ellipsis
(:guilabel:`⋮`) again, then :guilabel:`Restore`. Your document now appears on your dashboard next
to your other templates.
.. _sign/role:
Roles
=====
Each field in a Sign document is related to a role that corresponds to a specific person. When a
document is being signed, the person assigned to the role needs to fill in their assigned fields and
Each field in a Sign document is related to a role corresponding to a specific person. When a
document is being signed, the person assigned to the role must fill in their assigned fields and
sign it.
Roles are available by going to :menuselection:`Sign --> Configuration --> Roles`.
It is possible to update existing roles or to create new roles by clicking on :guilabel:`Create`.
It is possible to update existing roles or to create new roles by clicking on :guilabel:`New`.
Choose a :guilabel:`Role Name`, add an :guilabel:`Extra Authentication Step` to confirm the
identity of the signing person, and if the document can be reassigned to another contact, select
:guilabel:`Change Authorized` for the role. A :guilabel:`Color` can also be chosen for the role.
@@ -101,79 +154,135 @@ template.
Secured identification
----------------------
As the owner of a document, you may request an :guilabel:`Extra Authentication Step` through an SMS
verification or via Itsme® (available in Belgium and the Netherlands). Both authentication options
require :ref:`credits <iap/buying_credits>`. If you do not have any credits left, the authentication
steps will be skipped.
As the owner of a document, you may request an :guilabel:`Extra Authentication Step` through
:ref:`SMS verification <sign/sms>` or via :ref:`Itsme® <sign/itsme>` (available in Belgium and the
Netherlands). Both authentication options require :ref:`credits <iap/buying_credits>`. If you do not
have any credits left, the authentication steps will be skipped.
.. seealso::
- :doc:`In-App Purchase (IAP) <../general/in_app_purchase>`
- :doc:`SMS pricing and FAQ <../marketing/sms_marketing/pricing/pricing_and_faq>`
.. _sign/sms:
SMS verification
~~~~~~~~~~~~~~~~
Go to :menuselection:`Sign --> Configuration --> Roles`. Click in the :guilabel:`Extra
Authentication Step` column for the role, and select :guilabel:`Unique Code Via SMS`.
.. note::
Before being able to send SMS Text Messages, you need to register your phone number. To do so, go
to :menuselection:`Sign --> Configuration --> Settings` and click :guilabel:`Buy credits` under
:guilabel:`Authenticate by SMS`.
Go to the document to sign, add the field for which the SMS verification is required, for example,
the :guilabel:`Signature` field, and click :guilabel:`Send`. On the new page, select the
:guilabel:`customer` and click :guilabel:`Send`.
The person signing the document fills in the :guilabel:`Signature` field, then :guilabel:`Sign`, and
clicks :guilabel:`Validate & Send Completed Document`. A :guilabel:`Final Validation` page pops up
where to add their phone number. One-time codes are sent by SMS.
.. image:: sign/sms-verification.png
:align: center
:alt: Add a hash to your document
Go to the document to sign, add the field for which the SMS verification is required, for example
the :guilabel:`Signature` field, and click :guilabel:`Send`. A page pops up, select the customer,
and click :guilabel:`Send`.
The person signing the document fills in the :guilabel:`Signature` field and clicks
:guilabel:`Validate & Send Completed Document`. A :guilabel:`Final Validation` page pops up where to
add their phone number. One-time codes are sent by SMS.
.. image:: sign/final-validation.png
:align: center
:alt: fill in your phone number for final validation
.. note::
- This feature is enabled by default.
- As soon as the :guilabel:`Extra Authentication Step` applies to a role, this validation step is
requested for any field assigned to this role.
.. _sign/itsme:
Itsme®
~~~~~~
Go to :menuselection:`Sign --> Configuration --> Settings` and enable :guilabel:`Identify with
itsme®`.
Itsme® authentication can be used to allow signatories to provide their identity using itsme®. This
feature is only available in **Belgium** and the **Netherlands**.
Then, go to :menuselection:`Sign --> Configuration --> Roles`. Click in the :guilabel:`Extra
Authentication Step` column for the role, and select :guilabel:`Via itsme®`.
The feature can be enabled in :guilabel:`Sign Settings` and applies automatically to the
:guilabel:`Customer (identified with itsme®)` role. To enable it for other roles, go to
:menuselection:`Sign --> Configuration --> Roles`. Click in the :guilabel:`Extra Authentication
Step` column for the role, and select :guilabel:`Via itsme®`.
Go to the document that needs to be signed and add the :guilabel:`Signature` field. Switch the role
to :guilabel:`customer (identified with itsme®)`, and click :guilabel:`Validate`, and
:guilabel:`Send`.
Go to the document that needs to be signed and add the :guilabel:`Signature` field. Switch to any
role configured to use the feature, and click :guilabel:`Validate` and :guilabel:`Send`.
.. image:: sign/itsme-identification.png
:align: center
:alt: select customer identified with itsme®
The person signing the document fills in the :guilabel:`Signature` field and clicks
:guilabel:`Validate & Send Completed Document`. A :guilabel:`Final Validation` page pops up, and the
person must authenticate with itsme®.
Upon signing the document, the signer completes the :guilabel:`Signature` field and proceeds by
clicking on :guilabel:`Validate & Send Completed Document`, triggering a
:guilabel:`Final verification` page where authentication via itsme® is required.
.. note::
This feature is only available in Belgium and the Netherlands.
Signatory hash
==============
Each time someone signs a document, a **hash** - a unique digital signature of the operation - is
generated to ensure traceability, integrity, and inalterability. This process guarantees that any
changes made after a signature is affixed can be easily detected, maintaining the document's
authenticity and security throughout its lifecycle.
A visual security frame displaying the beginning of the hash is added to the signatures. Internal
users can hide or show it by turning the :guilabel:`Frame` option on or off when signing the
document.
.. image:: sign/sign-hash.png
:alt: Adding the visual security frame to a signature.
.. _sign/field-types:
Field Types
Tags
====
Tags can be used to categorize and organize documents, allowing users to quickly search for and
filter documents based on specific criteria.
You can manage tags by going to :menuselection:`Configuration --> Tags`. To create a tag, click
:guilabel:`New`. On the new line, add the :guilabel:`Tag Name` and select a :guilabel:`Color Index`
for your tag.
To apply a tag to a document, use the dropdown list available in your document.
.. note::
You can modify the tags of a signed document by going to :menuselection:`Documents --> All
Documents`, clicking the vertical ellipsis (:guilabel:`⋮`) on your document, then
:guilabel:`Details`, and modifying your :guilabel:`Tags`.
Sign order
==========
When a document needs to be signed by different parties, the signing order lets you control the
order in which your recipients receive it for signature.
After uploading a PDF with at least two signature fields with two different roles and clicking
:guilabel:`Send`, toggle the :guilabel:`Specify Signing Order` button and search for the signer's
name or email information to add them. You can decide on the signing order by typing **1** or **2**
in the first column.
Each recipient receives the signature request notification only once the previous recipient has
completed their action.
.. seealso::
`Odoo Quick Tips: Sign order [video] <https://www.youtube.com/watch?v=2KUq7RPt1cU/>`_
.. _sign/fields:
Field types
===========
Various field types can be used to sign documents (placeholder, autocompletion, ...). By configuring
your own field types, also known as signature item types, the signing process can be even faster for
your customers, partners, and employees.
Fields are used in a document to indicate what information must be completed by the signers. You can
add fields to your document simply by dragging and dropping them for the left column into your
document.
Various field types can be used to sign documents (placeholder, autocompletion, etc.). By
configuring your own field types, also known as signature item types, the signing process can be
even faster for your customers, partners, and employees.
To create and edit field types, go to :menuselection:`Sign --> Configuration --> Settings -->
Edit field types`.
You can select an existing field by clicking on it or you can :guilabel:`Create` a new one. First,
You can select an existing field by clicking on it, or you can :guilabel:`Create` a new one. First,
edit the :guilabel:`Field Name`. Then, select a :guilabel:`Field Type`:
- :guilabel:`Signature`: users are asked to enter their signature either by drawing it, generating
@@ -199,10 +308,10 @@ the person signing the document. To do so, enter the contact model field's techn
document.
The size of the fields can also be changed by editing the :guilabel:`Default Width` and
:guilabel:`Default Height`. Both sizes are defined as a percentage of the full-page expressed as a
decimal, with 1 equalling the full-page's width or height. By default, the width of new fields you
create is set to 15% (0.150) of a full-page's width, while their height is set to 1.5% (0.015) of a
full-page's height.
:guilabel:`Default Height`. Both sizes are defined as a percentage of the full page expressed as a
decimal, with 1 equalling the full page's width or height. By default, the width of new fields you
create is set to 15% (0.150) of a full page's width, while their height is set to 1.5% (0.015) of a
full page's height.
Next, write a :guilabel:`Tip`. Tips are displayed inside arrows on the left-hand side of the user's
screen during the signing process to help them understand what the step entails (e.g., "Sign here"
@@ -210,23 +319,4 @@ or “Fill in your birthdate”). You can also use a :guilabel:`Placeholder` tex
the field before it is completed.
.. image:: sign/tip-placeholder.png
:align: center
:alt: Tip and placeholder example in Odoo Sign
Signatory hash
==============
A :guilabel:`hash` can be added to a document that is shared (attached to an email or printed, for
example) to indicate that the signature is electronic and that there is some traceability behind
it. The :guilabel:`hash` corresponds to a unique ID number related to the signed document.
If you are an :doc:`internal user <../general/users/manage_users>`,
you can choose to tick or untick the frame option when signing the document. Tick the box to have
the frame and hash visible.
.. image:: sign/sign-hash.png
:align: center
:alt: Add a hash to your document
.. note::
The :guilabel:`hash` is only applicable to the signature field.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.8 KiB

After

Width:  |  Height:  |  Size: 4.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

After

Width:  |  Height:  |  Size: 4.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 13 KiB

+3 -18
View File
@@ -2,8 +2,8 @@
Reporting
=========
You can find under the :guilabel:`Reporting` menu of most apps several reports that let you analyze
and visualize your records' data.
You can find several reports under the :guilabel:`Reporting` menu of most apps that let you analyze
and visualize the data of your records.
.. _reporting/views:
@@ -25,7 +25,6 @@ but can be found elsewhere. Click the **graph view button** located at the top r
it.
.. image:: reporting/graph-button.png
:align: center
:alt: Selecting the graph view
.. _reporting/views/pivot:
@@ -38,7 +37,6 @@ down for analysis. The view is often found under the :guilabel:`Reporting` menu
found elsewhere. Click the **pivot view button** located at the top right to access it.
.. image:: reporting/pivot-button.png
:align: center
:alt: Selecting the pivot view
.. _reporting/choosing-measures:
@@ -65,7 +63,6 @@ grouped by *Date > Month*, which is used to analyze the evolution of a measure o
When you filter a single time period, the option to compare it against another one appears.
.. image:: reporting/comparison.png
:align: center
:alt: Using the comparison option
.. example::
@@ -79,7 +76,6 @@ grouped by *Date > Month*, which is used to analyze the evolution of a measure o
selected.
.. image:: reporting/measures.png
:align: center
:alt: Selecting different measures on the Sales Analysis report
.. tab:: Group measures
@@ -88,7 +84,6 @@ grouped by *Date > Month*, which is used to analyze the evolution of a measure o
previous Sales Analysis report example.
.. image:: reporting/single-group.png
:align: center
:alt: Adding a group on the Sales Analysis report
.. _reporting/using-pivot:
@@ -111,7 +106,6 @@ subgroups.
group on the :guilabel:`All / Saleable / Office Furniture` product category.
.. image:: reporting/multiple-groups.png
:align: center
:alt: Adding multiple groups on the Sales Analysis report
.. tip::
@@ -124,7 +118,7 @@ subgroups.
Using the graph view
====================
Three graphs are available, the bar, line, and pie charts.
Three graphs are available: the bar, line, and pie charts.
**Bar charts** are used to show the distribution or a comparison of several categories. They are
especially useful as they can deal with larger data sets.
@@ -139,19 +133,16 @@ when they form a meaningful whole.
.. tab:: Bar chart
.. image:: reporting/bar.png
:align: center
:alt: Viewing the Sales Analysis report as a bar chart
.. tab:: Line chart
.. image:: reporting/line.png
:align: center
:alt: Viewing the Sales Analysis report as a line chart
.. tab:: Pie chart
.. image:: reporting/pie.png
:align: center
:alt: Viewing the Sales Analysis report as a pie chart
.. tip::
@@ -163,25 +154,21 @@ when they form a meaningful whole.
.. tab:: Stacked bar chart
.. image:: reporting/stacked-bar.png
:align: center
:alt: Stacked bar chart example
.. tab:: Regular bar chart
.. image:: reporting/non-stacked-bar.png
:align: center
:alt: Non-stacked bar chart example
.. tab:: Stacked line chart
.. image:: reporting/stacked-line.png
:align: center
:alt: Stacked line chart example
.. tab:: Regular line chart
.. image:: reporting/non-stacked-line.png
:align: center
:alt: Non-stacked line chart example
For **line** charts, you can use the cumulative option to sum values, which is especially useful
@@ -192,11 +179,9 @@ when they form a meaningful whole.
.. tab:: Cumulative line chart
.. image:: reporting/cumulative.png
:align: center
:alt: Cumulative line chart example
.. tab:: Regular line chart
.. image:: reporting/non-cumulative.png
:align: center
:alt: Regular line chart example
+2
View File
@@ -1,3 +1,5 @@
:show-content:
=======
Payroll
=======
@@ -13,3 +13,4 @@ Daily operations
operations/transfers_scratch
operations/barcode_nomenclature
operations/gs1_nomenclature
operations/gs1_usage
@@ -2,11 +2,24 @@
GS1 barcode nomenclature
========================
`GS1 nomenclature <https://www.gs1us.org/>`_ consolidates multiple pieces of information in a single
barcode. Each piece needs to follow a specific barcode pattern—which is a defined format of numbers,
letters, special characters, and character length—to ensure proper interpretation of the barcode. By
scanning the barcode on an unopened box, GS1 nomenclature can identify the product, lot number,
number of units contained, and more.
.. _barcode/operations/gs1:
.. |AI| replace:: :abbr:`A.I. (Application Identifier)`
.. |GTIN| replace:: :abbr:`GTIN (Global Trade Item Number)`
.. |GTINs| replace:: :abbr:`GTINs (Global Trade Item Numbers)`
`GS1 nomenclature <https://www.gs1us.org/>`_ consolidates various product and supply chain data into
a single barcode. Odoo takes in `unique Global Trade Item Numbers
<https://www.gs1.org/standards/get-barcodes>`_ (GTIN), purchased by businesses, to enable global
shipping, sales, and eCommerce product listing.
Configure GS1 nomenclature to scan barcodes of sealed boxes and identify essential product
information, such as |GTIN|, lot number, quantity information, and more.
.. important::
|GTINs| are unique product identification that **must** be `purchased from GS1
<https://www.gs1.org/standards/get-barcodes>`_ to use GS1 barcodes.
.. seealso::
- `All GS1 barcodes <https://www.gs1.org/standards/barcodes/application-identifiers>`_
@@ -25,233 +38,74 @@ barcode nomenclature options.
.. image:: gs1_nomenclature/setup-gs1-nomenclature.png
:align: center
:alt: Choose GS1 from dropdown and click the internal link to see the list of GS1 rules.
:alt: Choose GS1 from dropdown and click the external link to see the list of GS1 rules.
To view and edit a list of GS1 *rules* and *barcode patterns* Odoo supports by default, click the
:guilabel:`➡️ (External link)` icon to the right of the :guilabel:`Barcode Nomenclature` selection.
The list of GS1 *rules* and *barcode patterns* Odoo supports by default is accessible by clicking
the :guilabel:`➡️ (arrow)` icon to the right of the :guilabel:`Barcode Nomenclature` selection.
Opening the pop-up table provides an editable view of GS1 :guilabel:`Rule Names` available in Odoo.
The table contains all the information that can be condensed with a GS1 barcode, along with the
corresponding :guilabel:`Barcode Pattern`.
In the :guilabel:`Open: Nomenclature` pop-up table, view and edit the GS1 :guilabel:`Rule Names`
available in Odoo. The table contains all the information that can be condensed with a GS1 barcode,
along with the corresponding :guilabel:`Barcode Pattern`.
.. tip::
After setting GS1 as the barcode nomenclature, :menuselection:`Barcode Nomenclatures` can also be
accessed by first enabling :ref:`developer mode <developer-mode>`. Navigate to
:menuselection:`Inventory app --> Configuration --> Barcode Nomenclatures` and finally, select
:guilabel:`Default GS1 Nomenclature`.
After setting GS1 as the barcode nomenclature, the :menuselection:`Barcode Nomenclatures`
settings can also be accessed by a hidden menu that's discoverable after enabling :ref:`developer
mode <developer-mode>`. Once enabled, navigate to the :menuselection:`Inventory app -->
Configuration --> Barcode Nomenclatures` menu and finally, select :guilabel:`Default GS1
Nomenclature`.
.. _barcode/operations/create-GS1-barcode:
Use GS1 barcode
===============
Use GS1 barcodes in Odoo
========================
To build GS1 barcodes in Odoo, combine multiple pieces of information using the specified barcode
pattern. The `application identifier
<https://www.gs1.org/standards/barcodes/application-identifiers>`_ (A.I.) serves as the universal
prefix for GS1 for barcode identification. Odoo uses regular expressions to describe barcode
patterns concisely. Each barcode pattern begins with a required 2-4 digit :abbr:`A.I. (application
identifier)`, which corresponds to the rule defined in the system's :ref:`barcode nomenclature list
<barcode/operations/set-up-barcode-nomenclature>`. By including the appropriate :abbr:`A.I.
(application identifier)` from the list, Odoo can accurately interpret GS1 barcodes. While most
barcode patterns have a flexible length, some specific patterns, such as barcodes for dates, have
defined length requirements.
For product identification using GS1 barcodes in Odoo, businesses obtain a `unique GTIN
<https://www.gs1.org/standards/get-barcodes>`_ as an internationally distinct product identifier
purchased from GS1. This |GTIN| is combined with specific product details following GS1's designated
*barcode pattern*. The barcode pattern's arrangement of numbers and letters must adhere to GS1
conventions for accurate interpretation by global systems along the supply chain.
Every barcode starts with a 2-4 digit `application identifier
<https://www.gs1.org/standards/barcodes/application-identifiers>`_ (A.I.). This required prefix
universally indicates what kind of information the barcode contains. Odoo follows GS1 rules for
identifying information, as detailed in the :ref:`default GS1 rules list
<barcode/operations/default-gs1-nomenclature-list>`. Including the relevant |AI| from the list
enables Odoo to correctly interpret GS1 barcodes. While most barcode patterns have a fixed length
requirement, certain ones, such as lots and serial numbers, have flexible length.
.. tip::
Use the FNC1 separator (`\x1D`) to end the barcode without needing to reach the maximum character
length.
For flexible-length barcode patterns not placed at the end of the GS1 barcode, use the FNC1
separator (`\\x1D`) to end the barcode.
Example: The barcode pattern for lot numbers is 20 characters long. Instead of creating a
20-character lot number barcode, like `LOT00000000000000001`, use the FNC1 separator to make it
shorter: `LOT001\x1D`.
Refer to the :ref:`GS1 nomenclature list <barcode/operations/default-gs1-nomenclature-list>` to see
a comprehensive list of all barcode patterns and rules to follow. Otherwise, the following section
contains examples of how to generate a barcode for common items in a warehouse.
Product + quantity + lot
------------------------
To build a GS1 barcode for a box that contains a product, number of units in it, and the lot number,
the following barcode patterns are used:
+------------+--------------------------+------+----------------------------------+------------------------------------------+
| Name | Rule Name | A.I. | Barcode Pattern | Field in Odoo |
+============+==========================+======+==================================+==========================================+
| Product | Global Trade Item Number | 01 | (01)(\\d{14}) | :guilabel:`Barcode` field on product form|
| | (GTIN) | | | |
+------------+--------------------------+------+----------------------------------+------------------------------------------+
| Quantity | Variable count of items | 30 | (30)(\\d{0,8}) | :guilabel:`Units` field on transfer form |
+------------+--------------------------+------+----------------------------------+------------------------------------------+
| Lot Number | Batch or lot number | 10 | (10)([!"%-/0-9:-?A-Z_a-z]{0,20}) | :guilabel:`Lot` on Detailed Operations |
| | | | | pop-up |
+------------+--------------------------+------+----------------------------------+------------------------------------------+
.. _barcode/operations/lot-setup:
Configuration
~~~~~~~~~~~~~
To track products using lots, first enable the :ref:`Lots and Serial Numbers
<inventory/management/track_products_by_lots>` feature. To do so, navigate to
:menuselection:`Inventory app --> Configuration --> Settings`. Next, under the
:guilabel:`Traceability` heading, check the box for :guilabel:`Lots & Serial Numbers`.
Then, set up the product barcode by navigating to the intended product form in
:menuselection:`Inventory app --> Products --> Products` and selecting the product. On the product
form, click :guilabel:`Edit`. Then, in the :guilabel:`General Information` tab, fill in the
:guilabel:`Barcode` field with the 14-digit `Global Trade Item Number (GTIN)
<https://www.gs1.org/standards/get-barcodes>`_, which is a universal and unique identifying number
from GS1.
.. important::
On the product form, omit the :abbr:`A.I. (application identifier)` `01` for GTIN product barcode
pattern, as it is only used to encode multiple barcodes into a single barcode that contains
detailed information about the package contents.
.. example::
To create a barcode for the product, `Fuji Apple`, enter the 14-digit GTIN `12345678901231` in
the :guilabel:`Barcode` field on the product form.
.. image:: gs1_nomenclature/barcode-field.png
:align: center
:alt: Enter 14-digit GTIN into the Barcode field on product form.
.. tip::
It is also possible to view a list of all products and barcodes. To access this list, go to
:menuselection:`Inventory --> Configuration --> Settings`. Under the :guilabel:`Barcode` heading,
click on the :guilabel:`Configure Product Barcodes` button under the :guilabel:`Barcode Scanner`
section. Enter the 14-digit GTIN into the :guilabel:`Barcode` column, then click
:guilabel:`Save`.
.. image:: gs1_nomenclature/product-barcodes-page.png
:align: center
:alt: View the Product Barcodes page from inventory settings.
.. _barcode/operations/lot-setup-on-product:
Next, enable lots and serial number tracking on the product. Select the :guilabel:`Inventory` tab on
the product form. Under :guilabel:`Tracking`, choose the :guilabel:`By Lots` radio button.
.. image:: gs1_nomenclature/track-by-lots.png
:align: center
:alt: Enable product tracking by lots in the "Inventory" tab of the product form.
Scan barcode on receipt
~~~~~~~~~~~~~~~~~~~~~~~
To ensure accurate lot interpretation in Odoo on product barcodes scanned during a receipt
operation, navigate to the :menuselection:`Barcode` app to manage the :ref:`receipt picking process
<barcode/operations/scan-received-products>`.
From the :guilabel:`Barcode Scanning` dashboard, click the :guilabel:`Operations` button, then the
:guilabel:`Receipts` button to view the list of vendor receptions to process. Receipts generated
from :abbr:`POs (Purchase Orders)` are listed, but new receipt operations can also be created
directly through the :menuselection:`Barcode` app using the :guilabel:`Create` button.
On the list of receipts, click on the warehouse operation (`WH/IN`) and scan product barcodes and
lot numbers with a barcode scanner. The scanned product then appears on the list. Use the
:guilabel:`✏️ (pencil)` button to open a window and manually enter quantities for specific lot
numbers.
.. example::
After placing a :abbr:`PO (Purchase Order)` for 50 apples, navigate to the associated receipt.
Scan the product barcode, and Odoo will prompt for the lot number.
.. image:: gs1_nomenclature/receive-50-apples.png
:align: center
:alt: Scan the barcode for a product on the reception picking page in the *Barcode* app.
Scan the lot number to process 1 of 50 apples. To avoid scanning 49 remaining barcodes, click
the :guilabel:`✏️ (pencil)` button next to the desired lot number.
.. image:: gs1_nomenclature/scan-apple-lot-number.png
:align: center
:alt: Scan lot number and click the pencil to edit quantities.
Doing so opens a mobile-friendly keypad page to specify received quantities. Use the keypad to
specify the :guilabel:`Units` for the lot number. When finished, click :guilabel:`Confirm`.
.. image:: gs1_nomenclature/edit-lot-quantities.png
:align: center
:alt: Change scanned quantities using pencil button.
Repeat this process to specify additional lot numbers and quantities in this receipt. Once the
:guilabel:`Units` are all accounted for, finish the reception by clicking the :guilabel:`Validate`
button.
Alternatively, scan the barcode containing the product, lot number, and quantity to complete the
receipt operation in fewer steps.
Product + non-unit quantity
---------------------------
To build a GS1 barcode that contains products measured in a non-unit quantity, like kilograms, for
example, the following barcode patterns are used:
+-------------+--------------------------+----------+--------------------+----------------------------+
| Name | Rule Name | A.I. | Barcode Pattern | Field in Odoo |
+=============+==========================+==========+====================+============================+
| Product | Global Trade Item Number | 01 | (01)(\\d{14}) | :guilabel:`Barcode` field |
| | (GTIN) | | | on product form |
+-------------+--------------------------+----------+--------------------+----------------------------+
| Quantity in | Variable count of items | 310[0-5] | (310[0-5])(\\d{6}) | :guilabel:`Units` field on |
| kilograms | | | | transfer form |
+-------------+--------------------------+----------+--------------------+----------------------------+
Scan barcode on receipt
~~~~~~~~~~~~~~~~~~~~~~~
To confirm that quantities are correctly interpreted in Odoo, place an order in the *Purchase* app
using the appropriate unit of measure (:guilabel:`UoM`) for the quantity of products to be
purchased.
a comprehensive list of all barcode patterns and rules to follow. Otherwise, refer to :ref:`this
GS1 usage doc <barcode/operations/gs1_usage>` for specific examples of combining |GTIN| to product
information and configuring the workflow.
.. seealso::
:ref:`Simplify vendor unit conversions with UoMs <inventory/management/uom-example>`
After the order is placed, navigate to the :menuselection:`Barcode` app to :ref:`receive the vendor
shipment <barcode/operations/scan-received-products>`.
.. example::
On the receipt in the *Barcode* app, receive an order for `52.1 kg` of peaches by scanning the
barcode. If `52.1 / 52.1` :guilabel:`kg` appears on the page, this means the reception was
processed without issue. Finally, press :guilabel:`Validate`.
Note: the :abbr:`A.I. (application identifier)` for kilograms, `310` + `1`, was used to represent
`52.1` kg as a barcode: `000521`. This is because the `1` represents how many digits from the
right to place the decimal point.
.. image:: gs1_nomenclature/scan-barcode-peaches.png
:align: center
:alt: Scan barcode screen for a reception operation in the Barcode app.
For additional verification purposes, the quantities of received products are also recorded on the
:guilabel:`Product Moves` report, accessible by navigating to :menuselection:`Inventory app -->
Reporting --> Product Moves`.
The items on the :guilabel:`Product Moves` report are grouped by product by default. To confirm the
received quantities, click on a product line to open its collapsible drop-down menu, which displays
a list of *stock move lines* for the product. The latest stock move matches the warehouse reception
reference number (e.g. `WH/IN/00013`) and quantity processed in the barcode scan, demonstrating that
the records processed in the *Barcode* app were properly stored in *Inventory*.
.. image:: gs1_nomenclature/stock-moves-peach.png
:align: center
:alt: Reception stock move record for 52.1 kg of peaches.
- :ref:`Lots workflow <barcode/operations/gs1-lots>`
- :ref:`Non-unit quantities workflow <barcode/operations/quantity-ex>`
.. _barcode/operations/create-new-rules:
Create rules
------------
If a supplier uses a GS1 barcode with a field not supported by Odoo's :ref:`default GS1 list
<barcode/operations/default-gs1-nomenclature-list>`, Odoo will fail to interpret the entire barcode.
To ensure the complete reading of the barcode, it is necessary to add the missing barcode to Odoo's
list.
GS1 rules are a specific format of information contained in the barcode, beginning with an |AI| and
containing a defined length of characters. Scanning GS1 barcodes from the :ref:`default GS1 list
<barcode/operations/default-gs1-nomenclature-list>` auto-fills corresponding data in the Odoo
database.
.. important::
While the new field will be read, the information won't link to an existing field in Odoo without
developer customizations. However, adding new rules is still useful to ensure the rest of the
fields in the barcode are interpreted correctly.
Adding GS1 barcode rules in Odoo ensures accurate interpretation of unique, non-standard GS1
formats.
Begin by turning on :ref:`developer mode <developer-mode>` and navigating to the :guilabel:`Barcode
Nomenclatures` list in :menuselection:`Inventory app --> Configuration --> Barcode Nomenclatures`.
Then, select the :guilabel:`Default GS1 Nomenclature` list item.
To do so, begin by turning on :ref:`developer mode <developer-mode>` and navigating to the
:guilabel:`Barcode Nomenclatures` list in :menuselection:`Inventory app --> Configuration -->
Barcode Nomenclatures`. Then, select the :guilabel:`Default GS1 Nomenclature` list item.
On the :guilabel:`Default GS1 Nomenclature` page, select :guilabel:`Add a line` at the bottom of the
table, which opens a window to create a new rule. The :guilabel:`Rule Name` field is used internally
@@ -289,6 +143,23 @@ not working as expected:
the barcode nomenclature for Odoo to read the barcode. :ref:`This section
<barcode/operations/create-new-rules>` details how to add new rules in the barcode nomenclature.
#. Test barcodes containing multiple encoded fields, piece by piece, to figure out which field is
causing the issue.
.. example::
When testing a barcode containing the |GTIN|, lot number, and quantity, start by scanning the
|GTIN| alone. Then, test the |GTIN| with the lot number, and finally, try scanning the whole
barcode.
#. After diagnosing the encoded field is unknown, :ref:`add new rules
<barcode/operations/create-new-rules>` to Odoo's default list to recognize GS1 barcodes with
unique specifications.
.. important::
While the new field will be read, the information won't link to an existing field in Odoo
without developer customizations. However, adding new rules is necessary to ensure the rest of
the fields in the barcode are interpreted correctly.
.. _barcode/operations/default-gs1-nomenclature-list:
GS1 nomenclature list
Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.7 KiB

@@ -0,0 +1,236 @@
=================
GS1 barcode usage
=================
.. _barcode/operations/gs1_usage:
.. |AI| replace:: :abbr:`A.I. (Application Identifier)`
.. |GTIN| replace:: :abbr:`GTIN (Global Trade Item Number)`
GS1 barcodes provide a standardized format that barcode scanners can interpret. They encode
information in a :ref:`specific structure recognized globally <barcode/operations/gs1>`, allowing
scanners to understand and process supply chain data consistently.
Odoo *Barcode* interprets and prints GS1 barcodes, automating product identification and tracking
in warehouse operations such as receiving, picking, and shipping.
The following sections contain examples of how Odoo uses GS1 barcodes provided by the business to
identify common warehouse items and automate certain warehouse workflows.
.. important::
Odoo **does not** create GS1 barcodes. Businesses must purchase a unique Global Trade Item Number
(GTIN) from GS1. Then, they can combine their existing GS1 barcodes with product and supply chain
information (also provided by GS1) to create barcodes in Odoo.
.. seealso::
- `Purchase GTINs <https://www.gs1.org/standards/get-barcodes>`_
- :ref:`GS1 nomenclature <barcode/operations/gs1>`
.. _barcode/operations/gs1-lots:
Configure barcodes for product, quantity, and lots
==================================================
To build a GS1 barcode that contains information about a product, its quantities, and the lot
number, the following barcode patterns and Application Identifiers (A.I.) are used:
+------------+--------------------------+------+----------------------------------+------------------------------------------+
| Name | Rule Name | A.I. | Barcode Pattern | Field in Odoo |
+============+==========================+======+==================================+==========================================+
| Product | Global Trade Item Number | 01 | (01)(\\d{14}) | :guilabel:`Barcode` field on product form|
| | (GTIN) | | | |
+------------+--------------------------+------+----------------------------------+------------------------------------------+
| Quantity | Variable count of items | 30 | (30)(\\d{0,8}) | :guilabel:`Units` field on transfer form |
+------------+--------------------------+------+----------------------------------+------------------------------------------+
| Lot Number | Batch or lot number | 10 | (10)([!"%-/0-9:-?A-Z_a-z]{0,20}) | :guilabel:`Lot` on Detailed Operations |
| | | | | pop-up |
+------------+--------------------------+------+----------------------------------+------------------------------------------+
.. _barcode/operations/lot-setup:
Configuration
-------------
First, :ref:`enable product tracking using lots <inventory/management/track_products_by_lots>` by
navigating to :menuselection:`Inventory app --> Configuration --> Settings`, and checking the box
for :guilabel:`Lots & Serial Numbers` under the :guilabel:`Traceability` heading.
Then, set up the product barcode by navigating to the intended product form in
:menuselection:`Inventory app --> Products --> Products` and selecting the product. On the product
form, click :guilabel:`Edit`. Then, in the :guilabel:`General Information` tab, fill in the
:guilabel:`Barcode` field with the unique 14-digit `Global Trade Item Number (GTIN)
<https://www.gs1.org/standards/get-barcodes>`_, which is a universally recognized identifying number
that is provided by GS1.
.. important::
On the product form, omit the |AI| `01` for |GTIN| product barcode pattern, as it is only used to
encode multiple barcodes into a single barcode that contains detailed information about the
package contents.
.. example::
To record the GS1 barcode for the product, `Fuji Apple`, enter the 14-digit |GTIN|
`20611628936004` in the :guilabel:`Barcode` field on the product form.
.. image:: gs1_usage/barcode-field.png
:align: center
:alt: Enter 14-digit GTIN into the Barcode field on product form.
.. tip::
To view a list of *all* products and their corresponding barcodes in the Odoo database, navigate
to :menuselection:`Inventory app --> Configuration --> Settings`. Under the :guilabel:`Barcode`
heading, click on the :guilabel:`Configure Product Barcodes` button under the :guilabel:`Barcode
Scanner` section. Enter the 14-digit |GTIN| into the :guilabel:`Barcode` column, then click
:guilabel:`Save`.
.. image:: gs1_usage/product-barcodes-page.png
:align: center
:alt: View the Product Barcodes page from inventory settings.
.. _barcode/operations/lot-setup-on-product:
After activating tracking by lots and serial numbers from the settings page, specify that this
feature is to be applied on each product by navigating to the :guilabel:`Inventory` tab on the
product form. Under :guilabel:`Tracking`, choose the :guilabel:`By Lots` radio button.
.. image:: gs1_usage/track-by-lots.png
:align: center
:alt: Enable product tracking by lots in the "Inventory" tab of the product form.
Scan barcode on receipt
-----------------------
To ensure accurate lot interpretation in Odoo on product barcodes scanned during a receipt
operation, navigate to the :menuselection:`Barcode` app to manage the :ref:`receipt picking process
<barcode/operations/scan-received-products>`.
From the :guilabel:`Barcode Scanning` dashboard, click the :guilabel:`Operations` button, then the
:guilabel:`Receipts` button to view the list of vendor receipts to process. Receipts generated from
:abbr:`POs (Purchase Orders)` are listed, but new receipt operations can also be created directly
through the :menuselection:`Barcode` app using the :guilabel:`Create` button.
On the list of receipts, click on the warehouse operation (`WH/IN`) and scan product barcodes and
lot numbers with a barcode scanner. The scanned product then appears on the list. Use the
:guilabel:`✏️ (pencil)` button to open a window and manually enter quantities for specific lot
numbers.
.. example::
After placing a :abbr:`PO (Purchase Order)` for fifty apples, navigate to the associated receipt
in the *Barcode* app.
Scan the barcode containing the |GTIN|, quantity, and lot number. For testing with a barcode
scanner, below is an example barcode for the fifty Fuji apples in Lot 2.
.. list-table::
:widths: 50 50
:header-rows: 1
:stub-columns: 1
* - 50 Fuji apples in Lot0002
-
* - 2D Matrix
- .. image:: gs1_usage/fuji-apples-barcode.png
:alt: 2D matrix of GS1 barcode of 50 fuji apples with an assigned lot number.
* - |AI| (product)
- 01
* - GS1 Barcode (product)
- 20611628936004
* - |AI| (quantity)
- 30
* - GS1 Barcode (quantity)
- 00000050
* - |AI| (lot)
- 10
* - GS1 Barcode (lot #)
- LOT0002
* - Full GS1 barcode
- 01206116289360043 000000050 10LOT0002
:ref:`If the configuration is correct <barcode/operations/troubleshooting>`, `50/50`
:guilabel:`Units` processed will be displayed and the :guilabel:`Validate` button turns green.
Click the :guilabel:`Validate` button to complete the reception.
.. image:: gs1_usage/receive-50-apples.png
:align: center
:alt: Scan the barcode for a product on the reception picking page in the *Barcode* app.
.. _barcode/operations/quantity-ex:
Configure barcode for product and non-unit quantity
===================================================
To build a GS1 barcode that contains products measured in a non-unit quantity, like kilograms, for
example, the following barcode patterns are used:
+-------------+--------------------------+----------+--------------------+----------------------------+
| Name | Rule Name | A.I. | Barcode Pattern | Field in Odoo |
+=============+==========================+==========+====================+============================+
| Product | Global Trade Item Number | 01 | (01)(\\d{14}) | :guilabel:`Barcode` field |
| | (GTIN) | | | on product form |
+-------------+--------------------------+----------+--------------------+----------------------------+
| Quantity in | Variable count of items | 310[0-5] | (310[0-5])(\\d{6}) | :guilabel:`Units` field on |
| kilograms | | | | transfer form |
+-------------+--------------------------+----------+--------------------+----------------------------+
Scan barcode on receipt
-----------------------
To confirm that quantities are correctly interpreted in Odoo, place an order in the *Purchase* app
using the appropriate unit of measure (:guilabel:`UoM`) for the quantity of products to be
purchased.
.. seealso::
:ref:`Simplify vendor unit conversions with UoMs <inventory/management/uom-example>`
After the order is placed, navigate to the :menuselection:`Barcode` app to :ref:`receive the vendor
shipment <barcode/operations/scan-received-products>`.
.. example::
On the receipt in the *Barcode* app, receive an order for `52.1 kg` of peaches by scanning the
barcode containing the |GTIN| and quantity of peaches in kilograms.
.. list-table::
:widths: 50 50
:header-rows: 1
:stub-columns: 1
* - 52.1 kg of Peaches
-
* - 2D Matrix
- .. image:: gs1_usage/peaches-barcode.png
:alt: 2D matrix of GS1 barcode of 52.1 kg of peaches.
* - |AI| (product)
- 01
* - GS1 Barcode (product)
- 00614141000012
* - |AI| (kg, 1 decimal point)
- 3101
* - GS1 Barcode (quantity)
- 000521
* - Full GS1 barcode
- 0100614141000012 3101000521
:ref:`If the configuration is correct <barcode/operations/troubleshooting>`, `52.1 / 52.1`
:guilabel:`kg` will be displayed and the :guilabel:`Validate` button turns green. Finally, press
:guilabel:`Validate` to complete the validation.
.. image:: gs1_usage/scan-barcode-peaches.png
:align: center
:alt: Scan barcode screen for a reception operation in the Barcode app.
Verify product moves
====================
For additional verification, the quantities of received products are also recorded on the
:guilabel:`Product Moves` report, accessible by navigating to :menuselection:`Inventory app -->
Reporting --> Product Moves`.
The items on the :guilabel:`Product Moves` report are grouped by product by default. To confirm the
received quantities, click on a product line to open its collapsible drop-down menu, which displays
a list of *stock move lines* for the product. The latest stock move matches the warehouse reception
reference number (e.g. `WH/IN/00013`) and quantity processed in the barcode scan, demonstrating that
the records processed in the *Barcode* app were properly stored in *Inventory*.
.. image:: gs1_usage/stock-moves-peach.png
:align: center
:alt: Reception stock move record for 52.1 kg of peaches.
Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

@@ -4,64 +4,84 @@ Set up your barcode scanner
.. _barcode/setup/hardware:
Getting started with barcode scanning in Odoo is fairly easy. Yet, a
good user experience relies on an appropriate hardware setup. This guide
will help you through the task of choosing and configuring the barcode
scanner.
Follow this guide to choose and set up a barcode scanner compatible with Odoo's *Inventory* and
*Barcode* apps.
Find the barcode scanner that suits your needs
==============================================
.. figure:: hardware/barcode-scanner.png
:align: center
:alt: An image of an example barcode scanner.
The 3 recommended type of barcode scanners to work with the Odoo
**Inventory** and **Barcode Scanning** apps are the **USB scanner**, **the bluetooth
scanner** and the **mobile computer scanner**.
An image of an example barcode scanner.
.. image:: hardware/hardware02.png
:align: center
Scanner types
=============
- If you scan products at a computer location, the **USB scanner** is the
way to go. Simply plug it in the computer to start scanning. Just
make sure when you buy it that the scanner is compatible with
your keyboard layout or can be configured to be so.
Before setting up a barcode scanner, it is important to determine which scanner type best meets the
needs of the business. There are three main types, each with their own benefits and use cases:
- The **bluetooth scanner** can be paired with a smartphone or a tablet and
is a good choice if you want to be mobile but don't need a big
investment. An approach is to log in Odoo on you smartphone, pair
the bluetooth scanner with the smartphone and work in the
warehouse with the possibility to check your smartphone
from time to time and use the software 'manually'.
- **USB scanners** are connected to a computer, and are suitable for businesses that scan products
at a fixed location, like at the checkout in a grocery store. Ensure the chosen USB scanner is
compatible with the keyboard layout of the computer.
- For heavy use, the **mobile computer scanner** is the handiest solution.
It consists of a small computer with a built-in barcode scanner.
This one can turn out to be a very productive solution, however
you need to make sure that is is capable of running Odoo smoothly.
The most recent models using Android + Google Chrome or Windows +
Internet Explorer Mobile should do the job. However, due to the
variety of models and configurations on the market, it is
essential to test it first.
- **Bluetooth scanners** pair with a smartphone or tablet, making them an ideal cost-effective and
portable barcode scanner option. In this scenario, Odoo is installed on the smartphone, allowing
warehouse operators to handle operations, and check stock directly through their mobile devices.
Configure your barcode scanner
==============================
- **Mobile computer scanners** are mobile devices with a built-in barcode scanner. First, ensure the
device can run the Odoo mobile app properly. Recent models that use Android OS with the Google
Chrome browser, or Windows OS with Microsoft Edge, should work. However, testing is crucial due to
the variety of available models and configurations.
.. seealso::
`Compatible hardware with Odoo Inventory <https://www.odoo.com/app/inventory-hardware>`_
Configuration
=============
When setting up the barcode scanner, make sure the following configurations are correct so the
scanner can properly interpret barcodes with Odoo.
Keyboard layout
---------------
.. image:: hardware/hardware01.png
:align: center
When using a USB barcode scanner, match its keyboard layout with the operating system's layout for
proper interpretation of characters. Generally, the scanning mode should be set to accept a USB
keyboard (HID), with the language set based on the keyboard that is in use.
An USB barcode scanner needs to be configured to use the same keyboard
layout as your operating system. Otherwise, your scanner won't translate
characters correctly (replacing a 'A' with a 'Q' for example). Most
scanners are configured by scanning the appropriate barcode in the user
manual.
To configure the keyboard layout for a **Zebra** scanner, scan the keyboard wedge barcode for the
desired language in the scanner's user manual.
.. figure:: hardware/keyboard-barcode.png
:alt: Example of a user manual for keyboard layout.
Examples of keyboard language settings in the Zebra scanner user manual.
Automatic carriage return
-------------------------
By default, Odoo has a 50 milliseconds delay between each successive
scan (it helps avoid accidental double scanning). If you want to
suppress this delay, you can configure your scanner to insert a carriage
return at the end of each barcode. This is usually the default
configuration and can be explicitly configured by scanning a specific
barcode in the user manual ('CR suffix ON', 'Apply Enter for suffix',
etc.).
Odoo has a default 50-millisecond delay between scans to prevent accidental double scanning. To
synchronize with the barcode scanner, set it to include a *carriage return* (:dfn:`character like
the "Enter" key on a keyboard`) after each scan. Odoo interprets the carriage return as the end of
the barcode input; so Odoo accepts the scan, and waits for the next one.
Typically, on the scanner, a carriage return is included by default. Ensure it is set by scanning a
specific barcode in the user manual, like `CR suffix ON` or `Apply Enter for suffix`.
Zebra scanner
-------------
When using Zebra scanners, ensure the following keystroke configurations are set to prevent errors.
Begin on the Zebra scanner's home screen, and select the :guilabel:`DataWedge` app (the icon for the
app is a light blue barcode). On the :guilabel:`DataWedge Profiles` page, select the profile option
to access the Zebra scanner's settings.
Scroll down to the :guilabel:`Keyboard Output` option, and ensure the :guilabel:`Enable/disable
keystroke output` option is :guilabel:`Enabled`.
.. image:: hardware/enable-keystroke.png
:align: center
:alt: Show keystroke option in the Zebra scanner's DataWedge app.
Now, go back to the :guilabel:`Profile` options page, and select :guilabel:`Key event options`.
Here, ensure the :guilabel:`Send Characters as Events` option is checked.
Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 492 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 43 KiB

@@ -43,6 +43,8 @@ directly at creation on the product form.
the template product. Otherwise, you wont be able to differentiate
them.
.. _barcode/setup/location:
Set Locations Barcodes
======================
@@ -11,3 +11,4 @@ Miscellaneous Operations
misc/owned_stock
misc/batch_transfers
misc/wave_transfers
misc/cluster_picking
@@ -2,6 +2,8 @@
Batch picking
=============
.. _inventory/misc/batch_picking:
*Batch picking* enables a single picker to handle multiple orders at once, reducing the time needed
to navigate to the same location in a warehouse.
@@ -0,0 +1,243 @@
===============
Cluster picking
===============
.. _inventory/misc/cluster_picking:
.. |SO| replace:: :abbr:`SO (Sales Order)`
.. |SOS| replace:: :abbr:`SOs (Sales Orders)`
Cluster picking is an advanced order fulfillment approach derived from :ref:`batch picking
<inventory/misc/batch_picking>`.
In this strategy, pickers load a cart with multiple packages, each designated for a specific *sales
order* (SO). Then, the picker travels to each storage location, and places the products directly in
the package of the associated order.
This method is most efficient for medium-sized companies, with high order volumes, and relatively
few unique products, since the method eliminates the need for sorting products into packages for
customers after picking.
However, cluster picking does have some disadvantages. For instance, urgent orders cannot be
prioritized, and optimized batches must be manually created beforehand. As a result, the picking
process can lead to bottlenecks.
.. _inventory/misc/cluster_picking/example:
.. example::
#. |SO| 1 calls for one apple and orange
#. |SO| 2 calls for one apple and banana
#. |SO| 3 calls for one apple, orange, and banana
Apples are stored in Shelf A, oranges in Shelf B, and bananas in Shelf C.
To pick products for three orders at once, the cart is loaded with three empty packages.
Starting at Shelf A, the picker places apples into each package. Next, the picker navigates to
Shelf B, and places oranges in the packages designated for |SO| 1 and |SO| 3. Finally, the picker
pushes the cart to Shelf C, and loads packages for |SO| 2 and |SO| 3 with a banana, each.
With the packages for all three |SOS| packed, the picker pushes the cart to the output location,
where the packages are sealed and prepared for shipment.
.. image:: cluster_picking/cluster-example.png
:align: center
:alt: Show example of fulfilling sales orders 2 and 3 at once.
Configuration
=============
To enable cluster picking, begin by navigating to :menuselection:`Inventory app --> Configuration
--> Settings`. Under the :guilabel:`Operations` heading, activate the :guilabel:`Packages` and
:guilabel:`Batch Transfers` options.
.. image:: cluster_picking/configs.png
:align: center
:alt: Activate *Packages* and *Batch Transfers* features in the settings.
Since batch picking is used to optimize the *pick* operation in Odoo, the :guilabel:`Storage
Locations` and :guilabel:`Multi-Step Routes` options, under the :guilabel:`Warehouse` heading, must
also be checked on this settings page.
*Storage locations* allow products to be stored in specific locations they can be picked from, while
*multi-step routes* enable the picking operation itself.
When finished, click :guilabel:`Save`.
.. image:: cluster_picking/locations-routes-checkbox.png
:align: center
:alt: Enable *Storage Locations* and *Multi-Step Routes* Inventory > Configuration > Settings.
.. _inventory/misc/create-package:
Packages setup
--------------
After the :guilabel:`Packages` feature is enabled, navigate to :menuselection:`Inventory app -->
Products --> Packages`, and click the :guilabel:`New` button to create a new package.
On the new package form, the :guilabel:`Package Reference` is pre-filled with the next available
`PACK` number in the system. :guilabel:`Pack Date` is automatically set to the creation date of the
form.
For the :guilabel:`Package Use` field, the :guilabel:`Disposable Box` option should be selected if
the package is used for a shipping. Alternatively, the :guilabel:`Reusable Box` option should be
selected if the package is simply used as a method of grouping products from the same |SO| together
before they are moved to the intended shipping box at the output location.
.. seealso::
:ref:`Packages <inventory/management/packages>`
.. example::
A package intended for cluster picking is named `CLUSTER-PACK-3` for easy identification. For
this workflow, the products are directly packed using their intended shipping boxes, so
:guilabel:`Package Use` is set to :guilabel:`Disposable Box`.
.. image:: cluster_picking/cluster-package.png
:align: center
:alt: Create new package form.
Create cluster batch
====================
To see how cluster picking works in Odoo, navigate to the :menuselection:`Sales` app, and create
|SOS| that will be fulfilled together in the same batch. After confirming an |SO|, the
:guilabel:`Delivery` smart button becomes visible. Displayed inside the icon is a number
representing the amount of steps in the outgoing shipment process.
.. example::
Begin by creating three |SOS| for the apples, oranges, and bananas, as shown in the :ref:`example
above <inventory/misc/cluster_picking/example>`.
After confirming the |SO|, the :guilabel:`Delivery` smart button displays the number `2`,
indicating there are two operations to complete: `Pick` and `Delivery`.
.. image:: cluster_picking/create-sales-order.png
:align: center
:alt: Example sales order for an apple, orange, and banana.
With the |SOS| created, orders now must be grouped into batches. To do so, navigate to the
*Inventory* dashboard and select the operation type card, :guilabel:`Delivery Orders` or
:guilabel:`Pick` (whichever is the first operation in the delivery flow).
Doing so displays a filtered list of outgoing operations with the :guilabel:`Ready` status,
indicating that all the products in the |SO| are in stock.
.. note::
Cluster pick batches can be created for outgoing shipments in one, two, or three steps.
.. seealso::
- :ref:`Delivery in one step <inventory/receipts_delivery_one_step>`
- :ref:`Delivery in two steps <inventory/receipts_delivery_two_steps>`
- :ref:`Delivery in three steps <inventory/delivery_three_steps>`
Click the checkbox to the left of the corresponding outgoing operation to add them to the batch.
With the desired pickings selected, click the :guilabel:`⚙️ Actions (gear)` button, and select the
:guilabel:`Add to batch` option from the resulting drop-down menu.
.. example::
To create a cluster batch, as shown in the :ref:`example above
<inventory/misc/cluster_picking/example>`, in a warehouse configured with two-step outgoing
shipments, the following pick operations are selected:
- `WH/PICK/00007`: linked to |SO| 88 for one apple and orange.
- `WH/PICK/00008`: linked to |SO| 89 for one apple and banana.
- `WH/PICK/00009`: linked to |SO| 90 for one apple, orange, and banana.
.. image:: cluster_picking/select-picks.png
:align: center
:alt: Use *Add to batch* button, from the *Action* button's list.
Doing so opens an :guilabel:`Add to batch` pop-up window, wherein the employee
:guilabel:`Responsible` for the picking can be assigned.
Choose from the two options in the :guilabel:`Add to` field to either: add to :guilabel:`an existing
batch transfer`, or create :guilabel:`a new batch transfer`.
To create draft batch pickings to be confirmed at a later date, select the :guilabel:`Draft`
checkbox.
Conclude the process by clicking :guilabel:`Confirm`.
.. image:: cluster_picking/add-to-batch-window.png
:align: center
:alt: Show *Add to batch* window to create a batch transfer.
Process batches
===============
To process batches, navigate to :menuselection:`Inventory app --> Operations --> Batch Transfers`.
Click on a batch to select it.
In the :guilabel:`Detailed Operations` tab, products that are to be picked are grouped by location.
Under the :guilabel:`Source Package` or :guilabel:`Destination Package` field, enter the package
used for the picking.
.. note::
Use the :guilabel:`Source Package` field when the picking package is configured as *reusable* on
the :ref:`package form <inventory/misc/create-package>`. This means the products are temporarily
placed in a container during picking, before getting transferred to their final shipping box.
Alternatively, use the :guilabel:`Destination Package` field when the product is directly placed
in its *disposable* shipping box during picking.
.. example::
Process the cluster batch for the three orders of apples, oranges, and bananas :ref:`example
<inventory/misc/cluster_picking/example>` by assigning each picking to a dedicated package.
At the storage location for apples, `WH/Stock/Shelf A`, assign the apples in all three pickings
to one of the three disposable packages, `CLUSTER-PACK-1`, `CLUSTER-PACK-2`, or `CLUSTER-PACK-3`.
Record this in Odoo using the :guilabel:`Destination Package` field in the :guilabel:`Detailed
Operations` tab.
.. image:: cluster_picking/cluster-batch-example.png
:align: center
:alt: Example of processing cluster pickings in *Inventory*.
In Barcode
----------
To process cluster pickings directly from the *Barcode* app, select the :guilabel:`Batch Transfers`
button from the *Barcode* dashboard. Then, select the desired batch.
On the batch transfer screen, the products in the picking are grouped by location, and each line is
color-coded to associate products in the same picking together.
Then, follow the prompt to :guilabel:`Scan the source location` barcode for the storage location of
the first product. Then, scan the barcode for the product and package to process the transfer.
Repeat this for all products, and click the :guilabel:`Validate` button.
.. note::
To find the package barcode, navigate to :menuselection:`Inventory app --> Products -->
Packages`, select the desired package, click the :guilabel:`⚙️ (gear)` icon at the top of the
package form, and select the :guilabel:`Print` option.
Next, select one of the three print options to generate the package barcode from the
:guilabel:`Package Reference` field.
.. image:: cluster_picking/find-package-barcode.png
:align: center
:alt: Display where the package barcode can be generated.
.. example::
Begin processing the cluster picking by going to the first storage location, `Shelf A`, and
scanning the :ref:`location barcode <barcode/setup/location>`. Doing so highlights all the
pickings that need products from this particular location.
Scan the barcode for the apple, which highlights the picking (labeled in red) for the product
`Apple`, for the picking, `WH/PICK/00007`.
Then, scan the `CLUSTER-PACK-1` package barcode, and place the product in the designated package.
.. image:: cluster_picking/batch-barcode.png
:align: center
:alt: Example of cluster batch from the *Barcode* app.
.. tip::
After creating a batch transfer and assigning a package to a picking, Odoo suggests the specified
package by displaying the name *in italics* under the product name, ensuring pickers place
products into the correct boxes.
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.8 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

@@ -60,6 +60,8 @@ the :guilabel:`Unit of Measure`. Then, when the product is received by clicking
.. seealso::
:ref:`Use Different Units of Measure <inventory/management/products/units_of_measure>`
.. _inventory/management/packages:
Packages
========
@@ -2,6 +2,8 @@
How to invoice the shipping cost to the customer?
=================================================
.. _inventory/shipping/invoice:
Overview
========
@@ -1,100 +1,213 @@
===============================
How to setup a delivery method?
===============================
================
Delivery methods
================
Overview
========
When activated in Odoo, the *Delivery Methods* setting adds the option of calculating the cost of
shipping on sales orders and e-commerce shopping carts.
Odoo can handle various delivery methods, but it is not activated by
default. Delivery methods can be used for your sale orders, your
deliveries but also on your e-commerce.
When integrated with a :ref:`third-party carrier <inventory/shipping/third_party>`, shipping prices
are calculated based on the carrier's pricing and packaging information.
Delivery methods allow you to manage the transport company, the price
and the destination. You can even integrate Odoo with external shippers
to compute the real price and the packagings.
.. seealso::
- :ref:`Third-party shipping carrier setup <inventory/shipping/third_party>`
- `Odoo Tutorials: Delivery Prices
<https://www.odoo.com/slides/slide/delivery-prices-613?fullscreen=1>`_
Configuration
=============
Install the inventory module
----------------------------
To calculate shipping on sales orders and e-commerce, the *Delivery Costs* module must be installed.
To do so, navigate to the :menuselection:`Apps` application from the main Odoo dashboard.
Delivery methods are handled by the **Delivery costs** module. Go to
**Apps** and search for the module. You should remove the **Apps** filter in
order to see it :
Then, remove the :guilabel:`Apps` filter, and type in `Delivery Costs` in the :guilabel:`Search...`
bar. After finding the :guilabel:`Delivery Costs` module, click :guilabel:`Activate` to install it.
.. image:: delivery_method/setup05.png
.. image:: delivery_method/install-module.png
:align: center
:alt: Install the *Delivery Costs* module.
Add shipping method
===================
To configure delivery methods, go to :menuselection:`Inventory app --> Configuration --> Shipping
Methods`.
.. note::
If you want to integrate delivery methods in your e-commerce,
you'll have to install the **eCommerce Delivery** module.
If the :guilabel:`Shipping Methods` option is not available from the :guilabel:`Configuration`
drop-down menu, verify whether the feature is enabled by following these steps:
Configure the delivery method
-----------------------------
#. Go to :menuselection:`Inventory app --> Configuration --> Settings`.
#. Scroll to the :guilabel:`Shipping` section and enable the :guilabel:`Delivery Methods` feature
by checking the corresponding checkbox.
To configure your delivery methods, go to the **Inventory** module,
click on :menuselection:`Configuration --> Delivery Methods`.
.. image:: delivery_method/enable-delivery.png
:align: center
:alt: Enable the *Delivery Methods* feature by checking the box in Configuration > Settings.
First set a name and a transporter company.
On the :guilabel:`Shipping Methods` page, add a method by clicking :guilabel:`New`. Doing so opens
a form to provide details about the shipping provider, including:
.. image:: delivery_method/setup03.png
:align: center
- :guilabel:`Shipping Method` (*Required field*): the name of the delivery method (e.g. `flat-rate
shipping`, `same day delivery`, etc.).
- :guilabel:`Provider` (*Required field*): choose the delivery service, like Fedex, if using a
:ref:`third-party carrier <inventory/shipping/third_party>`. Ensure the integration with the
shipping carrier is properly installed and select the provider from the drop-down menu.
Then you'll have to set the pricing. It can be fixed or based on rules.
For more details on configuring custom shipping methods, such as :ref:`fixed price
<inventory/shipping/fixed>`, :ref:`based on rules <inventory/shipping/rules>`, or :ref:`pickup in
store <inventory/shipping/pickup>` options, refer to their respective sections below.
- :guilabel:`Website`: configure shipping methods for an e-commerce page. Select the applicable
website from the drop-down menu, or leave it blank to apply the method to all web pages.
- :guilabel:`Company`: if the shipping method should apply to a specific company, select it from the
drop-down menu. Leave the field blank to apply the method to all companies.
- :guilabel:`Delivery Product` (*Required field*): the product listed on the :ref:`sales order line
<inventory/shipping/sales-order>` as the delivery charge.
- :guilabel:`Free if order amount is above`: checking this box enables free shipping if the customer
spends above the specified amount.
- If the price is fixed, tick **Fixed price**. You'll just have to define
the price. If you want the delivery to be free above a certain
amount, tick the option **Free if Order total is more
than** and set a price.
For examples on how to configure specific shipping methods, refer to the sections below.
.. image:: delivery_method/setup06.png
:align: center
.. _inventory/shipping/fixed:
- If the price varies according to rules, tick **Based on Rules**. Click
on **add an item to a pricing rule**. Choose a condition based on
either the weight, the volume, the price or the quantity.
Fixed price
-----------
.. image:: delivery_method/setup04.png
:align: center
To configure a shipping price that is the same for all orders, go to :menuselection:`Inventory app
--> Configuration --> Shipping Methods`. Then, click :guilabel:`New`, and on the shipping method
form, set the :guilabel:`Provider` to the :guilabel:`Fixed Price` option. Selecting this option
makes the :guilabel:`Fixed Price` field become available, which is where the fixed rate shipping
amount is defined.
Finally you can limit the delivery method to a few destinations. The
limit can be applied to some countries, states or even zip codes. This
feature limits the list of countries on your e-commerce.
To enable free shipping if the amount of the order exceeds a specified amount, check the box
:guilabel:`Free if order amount is above` and fill in the amount.
.. image:: delivery_method/setup02.png
:align: center
.. example::
To set up `$20` flat-rate shipping that becomes free if the customer spends over `$100`, fill in
the following fields:
.. note::
You can integrate Odoo with external shippers in order to compute the
real price and packagings, and handle the printing the shipping labels.
See :doc:`third_party_shipper`
- :guilabel:`Shipping Method`: `Flat-rate shipping`
- :guilabel:`Provider`: :guilabel:`Fixed Price`
- :guilabel:`Fixed Price`: `$20.00`
- :guilabel:`Free if order amount is above`: `$100.00`
- :guilabel:`Delivery Product`: `[SHIP] Flat`
Delivery process
================
.. image:: delivery_method/new-shipping-method.png
:align: center
:alt: Example of filling out a shipping method.
Sale order
----------
.. _inventory/shipping/rules:
.. image:: delivery_method/setup07.png
:align: center
Based on rules
--------------
You can now choose the **Delivery Method** on your sale order. If you want
to invoice the price of the delivery charge on the sale order, click on
**Set price**, it will add a line with the name of the delivery method as
a product.
To calculate the price of shipping based on pricing rules, set the :guilabel:`Provider` field to the
:guilabel:`Based on Rules` option. Optionally, adjust :guilabel:`Margin on Rate` and
:guilabel:`Additional margin` to include additional shipping costs.
Delivery
--------
Create pricing rules
~~~~~~~~~~~~~~~~~~~~
You can add or change the delivery method on the delivery itself.
Navigate to the :guilabel:`Pricing` tab and click :guilabel:`Add a line`. Doing so opens the
:guilabel:`Create Pricing Rules` window, where the :guilabel:`Condition` related to the product
weight, volume, price, or quantity is compared to a defined amount to calculate the
:guilabel:`Delivery Cost`.
.. image:: delivery_method/setup01.png
:align: center
Once finished, click either :guilabel:`Save & New` to add another rule, or :guilabel:`Save & Close`.
On the delivery, check the **Carrier Information**. The carrier is the
chosen delivery method.
.. example::
To charge customers $20 in shipping for orders with five or fewer products, set the
:guilabel:`Condition` to `Quantity <= 5.00`, and the :guilabel:`Delivery Cost` to `$20`.
.. image:: delivery_method/pricing-rule.png
:align: center
:alt: Display window to add a pricing rule. Set a condition and delivery cost.
To restrict shipping to specific destinations on the eCommerce website, in the shipping method form,
navigate to the :guilabel:`Destination Availability` tab and define the :guilabel:`Countries`,
:guilabel:`States`, and :guilabel:`Zip Prefixes`. Leave these fields empty if all locations apply.
Calculate delivery cost
~~~~~~~~~~~~~~~~~~~~~~~
Shipping cost is the :guilabel:`Delivery cost` specified in the rule that satisfies the
:guilabel:`Condition`, plus any extra charges from the :guilabel:`Margin on rate` and
:guilabel:`Additional margin`.
.. math::
Total = Rule's~Delivery~Cost + (Margin~on~rate \times Rule's~Delivery~Cost) + Additional~margin
.. example::
With the two following rules set up:
#. If the order contains five or fewer products, shipping is $20
#. If the order contains more than five products, shipping is $50.
:guilabel:`Margin on Rate` is `10%` and :guilabel:`Additional margin` is `$9.00`.
.. image:: delivery_method/delivery-cost-example.png
:align: center
:alt: Show example of "Based on rules" shipping method with margins configured.
When the first rule is applied, the delivery cost is $31 (20 + (0.1 * 20) + 9). When the second
rule is applied, the delivery cost is $64 (50 + (0.1 * 50) + 9).
.. _inventory/shipping/pickup:
Pickup in store
---------------
To configure in-store pickup, select :guilabel:`Pickup in store` in the :guilabel:`Provider` field
and specify the pickup location in :guilabel:`Warehouse`.
To invoice the customer for the shipping cost to the pickup location, choose the :guilabel:`Get Rate
and Create Shipment` option in the :guilabel:`Integration Level` field. Then, pick either the
:guilabel:`Estimated cost` or :guilabel:`Real cost` radio options in the :guilabel:`Invoicing
Policy` field to decide whether the added shipping charge on the sales order is the precise cost
from the shipping carrier.
.. seealso::
* :doc:`third_party_shipper`
* :doc:`../operation/invoicing`
:ref:`Invoice cost of shipping <inventory/shipping/invoice>`
.. _inventory/shipping/sales-order:
Add shipping
============
Shipping methods can be added to sales orders in the form of delivery products, which appear as
individual line items. First, navigate to the desired sales order by going to :menuselection:`Sales
app --> Orders --> Orders`.
On the sales order, click the :guilabel:`Add shipping` button, which opens the :guilabel:`Add a
shipping method` pop-up window. Then, choose a :guilabel:`Shipping Method` from the list.
The :guilabel:`Total Order Weight` is pre-filled based on product weights (that are defined in the
:guilabel:`Inventory` tab for each product form). Edit the field to specify the exact weight, and
then click :guilabel:`Add` to add the shipping method.
.. note::
The amount defined in :guilabel:`Total Order Weight` overwrites the total product weights defined
on the product form.
The shipping cost is added to the *sales order line* as the :guilabel:`Delivery Product` detailed on
the shipping method form.
.. example::
`Furniture Delivery`, a delivery product with a fixed rate of `$200`, is added to sales order
`S00088`.
.. image:: delivery_method/delivery-product.png
:align: center
:alt: Show delivery order on the sales order line.
Delivery order
--------------
The shipping method added to the sales order is linked to the shipping carrier details on the
delivery order. To add or change the delivery method on the delivery itself, go to the
:guilabel:`Additional Info` tab and modify the :guilabel:`Carrier` field.
.. image:: delivery_method/delivery-order.png
:align: center
:alt: Shipping carrier information on the delivery form.
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

@@ -2,6 +2,8 @@
How to integrate a third party shipper?
=======================================
.. _inventory/shipping/third_party:
Overview
========
@@ -2,13 +2,15 @@
Add new equipment
=================
In Odoo, **equipment** refers to any item that is used in everyday operations, including the
.. _maintenance/equipment_management/add_new_equipment:
In Odoo, *equipment* refers to any item that is used in everyday operations, including the
manufacturing of products. This can mean a piece of machinery on a production line, a tool that is
used in different locations, or a computer in an office space. Equipment registered in Odoo can be
owned by the company that uses the Odoo database, or by a third party, such as a vendor in the case
of equipment rentals.
Using Odoo **Maintenance**, it is possible to track individual pieces of equipment, along with
Using Odoo *Maintenance*, it is possible to track individual pieces of equipment, along with
information about their maintenance requirements. To add a new piece of equipment, navigate to the
:guilabel:`Maintenance` module, select :menuselection:`Equipments --> Machines & Tools --> Create`,
and configure the equipment as follows:
@@ -22,3 +22,4 @@ Manufacturing workflows
management/work_order_dependencies
management/two_step_manufacturing
management/one_step_manufacturing
management/three_step_manufacturing
@@ -0,0 +1,150 @@
========================
Three-step manufacturing
========================
.. _manufacturing/management/two_step_manufacturing:
.. |BOM| replace:: :abbr:`BoM (Bill of Materials)`
.. |MO| replace:: :abbr:`MO (Manufacturing Order)`
Odoo *Manufacturing* allows users to manufacture products using one, two, or three steps. When using
three-step manufacturing, Odoo creates a pick components transfer, a manufacturing order (MO), and a
store finished products transfer, and updates inventory counts based on the number of components
removed, and finished products created.
.. tip::
The number of steps used in manufacturing is set at the warehouse level, allowing for each
warehouse to use a different number of steps. To change the number of steps used for a specific
warehouse, begin by navigating to :menuselection:`Inventory --> Configuration --> Warehouses`,
and then select a warehouse from the :guilabel:`Warehouses` screen.
On the :guilabel:`Warehouse Configuration` tab, find the :guilabel:`Manufacture` radio input
field, and select one of the three options: :guilabel:`Manufacture (1 step)`, :guilabel:`Pick
components and then manufacture (2 steps)`, or :guilabel:`Pick components, manufacture and then
store products (3 steps)`.
.. image:: three_step_manufacturing/manufacturing-type.png
:align: center
:alt: The Manufacture radio input field on a warehouse configuration page.
.. important::
Products must be properly configured before they can be manufactured in Odoo. For details on how
to do so, see the documentation on how to :ref:`configure a product for manufacturing
<manufacturing/management/configure-manufacturing-product>`.
Create manufacturing order
==========================
To manufacture a product in Odoo *Manufacturing*, begin by navigating to
:menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, and then click
:guilabel:`New` to create a new |MO|.
On the new |MO|, select the product to be produced from the :guilabel:`Product` drop-down menu. The
:guilabel:`Bill of Material` field auto-populates with the associated Bill of Materials (BoM).
If a product has more than one |BOM| configured for it, the specific |BOM| can be selected in the
:guilabel:`Bill of Material` field, and the :guilabel:`Product` field auto-populates with the
associated product.
After a |BOM| has been selected, the :guilabel:`Components` and :guilabel:`Work Orders` tabs
auto-populate with the components and operations specified on the |BOM|. If additional components or
operations are required for the |MO| being configured, add them to the :guilabel:`Components` and
:guilabel:`Work Orders` tabs by clicking :guilabel:`Add a line`.
Finally, click :guilabel:`Confirm` to confirm the |MO|.
Process pick components transfer
================================
After confirming a three-step |MO|, a :guilabel:`Transfers` smart button appears at the top of the
page. Click it to be taken to the :guilabel:`Transfers` page for the |MO|. The page lists two
transfers: *WH/PC/XXXXX* (the pick components transfer), and *WH/SFP/XXXXX* (the store finished
products transfer).
Select :guilabel:`WH/PC/XXXXX` to open the pick components transfer for the |MO|. This transfer is
used to track the movement of components from the locations where they are stored to the location
where they are used to manufacture the product.
After transferring the components out of their storage location, click :guilabel:`Validate` at the
top of the transfer, followed by :guilabel:`Apply` on the :guilabel:`Immediate Transfer?` pop-up
window that appears. Doing so marks the transfer as :guilabel:`Done`, and updates inventory counts
to reflect the quantity of components transferred.
Finally, return to the |MO| by clicking the :guilabel:`WH/MO/XXXXX` breadcrumb at the top of the
page.
.. image:: three_step_manufacturing/mo-bread-crumb.png
:align: center
:alt: The manufacturing order bread crumb on a pick components transfer.
Process manufacturing order
===========================
An |MO| is processed by completing all of the work orders listed under its :guilabel:`Work Orders`
tab. This can be done on the |MO| itself, or from the work order tablet view.
Basic workflow
--------------
To complete work orders from the |MO| itself, begin by navigating to :menuselection:`Manufacturing
--> Operations --> Manufacturing Orders`, and then select a manufacturing order.
On the |MO| page, select the :guilabel:`Work Orders` tab. Once work begins on the first work order
that needs to be completed, click the :guilabel:`Start` button for that work order. Odoo
*Manufacturing* then starts a timer that keeps track of how long the work order takes to complete.
.. image:: three_step_manufacturing/start-button-2.png
:align: center
:alt: The Start button for a work order on a manufacturing order.
When the work order is completed, click the :guilabel:`Done` button for that work order. Repeat the
same process for each work order listed on the :guilabel:`Work Orders` tab.
.. image:: three_step_manufacturing/done-button.png
:align: center
:alt: The Done button for an work order on a manufacturing order.
After completing all of the work orders, click :guilabel:`Produce All` at the top of the screen to
mark the |MO| as :guilabel:`Done`, and register the manufactured product(s) into inventory.
Tablet view workflow
--------------------
To complete the work orders for an |MO| using the tablet view, begin by navigating to
:menuselection:`Manufacturing --> Operations --> Manufacturing Orders`, and then select a
manufacturing order.
Next, click on the :guilabel:`Work Orders` tab, and then select the :guilabel:`📱 (tablet)` button
on the line of the first work order to be processed. This opens the tablet view.
.. image:: three_step_manufacturing/tablet-view-button.png
:align: center
:alt: The tablet view button for a work order on a manufacturing order.
After opening the tablet view, Odoo *Manufacturing* automatically starts a timer that keeps track of
how long the work order takes to complete. After completing the work order, click the
:guilabel:`Mark as Done` button in the top-right corner of the tablet view.
Clicking :guilabel:`Mark as Done` while there is at least one more work order left to complete opens
a page that lists the next work order. Click on that work order to open it in the tablet view.
Once the final work order for the |MO| has been reached, a :guilabel:`Mark as Done and Close MO`
button appears on the tablet view in addition to the :guilabel:`Mark as Done` button. Click
:guilabel:`Mark as Done and Close MO` to mark the |MO| as :guilabel:`Done`, and register the
manufactured product(s) into inventory.
It is also possible to complete the final work order while keeping the |MO| open, by clicking
:guilabel:`Mark as Done`. In this case, the |MO| can be closed at a later time by clicking the
:guilabel:`Produce All` button on the |MO|.
Process finished product transfer
=================================
After completing the |MO|, return to the order's :guilabel:`Transfers` page by clicking the
:guilabel:`Transfers` button at the top of the order. This time, select :guilabel:`WH/SFP/XXXXX` to
open the store finished products transfer. This transfer is used to track the movement of finished
products from the location where they were manufactured to the location where they are stored.
After transferring the finished products to their storage location, click :guilabel:`Validate` at
the top of the transfer, followed by :guilabel:`Apply` on the :guilabel:`Immediate Transfer?` pop-up
window that appears. Doing so marks the transfer as :guilabel:`Done`, and updates inventory counts
to reflect the quantity of finished products transferred.
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -8,3 +8,6 @@ Quality check types
:titlesonly:
quality_check_types/instructions_check
quality_check_types/pass_fail_check
quality_check_types/measure_check
quality_check_types/picture_check
@@ -0,0 +1,194 @@
=====================
Measure quality check
=====================
.. |QCP| replace:: :abbr:`QCP (Quality Control Point)`
.. |QCPs| replace:: :abbr:`QCPs (Quality Control Points)`
In Odoo *Quality*, a *Measure* check is one of the quality check types that can be selected when
creating a new quality check or quality control point (QCP). *Measure* checks prompt users to
measure a certain aspect of a product and record the measurement in Odoo. For the quality check to
pass, the recorded measurement must be within a certain *tolerance* of a *norm* value.
Create a Measure quality check
==============================
There are two distinct ways that *Measure* quality checks can be created. A single check can be
manually created. Alternatively, a |QCP| can be configured that automatically creates checks at a
predetermined interval.
This documentation only details the configuration options that are unique to *Measure* quality
checks and |QCPs|. For a full overview of all the configuration options available when creating a
single check or a |QCP|, see the documentation on :ref:`quality checks
<quality/quality_management/quality-checks>` and :ref:`quality control points
<quality/quality_management/quality-control-points>`.
Quality check
-------------
To create a single *Measure* quality check, navigate to :menuselection:`Quality --> Quality Control
--> Quality Checks`, and click :guilabel:`New`. Fill out the new quality check form as follows:
- In the :guilabel:`Type` drop-down field, select the :guilabel:`Measure` quality check type.
- In the :guilabel:`Team` drop-down field, select the quality team responsible for managing the
check.
- In the :guilabel:`Instructions` text field of the :guilabel:`Notes` tab, enter instructions for
how the picture should be taken.
.. image:: measure_check/measure-check-form-1.png
:align: center
:alt: A quality check form configured for a Measure quality check.
Quality control point (QCP)
---------------------------
To create a |QCP| that generates *Measure* quality checks automatically, navigate to
:menuselection:`Quality --> Quality Control --> Control Points`, and click :guilabel:`New`. Fill out
the new |QCP| form as follows:
- In the :guilabel:`Type` drop-down field, select the :guilabel:`Measure` quality check type. Doing
so causes two new fields to appear: :guilabel:`Norm` and :guilabel:`Tolerance`.
- Use the first text-entry field of the :guilabel:`Norm` field to record the ideal measurement
that the product should conform to. Use the second text-entry field to specify the unit of
measurement that should be used.
- The :guilabel:`Tolerance` field features two sub-fields: :guilabel:`from` and :guilabel:`to`.
Use the :guilabel:`from` field to specify the minimum acceptable measurement, and the
:guilabel:`to` field to specify the maximum acceptable measurement.
- In the :guilabel:`Team` drop-down field, select the quality team responsible for managing the
checks created by the |QCP|.
- In the :guilabel:`Instructions` text field, enter instructions for how the measurement should be
taken.
.. image:: measure_check/measure-check-qcp-form.png
:align: center
:alt: A QCP form configured to create Measure quality checks.
Process a Measure quality check
===============================
Once created, there are multiple ways that *Measure* quality checks can be processed. If a quality
check is assigned to a specific inventory, manufacturing, or work order, the check can be processed
on the order itself. Alternatively, a check can be processed from the check's page.
From the check's page
---------------------
To process a *Measure* quality check from the check's page, begin by navigating to
:menuselection:`Quality --> Quality Control --> Quality Checks`, and select a quality check. Follow
the :guilabel:`Instructions` for how to take the measurement.
After taking the measurement, record the value in the :guilabel:`Measure` field on the quality check
form. To manually pass or fail the check, click :guilabel:`Pass` or :guilabel:`Fail` at the top-left
corner of the check.
Alternatively, if the quality check is assigned to a |QCP| for which *norm* and *tolerance* values
have been specified, click :guilabel:`Measure` at the top-left corner of the check instead. Doing so
automatically marks the check as *Passed* if the recorded value is within the specified *tolerance*,
or *Failed* if the value is outside of it.
On an order
-----------
To process a *Measure* quality check on an order, select a manufacturing order or inventory order
(receipt, delivery, return, etc.), for which a check is required. Manufacturing orders can be
selected by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`,
and clicking on an order. Inventory orders can be selected by navigating to
:menuselection:`Inventory`, clicking the :guilabel:`# To Process` button on an operation card, and
selecting an order.
On the selected manufacturing or inventory order, a purple :guilabel:`Quality Checks` button appears
at the top of the page. Click the button to open the :guilabel:`Quality Check` pop-up window, which
shows all of the quality checks required for that order.
To process a *Measure* quality check, measure the product as instructed, then enter the value in the
:guilabel:`Measure` field on the pop-up window. Finally, click :guilabel:`Validate` to register the
recorded value.
.. image:: measure_check/measure-check-pop-up.png
:align: center
:alt: A Measure quality check pop-up window on a manufacturing or inventory order.
If the value entered is within the range specified in the :guilabel:`Tolerance` section of the
|QCP|, the quality check passes and the pop-up window closes. The rest of the manufacturing or
inventory order can then be processed as usual.
However, if the value entered is outside of the specified range, a new pop-up window appears, titled
:guilabel:`Quality Check Failed`. The body of the pop-up shows a warning message that states,
:guilabel:`You measured # units and it should be between # units and # units.`, as well as the
instructions entered in the :guilabel:`Message If Failure` tab of the |QCP|. At the bottom of the
pop-up, two buttons appear: :guilabel:`Correct Measure` and :guilabel:`Confirm Measure`.
.. image:: measure_check/measure-check-failed.png
:align: center
:alt: The "Quality Check Failed" pop-up window.
If the measurement was not entered correctly and should be changed, select :guilabel:`Correct
Measure`. Doing so re-opens the :guilabel:`Quality Check` pop-up window. Enter the corrected
measurement in the :guilabel:`Measure` field, and then click :guilabel:`Validate` to complete the
check.
If the measurement was entered correctly, click :guilabel:`Confirm Measure` instead, and the quality
check fails. Follow any instructions that were listed on the :guilabel:`Quality Check Failed` pop-up
window.
If a quality alert must be created, click the :guilabel:`Quality Alert` button that appears at the
top of the manufacturing or inventory order after the check fails. Clicking :guilabel:`Quality
Alert` opens a quality alert form on a new page.
For a complete guide on how to fill out the quality alert form, view the documentation on
:ref:`quality alerts <quality/quality_management/quality-alerts>`.
On a work order
---------------
When configuring a |QCP| that is triggered during manufacturing, a specific work order can also be
specified in the :guilabel:`Work Order Operation` field on the |QCP| form. If a work order is
specified, a *Measure* quality check is created for that specific work order, rather than the
manufacturing order as a whole.
*Measure* quality checks created for work orders must be processed from the tablet view. To do so,
begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`.
Select a manufacturing order that includes a work order for which a quality check is required. Open
the tablet view for that work order by selecting the :guilabel:`Work Orders` tab, and then clicking
the :guilabel:`📱 (tablet)` button on the order's line.
With tablet view open, complete the steps listed on the left side of the screen until the *Measure*
quality check step is reached. Upon reaching the check, the instructions for how to take the
measurement appear at the top of the screen. Enter the measured value in the :guilabel:`Measure`
field above the instructions, and then click :guilabel:`Validate`.
.. image:: measure_check/measure-tablet-view.png
:align: center
:alt: A Measure quality check in the Manufacturing tablet view.
If the measurement entered is within the range specified in the :guilabel:`Tolerance` section of the
|QCP|, the quality check passes and the tablet view moves on to the next step of the work order.
However, if the measurement entered is outside of the specified range, a pop-up window appears,
titled :guilabel:`Quality Check Failed`.
The body of the :guilabel:`Quality Check Failed` pop-up window shows a warning message that states,
:guilabel:`You measured # units and it should be between # units and # units.`, as well as the
instructions entered in the :guilabel:`Message If Failure` tab of the |QCP|. At the bottom of the
pop-up, two buttons appear: :guilabel:`Correct Measure` and :guilabel:`Confirm Measure`.
.. image:: measure_check/measure-check-failed.png
:align: center
:alt: The "Quality Check Failed" pop-up window.
If the measurement was not entered correctly, and should be changed, select :guilabel:`Correct
Measure`. Doing so opens a new pop-up window, titled :guilabel:`Quality Check`. Enter the corrected
measurement in the :guilabel:`Measure` field, then click :guilabel:`Validate` to complete the check,
and move on to the next step of the work order.
If the measurement was entered correctly, click :guilabel:`Confirm Measure` instead, and the quality
check fails. Follow any instructions that were listed on the :guilabel:`Quality Check Failed` pop-up
window.
If a quality alert must be created, do so by clicking the :guilabel:`☰ (three horizontal lines)`
button, and selecting :guilabel:`Quality Alert` from the :guilabel:`Menu` pop-up window. A
:guilabel:`Quality Alerts` pop-up window appears, from which a quality alert can be created.
For a complete guide on how to fill out the quality alert form, view the documentation on
:ref:`quality alerts <quality/quality_management/quality-alerts>`.
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

@@ -0,0 +1,132 @@
=========================
Pass - Fail quality check
=========================
.. |QCP| replace:: :abbr:`QCP (Quality Control Point)`
.. |QCPs| replace:: :abbr:`QCP (Quality Control Points)`
In Odoo *Quality*, a *Pass - Fail* check is one of the quality check types that can be selected when
creating a new quality check or quality control point (QCP). *Pass - Fail* checks consist of a text
field that allows the creator to specify a certain criteria that a product must meet to pass the
check.
Create a Pass - Fail quality check
==================================
There are two distinct ways that *Pass - Fail* quality checks can be created. A single check can be
manually created. Alternatively, a |QCP| can be configured that automatically creates checks at a
predetermined interval.
This documentation only details the configuration options that are unique to *Pass - Fail* quality
checks and |QCPs|. For a full overview of all the configuration options available when creating a
single check or a |QCP|, see the documentation on :ref:`quality checks
<quality/quality_management/quality-checks>` and :ref:`quality control points
<quality/quality_management/quality-control-points>`.
Quality check
-------------
To create a single *Pass - Fail* quality check, navigate to :menuselection:`Quality --> Quality
Control --> Quality Checks`, and click :guilabel:`New`. Fill out the new quality check form as
follows:
- In the :guilabel:`Type` drop-down field, select the :guilabel:`Pass - Fail` quality check type.
- In the :guilabel:`Team` drop-down field, select the quality team responsible for managing the
check.
- In the :guilabel:`Instructions` text field of the :guilabel:`Notes` tab, enter instructions for
how to complete the quality check and the criteria that must be met for the check to pass.
.. image:: pass_fail_check/quality-check-form.png
:align: center
:alt: A quality check form configured for a Pass - Fail quality check.
Quality Control Point (QCP)
---------------------------
To create a |QCP| that generates *Pass - Fail* quality checks automatically, begin by navigating to
:menuselection:`Quality --> Quality Control --> Control Points`, and click :guilabel:`New`. Fill out
the new |QCP| form as follows:
- In the :guilabel:`Type` drop-down field, select the :guilabel:`Pass - Fail` quality check type.
- In the :guilabel:`Team` drop-down field, select the quality team responsible for managing the
checks created by the |QCP|.
- In the :guilabel:`Instructions` text field, enter instructions for how to complete the quality
check and the criteria that must be met for the check to pass.
.. image:: pass_fail_check/qcp-form.png
:align: center
:alt: A Quality Control Point (QCP) form configured to create a Pass - Fail quality check.
Process a Pass - Fail quality check
===================================
Once created, there are multiple ways that *Measure* quality checks can be processed. If a quality
check is assigned to a specific inventory, manufacturing, or work order, the check can be processed
on the order itself. Alternatively, a check can be processed from the check's page.
From the check's page
---------------------
To process a *Measure* quality check from the check's page, begin by navigating to
:menuselection:`Quality --> Quality Control --> Quality Checks`, and select a quality check. Follow
the :guilabel:`Instructions` for how to complete the check.
If the criteria for the check is met, click the :guilabel:`Pass` button at the top-left corner of
the page. If the criteria is not met, click the :guilabel:`Fail` button.
On an order
-----------
To process a *Pass - Fail* quality check on an order, select a manufacturing order or inventory
order (receipt, delivery, return, etc.), for which a check is required. Manufacturing orders can be
selected by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`,
and clicking on an order. Inventory orders can be selected by navigating to
:menuselection:`Inventory`, clicking the :guilabel:`# To Process` button on an operation card, and
selecting an order.
On the selected manufacturing or inventory order, a purple :guilabel:`Quality Checks` button appears
at the top of the order. Click the button to open the :guilabel:`Quality Check` pop-up window, which
shows all of the quality checks required for that order.
To process a *Pass - Fail* quality check, follow the instructions shown on the :guilabel:`Quality
Check` pop-up window. If the criteria for the check is met, click the :guilabel:`Pass` button at the
bottom of the window. If the criteria is not met, click the :guilabel:`Fail` button.
.. image:: pass_fail_check/pass-fail-check-pop-up.png
:align: center
:alt: A Pass - Fail quality check pop-up window on a manufacturing or inventory order.
If a quality alert must be created, click the :guilabel:`Quality Alert` button that appears at the
top of the manufacturing or inventory order after the check fails. Clicking :guilabel:`Quality
Alert` opens a quality alert form on a new page. For a complete guide on how to fill out quality
alert forms, view the documentation on :ref:`quality alerts
<quality/quality_management/quality-alerts>`.
On a work order
---------------
When configuring a |QCP| that is triggered during manufacturing, a specific work order can also be
specified in the :guilabel:`Work Order Operation` field on the |QCP| form. If a work order is
specified, a *Pass - Fail* quality check is created for that specific work order, rather than the
manufacturing order as a whole.
*Pass - Fail* quality checks configured for work orders must be processed from the tablet view. To
do so, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing
Orders`. Select a manufacturing order that includes a work order for which a quality check is
required. Open the tablet view for that work order by selecting the :guilabel:`Work Orders` tab, and
then clicking the :guilabel:`📱 (tablet)` button on the order's line.
With tablet view open, complete the steps listed on the left side of the screen until the *Pass -
Fail* quality check step is reached. Upon reaching the check, follow the instructions that appear at
the top of the screen. If the criteria for the check is met, click the :guilabel:`Pass` button at
the top-right of the screen. If the criteria is not met, click the :guilabel:`Fail` button.
.. image:: pass_fail_check/work-order-pass-fail-check.png
:align: center
:alt: A Pass - Fail check for a manufacturing work order.
If a quality alert must be created, do so by clicking the :guilabel:`☰ (menu)` button in the tablet
view, and selecting :guilabel:`Quality Alert` from the :guilabel:`Menu` pop-up window. A
:guilabel:`Quality Alerts` pop-up window appears, from which a quality alert can be created. For a
complete guide on how to fill out quality alert forms, view the documentation on :ref:`quality
alerts <quality/quality_management/quality-alerts>`.
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

@@ -0,0 +1,165 @@
============================
Take a Picture quality check
============================
.. |QCP| replace:: :abbr:`QCP (Quality Control Point)`
.. |QCPs| replace:: :abbr:`QCP (Quality Control Points)`
In Odoo *Quality*, a *Take a Picture* check is one of the quality check types that can be selected
when creating a new quality check or quality control point (QCP). *Take a Picture* checks require a
picture to be attached to the check, which can then be reviewed by a quality team.
Create a Take a Picture quality check
=====================================
There are two distinct ways that *Take a Picture* quality checks can be created. A single check can
be manually created. Alternatively, a |QCP| can be configured that automatically creates checks at a
predetermined interval.
This documentation only details the configuration options that are unique to *Take a Picture*
quality checks and |QCPs|. For a full overview of all the configuration options available when
creating a single check or a |QCP|, see the documentation on :ref:`quality checks
<quality/quality_management/quality-checks>` and :ref:`quality control points
<quality/quality_management/quality-checks>`.
Quality check
-------------
To create a single *Take a Picture* quality check, navigate to :menuselection:`Quality --> Quality
Control --> Quality Checks`, and click :guilabel:`New`. Fill out the new quality check form as
follows:
- In the :guilabel:`Type` drop-down field, select the :guilabel:`Take a Picture` quality check type.
- In the :guilabel:`Team` drop-down field, select the quality team responsible for managing the
check.
- In the :guilabel:`Instructions` text field of the :guilabel:`Notes` tab, enter instructions for
how the picture should be taken.
.. image:: picture_check/picture-check-form.png
:align: center
:alt: A quality check form configured for a Take a Picture quality check.
Quality Control Point (QCP)
---------------------------
To create a |QCP| that will generate *Take a Picture* quality checks automatically, navigate to
:menuselection:`Quality --> Quality Control --> Control Points`, and click :guilabel:`New`. Fill out
the new |QCP| form as follows:
- In the :guilabel:`Type` drop-down field, select the :guilabel:`Take a Picture` quality check type.
- If the *Maintenance* app is installed, a :guilabel:`Device` field appears after selecting the
*Take a Picture* check type. Use this field to specify a device that should be used to take
quality check pictures. For information about managing devices in the *Maintenance* app, see the
documentation on :ref:`adding new equipment <maintenance/equipment_management/add_new_equipment>`.
- In the :guilabel:`Team` drop-down field, select the quality team responsible for managing the
checks created by the |QCP|.
- In the :guilabel:`Instructions` text field, enter instructions for how the picture should be
taken.
.. image:: picture_check/picture-qcp-form.png
:align: center
:alt: A Quality Control Point (QCP) form configured to create a Take a Picture quality check.
Process a Take a Picture quality check
======================================
Once created, there are multiple ways that *Take a Picture* quality checks can be processed. If a
quality check is assigned to a specific inventory, manufacturing, or work order, the check can be
processed on the order itself. Alternatively, a check can be processed from the check's page.
From the check's page
---------------------
To process a *Take a Picture* quality check from the check's page, begin by navigating to
:menuselection:`Quality --> Quality Control --> Quality Checks`, and then select a quality check.
Follow the :guilabel:`Instructions` for how to take the picture.
After taking the picture, make sure it is stored on the device being used to process the quality
check (computer, tablet, etc.). Then, click the :guilabel:`✏️ (pencil)` button in the
:guilabel:`Picture` section to open the device's file manager. In the file manager, navigate to the
picture, select it, and click :guilabel:`Open` to attach it.
.. image:: picture_check/picture-edit-button.png
:align: center
:alt: The edit button (pencil) on a Take a Picture quality check.
On an order
-----------
To process a *Take a Picture* quality check on an order, select a manufacturing order or inventory
order (receipt, delivery, return, etc.), for which a check is required. Manufacturing orders can be
selected by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing Orders`,
and clicking on an order. Inventory orders can be selected by navigating to
:menuselection:`Inventory`, clicking the :guilabel:`# To Process` button on an operation card, and
selecting an order.
On the selected manufacturing or inventory order, a purple :guilabel:`Quality Checks` button appears
at the top of the page. Click the button to open the :guilabel:`Quality Check` pop-up window, which
shows all of the quality checks required for that order.
Follow the instructions detailing how to take the picture, which are shown on the :guilabel:`Quality
Check` pop-up window. After taking the picture, make sure it is stored on the device being used to
process the quality check (computer, tablet, etc.).
Then, click the :guilabel:`Take a Picture` button in the :guilabel:`Picture` section to open the
device's file manager. In the file manager, navigate to the picture, select it, and click
:guilabel:`Open` to attach it. Finally, click :guilabel:`Validate` on the :guilabel:`Quality Check`
pop-up window to complete the quality check.
.. image:: picture_check/picture-check-pop-up.png
:align: center
:alt: A Take a Picture quality check pop-up window on a manufacturing or inventory order.
If a quality alert must be created, click the :guilabel:`Quality Alert` button that appears at the
top of the manufacturing or inventory order after the check is validated. Clicking
:guilabel:`Quality Alert` opens a quality alert form on a new page. For a complete guide on how to
fill out quality alert forms, view the documentation on :ref:`quality alerts
<quality/quality_management/quality-alerts>`.
On a work order
---------------
When configuring a |QCP| that is triggered during manufacturing, a specific work order can also be
specified in the :guilabel:`Work Order Operation` field on the |QCP| form. If a work order is
specified, a *Take a Picture* quality check is created for that specific work order, rather than the
manufacturing order as a whole.
*Take a Picture* quality checks created for work orders must be completed from the tablet view. To
do so, begin by navigating to :menuselection:`Manufacturing --> Operations --> Manufacturing
Orders`. Select a manufacturing order that includes a work order for which a quality check is
required. Open the tablet view for that work order by selecting the :guilabel:`Work Orders` tab, and
then clicking the :guilabel:`📱 (tablet)` button on the order's line.
With tablet view open, complete the steps listed on the left side of the screen until the *Take a
Picture* quality check step is reached. Upon reaching the check, follow the instructions for how to
take the picture, which appear at the top of the screen.
After taking the picture, make sure it is stored on the device being used to process the work order
(computer, tablet, etc.). Then, click the :guilabel:`Take a Picture` button to open the device's
file manager. In the file manager, navigate to the picture, select it, and click :guilabel:`Open` to
attach it. Finally, click :guilabel:`Validate` to complete the quality check.
.. image:: picture_check/work-order-picture-check.png
:align: center
:alt: A Take a Picture check for a manufacturing work order.
If a quality alert must be created, do so by clicking the :guilabel:`☰ (three horizontal lines)`
button in the tablet view, and selecting :guilabel:`Quality Alert` from the :guilabel:`Menu` pop-up
window. A :guilabel:`Quality Alerts` pop-up window appears, from which a quality alert can be
created. For a complete guide on how to fill out quality alert forms, view the documentation on
:ref:`quality alerts <quality/quality_management/quality-alerts>`.
Review a picture attached to a check
====================================
After a picture has been attached to a check, it can then be reviewed by quality team members or
other users. To do so, navigate to :menuselection:`Quality --> Quality Control --> Quality Checks`,
and select a quality check to review.
The attached picture appears in the :guilabel:`Picture` section of the quality check form. After
reviewing the picture, click the :guilabel:`Pass` button if the check passes, or the
:guilabel:`Fail` button if the check fails.
.. image:: picture_check/review-picture-check.png
:align: center
:alt: A Take a Picture check with a picture attached.
Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Some files were not shown because too many files have changed in this diff Show More