Compare commits
376 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| cd8d3b3d83 | |||
| 208f1f5dd7 | |||
| f8a114b334 | |||
| ea7fd9b847 | |||
| 33c6784f68 | |||
| 2948da8318 | |||
| a3a667baa9 | |||
| 06135f66b7 | |||
| 985373622a | |||
| ea54d7f4b6 | |||
| 3efe78c40f | |||
| e2a99be2fa | |||
| 28cd889ecb | |||
| d8ee860d02 | |||
| 3ac8cb59e8 | |||
| ec743decbf | |||
| 0118039e60 | |||
| 203a15e556 | |||
| 669a62c625 | |||
| c30312137c | |||
| f7b4153e69 | |||
| 30e1b1f450 | |||
| 78743fa901 | |||
| 717a22e828 | |||
| 7aed0550bc | |||
| cd9889b304 | |||
| fdf51021b9 | |||
| 87c4b394e5 | |||
| 8c2cd0737a | |||
| 1ae6cc202d | |||
| a89ea48c8f | |||
| 38fe8febfb | |||
| d7cf79723e | |||
| f6594f91cf | |||
| 08d1ef2a45 | |||
| 7916a08773 | |||
| 8155a72901 | |||
| 5651bfda49 | |||
| 8cf0318a83 | |||
| 66d0209956 | |||
| 1df78f08cd | |||
| a8820ba3bb | |||
| f47d0c503a | |||
| 4e782b9e9a | |||
| 56b7b4f83a | |||
| 26b906340a | |||
| d94ac4b904 | |||
| a9005ec623 | |||
| 447d131247 | |||
| 6f74ae28ba | |||
| 50ff7a625a | |||
| e661c7f66e | |||
| 123e0fffb3 | |||
| 851f53f469 | |||
| 431c7eb685 | |||
| 7480a11576 | |||
| 019f94ed25 | |||
| 189d942f06 | |||
| 46e66e0d8b | |||
| fa6b8382e7 | |||
| 9d02b5207c | |||
| f91ab96191 | |||
| 21a13dfc1a | |||
| 6b5398eda1 | |||
| 758499d987 | |||
| f381273038 | |||
| 1b26e3f90e | |||
| e72758f68b | |||
| 7428de7be4 | |||
| d3872493b3 | |||
| 6bbd3186e9 | |||
| 1e14a5b6f8 | |||
| 125bef72b0 | |||
| e092ca7e41 | |||
| f0c877fb45 | |||
| daf41d8a5d | |||
| bc9355564d | |||
| 47a8a8b1e3 | |||
| 64f4e8d46c | |||
| a395e108ac | |||
| 0cae14e43b | |||
| 5dfa8128aa | |||
| 2626f81d23 | |||
| e1230a82d7 | |||
| 7369a1e4e9 | |||
| 788f624d49 | |||
| 54e7676d5a | |||
| 0816e187a5 | |||
| 4e0c53b4a2 | |||
| 9e7418ea8e | |||
| d758c9d995 | |||
| 2ab76700cb | |||
| 3cbc88c467 | |||
| ccfe1af307 | |||
| 99b06db261 | |||
| ed64d6fb4c | |||
| a2ac238691 | |||
| 172f0eb226 | |||
| 330b7ef64a | |||
| 1df7b0e6c5 | |||
| db73dd629e | |||
| 1bddb2f2c9 | |||
| 0e4978b783 | |||
| 56e9c3d343 | |||
| c7c9e3d6f0 | |||
| d9fc72e1dd | |||
| 632f7c65ce | |||
| a4b8a53aab | |||
| 976968cd3a | |||
| 183f981184 | |||
| aa65246560 | |||
| 8956e39eea | |||
| b693187c7c | |||
| e1df7a714b | |||
| 9f25d5e345 | |||
| f5a5b57be3 | |||
| b9cdeb304a | |||
| 18be17dada | |||
| 682a290793 | |||
| 649b6bcd5c | |||
| 9d4fc6cd55 | |||
| fb1f81f735 | |||
| 50d0d32bf6 | |||
| f84c00cb0d | |||
| 70701aa589 | |||
| 85cb4170af | |||
| a8292df22f | |||
| 8ab0935d74 | |||
| 9486fece94 | |||
| cd31079f69 | |||
| 2935c3b2df | |||
| b00ae1f3b0 | |||
| 0f87ffef1a | |||
| 23e773f31e | |||
| a1371aee87 | |||
| f2f9b32a1d | |||
| ad06489c98 | |||
| 86fa534deb | |||
| 3667e71c92 | |||
| 599e50159e | |||
| cc7857b363 | |||
| 4b3fecf2cb | |||
| 1f788bf750 | |||
| 0edc606b42 | |||
| 8377f9f068 | |||
| b81c06ecef | |||
| 36de103e3a | |||
| 3d920ded85 | |||
| 2b6fa74e40 | |||
| 7674dbdbbc | |||
| a76635c09c | |||
| d4565c6c20 | |||
| 81b1a9fd8e | |||
| d91cead9e7 | |||
| 4827f3fe20 | |||
| 4a24238376 | |||
| e6d68071fc | |||
| bce2a875c5 | |||
| b738a4e002 | |||
| 3da71625f1 | |||
| 833109636a | |||
| 044670f15e | |||
| 1bb11f0654 | |||
| 63789b0aa7 | |||
| 04aacf8863 | |||
| e180e1066f | |||
| 7f09bae364 | |||
| ce069df416 | |||
| d55739b2c5 | |||
| 32c7993e1c | |||
| c1ea6d7a38 | |||
| abb2e04f10 | |||
| 479ab2028e | |||
| e8c6f3421c | |||
| 54a9fedea2 | |||
| 3806da48e7 | |||
| f836a2c5ad | |||
| f7fd7b09df | |||
| 01f78636f8 | |||
| 54064a06ef | |||
| 7d92fb64f3 | |||
| 6435abfbad | |||
| 1ed9dd99d8 | |||
| a04bb90354 | |||
| 22c18c0165 | |||
| b8e1f50ea6 | |||
| 89a11e2e96 | |||
| 5df8a40c6e | |||
| 07ac9eda1f | |||
| 27a3014633 | |||
| c94ab5301c | |||
| b593192db4 | |||
| 4f198849bb | |||
| 7a388707bc | |||
| 813dba5b92 | |||
| 96f521a160 | |||
| edffa80d3c | |||
| 7d608d8a0e | |||
| d9441dcf1c | |||
| 8ad9f28f24 | |||
| 80dbfbdd15 | |||
| a6e04372a8 | |||
| dd93828247 | |||
| baf256fc40 | |||
| fbadb8cca0 | |||
| 9f94e19837 | |||
| 11f3f830a8 | |||
| 19058c1876 | |||
| 33d781c5a5 | |||
| 467e2f2550 | |||
| 0dadc8e580 | |||
| 90bab61e66 | |||
| 862d07ba5b | |||
| 757c4ec23e | |||
| 47a9da91ac | |||
| b846ff3a57 | |||
| a0e0e994a6 | |||
| 03d435ea31 | |||
| 201c82d9c9 | |||
| a164b8ab65 | |||
| 05500b1416 | |||
| ce5a8d554d | |||
| 0d624f6c3e | |||
| 93b07b8a25 | |||
| b93a4f78dd | |||
| b774e6f99b | |||
| 6cf5d44380 | |||
| 14a5b77169 | |||
| fff0e0f2a7 | |||
| e04e586ef4 | |||
| 16d2e1582f | |||
| cbd8f2e8d9 | |||
| 410ee3fe39 | |||
| cd19ebd5ac | |||
| 047cf49add | |||
| c8f509746d | |||
| c74b788b8f | |||
| 9b93e7788e | |||
| b306f91ed4 | |||
| ce5973e335 | |||
| e68deaf9d6 | |||
| a18a378a87 | |||
| 64db022a95 | |||
| 48bc8793a3 | |||
| 1695ad998b | |||
| 0557514788 | |||
| 2e7f7b0dc5 | |||
| 2b98d9c304 | |||
| b10d17af6a | |||
| 11b77ac549 | |||
| f9f855cd2e | |||
| 4734ddb7be | |||
| 3606b35230 | |||
| 33244724b0 | |||
| 6535c1d587 | |||
| 99e8ebf5de | |||
| f83fce2125 | |||
| 93e76fe08b | |||
| 4ee7077ac8 | |||
| e9b1f18822 | |||
| f6107b4858 | |||
| dbf69f4019 | |||
| b0627464e5 | |||
| 3bfd593757 | |||
| 35931b493d | |||
| 2c38a625e1 | |||
| 9dac99024f | |||
| d11dcd33d1 | |||
| 59afd5062d | |||
| 88880b8915 | |||
| add4cb8a04 | |||
| 34c303ecea | |||
| fd9e326ca6 | |||
| 42b16e1347 | |||
| 2df60cb372 | |||
| 08fbc57c22 | |||
| af310bfeff | |||
| 6c9e6b94e8 | |||
| 0cd769549c | |||
| 6ac164fdf7 | |||
| a208a077dd | |||
| ddf5d2ca5a | |||
| fa6bc19ecb | |||
| 64b2295cd4 | |||
| 4b67e08dcb | |||
| 8b69948613 | |||
| 9d6c7600d4 | |||
| ac5f9cd28e | |||
| 5b82c8cb00 | |||
| 2adc169aec | |||
| 7fe5675144 | |||
| 3941c8191e | |||
| 9ae8bee50f | |||
| 6120d187ed | |||
| c7f385fee3 | |||
| 431f88f955 | |||
| e8e9f86b8f | |||
| a28a65a373 | |||
| f0b25461c7 | |||
| 04b8762b51 | |||
| 652bead830 | |||
| fab3e9f352 | |||
| 74884ff81c | |||
| c3e4d920d3 | |||
| a2d4bc6956 | |||
| ff0a767f79 | |||
| 9264fe40be | |||
| c636893e32 | |||
| fbfb81d80c | |||
| a9620242af | |||
| 3ca0a69957 | |||
| 085320a86d | |||
| 2c5c43c474 | |||
| 26edc3c56b | |||
| 8bbfebea55 | |||
| 85fda3e9e1 | |||
| 98f9fa803e | |||
| 6a0bb6ba9f | |||
| 50bd2e0d42 | |||
| c743f44177 | |||
| f5aaeb524e | |||
| 7524eccaef | |||
| 5c645508d4 | |||
| b6fef3dec0 | |||
| 7e04e250b0 | |||
| 6f4f511b34 | |||
| fb5fc7915c | |||
| 89d3907b4f | |||
| 2a3117dfee | |||
| c9f1bf7df8 | |||
| f7769365bc | |||
| 364d997cae | |||
| 692b932eed | |||
| 508c7aeccc | |||
| f603ac5624 | |||
| 6332d389f9 | |||
| 59e8cb1c3a | |||
| e0e2200a60 | |||
| 8e5c99f42a | |||
| c529500e6a | |||
| 95739dc0fc | |||
| 0180929780 | |||
| da8e2dfe6a | |||
| 980d9f67c5 | |||
| 44e3bd028b | |||
| fae4de26f2 | |||
| 0865e62d5f | |||
| d4da0c2425 | |||
| 4dfb271bde | |||
| 79878321d6 | |||
| e7c634b31b | |||
| 28596bd782 | |||
| 5fd963a36f | |||
| 570313b1cd | |||
| 8e3142bc37 | |||
| ba056f4f36 | |||
| 14dddabc4d | |||
| e89dc21e44 | |||
| 7eb1324d1c | |||
| 1287839683 | |||
| b4a8e166a6 | |||
| a936e3cb5d | |||
| 48a20b1596 | |||
| 3d10ecf770 | |||
| d09028357e | |||
| 790b9c7fd9 | |||
| 8e25d81ce5 | |||
| abf2ea81dd | |||
| 40f4077669 | |||
| 28476a2894 | |||
| 57314bb63f | |||
| 50efd5d4ce | |||
| 545e124d02 | |||
| 564f2640c7 | |||
| 348da6ec78 | |||
| 54e6c5d6d4 |
@@ -18,6 +18,7 @@ CONFIG_DIR = .
|
||||
SPHINXOPTS = -D project_root=$(ROOT) -D canonical_version=$(CANONICAL_VERSION) \
|
||||
-D versions=$(VERSIONS) -D languages=$(LANGUAGES) -D language=$(CURRENT_LANG) \
|
||||
-D is_remote_build=$(IS_REMOTE_BUILD) \
|
||||
-T \
|
||||
-A google_analytics_key=$(GOOGLE_ANALYTICS_KEY) \
|
||||
-A plausible_script=$(PLAUSIBLE_SCRIPT) \
|
||||
-A plausible_domain=$(PLAUSIBLE_DOMAIN) \
|
||||
|
||||
@@ -231,6 +231,7 @@ sphinx.transforms.i18n.docname_to_domain = (
|
||||
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
|
||||
versions_names = {
|
||||
'master': "Master",
|
||||
'saas-17.4': "Odoo Online",
|
||||
'saas-17.2': "Odoo Online",
|
||||
'saas-17.1': "Odoo Online",
|
||||
'17.0': "Odoo 17",
|
||||
@@ -252,11 +253,13 @@ languages_names = {
|
||||
'es': 'ES',
|
||||
'fr': 'FR',
|
||||
'it': 'IT',
|
||||
'ko': 'KO',
|
||||
'ja': 'JA',
|
||||
'ko': 'KR',
|
||||
'nl': 'NL',
|
||||
'pt_BR': 'PT',
|
||||
'ro': 'RO',
|
||||
'sv': 'SV',
|
||||
'th': 'TH',
|
||||
'uk': 'UA',
|
||||
'zh_CN': 'ZH (CN)',
|
||||
'zh_TW': 'ZH (TW)'
|
||||
@@ -391,6 +394,9 @@ def setup(app):
|
||||
app.add_config_value('is_remote_build', None, 'env') # Whether the build is remotely deployed
|
||||
app.add_config_value('source_read_replace_vals', {}, 'env')
|
||||
app.connect('source-read', source_read_replace)
|
||||
# TODO uncomment after moving to >= v7.2.5 to also substitute placeholders in included files.
|
||||
# See https://github.com/sphinx-doc/sphinx/commit/ff1831
|
||||
# app.connect('include-read', source_read_replace)
|
||||
|
||||
app.add_lexer('json', JsonLexer)
|
||||
app.add_lexer('xml', XmlLexer)
|
||||
|
||||
@@ -21,7 +21,7 @@ turned into a testing environment.
|
||||
Deactivated features
|
||||
====================
|
||||
|
||||
Here is a non-exhaustive list of the deactivated parameters:
|
||||
Here is a non-exhaustive list of the deactivated features:
|
||||
|
||||
- all planned actions (e.g., automatic invoicing of subscriptions, mass mailing, etc.)
|
||||
- outgoing emails
|
||||
@@ -29,6 +29,7 @@ Here is a non-exhaustive list of the deactivated parameters:
|
||||
- payment providers
|
||||
- delivery methods
|
||||
- :abbr:`IAP (In-App Purchase)` tokens
|
||||
- website visibility (prevent search engines from indexing your site)
|
||||
|
||||
.. note::
|
||||
**A red banner at the top of the screen is displayed on the neutralized database so that it can
|
||||
|
||||
@@ -30,6 +30,8 @@ confirmation for the account deletion.
|
||||
To confirm the deletion, enter the :guilabel:`Password` and the :guilabel:`Login` for the account
|
||||
being deleted. Then, click the :guilabel:`Delete Account` button to confirm the deletion.
|
||||
|
||||
.. _odoocom/change_password:
|
||||
|
||||
Odoo.com account password change
|
||||
================================
|
||||
|
||||
|
||||
@@ -46,7 +46,7 @@ Trigger a database upgrade.
|
||||
|
||||
.. seealso::
|
||||
For more information about the upgrade process, check out the :ref:`Odoo Online upgrade
|
||||
documentation <upgrade/request-test-database>`.
|
||||
documentation <upgrade-request-test>`.
|
||||
|
||||
.. _odoo_online/duplicate:
|
||||
|
||||
@@ -60,6 +60,8 @@ daily operations.
|
||||
- By checking :guilabel:`For testing purposes`, all external actions (emails, payments, delivery
|
||||
orders, etc.) are disabled by default on the duplicated database.
|
||||
- Duplicated databases expire automatically after 15 days.
|
||||
- A maximum of five duplicates can be made per database. Under extraordinary circumstances,
|
||||
contact `support <https://www.odoo.com/help>`_ to raise the limit.
|
||||
|
||||
.. _odoo_online/rename:
|
||||
|
||||
|
||||
@@ -29,3 +29,32 @@ We advise that:
|
||||
- Your scheduled actions should be
|
||||
`idempotent <https://stackoverflow.com/a/1077421/3332416>`_: they must not
|
||||
cause side-effects if they are started more often than expected.
|
||||
|
||||
.. _ip-address-change:
|
||||
|
||||
How can I automate tasks when an IP address change occurs?
|
||||
----------------------------------------------------------
|
||||
|
||||
**Odoo.sh notifies project administrators of IP address changes.**
|
||||
Additionally, when the IP address of a production instance changes, an HTTP `GET` request is made
|
||||
to the path `/_odoo.sh/ip-change` with the new IP address included as a query string parameter
|
||||
(`new`), along with the previous IP address as an additional parameter (`old`).
|
||||
|
||||
This mechanism allows custom actions to be applied in response to the IP address change
|
||||
(e.g., sending an email, contacting a firewall API, configuring database objects, etc.)
|
||||
|
||||
For security reasons, the `/_odoo.sh/ip-change` route is accessible only internally by the platform
|
||||
itself and returns a `403` response if accessed through any other means.
|
||||
|
||||
Here is a pseudo-implementation example:
|
||||
|
||||
.. code-block:: python
|
||||
|
||||
class IPChangeController(http.Controller):
|
||||
|
||||
@http.route('/_odoo.sh/ip-change', auth='public')
|
||||
def ip_change(self, old=None, new=None):
|
||||
_logger.info("IP address changed from %s to %s", old, new)
|
||||
# Then perform whatever action required for your use case, e.g., update an
|
||||
# ir.config_parameter, send an email, contact an external firewall service's API, ...
|
||||
return 'ok'
|
||||
|
||||
@@ -402,9 +402,9 @@ we are considering the feature if there is enough demand.
|
||||
|
||||
In case the domain of your users email addresses use SPF (Sender Policy Framework) or DKIM
|
||||
(DomainKeys Identified Mail), don't forget to authorize Odoo as a sending host in your domain name
|
||||
settings to increase the deliverability of your outgoing emails.
|
||||
The configuration steps are explained in the documentation about :ref:`SPF
|
||||
<email_communication/spf_compliant>` and :ref:`DKIM <email_communication/dkim_compliant>`.
|
||||
settings to increase the deliverability of your outgoing emails. The configuration steps are
|
||||
explained in the documentation about :ref:`SPF <email-domain-spf>` and :ref:`DKIM
|
||||
<email-domain-dkim>`.
|
||||
|
||||
.. Warning::
|
||||
Forgetting to configure your SPF or DKIM to authorize Odoo as a sending host can lead to the
|
||||
|
||||
@@ -740,7 +740,143 @@ It should be stored securely, and should be generated randomly e.g.
|
||||
|
||||
$ python3 -c 'import base64, os; print(base64.b64encode(os.urandom(24)))'
|
||||
|
||||
which will generate a 32 characters pseudorandom printable string.
|
||||
which generates a 32-character pseudorandom printable string.
|
||||
|
||||
Reset the master password
|
||||
-------------------------
|
||||
|
||||
There may be instances where the master password is misplaced, or compromised, and needs to be
|
||||
reset. The following process is for system administrators of an Odoo on-premise database detailing
|
||||
how to manually reset and re-encrypt the master password.
|
||||
|
||||
.. seealso::
|
||||
For more information about changing an Odoo.com account password, see this documentation:
|
||||
:ref:`odoocom/change_password`.
|
||||
|
||||
When creating a new on-premise database, a random master password is generated. Odoo recommends
|
||||
using this password to secure the database. This password is implemented by default, so there is a
|
||||
secure master password for any Odoo on-premise deployment.
|
||||
|
||||
.. warning::
|
||||
When creating an Odoo on-premise database the installation is accessible to anyone on the
|
||||
internet, until this password is set to secure the database.
|
||||
|
||||
The master password is specified in the Odoo configuration file (`odoo.conf` or `odoorc` (hidden
|
||||
file)). The Odoo master password is needed to modify, create, or delete a database through the
|
||||
graphical user interface (GUI).
|
||||
|
||||
Locate configuration file
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
First, open the Odoo configuration file (`odoo.conf` or `odoorc` (hidden file)).
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. tab:: Windows
|
||||
|
||||
The configuration file is located at: `c:\\ProgramFiles\\Odoo{VERSION}\\server\\odoo.conf`
|
||||
|
||||
.. tab:: Linux
|
||||
|
||||
Depending on how Odoo is installed on the Linux machine, the configuration file is located in
|
||||
one of two different places:
|
||||
|
||||
- Package installation: `/etc/odoo.conf`
|
||||
- Source installation: `~/.odoorc`
|
||||
|
||||
Change old password
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Once the appropriate file has been opened, proceed to modify the old password in the configuration
|
||||
file to a temporary password.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Graphical user interface
|
||||
|
||||
After locating the configuration file, open it using a (:abbr:`GUI (graphical user
|
||||
interface)`). This can be achieved by simply double clicking on the file. Then, the device
|
||||
should have a default :abbr:`GUI (graphical user interface)` to open the file with.
|
||||
|
||||
Next, modify the master password line `admin_passwd = $pbkdf2-sha…` to `admin_passwd =
|
||||
newpassword1234`, for example. This password can be anything, as long as it is saved
|
||||
temporarily. Make sure to modify all characters after the `=`.
|
||||
|
||||
.. example::
|
||||
The line appears like this:
|
||||
`admin_passwd =
|
||||
$pbkdf2-sh39dji295.59mptrfW.9z6HkA$w9j9AMVmKAP17OosCqDxDv2hjsvzlLpF8Rra8I7p/b573hji540mk/.3ek0lg%kvkol6k983mkf/40fjki79m`
|
||||
|
||||
The modified line appears like this: `admin_passwd = newpassword1234`
|
||||
|
||||
.. group-tab:: Command-line interface
|
||||
|
||||
Modify the master password line using the following Unix command detailed below.
|
||||
|
||||
Connect to the Odoo server's terminal via Secure Shell (SSH) protocol, and edit the
|
||||
configuration file. To modify the configuration file, enter the following command:
|
||||
:command:`sudo nano /etc/odoo.conf`
|
||||
|
||||
After opening the configuration file, modify the master password line `admin_passwd =
|
||||
$pbkdf2-sha…` to `admin_passwd = newpassword1234`. This password can be anything, as long as
|
||||
it is saved temporarily. Make sure to modify all characters after the `=`.
|
||||
|
||||
.. example::
|
||||
The line appears like this:
|
||||
`admin_passwd =
|
||||
$pbkdf2-sh39dji295.59mptrfW.9z6HkA$w9j9AMVmKAP17OosCqDxDv2hjsvzlLpF8Rra8I7p/b573hji540mk/.3ek0lg%kvkol6k983mkf/40fjki79m`
|
||||
|
||||
The modified line appears like this: `admin_passwd = newpassword1234`
|
||||
|
||||
.. important::
|
||||
It is essential that the password is changed to something else, rather than triggering a new
|
||||
password reset by adding a semicolon `;` at the beginning of the line. This ensures the database
|
||||
is secure throughout the entire password reset process.
|
||||
|
||||
Restart Odoo server
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
After setting the temporary password, a restart of the Odoo server is **required**.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Graphical user interface
|
||||
|
||||
To restart the Odoo server, first, type `services` into the Windows :guilabel:`Search` bar.
|
||||
Then, select the :guilabel:`Services` application, and scroll down to the :guilabel:`Odoo`
|
||||
service.
|
||||
|
||||
Next, right click on :guilabel:`Odoo`, and select :guilabel:`Start` or :guilabel:`Restart`.
|
||||
This action manually restarts the Odoo server.
|
||||
|
||||
.. group-tab:: Command-line interface
|
||||
|
||||
Restart the Odoo server by typing the command: :command:`sudo service odoo15 restart`
|
||||
|
||||
.. note::
|
||||
Change the number after `odoo` to fit the specific version the server is running on.
|
||||
|
||||
Use web interface to re-encrypt password
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
First, navigate to `/web/database/manager` or `http://server_ip:port/web/database/manager` in a
|
||||
browser.
|
||||
|
||||
.. note::
|
||||
Replace `server_ip` with the IP address of the database. Replace `port` with the numbered port
|
||||
the database is accessible from.
|
||||
|
||||
Next, click :guilabel:`Set Master Password`, and type in the previously-selected temporary password
|
||||
into the :guilabel:`Master Password` field. Following this step, type in a :guilabel:`New Master
|
||||
Password`. The :guilabel:`New Master Password` is hashed (or encrypted), once the
|
||||
:guilabel:`Continue` button is clicked.
|
||||
|
||||
At this point, the password has been successfully reset, and a hashed version of the new password
|
||||
now appears in the configuration file.
|
||||
|
||||
.. seealso::
|
||||
For more information on Odoo database security, see this documentation:
|
||||
:ref:`db_manager_security`.
|
||||
|
||||
Supported Browsers
|
||||
==================
|
||||
|
||||
@@ -33,7 +33,6 @@ In you alias config (:file:`/etc/aliases`):
|
||||
- `Postfix aliases <http://www.postfix.org/aliases.5.html>`_
|
||||
- `Postfix virtual <http://www.postfix.org/virtual.8.html>`_
|
||||
|
||||
|
||||
For Exim
|
||||
--------
|
||||
|
||||
@@ -47,5 +46,5 @@ For Exim
|
||||
- `Exim <https://www.exim.org/docs.html>`_
|
||||
|
||||
.. tip::
|
||||
If you don't have access/manage your email server, use :ref:`inbound messages
|
||||
<email_communication/inbound_messages>`.
|
||||
If you do not have access/manage your email server, use :ref:`incoming mail servers
|
||||
<email-inbound-custom-domain-incoming-server>`.
|
||||
|
||||
@@ -277,18 +277,22 @@ Dependencies
|
||||
|
||||
.. tab:: Debian/Ubuntu
|
||||
|
||||
For Debian-based systems, the packages are listed in the `debian/control
|
||||
<{GITHUB_PATH}/debian/control>`_ file of the Odoo sources.
|
||||
|
||||
On Debian/Ubuntu, the following commands should install the required packages:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cd /CommunityPath
|
||||
$ sed -n -e '/^Depends:/,/^Pre/ s/ python3-\(.*\),/python3-\1/p' debian/control | sudo xargs apt-get install -y
|
||||
$ cd odoo #CommunityPath
|
||||
$ sudo ./setup/debinstall.sh
|
||||
|
||||
The `setup/debinstall.sh` script will parse the `debian/control
|
||||
<{GITHUB_PATH}/debian/control>`_ file and install the found packages.
|
||||
|
||||
.. tab:: Install with pip
|
||||
|
||||
.. warning::
|
||||
Using pip may lead to security issues and broken dependencies; only do this if you
|
||||
know what you are doing.
|
||||
|
||||
As some of the Python packages need a compilation step, they require system libraries to
|
||||
be installed.
|
||||
|
||||
|
||||
@@ -31,6 +31,12 @@ This matrix shows the support status of every version.
|
||||
- On-Premise
|
||||
- Release date
|
||||
- End of support
|
||||
* - Odoo saas~17.4
|
||||
- |green|
|
||||
- N/A
|
||||
- N/A
|
||||
- July 2024
|
||||
-
|
||||
* - Odoo saas~17.2
|
||||
- |green|
|
||||
- N/A
|
||||
@@ -49,48 +55,12 @@ This matrix shows the support status of every version.
|
||||
- |green|
|
||||
- November 2023
|
||||
- October 2026 (planned)
|
||||
* - Odoo saas~16.4
|
||||
- |green|
|
||||
- N/A
|
||||
- N/A
|
||||
- August 2023
|
||||
-
|
||||
* - Odoo saas~16.3
|
||||
- |red|
|
||||
- N/A
|
||||
- N/A
|
||||
- June 2023
|
||||
-
|
||||
* - Odoo saas~16.2
|
||||
- |red|
|
||||
- N/A
|
||||
- N/A
|
||||
- March 2023
|
||||
-
|
||||
* - Odoo saas~16.1
|
||||
- |red|
|
||||
- N/A
|
||||
- N/A
|
||||
- February 2023
|
||||
-
|
||||
* - **Odoo 16.0**
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
- October 2022
|
||||
- November 2025 (planned)
|
||||
* - Odoo saas~15.2
|
||||
- |red|
|
||||
- N/A
|
||||
- N/A
|
||||
- March 2022
|
||||
- January 2023
|
||||
* - Odoo saas~15.1
|
||||
- |red|
|
||||
- N/A
|
||||
- N/A
|
||||
- February 2022
|
||||
- July 2022
|
||||
* - **Odoo 15.0**
|
||||
- |green|
|
||||
- |green|
|
||||
|
||||
@@ -2,33 +2,55 @@
|
||||
Upgrade
|
||||
=======
|
||||
|
||||
.. _administration/upgrade:
|
||||
An upgrade involves moving a database from an older version to a newer supported version (e.g., from
|
||||
Odoo 15.0 to Odoo 17.0). Regular upgrades are crucial as each version offers new features, bug
|
||||
fixes, and security patches. Using a :doc:`supported version <supported_versions>` is strongly
|
||||
recommended. Each major version is supported for three years.
|
||||
|
||||
An upgrade is the process of moving your database from an older version to a newer :doc:`supported
|
||||
version <supported_versions>` (e.g., Odoo 14.0 to Odoo 16.0). Frequently upgrading is essential as
|
||||
each version comes with new and improved features, bug fixes, and security patches.
|
||||
Depending on the hosting type and Odoo version used, a database upgrade can be **mandatory**.
|
||||
|
||||
.. _upgrade_faq/rolling_release:
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Odoo Online
|
||||
|
||||
- If a database is on a **major version** (e.g., 15.0, 16.0, 17.0), an upgrade is mandatory
|
||||
every two years.
|
||||
- If a database is on a **minor version** (e.g., 17.1, 17.2, 17.4), an upgrade is mandatory
|
||||
a few weeks after the next version is released. Minor versions are usually released every
|
||||
three months.
|
||||
|
||||
.. group-tab:: Odoo.sh
|
||||
|
||||
After the initial three years of support, you will have another two years to complete the
|
||||
upgrade. You will be notified when an upgrade is required.
|
||||
|
||||
.. image:: upgrade/odoo-sh-message.png
|
||||
:alt: The "unsupported version" popup on Odoo.sh.
|
||||
|
||||
.. group-tab:: On-premise
|
||||
|
||||
You can stay on the same version indefinitely, even if it is not recommended. Note that the
|
||||
smaller the version gap, the easier the upgrade should be.
|
||||
|
||||
.. spoiler:: Automatic upgrades: Odoo Online's Rolling Release process
|
||||
|
||||
The Rolling Release process allows Odoo Online customers to upgrade their database directly from
|
||||
a message prompt sent to the database administrator as soon as a new version is released. The
|
||||
invitation to upgrade is only sent if no issues are detected during the automatic tests.
|
||||
You will receive a notification in your database a few weeks before a mandatory upgrade will be
|
||||
automatically carried out. You are in control of the process as long as the deadline is not
|
||||
reached.
|
||||
|
||||
.. image:: upgrade/rr-upgrade-message.png
|
||||
:alt: The upgrade message prompt on the top right of the database
|
||||
|
||||
It is strongly recommended to manually :ref:`test the upgrade first <upgrade/test_your_db>`.
|
||||
Clicking :guilabel:`I want to test first` redirects to `the database manager
|
||||
<https://www.odoo.com/my/databases/>`_, where it is possible to request an upgraded test database
|
||||
and check it for any discrepancies.
|
||||
Concretely, Odoo’s Upgrade Team performs a silent test upgrade of every database that should be
|
||||
upgraded. If the test is successful and lasts less than 20 minutes, you can directly trigger the
|
||||
upgrade from the database. If the test fails, you can test an upgrade using the `database manager
|
||||
<https://www.odoo.com/my/databases>`_.
|
||||
|
||||
It is **not** recommended to click :guilabel:`Upgrade Now` without testing first, as it
|
||||
immediately triggers the live production database upgrade.
|
||||
When you are invited to upgrade, it is strongly recommended to :ref:`request an upgraded test
|
||||
database <upgrade-request-test>` first and spend time :ref:`testing <upgrade-testing>` it.
|
||||
|
||||
If the Rolling Release process detects an issue with the upgrade, it will be deactivated until
|
||||
the issue is resolved.
|
||||
An automatic upgrade to the next version will be triggered if no action is taken before the
|
||||
specified due date.
|
||||
|
||||
An upgrade does not cover:
|
||||
|
||||
@@ -42,43 +64,40 @@ An upgrade does not cover:
|
||||
If your database contains custom modules, it cannot be upgraded until a version of your custom
|
||||
modules is available for the target version of Odoo. For customers maintaining their own custom
|
||||
modules, we recommend to parallelize the process by :ref:`requesting an upgraded database
|
||||
<upgrade/request-test-database>` while also :doc:`upgrading the source code of your custom
|
||||
<upgrade-request-test>` while also :doc:`upgrading the source code of your custom
|
||||
modules </developer/howtos/upgrade_custom_db>`.
|
||||
|
||||
.. _upgrade-nutshell:
|
||||
|
||||
Upgrading in a nutshell
|
||||
-----------------------
|
||||
=======================
|
||||
|
||||
#. Request an upgraded test database (see :ref:`obtaining an upgraded test database
|
||||
<upgrade/request-test-database>`).
|
||||
|
||||
<upgrade-request-test>`).
|
||||
#. If applicable, upgrade the source code of your custom module to be compatible with the new
|
||||
version of Odoo (see :doc:`/developer/howtos/upgrade_custom_db`).
|
||||
|
||||
#. Thoroughly test the upgraded database (see :ref:`testing the new version of the database
|
||||
<upgrade/test_your_db>`).
|
||||
|
||||
#. Report any issue encountered during the testing to Odoo via the `support page
|
||||
<https://odoo.com/help?stage=migration>`__.
|
||||
|
||||
<upgrade-testing>`).
|
||||
#. Report any issue encountered during the testing to Odoo by going to the `Support page and
|
||||
selecting "An issue related to my future upgrade (I am testing an upgrade)"
|
||||
<https://www.odoo.com/help?stage=migration>`_.
|
||||
#. Once all issues are resolved and you are confident that the upgraded database can be used as
|
||||
your main database without any issues, plan the upgrade of your production database.
|
||||
|
||||
#. Request the upgrade for the production database, rendering it unavailable for the time it takes
|
||||
to complete the process (see :ref:`upgrading the production database <upgrade/upgrade-prod>`).
|
||||
to complete the process (see :ref:`upgrading the production database <upgrade-production>`).
|
||||
#. Report any issue encountered during the upgrade to Odoo by going to the `Support page and
|
||||
selecting "An issue related to my upgrade (production)"
|
||||
<https://www.odoo.com/help?stage=post_upgrade>`_.
|
||||
|
||||
#. Report any issue encountered during the upgrade to Odoo via the `support page
|
||||
<https://odoo.com/help?stage=post_upgrade>`__.
|
||||
|
||||
.. _upgrade/request-test-database:
|
||||
.. _upgrade-request-test:
|
||||
|
||||
Obtaining an upgraded test database
|
||||
-----------------------------------
|
||||
===================================
|
||||
|
||||
The `Upgrade page <https://upgrade.odoo.com/>`_ is the main platform for requesting an upgraded
|
||||
The `Upgrade page <https://upgrade.odoo.com>`_ is the main platform for requesting an upgraded
|
||||
database. However, depending on the hosting type, you can upgrade from the command line
|
||||
(on-premise), the `Odoo Online database manager <https://odoo.com/my/databases>`_, or your `Odoo.sh
|
||||
project <https://odoo.sh/project>`_.
|
||||
(on-premise), the Odoo Online `database manager <https://www.odoo.com/my/databases>`_, or your
|
||||
`Odoo.sh project <https://www.odoo.sh/project>`_.
|
||||
|
||||
.. note::
|
||||
The Upgrade platform follows the same `Privacy Policy <https://www.odoo.com/privacy>`_ as the
|
||||
@@ -90,7 +109,7 @@ project <https://odoo.sh/project>`_.
|
||||
.. group-tab:: Odoo Online
|
||||
|
||||
Odoo Online databases can be manually upgraded via the `database manager
|
||||
<https://odoo.com/my/databases>`_.
|
||||
<https://www.odoo.com/my/databases>`_.
|
||||
|
||||
The database manager displays all databases associated with the user's account. Databases
|
||||
not on the most recent version of Odoo display an arrow in a circle icon next to their name,
|
||||
@@ -124,8 +143,7 @@ project <https://odoo.sh/project>`_.
|
||||
.. image:: upgrade/odoo-sh-staging.png
|
||||
:alt: Odoo.sh project and tabs
|
||||
|
||||
The **latest production daily automatic backup** is then sent to the `upgrade platform
|
||||
<https://upgrade.odoo.com>`_.
|
||||
The **latest production daily automatic backup** is then sent to the Upgrade platform.
|
||||
|
||||
Once the upgrade platform is done upgrading the backup and uploading it on the branch, it is
|
||||
put in a **special mode**: each time a **commit is pushed** on the branch, a **restore
|
||||
@@ -151,6 +169,21 @@ project <https://odoo.sh/project>`_.
|
||||
|
||||
$ python <(curl -s https://upgrade.odoo.com/upgrade) test -d <your db name> -t <target version>
|
||||
|
||||
.. note::
|
||||
This command has some requirements on the environment it runs in:
|
||||
|
||||
- Some external commands that must be provided by the operating system, normally found in
|
||||
any Linux distribution (including WSL). An error will be displayed if one or several of
|
||||
them are missing.
|
||||
- The system user that executes the command needs to be configured with access to the
|
||||
database. Please refer to the PostgreSQL documentation of the `client environment
|
||||
<https://www.postgresql.org/docs/current/libpq-envars.html>`_ or the `client password
|
||||
file <https://www.postgresql.org/docs/current/libpq-pgpass.html>`_ for this requirement.
|
||||
- The script needs to be able to reach one or multiple servers of the upgrade platform
|
||||
both on TCP port 443 and to any random TCP port in the range between 32768 and 60999.
|
||||
This can be in conflict with your restrictive firewall and may need an exception added
|
||||
to the firewall configuration.
|
||||
|
||||
The following command can be used to display the general help and the main commands:
|
||||
|
||||
.. code-block:: console
|
||||
@@ -158,7 +191,7 @@ project <https://odoo.sh/project>`_.
|
||||
$ python <(curl -s https://upgrade.odoo.com/upgrade) --help
|
||||
|
||||
An upgraded test database can also be requested via the `Upgrade page
|
||||
<https://upgrade.odoo.com/>`_.
|
||||
<https://upgrade.odoo.com>`_.
|
||||
|
||||
.. important::
|
||||
In databases where custom modules are installed, their source code must be up-to-date with
|
||||
@@ -184,22 +217,20 @@ project <https://odoo.sh/project>`_.
|
||||
.. note::
|
||||
You can request multiple test databases if you wish to test an upgrade more than once.
|
||||
|
||||
.. _upgrade/upgrade_report:
|
||||
|
||||
.. note::
|
||||
When an upgrade request is completed, an upgrade report is attached to the successful upgrade
|
||||
email, and it becomes available in the Discuss app for users who are part of the "Administration
|
||||
/ Settings" group. This report provides important information about the changes introduced by
|
||||
the new version.
|
||||
|
||||
.. _upgrade/test_your_db:
|
||||
.. _upgrade-testing:
|
||||
|
||||
Testing the new version of the database
|
||||
---------------------------------------
|
||||
=======================================
|
||||
|
||||
It is essential to spend some time testing the upgraded test database to ensure that you are not
|
||||
stuck in your day-to-day activities by a change in views, behavior, or an error message once the
|
||||
upgrade goes live.
|
||||
It is essential to test the upgraded test database to ensure that you are not stuck in your
|
||||
day-to-day activities by a change in views, behavior, or an error message once the upgrade goes
|
||||
live.
|
||||
|
||||
.. note::
|
||||
Test databases are neutralized, and some features are disabled to prevent them from impacting the
|
||||
@@ -254,9 +285,10 @@ working correctly and to get more familiar with the new version.
|
||||
This list is **not** exhaustive. Extend the example to your other apps based on your use of Odoo.
|
||||
|
||||
If you face an issue while testing your upgraded test database, you can request the assistance of
|
||||
Odoo via the `support page <https://odoo.com/help?stage=migration>`__ by selecting the option
|
||||
related to testing the upgrade. In any case, it is essential to report any
|
||||
problem encountered during the testing to fix it before upgrading your production database.
|
||||
Odoo by going to the `Support page and selecting "An issue related to my future upgrade (I am
|
||||
testing an upgrade)" <https://www.odoo.com/help?stage=migration>`_. In any case, it is essential to
|
||||
report any problem encountered during the testing to fix it before upgrading your production
|
||||
database.
|
||||
|
||||
You might encounter significant differences with standard views, features, fields, and models during
|
||||
testing. Those changes cannot be reverted on a case-by-case basis. However, if a change introduced
|
||||
@@ -274,40 +306,38 @@ module to make it compatible with the new version of Odoo.
|
||||
- Server actions in the action menu on form views, as well as by selecting multiple records on
|
||||
list views
|
||||
|
||||
.. _upgrade/upgrade-prod:
|
||||
.. _upgrade-production:
|
||||
|
||||
Upgrading the production database
|
||||
---------------------------------
|
||||
=================================
|
||||
|
||||
Once the :ref:`tests <upgrade/test_your_db>` are completed and you are confident that the upgraded
|
||||
database can be used as your main database without any issues, it is time to plan the go-live day. It
|
||||
can be planned in coordination with Odoo's upgrade support analysts, reachable via the `support page
|
||||
<https://odoo.com/help>`__.
|
||||
Once the :ref:`tests <upgrade-testing>` are completed and you are confident that the upgraded
|
||||
database can be used as your main database without any issues, it is time to plan the go-live day.
|
||||
|
||||
Your production database will be unavailable during its upgrade. Therefore, we recommend planning
|
||||
the upgrade at a time when the use of the database is minimal.
|
||||
|
||||
As the standard upgrade scripts and your database are constantly evolving, it is also recommended
|
||||
to frequently request another upgraded test database to ensure that the upgrade process is
|
||||
still successful, especially if it takes a long time to finish. **Fully rehearsing the upgrade
|
||||
process the day before upgrading the production database is also recommended.**
|
||||
to frequently request another upgraded test database to ensure that the upgrade process is still
|
||||
successful, especially if it takes a long time to finish. **Fully rehearsing the upgrade process the
|
||||
day before upgrading the production database is also recommended.**
|
||||
|
||||
.. important::
|
||||
- Going into production without first testing may lead to:
|
||||
Going into production without first testing may lead to:
|
||||
|
||||
- Users failing to adjust to the changes and new features
|
||||
- Business interruptions (e.g., no longer having the possibility to validate an action)
|
||||
- Poor customer experience (e.g., an eCommerce website that does not work correctly)
|
||||
- Users failing to adjust to the changes and new features
|
||||
- Business interruptions (e.g., no longer having the possibility to validate an action)
|
||||
- Poor customer experience (e.g., an eCommerce website that does not work correctly)
|
||||
|
||||
The process of upgrading a production database is similar to upgrading a test database with a few
|
||||
exceptions.
|
||||
The process of upgrading a production database is similar to upgrading a test database, but with a
|
||||
few exceptions.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Odoo Online
|
||||
|
||||
The process is similar to :ref:`obtaining an upgraded test database
|
||||
<upgrade/request-test-database>`, except for the purpose option, which must be set to
|
||||
<upgrade-request-test>`, except for the purpose option, which must be set to
|
||||
:guilabel:`Production` instead of :guilabel:`Test`.
|
||||
|
||||
.. warning::
|
||||
@@ -317,8 +347,8 @@ exceptions.
|
||||
|
||||
.. group-tab:: Odoo.sh
|
||||
|
||||
The process is similar to :ref:`obtaining an upgraded test database
|
||||
<upgrade/request-test-database>` on the :guilabel:`Production` branch.
|
||||
The process is similar to :ref:`obtaining an upgraded test database <upgrade-request-test>` on
|
||||
the :guilabel:`Production` branch.
|
||||
|
||||
.. image:: upgrade/odoo-sh-prod.png
|
||||
:alt: View from the upgrade tab
|
||||
@@ -348,7 +378,8 @@ exceptions.
|
||||
$ python <(curl -s https://upgrade.odoo.com/upgrade) production -d <your db name> -t <target version>
|
||||
|
||||
An upgraded production database can also be requested via the `Upgrade page
|
||||
<https://upgrade.odoo.com/>`_.
|
||||
<https://upgrade.odoo.com>`_.
|
||||
|
||||
Once the database is uploaded, any modification to your production database will **not** be
|
||||
present on your upgraded database. This is why we recommend not using it during the upgrade
|
||||
process.
|
||||
@@ -358,15 +389,14 @@ exceptions.
|
||||
a filestore. Therefore, the upgraded database filestore must be merged with the production
|
||||
filestore before deploying the new version.
|
||||
|
||||
In case of an issue with your production database, you can request the assistance of Odoo via the
|
||||
`support page <https://odoo.com/help?stage=post_upgrade>`__ by selecting the option related to
|
||||
the upgrade in production.
|
||||
In case of an issue with your production database, you can request the assistance of Odoo by going
|
||||
to the `Support page and selecting "An issue related to my future upgrade (I am testing an upgrade)"
|
||||
<https://www.odoo.com/help?stage=migration>`_.
|
||||
|
||||
|
||||
.. _upgrade/sla:
|
||||
.. _upgrade-sla:
|
||||
|
||||
Service-level agreement (SLA)
|
||||
-----------------------------
|
||||
=============================
|
||||
|
||||
With Odoo Enterprise, upgrading a database to the most recent version of Odoo is **free**, including
|
||||
any support required to rectify potential discrepancies in the upgraded database.
|
||||
@@ -375,8 +405,10 @@ Information about the upgrade services included in the Enterprise Licence is ava
|
||||
:ref:`Odoo Enterprise Subscription Agreement <upgrade>`. However, this section clarifies what
|
||||
upgrade services you can expect.
|
||||
|
||||
.. _upgrade-sla-covered:
|
||||
|
||||
Upgrade services covered by the SLA
|
||||
===================================
|
||||
-----------------------------------
|
||||
|
||||
Databases hosted on Odoo's cloud platforms (Odoo Online and Odoo.sh) or self-hosted (On-Premise) can
|
||||
benefit from upgrade services at all times for:
|
||||
@@ -390,8 +422,10 @@ benefit from upgrade services at all times for:
|
||||
Upgrade services are limited to the technical conversion and adaptation of a database (standard
|
||||
modules and data) to make it compatible with the version targeted by the upgrade.
|
||||
|
||||
.. _upgrade-sla-not-covered:
|
||||
|
||||
Upgrade services not covered by the SLA
|
||||
=======================================
|
||||
---------------------------------------
|
||||
|
||||
The following upgrade-related services are **not** included:
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 14 KiB |
@@ -7,5 +7,6 @@ Odoo essentials
|
||||
essentials/activities
|
||||
essentials/reporting
|
||||
essentials/search
|
||||
essentials/contacts
|
||||
essentials/export_import_data
|
||||
essentials/in_app_purchase
|
||||
|
||||
@@ -2,238 +2,344 @@
|
||||
Activities
|
||||
==========
|
||||
|
||||
*Activities* are follow-up tasks tied to a record in an Odoo database. Activities can be scheduled
|
||||
on any page of the database that contains a chatter thread, kanban view, list view, or activities
|
||||
view of an application.
|
||||
.. |clock| replace:: :icon:`fa-clock-o` :guilabel:`(clock)` icon
|
||||
|
||||
*Activities* are follow-up tasks tied to a record in an Odoo database.
|
||||
|
||||
.. _activities/important:
|
||||
|
||||
The icon used to display activities varies, depending on the :ref:`activity type
|
||||
<activities/types>`:
|
||||
|
||||
- :icon:`fa-clock-o` :guilabel:`(clock)` icon: the default activities icon.
|
||||
- :icon:`fa-phone` :guilabel:`(phone)` icon: a phone call is scheduled.
|
||||
- :icon:`fa-envelope` :guilabel:`(envelope)` icon: an email is scheduled.
|
||||
- :icon:`fa-check` :guilabel:`(check)` icon: a "to-do" is scheduled.
|
||||
- :icon:`fa-users` :guilabel:`(people)` icon: a meeting is scheduled.
|
||||
- :icon:`fa-upload` :guilabel:`(upload)` icon: a document is scheduled to be uploaded.
|
||||
- :icon:`fa-pencil-square-o` :guilabel:`(request signature)` icon: a signature request is scheduled.
|
||||
|
||||
Schedule activities
|
||||
===================
|
||||
|
||||
One way that activities are created is by clicking the :guilabel:`Schedule Activity` button, located
|
||||
at the top of the *chatter* on any record. On the pop-up window that appears, select an
|
||||
:guilabel:`Activity Type` from the drop-down menu.
|
||||
Activities can be scheduled on any page of the database that contains a :ref:`chatter
|
||||
<activities/chatter>` thread, :ref:`Kanban view <activities/kanban>`, :ref:`list view
|
||||
<activities/list>`, or :ref:`activities view <activities/activity>` of an application.
|
||||
|
||||
.. _activities/chatter:
|
||||
|
||||
Chatter
|
||||
-------
|
||||
|
||||
Activities can be created from the chatter on any record.
|
||||
|
||||
To schedule a new activity, click the :guilabel:`Activities` button, located at the top of the
|
||||
chatter. In the :guilabel:`Schedule Activity` pop-up window that appears, :ref:`fill out the
|
||||
Schedule Activity form <activities/form>`.
|
||||
|
||||
.. image:: activities/chatter.png
|
||||
:align: center
|
||||
:alt: New activity type form.
|
||||
|
||||
.. _activities/kanban:
|
||||
|
||||
Kanban view
|
||||
-----------
|
||||
|
||||
Activities can also be created from the :icon:`oi-view-kanban` :guilabel:`(Kanban)` view.
|
||||
|
||||
To do so, click on the |clock| located at the bottom of an individual record.
|
||||
|
||||
Click :guilabel:`+ Schedule An Activity`, then proceed to :ref:`fill out the Schedule Activity form
|
||||
<activities/form>`.
|
||||
|
||||
.. image:: activities/schedule-kanban-activity.png
|
||||
:align: center
|
||||
:alt: Kanban view of the CRM pipeline and the option to schedule an activity.
|
||||
|
||||
.. note::
|
||||
If a record already has a scheduled activity, the |clock| is replaced by the icon that represents
|
||||
the existing scheduled activity. Click on the activity type's icon to schedule another activity.
|
||||
|
||||
.. _activities/list:
|
||||
|
||||
List view
|
||||
---------
|
||||
|
||||
Activities can also be created from a :icon:`oi-view-list` :guilabel:`(list)` view.
|
||||
|
||||
If the :guilabel:`Activities` column is hidden, reveal it using the :icon:`oi-settings-adjust`
|
||||
:guilabel:`(settings adjust)` icon in the far-right of the top row.
|
||||
|
||||
Then, click on the |clock| for the record the activity is being added to, and click :guilabel:`+
|
||||
Schedule an activity`. Proceed to :ref:`fill out the Schedule Activity form <activities/form>` that
|
||||
appears.
|
||||
|
||||
.. note::
|
||||
If a record already has a scheduled activity, the |clock| is replaced by the icon that represents
|
||||
the existing scheduled activity. Click on the activity type's icon to schedule another activity.
|
||||
|
||||
.. image:: activities/schedule-list-activity.png
|
||||
:align: center
|
||||
:alt: List view of the CRM pipeline and the option to schedule an activity.
|
||||
|
||||
.. _activities/activity:
|
||||
|
||||
Activity view
|
||||
-------------
|
||||
|
||||
Most applications in Odoo have an *Activity* view available. If available, a |clock| is visible in
|
||||
the top-right corner of the main menu bar, amongst the other view option icons.
|
||||
|
||||
To open the activity view, click the |clock|.
|
||||
|
||||
.. image:: activities/activities.png
|
||||
:align: center
|
||||
:alt: Top-right menu with the Activities icon called out.
|
||||
|
||||
In this view, all the available activities are listed in the columns, while the horizontal entries
|
||||
represent all the individual records.
|
||||
|
||||
Activities that appear green have a due date in the future, activities that appear orange are due
|
||||
today, while activities appearing red are overdue.
|
||||
|
||||
Color bars in each column represent records for specific activity types, and display a number
|
||||
indicating how many activities are scheduled for that type.
|
||||
|
||||
If multiple activity types are scheduled for a record, a number appears in the box, indicating the
|
||||
total number of scheduled activities.
|
||||
|
||||
.. note::
|
||||
Activity colors, and their relation to an activity's due date, are consistent throughout Odoo,
|
||||
regardless of the activity type, or the view.
|
||||
|
||||
To schedule an activity for a record, hover over the corresponding field. Click the :icon:`fa-plus`
|
||||
:guilabel:`(plus)` icon that appears, and then :ref:`fill out the Schedule Activity form
|
||||
<activities/form>`.
|
||||
|
||||
.. image:: activities/activity-view.png
|
||||
:align: center
|
||||
:alt: Activity view of the CRM pipeline and the option to schedule an activity.
|
||||
|
||||
.. _activities/form:
|
||||
|
||||
Schedule Activity form
|
||||
----------------------
|
||||
|
||||
Activities can be scheduled from many different places, such as from the :ref:`chatter
|
||||
<activities/chatter>` of a record, or from one of multiple views in an application, when available:
|
||||
the :ref:`Kanban view <activities/kanban>`, :ref:`list view <activities/list>`, or :ref:`activity
|
||||
view <activities/activity>`.
|
||||
|
||||
Enter the following information on the form:
|
||||
|
||||
- :guilabel:`Activity Type`: select the type of activity from the drop-down menu. The default
|
||||
options are: :guilabel:`Email`, :guilabel:`Call`, :guilabel:`Meeting`, or :guilabel:`To-Do`.
|
||||
Depending on what other applications are installed, additional options may be available.
|
||||
- :guilabel:`Summary`: enter a short title for the activity, such as `Discuss Proposal`.
|
||||
- :guilabel:`Due Date`: using the calendar popover, select the activity's deadline.
|
||||
- :guilabel:`Assigned to`: by default, the current user populates this field. To assign a different
|
||||
user to the activity, select them from the drop-down menu.
|
||||
- :guilabel:`Notes`: add any additional information for the activity in this field.
|
||||
|
||||
When the :guilabel:`Schedule Activity` pop-up window is completed, click one of the following
|
||||
buttons:
|
||||
|
||||
- :guilabel:`Open Calendar`: opens the user's calendar to add and schedule the activity.
|
||||
|
||||
Click on the desired date and time for the activity, and a :guilabel:`New Event` pop-up window
|
||||
appears. The summary from the *Schedule Activity* pop-up window populates the :guilabel:`Title`
|
||||
field.
|
||||
|
||||
Enter the information in the :guilabel:`New Event` pop-up window, then click :guilabel:`Save &
|
||||
Close` to schedule it. Once scheduled, the activity is added to the chatter under the
|
||||
:guilabel:`Planned Activities` section.
|
||||
|
||||
.. important::
|
||||
The :guilabel:`Open Calendar` button **only** appears if the :guilabel:`Activity Type` is set
|
||||
to either :guilabel:`Call` or :guilabel:`Meeting`.
|
||||
|
||||
- :guilabel:`Schedule`: schedules the activity, and adds the activity to the chatter under
|
||||
:guilabel:`Planned Activities`.
|
||||
- :guilabel:`Schedule & Mark as Done`: adds the details of the activity to the chatter under
|
||||
:guilabel:`Today`. The activity is not scheduled, and is automatically marked as done.
|
||||
- :guilabel:`Done & Schedule Next`: adds the details of the activity to the chatter under
|
||||
:guilabel:`Today`. The activity is not scheduled, is automatically marked as done, and a new
|
||||
:guilabel:`Schedule Activity` pop-up window appears.
|
||||
- :guilabel:`Cancel`: discards any changes made on the :guilabel:`Schedule Activity` pop-up window.
|
||||
|
||||
.. image:: activities/schedule-pop-up.png
|
||||
:align: center
|
||||
:alt: View of CRM leads and the option to schedule an activity.
|
||||
|
||||
.. _activities/all:
|
||||
|
||||
All scheduled activities
|
||||
========================
|
||||
|
||||
To view a consolidated list of activities, organized by application, click the |clock| in the header
|
||||
menu, located in the top-right corner.
|
||||
|
||||
If any activities are scheduled, the number of activities appear in a red bubble on the
|
||||
|clock|.
|
||||
|
||||
All activities for each application are further divided into subsections, indicating where in the
|
||||
application the activity is to be completed. Each sub-section lists the number of scheduled
|
||||
activities that are :guilabel:`Late`, due :guilabel:`Today`, and scheduled in the
|
||||
:guilabel:`Future`.
|
||||
|
||||
.. example::
|
||||
In the *Time Off* application, one activity is scheduled to be done in the *All Time Off*
|
||||
requests dashboard, and six activities are scheduled to be done in the *Allocations* dashboard.
|
||||
|
||||
These requests appear in two separate lists in the all activities drop-down menu: one labeled
|
||||
`Time Off` and one labeled `Time Off Allocation`.
|
||||
|
||||
.. image:: activities/activities-menu.png
|
||||
:align: center
|
||||
:alt: The list of activities that is accessed from the main menu bar. Two entries for the Time
|
||||
Off application are highlighted.
|
||||
|
||||
Request a document
|
||||
------------------
|
||||
|
||||
The option to :guilabel:`Request a Document` is available at the bottom of the list of :ref:`all
|
||||
scheduled activities <activities/all>`, the option to :guilabel:`Request a Document` appears. Click
|
||||
:guilabel:`Request a Document`, and a :guilabel:`Request a file` pop-up window appears.
|
||||
|
||||
Enter the following information on the form:
|
||||
|
||||
- :guilabel:`Document Name`: enter a name for the document being requested.
|
||||
- :guilabel:`Request To`: select the user the document is being requested from using the drop-down
|
||||
menu.
|
||||
- :guilabel:`Due Date In`: enter a numerical value indicating when the document is due. Next to
|
||||
this field, a :guilabel:`Days` field is visible. Click :guilabel:`Days`, the default option, to
|
||||
reveal a drop-down menu. Select the desired time-frame option from the list. The options are
|
||||
:guilabel:`Days`, :guilabel:`Weeks`, or :guilabel:`Months`.
|
||||
- :guilabel:`Workspace`: using the drop-down menu, select the specific :ref:`Workspace
|
||||
<documents/workspaces>` the document is being uploaded to.
|
||||
- :guilabel:`Tags`: select any desired tags from the drop-down menu. The available tags displayed
|
||||
are based on the tags configured for the selected :guilabel:`Workspace`.
|
||||
- :guilabel:`Message`: enter a message to clarify the document request in this field.
|
||||
|
||||
When all the fields are completed, click :guilabel:`Request` to send the document request.
|
||||
|
||||
.. image:: activities/request-doc.png
|
||||
:align: center
|
||||
:alt: The Request a file form, with all fields filled out to request a contract.
|
||||
|
||||
.. _activities/types:
|
||||
|
||||
Activity types
|
||||
==============
|
||||
|
||||
To view the currently configured types of activities in the database, navigate to
|
||||
:menuselection:`Settings app --> Discuss section --> Activities setting --> Activity Types`.
|
||||
|
||||
.. image:: activities/settings-activities-types.png
|
||||
:align: center
|
||||
:alt: Activity Types button in the Settings application under the Discuss section.
|
||||
|
||||
Doing so reveals the :guilabel:`Activity Types` page, where the existing activity types are found.
|
||||
|
||||
.. tip::
|
||||
Individual applications have a list of *Activity Types* dedicated to that application. For
|
||||
example, to view and edit the activities available for the *CRM* application, go to
|
||||
:menuselection:`CRM app --> Configuration --> Activity Types`.
|
||||
|
||||
Enter a title for the activity in the :guilabel:`Summary` field, located in the :guilabel:`Schedule
|
||||
Activity` pop-up window.
|
||||
.. image:: activities/activity-list.png
|
||||
:align: center
|
||||
:alt: The list of activity types already configured and available.
|
||||
|
||||
To assign the activity to a different user, select a name from the :guilabel:`Assigned to` drop-down
|
||||
menu. Otherwise, the user creating the activity is automatically assigned.
|
||||
Edit activity types
|
||||
-------------------
|
||||
|
||||
Lastly, feel free to add any additional information in the optional :guilabel:`Log a note...` field.
|
||||
To edit an existing :ref:`activity type <activities/types>`, click on the activity type, and the
|
||||
activity type form loads.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`Due Date` field on the :guilabel:`Schedule Activity` pop-up window auto-populates
|
||||
based on the configuration settings for the selected :guilabel:`Activity Type`. However, this
|
||||
date can be changed by selecting a day on the calendar in the :guilabel:`Due Date` field.
|
||||
Make any desired changes to the activity type form. The form automatically saves, but it can be
|
||||
saved manually at any time by clicking the :guilabel:`Save Manually` option, represented by a
|
||||
:icon:`fa-cloud-upload` :guilabel:`(cloud upload)` icon, located in the top-left corner of the page.
|
||||
|
||||
Lastly, click one of the following buttons:
|
||||
Create new activity types
|
||||
-------------------------
|
||||
|
||||
- :guilabel:`Schedule`: adds the activity to the chatter under :guilabel:`Planned activities`.
|
||||
- :guilabel:`Mark as Done`: adds the details of the activity to the chatter under :guilabel:`Today`.
|
||||
The activity is not scheduled, it is automatically marked as completed.
|
||||
- :guilabel:`Done \& Schedule Next`: adds the task under :guilabel:`Today` marked as done, and
|
||||
opens a new activity window.
|
||||
- :guilabel:`Discard`: discards any changes made on the pop-up window.
|
||||
To create a new :ref:`activity type <activities/types>`, click :guilabel:`New` from the
|
||||
:guilabel:`Activity Types` page, and a blank activity type form loads.
|
||||
|
||||
.. image:: activities/schedule-pop-up.png
|
||||
:alt: View of CRM leads and the option to schedule an activity.
|
||||
Enter a :guilabel:`Name` for the activity type at the top of the form, then enter the following
|
||||
information on the form.
|
||||
|
||||
.. note::
|
||||
Depending on the activity type, the :guilabel:`Schedule` button may be replaced by a
|
||||
:guilabel:`Save` button, or an :guilabel:`Open Calendar` button.
|
||||
Activity Settings section
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Scheduled activities are added to the chatter for the record under :guilabel:`Planned activities`.
|
||||
- :guilabel:`Action`: using the drop-down menu, select an action associated with this new activity
|
||||
type. Some actions trigger specific behaviors after an activity is scheduled, such as:
|
||||
|
||||
.. image:: activities/chatter-activities.png
|
||||
:alt: View of CRM leads and the option to schedule an activity.
|
||||
- :guilabel:`Upload Document`: if selected, a link to upload a document is automatically added to
|
||||
the planned activity in the chatter.
|
||||
- :guilabel:`Call` or :guilabel:`Meeting`: if selected, users have the option to open their
|
||||
calendar to select a date and time for the activity.
|
||||
- :guilabel:`Request Signature`: if selected, a link to open a signature request pop-up window is
|
||||
automatically added to the planned activity in the chatter. This requires the Odoo *Sign*
|
||||
application to be installed.
|
||||
|
||||
Activities can also be scheduled from the kanban, list, or activities view of an application.
|
||||
.. note::
|
||||
Available activity types vary based on the installed applications in the database.
|
||||
|
||||
.. tabs::
|
||||
- :guilabel:`Folder`: select a specific :ref:`workspace <documents/workspaces>` folder to save a
|
||||
document to. This field **only** appears if :guilabel:`Upload Document` is selected for the
|
||||
:guilabel:`Action`.
|
||||
|
||||
.. tab:: Kanban view
|
||||
Using the drop-down menu, select the :guilabel:`Folder` the document is saved to.
|
||||
|
||||
Select a record on which to schedule an activity. Click on the :guilabel:`🕘 (clock)` icon,
|
||||
then :guilabel:`Schedule An Activity`, and proceed to fill out the pop-up form.
|
||||
- :guilabel:`Default User`: select a user from the drop-down menu to automatically assign this
|
||||
activity to the selected user when this activity type is scheduled. If this field is left blank,
|
||||
the activity is assigned to the user who creates the activity.
|
||||
- :guilabel:`Default Summary`: enter a note to include whenever this activity type is created.
|
||||
|
||||
.. image:: activities/schedule-kanban-activity.png
|
||||
:alt: Kanban view of the CRM pipeline and the option to schedule an activity.
|
||||
.. note::
|
||||
The information in the :guilabel:`Default User` and :guilabel:`Default Summary` fields are
|
||||
included when an activity is created. However, they can be altered before the activity is
|
||||
scheduled or saved.
|
||||
|
||||
.. tab:: List view
|
||||
- :guilabel:`Keep Done`: tick this checkbox to keep activities that have been marked as `Done`
|
||||
visible in the :ref:`activity view <activities/activity>`.
|
||||
- :guilabel:`Default Note`: enter any notes to appear with the activity.
|
||||
|
||||
Select a record on which to schedule an activity. Click on the :guilabel:`🕘 (clock)` icon,
|
||||
then :guilabel:`Schedule An Activity`. If the record already has an activity scheduled, the
|
||||
clock icon may be replaced by a :guilabel:`📞 (phone)` or an :guilabel:`✉️ (envelope)` icon.
|
||||
|
||||
.. image:: activities/schedule-list-activity.png
|
||||
:alt: List view of the CRM pipeline and the option to schedule an activity.
|
||||
|
||||
.. tab:: Activity view
|
||||
|
||||
To open the activity view for an application, select the :guilabel:`🕘 (clock)` icon from the
|
||||
menu bar anywhere in the database. Select any application from the drop-down menu, and click
|
||||
the :guilabel:`🕘 (clock)` icon for the desired app.
|
||||
|
||||
.. image:: activities/schedule-activity-view-menu.png
|
||||
:alt: Activity menu drop down with focus on where to open activity view for CRM.
|
||||
|
||||
Select a record on which to schedule an activity. Move across the row to find the desired
|
||||
activity type, then click the :guilabel:`+ (plus sign)`.
|
||||
|
||||
.. image:: activities/schedule-activity-view.png
|
||||
:alt: Activity view of the CRM pipeline and the option to schedule an activity.
|
||||
|
||||
.. note::
|
||||
Activity colors, and their relation to an activity's due date, is consistent throughout Odoo,
|
||||
regardless of the activity type, or the view.
|
||||
|
||||
- Activities that appear in **green** indicate a due date sometime in the future.
|
||||
- **Yellow** indicates that the activity's due date is today.
|
||||
- **Red** indicates that the activity is overdue and the due date has passed.
|
||||
|
||||
For example, if an activity is created for a phone call, and the due date passes, the activity
|
||||
appears with a red phone in list view, and a red clock on the kanban view.
|
||||
|
||||
View scheduled activities
|
||||
=========================
|
||||
|
||||
To view scheduled activities, open either the :menuselection:`Sales app` or :menuselection:`CRM app`
|
||||
and click the :guilabel:`🕘 (clock)` icon, located to the far-right side of the other view options.
|
||||
|
||||
Doing so opens the activities menu, showcasing all the scheduled activities for the user, by
|
||||
default. To show all activities for every user, remove the :guilabel:`My Pipeline` filter from the
|
||||
:guilabel:`Search...` bar.
|
||||
|
||||
To view a consolidated list of activities separated by the application where they were created, and
|
||||
by deadline, click the :guilabel:`🕘 (clock)` icon on the header menu to see the activities for that
|
||||
specific application in a drop-down menu.
|
||||
|
||||
The possibility to :guilabel:`Add new note` and :guilabel:`Request a Document` appear at the bottom
|
||||
of this drop-down menu, when the :guilabel:`🕘 (clock)` icon on the header menu is clicked.
|
||||
|
||||
.. image:: activities/activities-menu.png
|
||||
:alt: View of CRM leads page emphasizing the activities menu.
|
||||
|
||||
Configure activity types
|
||||
========================
|
||||
|
||||
To configure the types of activities in the database, go to :menuselection:`Settings app --> Discuss
|
||||
--> Activities --> Activity Types`.
|
||||
|
||||
.. image:: activities/settings-activities-types.png
|
||||
:alt: View of the settings page emphasizing the menu activity types.
|
||||
|
||||
Doing so reveals the :guilabel:`Activity Types` page, where the existing activity types are found.
|
||||
|
||||
To edit an existing activity type, select it from the list, then click :guilabel:`Edit`. To create a
|
||||
new activity type, click :guilabel:`Create`.
|
||||
|
||||
At the top of a blank activity type form, start by choosing a :guilabel:`Name` for the new activity
|
||||
type.
|
||||
|
||||
.. image:: activities/new-activity-type.png
|
||||
:alt: New activity type form.
|
||||
|
||||
Activity settings
|
||||
-----------------
|
||||
|
||||
Action
|
||||
~~~~~~
|
||||
|
||||
The *Action* field specifies the intent of the activity. Some actions trigger specific behaviors
|
||||
after an activity is scheduled.
|
||||
|
||||
- If :guilabel:`Upload Document` is selected, a link to upload a document is added directly to the
|
||||
planned activity in the chatter.
|
||||
- If either :guilabel:`Phonecall` or :guilabel:`Meeting` are selected, users have the option to open
|
||||
their calendar to schedule a time for this activity.
|
||||
- If :guilabel:`Request Signature` is selected, a link is added to the planned activity in the
|
||||
chatter that opens a signature request pop-up window.
|
||||
|
||||
.. note::
|
||||
The actions available to select on an activity type vary, depending on the applications currently
|
||||
installed in the database.
|
||||
|
||||
Default user
|
||||
~~~~~~~~~~~~
|
||||
|
||||
To automatically assign this activity to a specific user when this activity type is scheduled,
|
||||
choose a name from the :guilabel:`Default User` drop-down menu. If this field is left blank, the
|
||||
activity is assigned to the user who creates the activity.
|
||||
|
||||
Default summary
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
To include notes whenever this activity type is created, enter them into the :guilabel:`Default
|
||||
Summary` field.
|
||||
|
||||
.. note::
|
||||
The information in the :guilabel:`Default User` and :guilabel:`Default Summary` fields are
|
||||
included when an activity is created. However, they can be altered before the activity is
|
||||
scheduled or saved.
|
||||
|
||||
Next activity
|
||||
-------------
|
||||
|
||||
To automatically suggest, or trigger, a new activity after an activity has been marked complete, the
|
||||
:guilabel:`Chaining Type` must be set.
|
||||
|
||||
Suggest next activity
|
||||
Next Activity section
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
In the :guilabel:`Chaining Type` field, select :guilabel:`Suggest Next Activity`. Upon doing so, the
|
||||
field underneath changes to: :guilabel:`Suggest`. Click the :guilabel:`Suggest` field drop-down menu
|
||||
to select any activities to recommend as follow-up tasks to this activity type.
|
||||
It is possible to have another activity either suggested or triggered. To do so, configure the
|
||||
:guilabel:`Next Activity` section.
|
||||
|
||||
In the :guilabel:`Schedule` field, choose a default deadline for these activities. To do so,
|
||||
configure a desired number of :guilabel:`Days`, :guilabel:`Weeks`, or :guilabel:`Months`. Then,
|
||||
decide if it should occur :guilabel:`after completion date` or :guilabel:`after previous activity
|
||||
deadline`.
|
||||
- :guilabel:`Chaining Type`: select either :guilabel:`Suggest Next Activity` or :guilabel:`Trigger
|
||||
Next Activity` from the drop-down menu. Depending on the selected option, either the
|
||||
:guilabel:`Suggest` or :guilabel:`Trigger` field is displayed.
|
||||
|
||||
This :guilabel:`Schedule` field information can be altered before the activity is scheduled.
|
||||
.. note::
|
||||
The :guilabel:`Chaining Type` field does **not** appear if :guilabel:`Upload Document` is
|
||||
selected for the :guilabel:`Action`.
|
||||
|
||||
When all configurations are complete, click :guilabel:`Save`.
|
||||
- :guilabel:`Suggest/Trigger`: depending on what is selected for the :guilabel:`Chaining Type`, this
|
||||
field either displays :guilabel:`Suggest` or :guilabel:`Trigger`. Using the drop-down menu, select
|
||||
the activity to recommend or schedule as a follow-up task to the activity type.
|
||||
- :guilabel:`Schedule`: configure when the next activity is suggested or triggered.
|
||||
|
||||
.. image:: activities/schedule-recommended-activity.png
|
||||
:alt: Schedule activity popup with emphasis on recommended activities.
|
||||
First, enter a numerical value indicating when the activity is suggested or triggered.
|
||||
|
||||
.. note::
|
||||
If an activity has the :guilabel:`Chaining Type` set to :guilabel:`Suggest Next Activity`, and
|
||||
has activities listed in the :guilabel:`Suggest` field, users are presented with recommendations
|
||||
for activities as next steps.
|
||||
Next to this field, a :guilabel:`Days` field is visible. Click :guilabel:`Days`, the default
|
||||
option, to reveal a drop-down menu. Select the desired time-frame option from the list. The
|
||||
options are :guilabel:`Days`, :guilabel:`Weeks`, or :guilabel:`Months`.
|
||||
|
||||
Trigger next activity
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
Lastly, using the drop-down menu, select whether the activity is scheduled or triggered either
|
||||
:guilabel:`after previous activity deadline` or :guilabel:`after completion date`.
|
||||
|
||||
Setting the :guilabel:`Chaining Type` to :guilabel:`Trigger Next Activity` immediately launches the
|
||||
next activity once the previous one is completed.
|
||||
|
||||
If :guilabel:`Trigger Next Activity` is selected in the :guilabel:`Chaining Type` field, the field
|
||||
beneath changes to: :guilabel:`Trigger`. From the :guilabel:`Trigger` field drop-down menu, select
|
||||
the activity that should be launched once this activity is completed.
|
||||
|
||||
In the :guilabel:`Schedule` field, choose a default deadline for these activities. To do so,
|
||||
configure a desired number of :guilabel:`Days`, :guilabel:`Weeks`, or :guilabel:`Months`. Then,
|
||||
decide if it should occur :guilabel:`after completion date` or :guilabel:`after previous activity
|
||||
deadline`.
|
||||
|
||||
This :guilabel:`Schedule` field information can be altered before the activity is scheduled.
|
||||
|
||||
When all configurations are complete, click :guilabel:`Save`.
|
||||
|
||||
.. image:: activities/triggered-activities.png
|
||||
:alt: Schedule new activity popup with emphasis on Done and launch next button.
|
||||
|
||||
.. note::
|
||||
When an activity has the :guilabel:`Chaining Type` set to :guilabel:`Trigger Next Activity`,
|
||||
marking the activity as `Done` immediately launches the next activity listed in the
|
||||
:guilabel:`Trigger` field.
|
||||
.. image:: activities/new-activity.png
|
||||
:align: center
|
||||
:alt: A new Activity form with all the fields filled out.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/productivity/discuss`
|
||||
- :doc:`/applications/productivity/discuss/team_communication`
|
||||
- :doc:`../productivity/discuss`
|
||||
- :doc:`../productivity/discuss/team_communication`
|
||||
- :doc:`../sales/crm/optimize/utilize_activities`
|
||||
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 5.6 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 9.5 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,263 @@
|
||||
:show-content:
|
||||
|
||||
========
|
||||
Contacts
|
||||
========
|
||||
|
||||
The *Contacts* application comes installed on all Odoo databases. Contacts are created for customers
|
||||
the company does business with through Odoo. A contact is a repository of vital business
|
||||
information, facilitating communication and business transactions.
|
||||
|
||||
Contact form
|
||||
============
|
||||
|
||||
To create a new contact, navigate to the :menuselection:`Contacts app`, and click
|
||||
:guilabel:`Create`. A new form appears where various contact information can be added.
|
||||
|
||||
Contact type
|
||||
------------
|
||||
|
||||
Odoo allows for both :guilabel:`Individual` and :guilabel:`Company` contacts. Select either
|
||||
:guilabel:`Individual` or :guilabel:`Company`, depending on the type of contact that is being added.
|
||||
|
||||
Name
|
||||
----
|
||||
|
||||
First, fill in the name of the :guilabel:`Individual` or :guilabel:`Company`. This is how the name
|
||||
appears throughout the database. This field is **mandatory**.
|
||||
|
||||
.. tip::
|
||||
:guilabel:`Individual` contacts can have a :guilabel:`Company` contact linked to it. After
|
||||
selecting :guilabel:`Individual`, a new :guilabel:`Company Name...` field appears below the
|
||||
first name field.
|
||||
|
||||
Address
|
||||
-------
|
||||
|
||||
Next, enter the :guilabel:`Address` of the :guilabel:`Company` or :guilabel:`Individual`.
|
||||
|
||||
.. tip::
|
||||
If the :guilabel:`Individual` option is chosen, then the *type of address* can be chosen from a
|
||||
drop-down menu. Options for this drop-down menu include: :guilabel:`Contact`, :guilabel:`Invoice
|
||||
Address`, :guilabel:`Delivery Address`, :guilabel:`Other Address`, and :guilabel:`Private
|
||||
Address`.
|
||||
|
||||
Additional fields
|
||||
-----------------
|
||||
|
||||
Additional details are included on the initial form. The following fields are available:
|
||||
|
||||
- :guilabel:`VAT`: Value Added Tax number.
|
||||
- :guilabel:`Citizen Identification`: citizen or government identification number (only available
|
||||
on :guilabel:`Individual`).
|
||||
- :guilabel:`Job Position`: list the job position of the :guilabel:`Individual` (only available on
|
||||
:guilabel:`Individual`).
|
||||
- :guilabel:`Phone`: list phone number (with country code). Make a call, send an SMS, or WhatsApp
|
||||
message by hovering over the field on the saved form, and clicking the desired option.
|
||||
- :guilabel:`Mobile`: list mobile phone number (with country code). Make a call, send an SMS, or
|
||||
WhatsApp message by hovering over the field on the saved form, and clicking on the desired option.
|
||||
- :guilabel:`Email`: enter the email address with the domain.
|
||||
- :guilabel:`Website`: enter the full website address, starting with `http` or `https`.
|
||||
- :guilabel:`Title`: select :guilabel:`Doctor`, :guilabel:`Madam`, :guilabel:`Miss`,
|
||||
:guilabel:`Mister`, :guilabel:`Professor`, or create a new one directly from this field.
|
||||
- :guilabel:`Tags`: enter preconfigured tags by typing them in the field, or clicking the drop-down
|
||||
menu, and selecting one. To create a new one, type the new tag in the field, and click
|
||||
:guilabel:`Create` from the resulting drop-down menu.
|
||||
|
||||
Contacts & Addresses tab
|
||||
------------------------
|
||||
|
||||
At the bottom of the contact form are several tabs. On the :guilabel:`Contacts & Addresses` tab,
|
||||
contacts can be added that are associated with a :guilabel:`Company` and related addresses. For
|
||||
example, a specific contact person for the company can be listed here.
|
||||
|
||||
Multiple addresses can be added on both :guilabel:`Individual` and :guilabel:`Company` contacts. To
|
||||
do so, click :guilabel:`Add` in the :guilabel:`Contacts & Addresses` tab. Doing so reveals a
|
||||
:guilabel:`Create Contact` pop-up form, in which additional addresses can be configured.
|
||||
|
||||
.. image:: contacts/contact-form-add-address.png
|
||||
:align: center
|
||||
:alt: Add a contact/address to the contact form.
|
||||
|
||||
On the :guilabel:`Create Contact` pop-up form, start by clicking the default :guilabel:`Other
|
||||
Address` field at the top to reveal a drop-down menu of address-related options.
|
||||
|
||||
Select any of the following options:
|
||||
|
||||
- :guilabel:`Contact`: adds another contact to the existing contact form.
|
||||
- :guilabel:`Invoice Address`: adds a specific invoice address to the existing contact form.
|
||||
- :guilabel:`Delivery Address`: adds a specific delivery address to the existing contact form.
|
||||
- :guilabel:`Other Address`: adds an alternate address to the existing contact form.
|
||||
- :guilabel:`Private Address`: adds a private address to the existing contact form.
|
||||
|
||||
.. image:: contacts/create-contact-window.png
|
||||
:align: center
|
||||
:alt: Create a new contact/address on a contact form.
|
||||
|
||||
Once an option is selected, enter the corresponding contact information that should be used for the
|
||||
specified address type.
|
||||
|
||||
Add the :guilabel:`Contact Name`, :guilabel:`Address`, :guilabel:`Email`, along with the
|
||||
:guilabel:`Phone` and/or :guilabel:`Mobile` numbers below.
|
||||
|
||||
Set the :guilabel:`Job Position`, which appears if the :guilabel:`Contact` address type has been
|
||||
selected. This is similar to the :guilabel:`Individual` contact.
|
||||
|
||||
To add a note, click on the text field next to :guilabel:`Notes`, and write anything that is
|
||||
applicable to the customer or contact.
|
||||
|
||||
Then, click :guilabel:`Save & Close` to save the address, and close the :guilabel:`Create Contact`
|
||||
window. Or, click :guilabel:`Save & New` to save the address, and immediately input another one.
|
||||
|
||||
Sales & Purchase tab
|
||||
--------------------
|
||||
|
||||
Next, is the :guilabel:`Sales & Purchases` tab, which only appears when the *Sales*, *Purchase*,
|
||||
**or** *Point of Sale* applications are installed.
|
||||
|
||||
The :guilabel:`Fiscal Position` can be set on the :guilabel:`Sales & Purchases` tab. Select a
|
||||
:guilabel:`Fiscal Position` from the drop-down menu.
|
||||
|
||||
Sales section
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Under the :guilabel:`Sales` heading, a specific :guilabel:`Salesperson` can be assigned to a
|
||||
contact. To do that, click the :guilabel:`Salesperson` drop-down field, and select one. Create a new
|
||||
:guilabel:`Salesperson` by typing the user's name, and making the appropriate selection.
|
||||
|
||||
Certain :guilabel:`Payment Terms`, or a certain :guilabel:`Pricelist`, can also be set, if needed.
|
||||
Click the drop-down menu next to :guilabel:`Payment Terms`, and change it to one of the preselected
|
||||
:guilabel:`Payment Terms`, or :guilabel:`Create` a new one. Select the :guilabel:`Pricelist`
|
||||
drop-down menu to choose the appropriate :guilabel:`Pricelist`.
|
||||
|
||||
Click into the :guilabel:`Delivery Method` field to select an option from the drop-down menu.
|
||||
|
||||
Point Of Sale section
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Under the :guilabel:`Point Of Sale` heading, enter a :guilabel:`Barcode` that can be used to
|
||||
identify the contact. Use the :guilabel:`Loyalty Points` field to track points the user won as part
|
||||
of a *Loyalty Program*.
|
||||
|
||||
Purchase section
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
Specify :guilabel:`Payment Terms`, :guilabel:`1099 Box` information, and a preferred
|
||||
:guilabel:`Payment Method` here. A :guilabel:`Receipt Reminder` can be set here, as well.
|
||||
|
||||
Misc section
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Under the :guilabel:`Misc.` heading, use :guilabel:`Reference` field to add any additional
|
||||
information for this contact. If this contact should only be accessible for one company in a
|
||||
multi-company database, select it from the :guilabel:`Company` field drop-down list. Use the
|
||||
:guilabel:`Website` drop-down menu to restrict the publishing of this contact to one website (if
|
||||
working on a database with multiple websites). Select one or more :guilabel:`Website Tags` to assist
|
||||
in filtering published customers on the `/customers` website page. Select an :guilabel:`Industry`
|
||||
for this contact from the drop-down menu. Use the :guilabel:`SLA Policies` field to assign a
|
||||
*Helpdesk* SLA policy to this contact.
|
||||
|
||||
Accounting tab
|
||||
--------------
|
||||
|
||||
The :guilabel:`Accounting` tab appears when the *Accounting* application is installed. Here, a user
|
||||
can add any related :guilabel:`Bank Accounts`, or set default :guilabel:`Accounting entries`.
|
||||
|
||||
Under the :guilabel:`Miscellaneous` heading, use the :guilabel:`LEI` field to enter a Legal Entity
|
||||
Identifier, if necessary.
|
||||
|
||||
Internal Notes tab
|
||||
------------------
|
||||
|
||||
Following the :guilabel:`Accounting` tab is the :guilabel:`Internal Notes` tab, where notes can be
|
||||
left on this contact form, just like on the contact form noted above.
|
||||
|
||||
Partner Assignment tab
|
||||
----------------------
|
||||
|
||||
Next is the :guilabel:`Partner Assignment` tab, which by default, includes a :guilabel:`Geolocation`
|
||||
section, and other partner options, including :guilabel:`Partner Activation` and :guilabel:`Partner
|
||||
Review` configurations. These are **only** present when the *Resellers* module is installed.
|
||||
|
||||
.. seealso::
|
||||
Follow the :doc:`Resellers documentation <../sales/crm/track_leads/resellers>` for more
|
||||
information on publishing partners on the website.
|
||||
|
||||
Membership tab
|
||||
--------------
|
||||
|
||||
Finally, there is the :guilabel:`Membership` tab on contact forms, which can help users manage any
|
||||
memberships that are being offered to this specific contact. It should be noted that this tab
|
||||
**only** appears when the *Members* application is installed.
|
||||
|
||||
Activate membership
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To activate a contact's membership, click :guilabel:`Buy Membership` in the :guilabel:`Membership`
|
||||
tab of a contact form. On the pop-up window that appears, select a :guilabel:`Membership` from the
|
||||
drop-down menu. Then, configure a :guilabel:`Member Price`. Click :guilabel:`Invoice Membership`
|
||||
when both fields are filled in.
|
||||
|
||||
Alternatively, to offer a free membership, tick the :guilabel:`Free Member` checkbox, in the
|
||||
:guilabel:`Membership` tab of a contact form.
|
||||
|
||||
.. seealso::
|
||||
Follow the :doc:`Members documentation <../sales/members>` for more information on publishing
|
||||
members on the website.
|
||||
|
||||
Smart buttons
|
||||
=============
|
||||
|
||||
At the top of the contact form, there are some additional options available, known as *smart
|
||||
buttons*.
|
||||
|
||||
Here, Odoo displays a variety of records, related to this contact, that were created on other apps.
|
||||
Odoo integrates information from every single app, so there are many smart buttons.
|
||||
|
||||
.. example::
|
||||
For example, there is an :guilabel:`Opportunities` smart button, where all the opportunities
|
||||
related to this customer from the *CRM* app are accessible.
|
||||
|
||||
.. tip::
|
||||
If the corresponding applications are installed, their related smart buttons appear
|
||||
automatically on a contact form.
|
||||
|
||||
A user can see any :guilabel:`Meetings`, :guilabel:`Sales`, :guilabel:`POS Orders`,
|
||||
:guilabel:`Subscriptions`, project :guilabel:`Tasks`, and the :guilabel:`More` smart button reveals
|
||||
additional options, via a drop-down menu. A user can even quickly access :guilabel:`Purchases`,
|
||||
:guilabel:`Helpdesk` tasks, :guilabel:`On-time Rate` for deliveries, :guilabel:`Invoiced`
|
||||
information, :guilabel:`Vendor Bills`, and the :guilabel:`Partner Ledger` connected to this contact.
|
||||
|
||||
Deliveries, documents, loyalty cards, and direct debits are *also* linked to smart buttons, like
|
||||
this, should there be any outstanding/on-file for this contact.
|
||||
|
||||
If the contact is a partner, the user can visit their partner page on the Odoo-built website by
|
||||
clicking the :guilabel:`Go to Website` smart button.
|
||||
|
||||
Archive contacts
|
||||
----------------
|
||||
|
||||
If a user decides they no longer want to have this contact active, the record can be archived. To do
|
||||
that, go to the :icon:`fa-cog` :guilabel:`Action` menu at the top of the contact form, and click
|
||||
:guilabel:`Archive`.
|
||||
|
||||
Then, click :guilabel:`OK` from the resulting :guilabel:`Confirmation` pop-up window.
|
||||
|
||||
With this contact successfully archived, as indicated by a banner at the top, they do not show up
|
||||
in the main contacts page, but they can still be searched for with the :guilabel:`Archived` filter.
|
||||
|
||||
.. tip::
|
||||
A contact can be *unarchived*, if the user decides to work with them again. To do that, just
|
||||
click the :icon:`fa-cog` :guilabel:`Action` menu again at the top of the archived contact form,
|
||||
and click :guilabel:`Unarchive`. Upon doing so, the :guilabel:`Archived` banner is removed, and
|
||||
the contact is restored.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Add different addresses in CRM <../sales/sales/send_quotations/different_addresses>`
|
||||
- `Odoo's eLearning Contacts tutorial
|
||||
<https://www.odoo.com/slides/slide/contacts-2527?fullscreen=1>`_
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
contacts/merge
|
||||
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,78 @@
|
||||
==============
|
||||
Merge contacts
|
||||
==============
|
||||
|
||||
Odoo's *Contacts* application allows user's to merge duplicate contacts, without losing any
|
||||
information in the process. This keeps the database organized, and prevents contacts from being
|
||||
contacted by more than one salesperson.
|
||||
|
||||
.. _contacts/merge-duplicate:
|
||||
|
||||
Merge duplicate contacts
|
||||
========================
|
||||
|
||||
.. danger::
|
||||
Merging is an irreversible action. Do **not** merge contacts unless absolutely certain they
|
||||
should be combined.
|
||||
|
||||
Navigate to the :menuselection:`Contacts app`, and select the :icon:`oi-view-list`
|
||||
:guilabel:`(list)` icon. Select two or more duplicate contacts from the list, and tick the checkbox
|
||||
(on the far-left) for the contacts that should be merged. Then, click the :icon:`fa-cog`
|
||||
:guilabel:`Actions` icon, and select :guilabel:`Merge` from the resulting drop-down menu.
|
||||
|
||||
.. image:: merge/merge-menu.png
|
||||
:align: center
|
||||
:alt: The merge contacts option in the Contacts application.
|
||||
|
||||
This opens the :guilabel:`Merge` pop-up window. From here, review the details of the contacts before
|
||||
confirming they should be merged. If any contacts in the list should **not** be merged, click the
|
||||
:icon:`fa-times` :guilabel:`(delete)` icon at the far right of the contact.
|
||||
|
||||
.. tip::
|
||||
Click the individual contact to open the record for that contact, and view additional
|
||||
information.
|
||||
|
||||
.. image:: merge/merge-window.png
|
||||
:align: center
|
||||
:alt: The merge pop-up window in the Contacts application.
|
||||
|
||||
Click the :guilabel:`Destination Contact` field, and select an option from the drop-down list. This
|
||||
field defaults to the contact record that was created first in the system.
|
||||
|
||||
After confirming the information on the pop-up window, click :guilabel:`Merge Contacts`.
|
||||
|
||||
Deduplicate contacts
|
||||
====================
|
||||
|
||||
After the merge is finished, a pop-up window appears confirming it is complete. This pop-up window
|
||||
also contains a :guilabel:`Deduplicate the other Contacts` button. This feature searches for
|
||||
duplicated records, based on selected criteria, and merges them automatically, or after manual
|
||||
approval.
|
||||
|
||||
Click the :guilabel:`Deduplicate the other Contacts` button to open the :guilabel:`Deduplicate
|
||||
Contacts` pop-up window.
|
||||
|
||||
Select one or more fields to be used in the search for duplicated records. Duplicated contacts can
|
||||
be searched, based on the following criteria:
|
||||
|
||||
- :guilabel:`Email`
|
||||
- :guilabel:`Name`
|
||||
- :guilabel:`Is Company`
|
||||
- :guilabel:`VAT`
|
||||
- :guilabel:`Parent Company`
|
||||
|
||||
.. note::
|
||||
If more than one field is selected, only records that have **all** fields in common are suggested
|
||||
as duplicates.
|
||||
|
||||
If necessary, select criteria to be used to exclude potential duplicates from the search. Potential
|
||||
duplicates can be excluded from the search, based on the following criteria:
|
||||
|
||||
- :guilabel:`A user associated to the contact`
|
||||
- :guilabel:`Journal Items associated to the contact`
|
||||
|
||||
After confirming the search criteria, click either :guilabel:`Merge with Manual Check`,
|
||||
:guilabel:`Merge Automatically`, or :guilabel:`Merge Automatically all process`.
|
||||
|
||||
If :guilabel:`Merge with Manual Check` is selected, complete the merge by following the :ref:`steps
|
||||
above <contacts/merge-duplicate>`.
|
||||
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 20 KiB |
@@ -2,6 +2,9 @@
|
||||
Export and import data
|
||||
======================
|
||||
|
||||
.. |list| replace:: :icon:`oi-view-list` :guilabel:`(list)` icon
|
||||
.. |actions| replace:: :icon:`fa-cog` :guilabel:`Actions`
|
||||
|
||||
In Odoo, it is sometimes necessary to export or import data for running reports, or for data
|
||||
modification. This document covers the export and import of data into and out of Odoo.
|
||||
|
||||
@@ -20,9 +23,9 @@ can aid in reporting on activities, although, Odoo provides a precise and easy r
|
||||
each available application.
|
||||
|
||||
With Odoo, the values can be exported from any field in any record. To do so, activate the list view
|
||||
(:guilabel:`≣ (four horizontal lines)` icon), on the items that need to be exported, and then
|
||||
select the records that should be exported. To select a record, tick the checkbox next to the
|
||||
corresponding record. Finally, click on :guilabel:`⚙️ Action`, and then :guilabel:`Export`.
|
||||
(|list|), on the items that need to be exported, then select the records that should be exported. To
|
||||
select a record, tick the checkbox next to the corresponding record. Finally, click on |actions|,
|
||||
then :guilabel:`Export`.
|
||||
|
||||
.. image:: export_import_data/list-view-export.png
|
||||
:align: center
|
||||
@@ -36,9 +39,10 @@ several options for the data to export:
|
||||
:alt: Overview of options to consider when exporting data in Odoo..
|
||||
|
||||
#. With the :guilabel:`I want to update data (import-compatable export)` option ticked, the system
|
||||
only shows the fields that can be imported. This is helpful in the case where the existing
|
||||
records need to be updated. This works like a filter. Leaving the box unticked, gives many more
|
||||
field options because it shows all the fields, not just the ones that can be imported.
|
||||
only shows the fields that can be imported. This is helpful in the case where the :ref:`existing
|
||||
records need to be updated <essentials/update-data>`. This works like a filter. Leaving the box
|
||||
unticked, gives many more field options because it shows all the fields, not just the ones that
|
||||
can be imported.
|
||||
#. When exporting, there is the option to export in two formats: `.csv` and `.xls`. With `.csv`,
|
||||
items are separated by a comma, while `.xls` holds information about all the worksheets in a
|
||||
file, including both content and formatting.
|
||||
@@ -70,7 +74,8 @@ Import data into Odoo
|
||||
=====================
|
||||
|
||||
Importing data into Odoo is extremely helpful during implementation, or in times where data needs to
|
||||
be updated in bulk. The following documentation covers how to import data into an Odoo database.
|
||||
be :ref:`updated in bulk <essentials/update-data>`. The following documentation covers how to import
|
||||
data into an Odoo database.
|
||||
|
||||
.. warning::
|
||||
Imports are permanent and **cannot** be undone. However, it is possible to use filters (`created
|
||||
@@ -158,6 +163,9 @@ Once the template is downloaded, proceed to follow these steps:
|
||||
using the fields that should be imported. This way, if there is not a sample import template,
|
||||
the names are accurate.
|
||||
|
||||
|
||||
.. _essentials/external-id:
|
||||
|
||||
Import from another application
|
||||
-------------------------------
|
||||
|
||||
@@ -166,7 +174,8 @@ from previous software to facilitate the transition to Odoo.
|
||||
|
||||
Setting an ID is not mandatory when importing, but it helps in many cases:
|
||||
|
||||
- Update imports: import the same file several times without creating duplicates.
|
||||
- :ref:`Update imports <essentials/update-data>`: import the same file several times without
|
||||
creating duplicates.
|
||||
- :ref:`Import relation fields <export_import_data/relation-fields>`.
|
||||
|
||||
To recreate relationships between different records, the unique identifier from the original
|
||||
@@ -176,10 +185,7 @@ When another record is imported that links to the first one, use **XXX/ID** (XXX
|
||||
the original unique identifier. This record can also be found using its name.
|
||||
|
||||
.. warning::
|
||||
It should be noted that there will be a conflict if two or more records have the same name.
|
||||
|
||||
The :guilabel:`External ID` (ID) can also be used to update the original import, if modified data
|
||||
needs to be re-imported later, therefore, it is a good practice to specify it whenever possible.
|
||||
It should be noted that conflicts occur if two (or more) records have the same *External ID*.
|
||||
|
||||
Field missing to map column
|
||||
---------------------------
|
||||
@@ -476,3 +482,43 @@ The two files produced are ready to be imported in Odoo without any modification
|
||||
imported these two :abbr:`CSV (Comma-separated Values)` files, there are four contacts and three
|
||||
companies (the first two contacts are linked to the first company). Keep in mind to first import
|
||||
the companies, and then the people.
|
||||
|
||||
.. _essentials/update-data:
|
||||
|
||||
Update data in Odoo
|
||||
===================
|
||||
|
||||
Existing data can be updated in bulk through a data import, as long as the :ref:`External ID
|
||||
<essentials/external-id>` remains consistent.
|
||||
|
||||
Prepare data export
|
||||
-------------------
|
||||
|
||||
To update data through an import, first navigate to the data to be updated, and select the |list| to
|
||||
activate list view. On the far-left side of the list, tick the checkbox for any record to be
|
||||
updated. Then, click |actions|, and select :icon:`fa-upload` :guilabel:`Export` from the drop-down
|
||||
menu.
|
||||
|
||||
On the resulting :guilabel:`Export Data` pop-up window, tick the checkbox labeled, :guilabel:`I want
|
||||
to update data (import-compatible export)`. This automatically includes the *External ID* in the
|
||||
export. Additionally, it limits the :guilabel:`Fields to export` list to **only** include fields
|
||||
that are able to be imported.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`External ID` field does **not** appear in the :guilabel:`Fields to export` list
|
||||
unless it is manually added, but it is still included in the export. However, if the :guilabel:`I
|
||||
want to update data (import-compatible export)` checkbox is ticked, it is included in the export.
|
||||
|
||||
Select the required fields to be included in the export using the :ref:`options <export-data>` on
|
||||
the pop-up window, then click :guilabel:`Export`.
|
||||
|
||||
Import updated data
|
||||
-------------------
|
||||
|
||||
After exporting, make any necessary changes to the data file. When the file is ready, it can be
|
||||
:ref:`imported <import-data>` by following the same process as a normal data import.
|
||||
|
||||
.. danger::
|
||||
When updating data, it is extremely important that the *External ID* remain consistent, as
|
||||
this is how the system identifies a record. If an ID is altered, or removed, the system may add a
|
||||
duplicate record, instead of updating the existing one.
|
||||
|
||||
@@ -89,7 +89,7 @@ settings. To use a service, simply interact with it wherever it appears in the d
|
||||
- :doc:`Lead mining <../sales/crm/acquire_leads/lead_mining>`
|
||||
- :doc:`Enrich your contacts base with Partner Autocomplete
|
||||
<../sales/crm/optimize/partner_autocomplete>`
|
||||
- :doc:`SMS essentials <../marketing/sms_marketing/essentials/sms_essentials>`
|
||||
- :doc:`SMS Marketing <../marketing/sms_marketing>`
|
||||
|
||||
.. _in_app_purchase/credits:
|
||||
|
||||
@@ -119,7 +119,7 @@ Credits are purchased in *Packs* from the `Odoo IAP Catalog
|
||||
The number of credits consumed depends on the length of the SMS and the country of destination.
|
||||
|
||||
For more information, refer to the :doc:`SMS Pricing and FAQ
|
||||
<../marketing/sms_marketing/pricing/pricing_and_faq>` documentation.
|
||||
<../marketing/sms_marketing/pricing_and_faq>` documentation.
|
||||
|
||||
.. _iap/buying_credits:
|
||||
|
||||
|
||||
@@ -181,6 +181,75 @@ It is possible to *customize groups* by using a field present on the model. To d
|
||||
cluster, the next one that is added further divides the main group's categories, and so on.
|
||||
Furthermore, filters and groups can be used together to refine the view even more.
|
||||
|
||||
.. _search/comparison:
|
||||
|
||||
Comparison
|
||||
==========
|
||||
|
||||
Certain reporting dashboards include a :guilabel:`Comparison` section in the drop-down menus of
|
||||
their :guilabel:`Search...` bars. This includes the :doc:`Overall Equipment Effectiveness
|
||||
<../inventory_and_mrp/manufacturing/reporting/oee>` report for the *Manufacturing* app, and the
|
||||
:doc:`Purchase <../inventory_and_mrp/purchase/advanced/analyze>` report for the *Purchase* app,
|
||||
among others.
|
||||
|
||||
The options in the :icon:`fa-adjust` :guilabel:`Comparison` section are used to compare data from
|
||||
two different time periods. There are two comparison options to choose from: :guilabel:`(Time
|
||||
Filter): Previous Period` and :guilabel:`(Time Filter): Previous Year`.
|
||||
|
||||
.. important::
|
||||
For some reports, the :guilabel:`Comparison` section **only** appears in the
|
||||
:guilabel:`Search...` bar drop-down menu if one (or more) time periods have been selected in the
|
||||
:guilabel:`Filters` column. This is because, if no time period is specified, there is nothing to
|
||||
compare.
|
||||
|
||||
Additionally, some reports only allow use of the :guilabel:`Comparison` feature when the
|
||||
:icon:`fa-pie-chart` :guilabel:`(pie chart)` graph type, or the :icon:`oi-view-pivot`
|
||||
:guilabel:`(pivot)` view, is selected. A :guilabel:`Comparison` option can be selected even if
|
||||
another view is enabled, but doing so does **not** change the way data is displayed on the
|
||||
report.
|
||||
|
||||
.. image:: search/comparison-section.png
|
||||
:align: center
|
||||
:alt: The Search... bar for the production analysis report.
|
||||
|
||||
To view data using one of the two comparisons, begin by selecting a time period in the
|
||||
:guilabel:`Filters` column of the :guilabel:`Search...` bar drop-down menu. Then, select either
|
||||
:guilabel:`(Time Filter): Previous Period` or :guilabel:`(Time Filter): Previous Year` in the
|
||||
:guilabel:`Comparison` section.
|
||||
|
||||
With one of the :guilabel:`Comparison` options enabled, the report compares the data for the
|
||||
selected period, with the data for the same unit of time (month, quarter, year), one period or year
|
||||
prior. The way the data is displayed depends on the selected view:
|
||||
|
||||
- The :icon:`fa-bar-chart` :guilabel:`(bar chart)` shows two bars, side-by-side, for each unit of
|
||||
time for the selected time period. The left bar represents the selected time period, while the
|
||||
right bar represents the previous time period.
|
||||
- The :icon:`fa-line-chart` :guilabel:`(line chart)` is displayed with two lines, one representing
|
||||
the selected time period, and the other representing the previous time period.
|
||||
- The :icon:`fa-pie-chart` :guilabel:`(pie chart)` appears as a large circle with a smaller circle
|
||||
inside. The larger circle represents the selected time period, while the smaller circle represents
|
||||
the previous time period.
|
||||
- The :icon:`oi-view-pivot` :guilabel:`(pivot table)` is displayed with each column split into two
|
||||
smaller columns. The right column represents the selected time period, while the left column
|
||||
represents the previous time period.
|
||||
|
||||
.. example::
|
||||
In the :guilabel:`Production Analysis` report of the :menuselection:`Manufacturing` app, data for
|
||||
the second quarter of 2024 is compared to data for the second quarter of 2023. :guilabel:`Q2` is
|
||||
selected in the :guilabel:`End Date` filter section of the :guilabel:`Search...` bar drop-down
|
||||
menu. In the :guilabel:`Comparison` section, :guilabel:`End Date: Previous Year` is selected.
|
||||
|
||||
The current year is 2024, so the larger circle shows data for the second quarter (Q2) of 2024.
|
||||
The smaller circle shows data for the second quarter (Q2) of 2023, which is the same time period,
|
||||
but one *year* prior.
|
||||
|
||||
If :guilabel:`End Date: Previous Period` is selected instead, the smaller circle shows data for
|
||||
the first quarter (Q1) of 2024, which is the same time period, but one *period* prior.
|
||||
|
||||
.. image:: search/comparison.png
|
||||
:align: center
|
||||
:alt: The comparison view of the Production Analysis report.
|
||||
|
||||
.. _search/favorites:
|
||||
|
||||
Favorites
|
||||
|
||||
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 31 KiB |
@@ -76,6 +76,8 @@ expense either when the transaction occurs (accrual basis) or when the payment i
|
||||
.. seealso::
|
||||
:doc:`Cash basis <accounting/taxes/cash_basis>`
|
||||
|
||||
.. _accounting/multi-company:
|
||||
|
||||
Multi-company
|
||||
=============
|
||||
|
||||
@@ -209,7 +211,7 @@ available methods are standard price, average price, :abbr:`LIFO (Last-In, First
|
||||
:abbr:`FIFO (First-In, First-Out).`
|
||||
|
||||
.. seealso::
|
||||
:doc:`../inventory_and_mrp/inventory/warehouses_storage/inventory_valuation/inventory_valuation_config`
|
||||
:doc:`../inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config`
|
||||
|
||||
Retained earnings
|
||||
=================
|
||||
|
||||
@@ -36,6 +36,8 @@ follow the instructions.
|
||||
.. seealso::
|
||||
:doc:`bank/bank_synchronization`
|
||||
|
||||
.. _bank_accounts/create:
|
||||
|
||||
Create a bank account
|
||||
---------------------
|
||||
|
||||
|
||||
@@ -42,7 +42,7 @@ First synchronization
|
||||
---------------------
|
||||
|
||||
You can start synchronization either by going to the Accounting app and
|
||||
:menuselection:`Accounting Dashboard --> Configuration --> Banks: Add a Bank Account`.
|
||||
:menuselection:`Accounting --> Configuration --> Add a Bank Account`.
|
||||
|
||||
Now you can search for your bank institution. Select it and follow the steps to synchronize with it.
|
||||
|
||||
@@ -70,19 +70,19 @@ By default, transactions fetched from an online source are grouped inside the sa
|
||||
one bank statement is created per month. You can change the bank statement creation periodicity
|
||||
in your journal settings.
|
||||
|
||||
You can find all your synchronizations by going to :menuselection:`Accounting Dashboard -->
|
||||
Configuration --> Accounting: Online Synchronization`.
|
||||
To view all your synchronizations, activate the :ref:`developer mode <developer-mode>` and go to
|
||||
:menuselection:`Accounting --> Configuration --> Online Synchronization`.
|
||||
|
||||
Synchronize manually
|
||||
--------------------
|
||||
|
||||
After your first synchronization, the created journals are synchronized by default every 12 hours.
|
||||
If you wish, you can synchronize manually by clicking on the :guilabel:`Synchronize Now` button on
|
||||
the dashboard.
|
||||
If you wish, you can synchronize them manually by clicking on the :guilabel:`Synchronize Now` button
|
||||
on the dashboard.
|
||||
|
||||
Or you can go to :menuselection:`Accounting Dashboard --> Configuration -->
|
||||
Accounting: Online Synchronization`, select your institution and then click on the
|
||||
:guilabel:`fetch transactions` button.
|
||||
Alternatively, activate the :ref:`developer mode <developer-mode>`, go to
|
||||
:menuselection:`Accounting --> Configuration --> Online Synchronization`, select your institution,
|
||||
and then click the :guilabel:`Fetch transactions` button.
|
||||
|
||||
.. important::
|
||||
Some institutions do not allow transactions to be fetched automatically. For such institutions,
|
||||
@@ -96,9 +96,10 @@ Issues
|
||||
Synchronization in error
|
||||
------------------------
|
||||
|
||||
To report a connection error to the `Odoo support <https://www.odoo.com/help>`_, go to
|
||||
:menuselection:`Accounting Dashboard--> Configuration --> Accounting: Online Synchronization`,
|
||||
select the connection that failed, and copy the error description and the reference.
|
||||
To report a connection error to the `Odoo support <https://www.odoo.com/help>`_, activate the
|
||||
:ref:`developer mode <developer-mode>`, go to :menuselection:`Accounting --> Configuration -->
|
||||
Online Synchronization`, select the connection that failed, and copy the error description and the
|
||||
reference.
|
||||
|
||||
Synchronization disconnected
|
||||
----------------------------
|
||||
@@ -128,14 +129,14 @@ Finally, make sure all your users refresh their Odoo page by pressing CTRL+F5.
|
||||
|
||||
.. Note::
|
||||
|
||||
- All previous synchronizations are disconnected during the installation and won't work anymore.
|
||||
- You can find them directly in the synchronization menu
|
||||
(:menuselection:`Accounting Dashboard --> Configuration -->
|
||||
Accounting: Online Synchronization`). It is not possible to resynchronize these connections;
|
||||
you have to make new ones.
|
||||
- Do not uninstall `account_online_sync`, which is the previous module for online
|
||||
- All previous synchronizations are disconnected during the installation and will not work
|
||||
anymore. To view them, activate the :ref:`developer mode <developer-mode>` and go to
|
||||
:menuselection:`Accounting --> Configuration --> Online Synchronization`). It is not possible
|
||||
to resynchronize these connections; you have to make new ones.
|
||||
- Do not uninstall the `account_online_sync` module, which is the previous module for online
|
||||
synchronization. The new one overrides it.
|
||||
- By default, `account_online_synchronization` is installed automatically with Accounting.
|
||||
- By default, the `account_online_synchronization` module is installed automatically with
|
||||
Accounting.
|
||||
|
||||
FAQ
|
||||
===
|
||||
@@ -145,11 +146,11 @@ The synchronization is not working in real-time. Is that normal?
|
||||
|
||||
The process is not intended to work in real-time as third party providers synchronize your accounts
|
||||
at different intervals. To force the synchronization and fetch the statements, go to your
|
||||
:guilabel:`Accounting Dashboard`, and click on the :guilabel:`Synchronize Now` button. You can also
|
||||
synchronize and fetch transactions through :menuselection:`Accounting Dashboard -->
|
||||
Configuration --> Accounting: Online Synchronization`. Some providers only allow one refresh per
|
||||
day, so it is possible that clicking on :guilabel:`Synchronize Now` does not get your latest
|
||||
transactions if you already performed such action earlier in the day.
|
||||
:guilabel:`Accounting Dashboard`, and click on the :guilabel:`Synchronize Now` button. Synchronize
|
||||
and fetch transactions by activating the :ref:`developer mode <developer-mode>` and going to
|
||||
:menuselection:`Accounting --> Configuration --> Online Synchronization`. Some providers only allow
|
||||
one refresh per day, so it is possible that clicking on :guilabel:`Synchronize Now` does not get
|
||||
your latest transactions if you already performed such action earlier in the day.
|
||||
|
||||
A transaction can be visible on your bank account but not be fetched if it has the status
|
||||
:guilabel:`Pending`. Only transactions with the :guilabel:`Posted` status will be retrieved. If the
|
||||
@@ -158,9 +159,9 @@ transaction is not **Posted** yet, you will have to wait until the status change
|
||||
Is the Online Bank Synchronization feature included in my contract?
|
||||
-------------------------------------------------------------------
|
||||
|
||||
- **Community Version**: No, this feature is not included in the Community Version.
|
||||
- **Online Version**: Yes, even if you benefit from the One App Free contract.
|
||||
- **Enterprise Version**: Yes, if you have a valid enterprise contract linked to your database.
|
||||
- **Community Edition**: No, this feature is not included in the Community Version.
|
||||
- **Online Edition**: Yes, even if you benefit from the One App Free contract.
|
||||
- **Enterprise Edition**: Yes, if you have a valid enterprise contract linked to your database.
|
||||
|
||||
Some banks have a status "Beta." What does this mean?
|
||||
-----------------------------------------------------
|
||||
@@ -186,9 +187,9 @@ Why don't I see any transactions?
|
||||
---------------------------------
|
||||
|
||||
During your first synchronization, you selected the bank accounts you decided to synchronize with
|
||||
Odoo. If you didn't synchronize any of your accounts, you can go to
|
||||
:menuselection:`Accounting Dashboard --> Configuration --> Accounting: Online Synchronization` to
|
||||
click on the :guilabel:`Fetch Account` button on the connection.
|
||||
Odoo. If you didn't synchronize any of your accounts, activate the :ref:`developer mode
|
||||
<developer-mode>`, go to :menuselection:`Accounting --> Configuration --> Online Synchronization`,
|
||||
and click the :guilabel:`Fetch Account` button on the connection.
|
||||
|
||||
There may also be no new transactions.
|
||||
|
||||
@@ -198,9 +199,9 @@ database, please `submit a support ticket <https://www.odoo.com/help>`_.
|
||||
How can I update my bank credentials?
|
||||
-------------------------------------
|
||||
|
||||
You can update your credentials by going to :menuselection:`Accounting Dashboard -->
|
||||
Configuration --> Accounting: Online Synchronization`,open the connection you want to update your
|
||||
credentials and click on the :guilabel:`Update Credentials` button.
|
||||
To update your credentials, activate the :ref:`developer mode <developer-mode>` and go to
|
||||
:menuselection:`Accounting --> Configuration --> Online Synchronization`. Open the connection you
|
||||
want to update your credentials and click the :guilabel:`Update Credentials` button.
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
@@ -7,7 +7,6 @@ in one place. It offers non-intrusive connectivity to ASPSPs' official APIs acro
|
||||
storing data.
|
||||
|
||||
.. image:: enablebanking/enablebanking.png
|
||||
:align: center
|
||||
:alt: Enable Banking logo
|
||||
|
||||
**Odoo** synchronizes directly with banks to get access to all bank transactions and automatically
|
||||
@@ -30,7 +29,6 @@ Link bank accounts with Odoo
|
||||
:guilabel:`Continue authentication`;
|
||||
|
||||
.. image:: enablebanking/enablebankingauth.png
|
||||
:align: center
|
||||
:alt: Enable Banking authentication page
|
||||
|
||||
#. Finally, you are redirected to your bank's login page.
|
||||
|
||||
@@ -6,15 +6,11 @@ Ponto
|
||||
place and directly see all their transactions within one app. It is a third-party solution that is
|
||||
continuously expanding the number of bank institutions that can be synchronized with Odoo.
|
||||
|
||||
.. image:: ponto/ponto-logo.png
|
||||
:align: center
|
||||
:alt: Logo of the Ponto brand
|
||||
|
||||
**Odoo** can synchronize directly with your bank to get all bank statements imported automatically
|
||||
into your database.
|
||||
|
||||
Ponto is a paid third-party provider that can handle the synchronization between your bank accounts
|
||||
and Odoo. `Its pricing is 4€/month per account/integration <https://myponto.com/en#pricing>`_.
|
||||
and Odoo.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../bank_synchronization`
|
||||
@@ -31,34 +27,29 @@ Link your bank accounts with Ponto
|
||||
#. Once you are logged in, create an *organization*.
|
||||
|
||||
.. image:: ponto/ponto-organization.png
|
||||
:align: center
|
||||
:alt: Fill out the form to add an organization in Ponto.
|
||||
|
||||
#. | Go to :menuselection:`Accounts --> Live`, and click on *Add account*.
|
||||
| You might have to add your **Billing Information** first.
|
||||
#. Go to :menuselection:`Accounts --> Live`, and click :guilabel:`Add account`. You might have to
|
||||
add your **Billing Information** first.
|
||||
#. Select your country, your bank institutions, give your consent to Ponto, and follow the steps
|
||||
on-screen to link your bank account with your Ponto account.
|
||||
|
||||
.. image:: ponto/ponto-add-account.png
|
||||
:align: center
|
||||
:alt: Add bank accounts to your Ponto account.
|
||||
|
||||
#. Make sure to add all bank accounts you want to synchronize with your Odoo database before moving
|
||||
on to the next steps.
|
||||
#. Add all bank accounts you want to synchronize with your Odoo database and move to the next steps.
|
||||
|
||||
Link your Ponto account with your Odoo database
|
||||
-----------------------------------------------
|
||||
|
||||
#. Go to :menuselection:`Accounting --> Configuration --> Add a Bank Account`.
|
||||
#. Search your institution, make sure to select the right institution. By selecting the institution,
|
||||
you can verify that the third party provider is Ponto.
|
||||
#. Click on *Connect* and follow the steps.
|
||||
#. At some point, you will have to authorize the accounts you want to access in Odoo. Please select
|
||||
**all the accounts** you want to synchronize. Even the ones coming from other banking
|
||||
institutions.
|
||||
#. Search for your institution and select it so you can verify that the third party provider is
|
||||
Ponto.
|
||||
#. Click :guilabel:`Connect` and follow the steps.
|
||||
#. Select **all accounts** you want to access and synchronize in Odoo, even the ones coming from
|
||||
other banking institutions.
|
||||
|
||||
.. image:: ponto/ponto-select-accounts.png
|
||||
:align: center
|
||||
:alt: Selection of the accounts you wish to synchronize with Odoo.
|
||||
|
||||
#. Finish the flow.
|
||||
@@ -70,26 +61,26 @@ Link your Ponto account with your Odoo database
|
||||
Update your synchronization credentials
|
||||
---------------------------------------
|
||||
|
||||
You might have to update your Ponto credentials or modify the synchronization settings.
|
||||
To update your Ponto credentials or modify the synchronization settings, activate the
|
||||
:ref:`developer mode <developer-mode>`, go to :menuselection:`Accounting --> Configuration -->
|
||||
Online Synchronization`, and select the institution from which you want to fetch the other
|
||||
accounts. Click :guilabel:`Fetch Accounts` to start the flow.
|
||||
|
||||
To do so, go to :menuselection:`Accounting --> Configuration --> Online Synchronization` and select
|
||||
the institution you want to fetch the other accounts. Click on *Fetch Accounts* button to start the
|
||||
flow.
|
||||
|
||||
During the update, select **all the accounts** you want to synchronize, even the ones coming
|
||||
from other banking institutions.
|
||||
.. note::
|
||||
During the update, select **all accounts** you want to synchronize, even the ones coming from
|
||||
other banking institutions.
|
||||
|
||||
Fetch new accounts
|
||||
------------------
|
||||
|
||||
You might want to add new online accounts to your connection.
|
||||
To add new online accounts to your connection, activate the :ref:`developer mode <developer-mode>`,
|
||||
go to :menuselection:`Accounting --> Configuration --> Online Synchronization`, and select the
|
||||
institution from which you want to fetch the other accounts. Click :guilabel:`Fetch Accounts` to
|
||||
start the flow.
|
||||
|
||||
To do so, go to :menuselection:`Accounting --> Configuration --> Online Synchronization` and select
|
||||
the institution you want to fetch the other accounts. Click on *Fetch Accounts* button to start the
|
||||
flow.
|
||||
|
||||
Don't forget to keep authorization for existing accounts (for all institutions that you
|
||||
have synchronized with Ponto).
|
||||
.. note::
|
||||
Don't forget to keep authorization for existing accounts (for all institutions that you have
|
||||
synchronized with Ponto).
|
||||
|
||||
FAQ
|
||||
===
|
||||
@@ -102,7 +93,7 @@ You selected an institution from the list and did not authorize any accounts fro
|
||||
I have an error about that my authorization has expired
|
||||
-------------------------------------------------------
|
||||
|
||||
Every **3 months** (90 days) you must re-authorize the connection between your bank account
|
||||
Every **6 months** (180 days) you must re-authorize the connection between your bank account
|
||||
and Ponto. This must be done from the `Ponto website <https://myponto.com>`_. If you do not
|
||||
do this, the synchronization will stop for these accounts.
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 2.5 KiB |
@@ -6,11 +6,6 @@ Salt Edge
|
||||
from your bank accounts. It supports ~5000 institutions in more than 50
|
||||
countries.
|
||||
|
||||
.. image:: saltedge/saltedge-logo.png
|
||||
:align: center
|
||||
:width: 50%
|
||||
:alt: Salt Edge Logo
|
||||
|
||||
Odoo can synchronize directly with your bank to get all bank statements imported
|
||||
automatically into your database.
|
||||
|
||||
@@ -34,20 +29,17 @@ Link your bank accounts with Odoo
|
||||
account.
|
||||
|
||||
.. image:: saltedge/saltedge-contact-email.png
|
||||
:align: center
|
||||
:alt: Email address to provide to Salt Edge for the creation of your account.
|
||||
|
||||
#. After entering your email address, you are redirected to Salt Edge to continue
|
||||
the synchronization process.
|
||||
|
||||
.. image:: saltedge/saltedge-login-page.png
|
||||
:align: center
|
||||
:alt: Salt Edge Login page.
|
||||
|
||||
#. Make sure you give your consent by checking the consent checkbox.
|
||||
|
||||
.. image:: saltedge/saltedge-give-consent.png
|
||||
:align: center
|
||||
:alt: Salt Edge give consent page.
|
||||
|
||||
#. Complete the synchronization by following the steps.
|
||||
@@ -56,11 +48,10 @@ Link your bank accounts with Odoo
|
||||
Update your credentials
|
||||
-----------------------
|
||||
|
||||
You might have to update your Salt Edge credentials or modify the synchronization settings.
|
||||
|
||||
To do so, go to :menuselection:`Accounting --> Configuration --> Online Synchronization` and
|
||||
select the institution you want to update credentials. Click on the *Update Credentials* button
|
||||
to start the flow and follow the steps.
|
||||
To update your Salt Edge credentials or modify the synchronization settings, activate the
|
||||
:ref:`developer mode <developer-mode>`, go to :menuselection:`Accounting --> Configuration -->
|
||||
Online Synchronization`, and select the institution you want to update credentials. Click
|
||||
:guilabel:`Update Credentials` to start the flow and follow the steps.
|
||||
|
||||
Don't forget to check the consent checkbox. Otherwise, Odoo may not be able to access
|
||||
your information.
|
||||
@@ -68,14 +59,14 @@ your information.
|
||||
Fetch new accounts
|
||||
------------------
|
||||
|
||||
You might want to add new online accounts to your connection.
|
||||
To add new online accounts to your connection, activate the :ref:`developer mode <developer-mode>`,
|
||||
go to :menuselection:`Accounting --> Configuration --> Online Synchronization`, and select the
|
||||
institution to fetch the new accounts. Click :guilabel:`Fetch Accounts` to start the flow and
|
||||
follow the steps.
|
||||
|
||||
To do so, go to :menuselection:`Accounting --> Configuration --> Online Synchronization` and
|
||||
select the institution to fetch the new accounts. Click on the *Fetch Accounts* button
|
||||
to start the flow and follow the steps.
|
||||
|
||||
Don't forget to check the consent checkbox. Otherwise, Odoo may not be able to access
|
||||
your information.
|
||||
.. note::
|
||||
Don't forget to check the consent checkbox. Otherwise, Odoo may not be able to access your
|
||||
information.
|
||||
|
||||
FAQ
|
||||
===
|
||||
@@ -94,15 +85,15 @@ record.
|
||||
I have an error saying that I have already synchronized this account
|
||||
--------------------------------------------------------------------
|
||||
|
||||
You have probably already synchronized your bank account with Salt Edge, please check on your `dashboard
|
||||
<https://www.saltedge.com/dashboard>`_ that you don't already have a connection with the same
|
||||
credentials.
|
||||
You have probably already synchronized your bank account with Salt Edge, please check on your
|
||||
`dashboard <https://www.saltedge.com/dashboard>`_ that you don't already have a connection with the
|
||||
same credentials.
|
||||
|
||||
In case you already have a synchronization with the same credentials present on your Salt Edge
|
||||
dashboard and this synchronization has not been created with Odoo, please delete it and create it
|
||||
from your Odoo database.
|
||||
If you already have a synchronization with the same credentials present on your Salt Edge
|
||||
dashboard and this synchronization has not been created with Odoo, delete it and create it from your
|
||||
Odoo database.
|
||||
|
||||
In case you already have a connection with the same credentials present on your Salt Edge dashboard
|
||||
and this synchronization was created with Odoo, you will normally be able to find it by going to
|
||||
:menuselection:`Accounting --> Configuration --> Online Synchronization`. Please make sure to do an
|
||||
*Update Credentials* to reactivate the connection.
|
||||
If you already have a connection with the same credentials present on your Salt Edge dashboard
|
||||
and this synchronization was created with Odoo, activate the :ref:`developer
|
||||
mode <developer-mode>`, go to :menuselection:`Accounting --> Configuration --> Online
|
||||
Synchronization`, and click :guilabel:`Update Credentials` to reactivate the connection.
|
||||
|
||||
|
Before Width: | Height: | Size: 11 KiB |
@@ -18,8 +18,13 @@ To specify a sales order's invoice and delivery addresses, first go to :menusele
|
||||
|
||||
On quotations and sales orders, there are now fields for :guilabel:`Invoice Address` and
|
||||
:guilabel:`Delivery Address`. If the customer has an invoice or delivery address listed on their
|
||||
contact record, the corresponding field will use that address by default, but any contact's address
|
||||
can be used instead.
|
||||
:ref:`contact record <sales/send_quotations/contact-form-config>`, the corresponding field uses that
|
||||
address, by default, but any contact's address can be used instead.
|
||||
|
||||
.. seealso::
|
||||
For more information, refer to the documentation on :ref:`Contact Form Configuration
|
||||
<sales/send_quotations/contact-form-config>`.
|
||||
|
||||
|
||||
Invoice and deliver to different addresses
|
||||
==========================================
|
||||
|
||||
@@ -112,8 +112,8 @@ If not done yet, :ref:`install <general/install>` the :guilabel:`Peppol` module
|
||||
- Peppol registration is **free** and available in Odoo Community
|
||||
- You can send **Customer Invoices** and **Credit Notes** and receive **Vendor Bills** and
|
||||
**Refunds** via Peppol.
|
||||
- You can send in one of the following supported document formats: **BIS Billing 3.0, XRechnung
|
||||
CIUS, NLCIUS**.
|
||||
- You can send and receive in one of the following supported document formats:
|
||||
**BIS Billing 3.0, XRechnung CIUS, NLCIUS**.
|
||||
- | The following **countries** are eligible for **Peppol registration in Odoo**:
|
||||
| Andorra, Albania, Austria, Bosnia and Herzegovina, Belgium, Bulgaria, Switzerland, Cyprus,
|
||||
Czech Republic, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece,
|
||||
@@ -126,79 +126,102 @@ Registration
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings`. If you do not have the
|
||||
Peppol module installed, first tick the :guilabel:`Enable PEPPOL` checkbox and then **manually
|
||||
save**.
|
||||
save**. Click :guilabel:`Start sending via Peppol` to open the registration form.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-install.png
|
||||
:alt: Peppol module installation
|
||||
.. note::
|
||||
This registration form also pops up if you choose to :guilabel:`Send & Print` an
|
||||
invoice via Peppol without completing the registration process.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-registration-settings.png
|
||||
:alt: Peppol registration button
|
||||
|
||||
You can register either as a sender or a receiver. A sender can only send invoices and credit notes
|
||||
on Odoo via Peppol, without ever registering as a Peppol participant on Odoo SMP. If you have an
|
||||
existing Peppol registration elsewhere that you want to keep, but want to send invoices from your
|
||||
Odoo database and receive other documents in another software, register as a **sender**.
|
||||
|
||||
.. tip::
|
||||
- You can always register as a sender first and register to receive documents later.
|
||||
- When registering, you can specify if you would also like to receive documents.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-registration-wizard.png
|
||||
:alt: Peppol registration form
|
||||
|
||||
Fill in the following information:
|
||||
|
||||
- :guilabel:`Peppol EAS`. This is the Peppol Electronic Address Scheme and usually depends on your
|
||||
- Check the receiver box if you want to register on Odoo SMP. If you are migrating from another
|
||||
service provider, insert the :guilabel:`Migration key` from the previous provider (the field
|
||||
becomes visible after you tick the checkbox).
|
||||
- :guilabel:`E-Address Scheme`: the Peppol Electronic Address Scheme usually depends on your
|
||||
company's country. Odoo often prefills this with the most commonly used EAS code in your country.
|
||||
For example, the preferred EAS code for most companies in Belgium is 0208.
|
||||
- :guilabel:`Peppol Endpoint`. This is usually a Company Registry number or a VAT number.
|
||||
- :guilabel:`Phone Number`, including the country code (e.g., `+32` in Belgium)
|
||||
- :guilabel:`Primary contact email`
|
||||
For example, the preferred EAS code for most companies in Belgium is `0208`.
|
||||
- :guilabel:`Endpoint`: this is usually a Company Registry number or a VAT number.
|
||||
- :guilabel:`Phone`: phone number including the country code (e.g., `+32` in Belgium).
|
||||
- :guilabel:`Email`: this is the email Odoo can use to contact you regarding your Peppol
|
||||
registration.
|
||||
|
||||
If you want to explore or demo Peppol, you can choose to register in :guilabel:`Demo` mode.
|
||||
Otherwise, select :guilabel:`Live`.
|
||||
|
||||
.. tip::
|
||||
- Selecting :guilabel:`Demo` simulates everything in Odoo. There is no sending, receiving, or
|
||||
partner verification.
|
||||
- For **advanced users only**, it is possible to run tests on Peppol's test network. The server
|
||||
allows to register on Peppol and send/receive test invoices to/from other participants.
|
||||
To do so, enable the :ref:`developer-mode`, open the **Settings** app, go to
|
||||
:menuselection:`Technical --> System Parameters`, and search for `account_peppol.edi.mode`.
|
||||
Click the parameter and change the :guilabel:`Value` to `test`. Go back to the Peppol setup
|
||||
menu in the **Settings** app. The option :guilabel:`Test` is now available.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-system-parameter.png
|
||||
:alt: Peppol test mode parameter
|
||||
|
||||
.. seealso::
|
||||
- `Peppol EAS - European Commision <https://ec.europa.eu/digital-building-blocks/wikis/display/DIGITAL/Code+lists/>`_
|
||||
- `Peppol Endpoint - OpenPeppol eDEC Code Lists <https://docs.peppol.eu/edelivery/codelists/>`_
|
||||
(open the "Participant Identifier Schemes" as HTML page)
|
||||
|
||||
If you are migrating from another access point, insert the :guilabel:`Migration key` from the
|
||||
previous provider.
|
||||
When set up, request a verification code to be sent to you by clicking :guilabel:`Send a
|
||||
registration code by SMS`. A text message containing a code is sent to the phone number provided to
|
||||
finalize the verification process.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-settings.png
|
||||
:alt: Configuration for peppol
|
||||
|
||||
Finally, click :guilabel:`Validate registration`. If you want to explore or demo Peppol, you can
|
||||
choose to register in :guilabel:`Demo` mode. Otherwise, select :guilabel:`Live`.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-demo-mode.png
|
||||
:alt: Peppol demo mode selection
|
||||
|
||||
.. note::
|
||||
When testing Peppol, the system parameter `account_peppol.edi.mode` can be changed to `test`.
|
||||
Then, a radio button appears with the option to register on the test server.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-system-parameter.png
|
||||
:alt: Peppol test mode parameter
|
||||
|
||||
.. image:: electronic_invoicing/peppol-test-mode-settings.png
|
||||
:alt: Peppol test mode selection
|
||||
|
||||
Now, you can request a verification code to be sent to you by clicking :guilabel:`Verify phone
|
||||
number`.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-registration-verify.png
|
||||
:alt: phone validation request verification
|
||||
|
||||
A text message containing a code is sent to the phone number provided to finalize the verification
|
||||
process.
|
||||
|
||||
.. image:: electronic_invoicing/phone-registration.png
|
||||
.. image:: electronic_invoicing/peppol-phone-verification.png
|
||||
:alt: phone validation
|
||||
|
||||
Once you enter the code and click :guilabel:`Confirm`, you can see that your registration is pending
|
||||
activation. From this point onwards, the default journal for receiving Vendor Bills can be set.
|
||||
Once you enter the code and click :guilabel:`Register`, your Peppol participant status is updated.
|
||||
If you chose to only send documents, then the status changes to :guilabel:`Can send but
|
||||
not receive`.
|
||||
If you opted to receive documents as well, the status changes to :guilabel:`Can send, pending
|
||||
registration to receive`. In that case, it should be automatically activated within a day.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-registration-pending.png
|
||||
:alt: pending application
|
||||
|
||||
It should be automatically activated within a day.
|
||||
Then, set the default journal for receiving vendor bills in the :guilabel:`Incoming Invoices
|
||||
Journal`.
|
||||
|
||||
.. tip::
|
||||
It is also possible to manually trigger the cron that checks the registration status by going to
|
||||
:menuselection:`Settings --> Technical --> Scheduled Actions --> PEPPOL\: update participant
|
||||
status`.
|
||||
To manually trigger the cron that checks the registration status, enable the
|
||||
:ref:`developer-mode`, then go to :menuselection:`Settings --> Technical --> Scheduled Actions`,
|
||||
and search for the :guilabel:`PEPPOL: update participant status` action.
|
||||
|
||||
Your application status should be updated soon after you are registered on the Peppol network.
|
||||
Your receiver application status should be updated soon after you are registered on the Peppol
|
||||
network.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-registration-active.png
|
||||
:alt: active application
|
||||
.. image:: electronic_invoicing/peppol-receiver.png
|
||||
:alt: receiver application
|
||||
|
||||
All invoices and vendor bills can now be sent directly using the Peppol network.
|
||||
|
||||
.. important::
|
||||
To update the email that Odoo can use to contact you, modify the email and click
|
||||
:guilabel:`Update contact details`.
|
||||
|
||||
Configure Peppol services
|
||||
-------------------------
|
||||
|
||||
Once you are registered on Odoo SMP, the :guilabel:`Configure Peppol Services` button
|
||||
becomes visible to allow you to enable or disable document formats that other participants
|
||||
can send you via Peppol. By default, all document formats supported by Odoo are enabled (depending
|
||||
on the installed modules).
|
||||
|
||||
Contact verification
|
||||
--------------------
|
||||
|
||||
@@ -222,6 +245,13 @@ It is possible to verify the Peppol participant status of several customers at o
|
||||
To do so, go to :menuselection:`Accounting --> Customers --> Customers` and switch to the list view.
|
||||
Select the customers you want to verify and then click :menuselection:`Actions --> Verify Peppol`.
|
||||
|
||||
If the participant is registered on the Peppol network but cannot receive the format you selected
|
||||
for them, the :guilabel:`Peppol endpoint validity` label changes to :guilabel:`Cannot
|
||||
receive this format`.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-participant-format.png
|
||||
:alt: verify contact ubl format
|
||||
|
||||
Send invoices
|
||||
-------------
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 5.1 KiB |
|
After Width: | Height: | Size: 9.1 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 8.3 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 6.9 KiB |
@@ -4,8 +4,8 @@
|
||||
Get started
|
||||
===========
|
||||
|
||||
When you first open your Odoo Accounting app, the *Accounting Overview* page welcomes you with a
|
||||
step-by-step onboarding banner, a wizard that helps you get started. This onboarding banner is
|
||||
When you first open your Odoo Accounting app, the :guilabel:`Accounting Dashboard` welcomes you with
|
||||
a step-by-step onboarding banner, a wizard that helps you get started. This onboarding banner is
|
||||
displayed until you choose to close it.
|
||||
|
||||
The settings visible in the onboarding banner can still be modified later by going to
|
||||
@@ -22,69 +22,22 @@ Accounting onboarding banner
|
||||
|
||||
The step-by-step Accounting onboarding banner is composed of four steps:
|
||||
|
||||
.. image:: get_started/setup_accounting_onboarding.png
|
||||
.. image:: get_started/accounting-onboarding-banner.png
|
||||
:alt: Step-by-step onboarding banner in Odoo Accounting
|
||||
|
||||
#. :ref:`accounting-setup-company`
|
||||
#. :ref:`accounting-setup-bank`
|
||||
#. :ref:`accounting-setup-periods`
|
||||
#. :ref:`accounting-setup-bank`
|
||||
#. :ref:`accounting-setup-taxes`
|
||||
#. :ref:`accounting-setup-chart`
|
||||
|
||||
.. _accounting-setup-company:
|
||||
|
||||
Company Data
|
||||
------------
|
||||
|
||||
This menu allows you to add your company’s details such as the name, address, logo, website, phone
|
||||
number, email address, and Tax ID, or VAT number. These details are then displayed on your documents,
|
||||
such as on invoices.
|
||||
|
||||
.. image:: get_started/setup_company.png
|
||||
:alt: Add your company's details in Odoo Accounting and Odoo Invoicing
|
||||
|
||||
.. note::
|
||||
You can also change these settings by going to :menuselection:`Settings --> General Settings -->
|
||||
Settings --> Companies` and clicking on **Update Info**.
|
||||
|
||||
.. _accounting-setup-bank:
|
||||
|
||||
Bank Account
|
||||
------------
|
||||
|
||||
Connect your bank account to your database and have your bank statements synced automatically. To do
|
||||
so, find your bank in the list, click on *Connect*, and follow the instructions on-screen.
|
||||
|
||||
.. note::
|
||||
:doc:`Click here <bank/bank_synchronization>` for more information about this feature.
|
||||
|
||||
If your Bank Institution can’t be synchronized automatically, or if you prefer not to sync it with
|
||||
your database, you may also configure your bank account manually by clicking on *Create it*, and
|
||||
filling out the form.
|
||||
|
||||
- **Name**: the bank account's name, as displayed on Odoo.
|
||||
- **Account Number**: your bank account number (IBAN in Europe).
|
||||
- **Bank**: click on *Create and Edit* to configure the bank's details. Add the bank institution's
|
||||
name and its Identifier Code (BIC or SWIFT).
|
||||
- **Code**: this code is your Journal's *Short Code*, as displayed on Odoo. By default, Odoo creates
|
||||
a new Journal with this Short Code.
|
||||
- **Journal**: This field is displayed if you have an existing Bank Journal that is not linked yet
|
||||
to a bank account. If so, then select the *Journal* you want to use to record the financial
|
||||
transactions linked to this bank account or create a new one by clicking on *Create and Edit*.
|
||||
|
||||
.. note::
|
||||
- You can add as many bank accounts as needed with this tool by going to :menuselection:`Accounting
|
||||
--> Configuration`, and clicking on *Add a Bank Account*.
|
||||
- :doc:`Click here <bank>` for more information about Bank
|
||||
Accounts.
|
||||
|
||||
.. _accounting-setup-periods:
|
||||
|
||||
Accounting Periods
|
||||
------------------
|
||||
|
||||
Define here your **Fiscal Years**’ opening and closing dates, which are used to generate reports
|
||||
automatically, and your **Tax Return Periodicity**, along with a reminder to never miss a tax return
|
||||
deadline.
|
||||
Define the **Fiscal Years**’ opening and closing dates, which are used to generate reports
|
||||
automatically, and set your **Tax Return Periodicity**, along with a reminder to never miss a tax
|
||||
return deadline.
|
||||
|
||||
By default, the opening date is set on the 1st of January and the closing date on the 31st of
|
||||
December, as this is the most common use.
|
||||
@@ -93,6 +46,49 @@ December, as this is the most common use.
|
||||
You can also change these settings by going to :menuselection:`Accounting --> Configuration -->
|
||||
Settings --> Fiscal Periods` and updating the values.
|
||||
|
||||
.. _accounting-setup-bank:
|
||||
|
||||
Bank Account
|
||||
------------
|
||||
|
||||
Connect your bank account to your database and have your bank statements synced automatically. To do
|
||||
so, find your bank in the list, click :guilabel:`Connect`, and follow the instructions on-screen.
|
||||
|
||||
.. note::
|
||||
:doc:`Click here <bank/bank_synchronization>` for more information about this feature.
|
||||
|
||||
If your Bank Institution can’t be synchronized automatically, or if you prefer not to sync it with
|
||||
your database, you can also configure your bank account manually by typing its name, clicking
|
||||
:guilabel:`Create your Bank Account`, and filling out the form.
|
||||
|
||||
- :guilabel:`Name`: the bank account's name, as displayed in Odoo.
|
||||
- :guilabel:`Account Number`: your bank account number (IBAN in Europe).
|
||||
- :guilabel:`Bank`: click :guilabel:`Create and edit` to configure the bank's details. Add the
|
||||
bank institution's :guilabel:`Name` and its :guilabel:`Identifier Code` (BIC or SWIFT).
|
||||
- :guilabel:`Code`: this code is your Journal's :guilabel:`Short Code`, as displayed in Odoo.
|
||||
By default, Odoo creates a new Journal with this short code.
|
||||
- :guilabel:`Journal`: This field is displayed if you have an existing bank journal that is not
|
||||
linked yet to a bank account. If so, then select the :guilabel:`Journal` you want to use to record
|
||||
the financial transactions linked to this bank account or create a new one by clicking
|
||||
:guilabel:`Create and Edit`.
|
||||
|
||||
.. note::
|
||||
- You can add as many bank accounts as needed with this tool by going to
|
||||
:menuselection:`Accounting --> Configuration --> Add a Bank Account`.
|
||||
- :doc:`Click here <bank>` for more information about Bank Accounts.
|
||||
|
||||
.. _accounting-setup-taxes:
|
||||
|
||||
Taxes
|
||||
-----
|
||||
|
||||
This menu allows you to create new taxes, (de)activate, or modify existing taxes. Depending on the
|
||||
:doc:`localization package <../fiscal_localizations>` installed on your database, taxes required for
|
||||
your country are already configured.
|
||||
|
||||
.. note::
|
||||
:doc:`Click here <taxes>` for more information about taxes.
|
||||
|
||||
.. _accounting-setup-chart:
|
||||
|
||||
Chart of Accounts
|
||||
@@ -102,85 +98,83 @@ With this menu, you can add accounts to your **Chart of Accounts** and indicate
|
||||
opening balances.
|
||||
|
||||
Basic settings are displayed on this page to help you review your Chart of Accounts. To access all
|
||||
the settings of an account, click on the *double arrow button* at the end of the line.
|
||||
the settings of an account, click on the :guilabel:`Setup` button at the end of the line.
|
||||
|
||||
.. image:: get_started/setup_chart_of_accounts.png
|
||||
:alt: Setup of the Chart of Accounts and their opening balances in Odoo Accounting
|
||||
|
||||
.. note::
|
||||
:doc:`Click here <get_started/chart_of_accounts>` for more information on how to configure your Chart of
|
||||
Accounts.
|
||||
:doc:`Click here <get_started/chart_of_accounts>` for more information on how to configure your
|
||||
Chart of Accounts.
|
||||
|
||||
Invoicing onboarding banner
|
||||
===========================
|
||||
|
||||
There is another step-by-step onboarding banner that helps you take advantage of your Odoo Invoicing
|
||||
and Accounting apps. The *Invoicing onboarding banner* is the one that welcomes you if you use the
|
||||
and Accounting apps. The Invoicing onboarding banner is the one that welcomes you if you use the
|
||||
Invoicing app rather than the Accounting app.
|
||||
|
||||
If you have Odoo Accounting installed on your database, you can reach it by going to
|
||||
:menuselection:`Accounting --> Customers --> Invoices`.
|
||||
|
||||
The Invoicing onboarding banner is composed of four main steps:
|
||||
The Invoicing onboarding banner consists of four main steps:
|
||||
|
||||
.. image:: get_started/setup_invoicing_onboarding.png
|
||||
.. image:: get_started/invoicing-onboarding-banner.png
|
||||
:alt: Step-by-step onboarding banner in Odoo Invoicing
|
||||
|
||||
#. :ref:`invoicing-setup-company`
|
||||
#. :ref:`invoicing-setup-layout`
|
||||
#. :ref:`invoicing-setup-payment`
|
||||
#. :ref:`invoicing-setup-sample`
|
||||
#. :ref:`invoicing-setup-invoice`
|
||||
#. :ref:`invoicing-setup-payments`
|
||||
|
||||
.. _invoicing-setup-company:
|
||||
|
||||
Company Data
|
||||
------------
|
||||
|
||||
This form is the same as :ref:`the one presented in the Accounting onboarding banner
|
||||
<accounting-setup-company>`.
|
||||
Add your company’s details, such as the name, address, logo, website, phone number, email address,
|
||||
and Tax ID or VAT number. These details are then displayed on your documents, such as invoices.
|
||||
|
||||
.. note::
|
||||
You can also change the company's details by going to :menuselection:`Settings --> General
|
||||
Settings`, scrolling down to the :guilabel:`Companies` section, and :guilabel:`Update Info`.
|
||||
|
||||
.. _invoicing-setup-layout:
|
||||
|
||||
Invoice Layout
|
||||
Documents Layout
|
||||
----------------
|
||||
|
||||
Customize the :ref:`default invoice layout <studio/pdf-reports/default-layout>`.
|
||||
|
||||
.. note::
|
||||
You can also change the invoice layout by going to :menuselection:`Settings --> General
|
||||
Settings`, scrolling down to the :guilabel:`Companies` section, and clicking :guilabel:`Configure
|
||||
Document Layout`.
|
||||
|
||||
.. _invoicing-setup-invoice:
|
||||
|
||||
Create Invoice
|
||||
--------------
|
||||
|
||||
With this tool, you can design the appearance of your documents by selecting which layout template,
|
||||
paper format, colors, font, and logo you want to use.
|
||||
|
||||
You can also add your *Company Tagline* and the content of the documents’ *footer*. Note that Odoo
|
||||
automatically adds the company's phone number, email, website URL, and Tax ID (or VAT number) to the
|
||||
footer, according to the values you previously configured in the :ref:`Company Data
|
||||
<accounting-setup-company>`.
|
||||
|
||||
.. image:: get_started/setup_document_layout.png
|
||||
:alt: Document layout configuration in Odoo Invoicing
|
||||
Create your first invoice.
|
||||
|
||||
.. tip::
|
||||
Add your **bank account number** and a link to your **General Terms & Condition** in the footer.
|
||||
This way, your contacts can find the full content of your GT&C online without having to print
|
||||
them on the invoices you issue.
|
||||
|
||||
.. note::
|
||||
These settings can also be modified by going to :menuselection:`Settings --> General Settings`,
|
||||
under the *Business Documents* section.
|
||||
.. _invoicing-setup-payments:
|
||||
|
||||
.. _invoicing-setup-payment:
|
||||
Online Payments
|
||||
---------------
|
||||
|
||||
Payment Method
|
||||
--------------
|
||||
Get started with Stripe and enable secure integrated credit and debit card payments within Odoo.
|
||||
|
||||
This menu helps you configure the payment methods with which your customers can pay you.
|
||||
.. tip::
|
||||
To use other payment providers, go to
|
||||
:guilabel:`Invoicing --> Configuration --> Payment Providers` and
|
||||
:doc:`enable the desired providers <../payment_providers>`.
|
||||
|
||||
.. important::
|
||||
Configuring a *Payment Provider* with this tool also activates the *Invoice Online Payment*
|
||||
option automatically. With this, users can directly pay online, from their Customer Portal.
|
||||
|
||||
.. _invoicing-setup-sample:
|
||||
|
||||
Sample Invoice
|
||||
--------------
|
||||
|
||||
Send yourself a sample invoice by email to make sure everything is correctly configured.
|
||||
|
||||
.. seealso::
|
||||
* :doc:`bank`
|
||||
@@ -197,4 +191,4 @@ Send yourself a sample invoice by email to make sure everything is correctly con
|
||||
get_started/chart_of_accounts
|
||||
get_started/multi_currency
|
||||
get_started/avg_price_valuation
|
||||
get_started/vat_units
|
||||
get_started/tax_units
|
||||
|
||||
|
After Width: | Height: | Size: 21 KiB |
@@ -24,13 +24,15 @@ to reflect the change in inventory valuation. However, Odoo does **not** automat
|
||||
valuation <inventory/avg_price/leaving_inventory>`.
|
||||
|
||||
.. note::
|
||||
This document addresses a specific use case for theoretical purposes. Navigate :ref:`here
|
||||
<inventory/management/inventory_valuation_config>` for instructions on how to set up and use
|
||||
|AVCO| in Odoo.
|
||||
This document addresses a specific use case for theoretical purposes. For instructions on how to
|
||||
set up and use |AVCO|, refer to the :doc:`inventory valuation configuration
|
||||
<../../../inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config>`
|
||||
doc.
|
||||
|
||||
.. seealso::
|
||||
- :ref:`Using inventory valuation <inventory/reporting/using_inventory_val>`
|
||||
- :ref:`Other inventory valuation methods <inventory/inventory_valuation_config/costing_methods>`
|
||||
- :doc:`Using inventory valuation
|
||||
<../../../inventory_and_mrp/inventory/product_management/inventory_valuation/using_inventory_valuation>`
|
||||
- :ref:`Other inventory valuation methods <inventory/warehouses_storage/costing_methods>`
|
||||
|
||||
Configuration
|
||||
=============
|
||||
@@ -41,7 +43,8 @@ product category page, set :guilabel:`Costing Method` to `Average Cost (AVCO)` a
|
||||
:guilabel:`Inventory Valuation` to `Automated`.
|
||||
|
||||
.. seealso::
|
||||
:ref:`Inventory valuation configuration <inventory/management/inventory_valuation_config>`
|
||||
:doc:`Inventory valuation configuration
|
||||
<../../../inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config>`
|
||||
|
||||
Using average cost valuation
|
||||
============================
|
||||
@@ -260,7 +263,7 @@ value** increases based on the vendor price of the products that have entered th
|
||||
account (called **stock input**) is credited and only reconciled once the vendor bill is received.
|
||||
|
||||
.. seealso::
|
||||
- :ref:`Anglo-Saxon vs. Continental <inventory/inventory_valuation_config/accounting>`
|
||||
- :ref:`Anglo-Saxon vs. Continental <inventory/warehouses_storage/accounting-types>`
|
||||
|
||||
The table below reflects journal entries and accounts. The *stock input* account stores the money
|
||||
intended to pay vendors when the vendor bill has not yet been received. To balance accounts when
|
||||
|
||||
@@ -15,6 +15,8 @@ When browsing your chart of accounts, you can sort the accounts by :guilabel:`Co
|
||||
.. image:: chart_of_accounts/chart-of-accounts-sort.png
|
||||
:alt: Group the accounts by type in Odoo Accounting
|
||||
|
||||
.. _chart-of-account/create:
|
||||
|
||||
Configuration of an account
|
||||
===========================
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 71 KiB |
@@ -1,50 +1,35 @@
|
||||
=========
|
||||
VAT units
|
||||
Tax units
|
||||
=========
|
||||
|
||||
.. important::
|
||||
This is only applicable to multi-company environments.
|
||||
|
||||
A **VAT unit** is a group of VAT-taxable enterprises that are legally independent of each other but
|
||||
A **tax unit** is a group of VAT-taxable enterprises that are legally independent of each other but
|
||||
are closely linked financially, organizationally, and economically and therefore considered the same
|
||||
VAT-taxable enterprise. **VAT units** are not mandatory, but if created, constituent companies of
|
||||
VAT-taxable enterprise. **Tax units** are not mandatory, but if created, constituent companies of
|
||||
the unit must belong to the same **country**, use the same **currency**, and one company must be
|
||||
designated as the **representative** company of the **VAT unit**. **VAT units** receive a specific
|
||||
designated as the **representative** company of the **tax unit**. **Tax units** receive a specific
|
||||
**tax ID** intended only for **tax returns**. **Constituent** companies keep their **tax ID** used
|
||||
for **commercial purposes**.
|
||||
|
||||
.. example::
|
||||
Enterprise **A** owes €300.000,00 of VAT taxes and enterprise **B** can recover €280.000,00 of
|
||||
VAT taxes. They form up as a **VAT unit** so that the two amounts balance out and must conjointly
|
||||
VAT taxes. They form up as a **tax unit** so that the two amounts balance out and must conjointly
|
||||
only pay €20.000,00 of VAT taxes.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To configure a **VAT unit**, go to :menuselection:`Settings --> General Settings`, scroll down to
|
||||
the :guilabel:`Companies` section, and click :guilabel:`Manage Companies`. Select the company to
|
||||
serve the **representative** role, and in the :guilabel:`General Information` tab, fill in the
|
||||
mandatory fields for the .XML export when exporting the **tax report**: :guilabel:`Company Name`,
|
||||
:guilabel:`Address`, :guilabel:`VAT`, :guilabel:`Currency`, :guilabel:`Phone`, and
|
||||
:guilabel:`Email`.
|
||||
|
||||
.. image:: vat_units/general.png
|
||||
:align: center
|
||||
:alt: General information tab
|
||||
|
||||
Then, click on the :guilabel:`VAT Units` tab, :guilabel:`Add a line`, and either select an existing
|
||||
**VAT unit**, or create a new one. Enter a **name** for the unit, :guilabel:`Country` of the
|
||||
constituent companies and tax report, the :guilabel:`Companies`, the :guilabel:`Main Company` that
|
||||
serves the **representative** role, and the :guilabel:`Tax ID` of the **VAT unit**.
|
||||
|
||||
.. image:: vat_units/vat-unit.png
|
||||
:align: center
|
||||
:alt: VAT units tab
|
||||
To create a **tax unit**, go to :menuselection:`Accounting --> Configuration --> Tax Units`, and
|
||||
click :guilabel:`New`. Enter a **name** for the unit, select a :guilabel:`Country`, the
|
||||
:guilabel:`Companies` to incorporate in the unit, the :guilabel:`Main Company`, and the
|
||||
:guilabel:`Tax ID` of the **constituent** company of that tax unit.
|
||||
|
||||
Fiscal position
|
||||
---------------
|
||||
|
||||
As transactions between constituents of the same **VAT unit** are not subject to VAT, it is possible
|
||||
As transactions between constituents of the same **tax unit** are not subject to VAT, it is possible
|
||||
to create a :doc:`tax mapping (fiscal position) <../taxes/fiscal_positions>` to avoid the
|
||||
application of VAT on inter-constituent transactions.
|
||||
|
||||
@@ -61,13 +46,12 @@ Do the same for the :guilabel:`Account Mapping` tab if required, and repeat this
|
||||
Depending on your :doc:`localization package </applications/finance/fiscal_localizations>`, taxes
|
||||
may vary from the screenshot displayed.
|
||||
|
||||
.. image:: vat_units/fiscal-positions.png
|
||||
:align: center
|
||||
:alt: Tax mapping of fiscal position for VAT unit
|
||||
.. image:: tax_units/fiscal-positions.png
|
||||
:alt: Tax mapping of fiscal position for tax unit
|
||||
|
||||
Then, assign the fiscal position by opening the **Contacts** app. Search for a **constituent**
|
||||
company, and open the contact's **card**. Click the :guilabel:`Sales & Purchase` tab, and in the
|
||||
:guilabel:`Fiscal Position` field, input the **fiscal position** created for the **VAT unit**.
|
||||
:guilabel:`Fiscal Position` field, input the **fiscal position** created for the **tax unit**.
|
||||
Repeat the process for each **constituent** company card form, on each company database.
|
||||
|
||||
.. seealso::
|
||||
@@ -76,11 +60,10 @@ Repeat the process for each **constituent** company card form, on each company d
|
||||
Tax report
|
||||
==========
|
||||
|
||||
The **representative** company can access the aggregated tax report of the **VAT unit** by going to
|
||||
:menuselection:`Accounting --> Reporting --> Tax Report`, and selecting the **VAT unit** in
|
||||
The **representative** company can access the aggregated tax report of the **tax unit** by going to
|
||||
:menuselection:`Accounting --> Reporting --> Tax Report`, and selecting the **tax unit** in
|
||||
:guilabel:`Tax Unit`. This report contains the aggregated transactions of all **constituents** and
|
||||
the .XML export contains the name and VAT number of the **main** company.
|
||||
|
||||
.. image:: vat_units/report.png
|
||||
:align: center
|
||||
:alt: VAT unit tax report
|
||||
.. image:: tax_units/report.png
|
||||
:alt: tax unit tax report
|
||||
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 5.8 KiB |
|
Before Width: | Height: | Size: 10 KiB |
@@ -20,6 +20,8 @@ for use at a later date:
|
||||
- `Odoo Tutorials: Bank Configuration
|
||||
<https://www.odoo.com/slides/slide/bank-configuration-1880>`_
|
||||
|
||||
.. _payments/register:
|
||||
|
||||
Registering payment from an invoice or bill
|
||||
===========================================
|
||||
|
||||
|
||||
@@ -16,6 +16,8 @@ Go to :menuselection:`Accounting --> Configuration --> Settings --> Customer Pay
|
||||
Deposit multiple payments in batch
|
||||
==================================
|
||||
|
||||
.. _batch-payments/register-payments:
|
||||
|
||||
Register payments
|
||||
-----------------
|
||||
|
||||
|
||||
@@ -91,5 +91,5 @@ select :guilabel:`Process follow-ups`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/essentials/in_app_purchase`
|
||||
- :doc:`/applications/marketing/sms_marketing/pricing/pricing_and_faq`
|
||||
- :doc:`/applications/marketing/sms_marketing/pricing_and_faq`
|
||||
- :doc:`../customer_invoices/snailmail`
|
||||
|
||||
@@ -30,8 +30,9 @@ Non-EEA territories:
|
||||
- Jersey;
|
||||
- Isle of Man.
|
||||
|
||||
When paying a bill in Odoo, you can select SEPA mandates as a payment option. At the day's end,
|
||||
you can generate the SEPA file containing all bank wire transfers and send it to the bank.
|
||||
When paying a bill in Odoo, you can select SEPA mandates as a payment option. At the end of the day,
|
||||
you can generate the SEPA file containing all bank wire transfers and upload it to your online
|
||||
banking interface to process the payments.
|
||||
|
||||
By default, the file follows the SEPA Credit Transfer **'pain.001.001.03'** specifications. This is
|
||||
a well-defined standard among banks. However, for Swiss and German companies, other formats are used
|
||||
@@ -69,7 +70,7 @@ the BIC (bank identifier code) in the :guilabel:`Journal Entries` tab.
|
||||
Registering payments
|
||||
--------------------
|
||||
|
||||
You can register and vendor payments made with SEPA. To do so, go to :menuselection:`Accounting -->
|
||||
You can register any vendor payments made with SEPA. To do so, go to :menuselection:`Accounting -->
|
||||
Vendors --> Payments`. When creating your payment, select :guilabel:`SEPA Credit Transfer` as the
|
||||
:guilabel:`Payment Method`.
|
||||
|
||||
|
||||
@@ -40,6 +40,8 @@ of your organisation as at a particular date.
|
||||
|
||||
.. image:: reporting/main_reports09.png
|
||||
|
||||
.. _accounting/reporting/balance-sheet:
|
||||
|
||||
Profit and Loss
|
||||
---------------
|
||||
|
||||
@@ -49,6 +51,8 @@ report period.
|
||||
|
||||
.. image:: reporting/main_reports10.png
|
||||
|
||||
.. _accounting/reporting/executive-summary:
|
||||
|
||||
Executive Summary
|
||||
-----------------
|
||||
|
||||
@@ -126,6 +130,8 @@ payment during a selected month and several months prior.
|
||||
|
||||
.. image:: reporting/main_reports07.png
|
||||
|
||||
.. _accounting/reporting/cash-flow-statement:
|
||||
|
||||
Cash Flow Statement
|
||||
-------------------
|
||||
|
||||
|
||||
@@ -1,5 +1,5 @@
|
||||
================
|
||||
Financial budget
|
||||
Analytic budgets
|
||||
================
|
||||
|
||||
Managing budgets is an essential part of running a business. Budgets help people become more
|
||||
|
||||
@@ -3,10 +3,10 @@ Data inalterability check report
|
||||
================================
|
||||
|
||||
Tax authorities in some countries require companies to **prove their posted accounting entries are
|
||||
inalterable**, meaning that once an entry has been posted, it can no longer be changed.
|
||||
unaltered**, meaning that once an entry has been secured, it can no longer be changed.
|
||||
|
||||
To do so, Odoo can use the **SHA-256 algorithm** to create a unique fingerprint for each posted
|
||||
entry. This fingerprint is called a hash. The hash is generated by taking an entry's essential data
|
||||
To do so, Odoo creates a unique fingerprint for each secured entry thanks to the **SHA-256 algorithm**.
|
||||
This fingerprint is called a hash. The hash is generated by taking an entry's essential data
|
||||
(the values of the `name`, `date`, `journal_id`, `company_id`, `debit`, `credit`, `account_id`, and
|
||||
`partner_id` fields), concatenating it, and inputting it to the SHA-256 hash function, which then
|
||||
outputs a fixed size (256-bit) string of characters. The hash function is deterministic (:dfn:`the
|
||||
@@ -15,7 +15,7 @@ completely change the resulting hash. Consequently, the SHA-256 algorithm is oft
|
||||
others, for data integrity verification purposes.
|
||||
|
||||
In addition, the previous entry's hash is always added to the next entry to form a **hash chain**.
|
||||
This is used to ensure a new entry is not added afterward between two posted entries, as doing so
|
||||
This is used to ensure a new entry is not added afterward between two secured entries, as doing so
|
||||
would break the hash chain.
|
||||
|
||||
.. note::
|
||||
@@ -24,27 +24,70 @@ would break the hash chain.
|
||||
bigger than the number of atoms in the known universe. This is why hashes are considered unique
|
||||
in practice.
|
||||
|
||||
.. _data-inalterability/lock:
|
||||
.. _data-inalterability/inalterability_features:
|
||||
|
||||
Lock entries with hash
|
||||
======================
|
||||
Inalterability features
|
||||
=======================
|
||||
|
||||
To start using the hashing function, go to :menuselection:`Accounting --> Configuration > Journals`.
|
||||
Open the journal for which you want to activate the feature, go to the :guilabel:`Advanced Settings`
|
||||
tab, and enable :guilabel:`Lock Sent Invoices with Hash` for sale journals, or
|
||||
:guilabel:`Lock Entries Manually` for purchase and general journals.
|
||||
Inalterability features can be enabled by activating the :ref:`secure posted entries with hash
|
||||
<data-inalterability/restricted>` option on any journal or using the :ref:`secure entries wizard
|
||||
<data-inalterability/wizard>`.
|
||||
|
||||
For sale journals, the entry is automatically locked once it is sent. You can also click on the
|
||||
button :guilabel:`Lock` on the invoice to lock it without sending it. For sale, purchase, and
|
||||
general journals, the locking is always done manually using the same button.
|
||||
- Two indicators are added to the journal entry's form view.
|
||||
They show whether the entry is secured or not.
|
||||
|
||||
- A :icon:`fa-lock` or :icon:`fa-unlock` (:guilabel:`lock icon`) next to the :guilabel:`Posted` state.
|
||||
- A :guilabel:`Secured` checkbox in the :guilabel:`Other info` tab.
|
||||
|
||||
- A :guilabel:`Not Secured` filter is available on journal entries and journal items' list views.
|
||||
It can be used to find posted journal entries that are not secured yet.
|
||||
- The option to open the :ref:`secure entries wizard <data-inalterability/wizard>` is displayed in the
|
||||
:guilabel:`Accounting` menu.
|
||||
|
||||
.. _data-inalterability/restricted:
|
||||
|
||||
Secure posted entries with hash
|
||||
===============================
|
||||
|
||||
To activate the hashing function on a specific journal, go to :menuselection:`Accounting -->
|
||||
Configuration --> Journals`. Open a sales, purchase, or miscellaneous journal, go to the
|
||||
:guilabel:`Advanced Settings` tab, and enable :guilabel:`Secure Posted Entries with Hash`.
|
||||
Journals for which the feature is activated are called "restricted".
|
||||
|
||||
To compute the hash of an entry, Odoo retrieves the predecessor entries of the chain (i.e., the
|
||||
entries with the same sequence prefix) and hashes them in a continuous way from the last hashed
|
||||
entry to the new entry to hash.
|
||||
|
||||
.. warning::
|
||||
Once you lock an entry in a locked journal, you cannot disable the feature anymore, nor edit any
|
||||
locked entry.
|
||||
Once you post an entry in a restricted journal, you cannot disable the feature anymore, nor edit
|
||||
any secured entry.
|
||||
|
||||
.. _data-inalterability/wizard:
|
||||
|
||||
Secure entries wizard
|
||||
=====================
|
||||
|
||||
You can also use the :guilabel:`Secure Entries` Wizard to secure all journal entries,
|
||||
in **all** journals, up to a specific date.
|
||||
|
||||
.. note::
|
||||
The wizard operates independently of the journal settings and journal types.
|
||||
|
||||
To open it, activate the :ref:`developer mode <developer-mode>`, go to :menuselection:`Accounting
|
||||
--> Accounting`, and click on :guilabel:`Secure Entries`. If the :ref:`inalterability features
|
||||
<data-inalterability/inalterability_features>` are activated, it is also visible outside the debug
|
||||
mode.
|
||||
|
||||
To secure entries, select a date up to which all entries should be secured and press
|
||||
:guilabel:`Secure Entries`.
|
||||
|
||||
.. warning::
|
||||
After securing the entries, you can no longer edit them.
|
||||
|
||||
.. note::
|
||||
It can happen that entries that are past the selected date are secured.
|
||||
This is possible since the hash chain corresponds to the sequence prefix,
|
||||
ordered by sequence number.
|
||||
|
||||
.. _data-inalterability/report:
|
||||
|
||||
@@ -54,17 +97,18 @@ Report download
|
||||
To download the data inalterability check report, go to :menuselection:`Accounting --> Configuration
|
||||
--> Settings --> Reporting` and click on :guilabel:`Download the Data Inalterability Check Report`.
|
||||
|
||||
The report's first section is an overview of all your journals and their configuration. Under the
|
||||
inalterability check column, you can see whether or not a journal's entries are locked with a hash
|
||||
(V) or not (X). The coverage column tells you when a journal's entries started being locked.
|
||||
The report's first section is an overview of all journal sequence prefixes containing hashed entries.
|
||||
In the :guilabel:`Restricted` column, you can see whether or not a journal has the :ref:`secure
|
||||
posted entries with hash <data-inalterability/restricted>` option (V) activated or not (X). The
|
||||
:guilabel:`Check` column tells you whether all entries are correctly hashed.
|
||||
|
||||
.. image:: data_inalterability/journal-overview.png
|
||||
:align: center
|
||||
:alt: Configuration report for two journals
|
||||
|
||||
The second section gives you the result of the data consistency check for each hashed journal. You
|
||||
can view the first hashed entry and its corresponding hash and the last hashed entry and its
|
||||
corresponding hash.
|
||||
The second section gives a more detailed result of the data consistency check for each hashed
|
||||
journal sequence prefix. You can view the first hashed entry and its corresponding hash,
|
||||
as well as the last hashed entry and its corresponding hash.
|
||||
|
||||
.. image:: data_inalterability/data-consistency-check.png
|
||||
:align: center
|
||||
|
||||
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 16 KiB |
@@ -101,8 +101,9 @@ correctly reporting a balance of zero. If that is the case, set an :guilabel:`Al
|
||||
to the last day of the fiscal year by going to :menuselection:`Accounting --> Accounting --> Lock
|
||||
Dates`.
|
||||
|
||||
.. warning::
|
||||
Setting an :guilabel:`All Users Lock Date` is **irreversible** and cannot be removed.
|
||||
.. tip::
|
||||
Install the :guilabel:`Irreversible Lock Date` (`account_lock`) module to make the :guilabel:`All
|
||||
Users Lock Date` *irreversible* once set.
|
||||
|
||||
.. note::
|
||||
A specific year-end closing entry is **optional** in order to close out the **profit and loss
|
||||
|
||||
@@ -336,7 +336,6 @@ drop the taxes in the :ref:`order they should be computed <taxes/base-subsequent
|
||||
.. seealso::
|
||||
- :doc:`taxes/fiscal_positions`
|
||||
- :doc:`taxes/B2B_B2C`
|
||||
- :doc:`taxes/taxcloud`
|
||||
- :doc:`reporting/tax_returns`
|
||||
|
||||
.. toctree::
|
||||
@@ -347,6 +346,5 @@ drop the taxes in the :ref:`order they should be computed <taxes/base-subsequent
|
||||
taxes/vat_verification
|
||||
taxes/fiscal_positions
|
||||
taxes/avatax
|
||||
taxes/taxcloud
|
||||
taxes/eu_distance_selling
|
||||
taxes/B2B_B2C
|
||||
|
||||
@@ -1,74 +1,441 @@
|
||||
:show-content:
|
||||
|
||||
==================
|
||||
Avatax integration
|
||||
AvaTax integration
|
||||
==================
|
||||
|
||||
Avatax is a tax calculation provider that can be integrated in Odoo.
|
||||
Avalara's *AvaTax* is a cloud-based tax software. Integrating *AvaTax* with Odoo provides real-time
|
||||
and region-specific tax calculations when users sell, purchase, and invoice items in Odoo. *AvaTax*
|
||||
tax calculation is supported with every United Nations charted country, including inter-border
|
||||
transactions.
|
||||
|
||||
.. important::
|
||||
*AvaTax* is only available for integration with databases/companies that have locations in the
|
||||
United States, Canada, and Brazil. This means the fiscal position/country of a database can only
|
||||
be set to the United States, Canada, or Brazil. For more information, reference this
|
||||
documentation: :ref:`avatax/fiscal_country`.
|
||||
|
||||
*AvaTax* accounts for location-based tax rates for each state, county, and city. It improves
|
||||
remittance accuracy by paying close attention to laws, rules, jurisdiction boundaries, and special
|
||||
circumstances (like, tax holidays, and product exemptions). Companies who integrate with *AvaTax*
|
||||
can maintain control of tax-calculations in-house with this simple :abbr:`API (application
|
||||
programming interface)` integration.
|
||||
|
||||
.. important::
|
||||
Some limitations exist in Odoo while using AvaTax for tax calculation:
|
||||
|
||||
- AvaTax is **not** supported in Odoo's **Point of Sale** app, because a dynamic tax
|
||||
calculation model is excessive for transactions within a single delivery address, such as
|
||||
stores or restaurants.
|
||||
- AvaTax and Odoo use the company address, **not** the warehouse address.
|
||||
- Excise tax is **not** supported. This includes tobacco/vape taxes, fuel taxes, and other
|
||||
specific industries.
|
||||
|
||||
.. seealso::
|
||||
Avalara's support documents: `About AvaTax
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US>`_
|
||||
|
||||
Set up on AvaTax
|
||||
================
|
||||
|
||||
To use *AvaTax*, an account with Avalara is required for the setup. If one has not been set up yet,
|
||||
connect with Avalara to purchase a license: `Avalara: Let's Talk
|
||||
<https://www.avalara.com/us/en/get-started.html>`_.
|
||||
|
||||
.. tip::
|
||||
Upon account setup, take note of the *AvaTax* :guilabel:`Account ID`. This will be needed in the
|
||||
:ref:`Odoo setup <avatax/credentials>`. In Odoo, this number is the :guilabel:`API ID`.
|
||||
|
||||
Then, `create a basic company profile
|
||||
<https://www.odoo.com/r/2k0>`_.
|
||||
|
||||
Create basic company profile
|
||||
----------------------------
|
||||
|
||||
Collect essential business details for the next step: locations where tax is collected,
|
||||
products/services sold (and their sales locations), and customer tax exemptions, if applicable.
|
||||
Follow the Avalara documentation for creating a basic company profile:
|
||||
|
||||
#. `Add company information
|
||||
<https://www.odoo.com/r/XZDW>`_.
|
||||
#. `Tell us where the company collects and pays tax
|
||||
<https://www.odoo.com/r/E6g>`_.
|
||||
#. `Verify jurisdictions and activate the company
|
||||
<https://www.odoo.com/r/NIy>`_.
|
||||
#. `Add other company locations for location-based filing
|
||||
<https://www.odoo.com/r/GF4>`_.
|
||||
#. `Add a marketplace to the company profile
|
||||
<https://www.odoo.com/r/QA5>`_.
|
||||
|
||||
.. _avatax/create_avalara_credentials:
|
||||
|
||||
Connect to AvaTax
|
||||
-----------------
|
||||
|
||||
After creating the basic company profile in Avalara, connect to *AvaTax*. This step links Odoo and
|
||||
*AvaTax* bidirectionally.
|
||||
|
||||
Navigate to either Avalara's `sandbox <https://sandbox.admin.avalara.com/>`_ or `production
|
||||
<https://admin.avalara.com/>`_ environment. This will depend on which type of Avalara account the
|
||||
company would like to integrate.
|
||||
|
||||
.. seealso::
|
||||
`Sandbox vs production environments in Avalara
|
||||
<https://knowledge.avalara.com/bundle/fzc1692293626742/page/sandbox-vs-production.html>`_.
|
||||
|
||||
Log in to create the :guilabel:`License Key`. Go to :menuselection:`Settings --> License and API
|
||||
Keys`. Click :guilabel:`Generate License Key`.
|
||||
|
||||
.. important::
|
||||
A warning appears stating: `If your business app is connected to Avalara solutions, the
|
||||
connection will be broken until you update the app with the new license key. This action cannot
|
||||
be undone.`
|
||||
|
||||
Generating a new license key breaks the connection with existing business apps using the *AvaTax*
|
||||
integration. Make sure to update these apps with the new license key.
|
||||
|
||||
If this will be the first :abbr:`API (application programming interface)` integration being made
|
||||
with *AvaTax* and Odoo, then click :guilabel:`Generate license key`.
|
||||
|
||||
If this is an additional license key, ensure the previous connection can be broken. There is
|
||||
**only** one license key associated with each of the Avalara sandbox and production accounts.
|
||||
|
||||
.. warning::
|
||||
Copy this key to a safe place. It is strongly encouraged to back up the license key for
|
||||
future reference. This key **cannot** be retrieved after leaving this screen.
|
||||
|
||||
Odoo configuration
|
||||
==================
|
||||
|
||||
Before using *AvaTax*, there are some additional configurations in Odoo to ensure tax calculations
|
||||
are made accurately.
|
||||
|
||||
Verify that the Odoo database contains necessary data. The country initially set up in the database
|
||||
determines the fiscal position, and aids *AvaTax* in calculating accurate tax rates.
|
||||
|
||||
.. _avatax/fiscal_country:
|
||||
|
||||
Fiscal country
|
||||
--------------
|
||||
|
||||
To set the :guilabel:`Fiscal Country`, navigate to :menuselection:`Accounting app --> Configuration
|
||||
--> Settings`.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../../fiscal_localizations`
|
||||
|
||||
Under the :guilabel:`Taxes` section, set the :guilabel:`Fiscal Country` feature to :guilabel:`United
|
||||
States`, :guilabel:`Canada`, or :guilabel:`Brazil`. Then, click :guilabel:`Save`.
|
||||
|
||||
Company settings
|
||||
----------------
|
||||
|
||||
All companies operating under the Odoo database should have a full and complete address listed in
|
||||
the settings. Navigate to the :menuselection:`Settings app`, and under the :guilabel:`Companies`
|
||||
section, ensure there is only one company operating the Odoo database. Click :guilabel:`Update Info`
|
||||
to open a separate page to update company details.
|
||||
|
||||
If there are multiple companies operating in the database, click :guilabel:`Manage Companies` to
|
||||
load a list of companies to select from. Update company information by clicking into the specific
|
||||
company.
|
||||
|
||||
Database administrators should ensure that the :guilabel:`Street...`, :guilabel:`Street2...`,
|
||||
:guilabel:`City`, :guilabel:`State`, :guilabel:`ZIP`, and :guilabel:`Country` are all updated for
|
||||
the companies.
|
||||
|
||||
This ensures accurate tax calculations and smooth end-of-year accounting operations.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../../../general/companies`
|
||||
- :doc:`../get_started`
|
||||
|
||||
Module installation
|
||||
-------------------
|
||||
|
||||
Next, ensure that the Odoo *AvaTax* module is installed. To do so, navigate to the
|
||||
:menuselection:`Apps application`. In the :guilabel:`Search...` bar, type in `avatax`, and press
|
||||
:kbd:`Enter`. The following results populate:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 25 25 50
|
||||
|
||||
* - Name
|
||||
- Technical name
|
||||
- Description
|
||||
* - :guilabel:`Avatax`
|
||||
- `account_avatax`
|
||||
- Default *AvaTax* module. This module adds the base *AvaTax* features for tax calculation.
|
||||
* - :guilabel:`Avatax for geo localization`
|
||||
- `account_avatax_geolocalize`
|
||||
- This module includes the features required for integration of *AvaTax* into geo-localization
|
||||
in Odoo.
|
||||
* - :guilabel:`Avatax for SO`
|
||||
- `account_avatax_sale`
|
||||
- Includes the information needed for tax calculation on sales orders in Odoo.
|
||||
* - :guilabel:`Avatax for Inventory`
|
||||
- `account_avatax_stock`
|
||||
- Includes tax calculation in Odoo Inventory.
|
||||
* - :guilabel:`Amazon/Avatax Bridge`
|
||||
- `sale_amazon_avatax`
|
||||
- Includes tax calculation features between the *Amazon Connector* and Odoo.
|
||||
* - :guilabel:`Avatax Brazil`
|
||||
- `l10n_br_avatax`
|
||||
- Includes information for tax calculation in the Brazil localization.
|
||||
* - :guilabel:`Avatax Brazil for Services`
|
||||
- `l10n_br_avatax_services`
|
||||
- This module includes the required features for tax calculation for services in the Brazil
|
||||
localization.
|
||||
* - :guilabel:`Avatax Brazil Sale for Services`
|
||||
- `l10n_br_edi_sale_services`
|
||||
- This module includes the required features for tax calculation for the sale of services in
|
||||
the Brazil localization. This includes electronic data interchange (EDI).
|
||||
* - :guilabel:`Test SOs for the Brazilian AvaTax`
|
||||
- `l10n_br_test_avatax_sale`
|
||||
- This module includes the required features for test sales orders in the Brazil localization.
|
||||
|
||||
Click the :guilabel:`Install` button on the module labeled, :guilabel:`Avatax`: `account_avatax`.
|
||||
Doing so installs the following modules:
|
||||
|
||||
- :guilabel:`Avatax`: `account_avatax`
|
||||
- :guilabel:`Avatax for SO`: `account_avatax_sale`
|
||||
- :guilabel:`Avatax for Inventory`: `account_avatax_stock`
|
||||
|
||||
Should *AvaTax* be needed for geo-localization, or with the *Amazon Connector*, then install those
|
||||
modules individually by clicking on :guilabel:`Install` on :guilabel:`Avatax for geo localization`
|
||||
and :guilabel:`Amazon/Avatax Bridge`, respectively.
|
||||
|
||||
.. seealso::
|
||||
For localization specific *AvaTax* instructions, view the following :doc:`fiscal localization
|
||||
<../../fiscal_localizations>` documentation:
|
||||
|
||||
- :doc:`../../fiscal_localizations/brazil`
|
||||
- :doc:`../../fiscal_localizations/united_states`
|
||||
|
||||
.. _avatax/credentials:
|
||||
|
||||
Credential configuration
|
||||
========================
|
||||
Odoo AvaTax settings
|
||||
--------------------
|
||||
|
||||
To integrate Avatax with Odoo, go to :menuselection:`Accounting --> Configuration --> Settings -->
|
||||
Taxes` and add your Avatax credentials in the :guilabel:`Avatax` section.
|
||||
To integrate the *AvaTax* :abbr:`API (application programming interface)` with Odoo, go to
|
||||
:menuselection:`Accounting app --> Configuration --> Settings` section. The :guilabel:`AvaTax`
|
||||
fields in the :guilabel:`Taxes` section is where the *AvaTax* configurations are made, and the
|
||||
credentials are entered in.
|
||||
|
||||
.. tip::
|
||||
If you do not yet have credentials, click on :guilabel:`How to Get Credentials`.
|
||||
First, tick the checkbox to the left of the :guilabel:`AvaTax` settings, to activate *AvaTax* on the
|
||||
database. This is a quick, convenient way to activate and deactivate *AvaTax* tax calculation on the
|
||||
Odoo database.
|
||||
|
||||
.. image:: avatax/avatax-configuration-settings.png
|
||||
:align: center
|
||||
:alt: Configure Avatax settings
|
||||
:alt: Configure AvaTax settings
|
||||
|
||||
.. _avatax/tax-mapping:
|
||||
Prerequisites
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
First, select the :guilabel:`Environment` in which the company wishes to use *AvaTax* in. It can
|
||||
either be :guilabel:`Sandbox` or :guilabel:`Production`.
|
||||
|
||||
.. seealso::
|
||||
For help determining which *AvaTax* environment to use (either :guilabel:`Production` or
|
||||
:guilabel:`Sandbox`), visit: `Sandbox vs Production environments
|
||||
<https://knowledge.avalara.com/bundle/fzc1692293626742/page/sandbox-vs-production.html>`_.
|
||||
|
||||
Credentials
|
||||
~~~~~~~~~~~
|
||||
|
||||
Now, the credentials can be entered in. The *AvaTax* :guilabel:`Account ID` should be entered in the
|
||||
:guilabel:`API ID` field, and the :guilabel:`License Key` should be entered in the :guilabel:`API
|
||||
Key` field.
|
||||
|
||||
.. important::
|
||||
The :guilabel:`Account ID` can be found by logging into the *AvaTax* portal (`sandbox
|
||||
<https://sandbox.admin.avalara.com/>`_ or `production <https://admin.avalara.com/>`_). In the
|
||||
upper-right corner, click on the initials of the user and :guilabel:`Account`. The
|
||||
:guilabel:`Account ID` is listed first.
|
||||
|
||||
To access the :guilabel:`License Key` see this documentation:
|
||||
:ref:`avatax/create_avalara_credentials`.
|
||||
|
||||
For the :guilabel:`Company Code` field, enter the Avalara company code for the company being
|
||||
configured. Avalara interprets this as `DEFAULT`, if it is not set. The :guilabel:`Company Code` can
|
||||
be accessed in the Avalara management portal.
|
||||
|
||||
First, log into the *AvaTax* portal (`sandbox <https://sandbox.admin.avalara.com/>`_ or `production
|
||||
<https://admin.avalara.com/>`_). Then, navigate to :menuselection:`Settings --> Manage Companies`.
|
||||
The :guilabel:`Company Code` value is located in the row of the :guilabel:`Company` in the
|
||||
:guilabel:`Company Code` column.
|
||||
|
||||
.. image:: avatax/company-code.png
|
||||
:align: center
|
||||
:alt: AvaTax company code highlighted on the company details page.
|
||||
|
||||
Transaction options
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
There are two transactional settings in the Odoo *AvaTax* settings that can be configured:
|
||||
:guilabel:`Use UPC` and :guilabel:`Commit Transactions`.
|
||||
|
||||
If the checkbox next to :guilabel:`Use UPC` is ticked, the transactions will use Universal Product
|
||||
Codes (UPC), instead of custom defined codes in Avalara. Consult a certified public accountant (CPA)
|
||||
for specific guidance.
|
||||
|
||||
Should the :guilabel:`Commit Transactions` checkbox be ticked, then, the transactions in the Odoo
|
||||
database will be committed for reporting in *AvaTax*.
|
||||
|
||||
Address validation
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The *Address Validation* feature ensures that the most up-to-date address by postal standards is set
|
||||
on a contact in Odoo. This is important to provide accurate tax calculations for customers.
|
||||
|
||||
.. important::
|
||||
The :guilabel:`Address Validation` feature only works with partners/customers in North America.
|
||||
|
||||
Additionally, tick the checkbox next to the :guilabel:`Address validation` field.
|
||||
|
||||
.. important::
|
||||
For accurate tax calculations, it is best practice to enter a complete address for the contacts
|
||||
saved in the database. However, *AvaTax* can still function by implementing a best effort attempt
|
||||
using only the :guilabel:`Country`, :guilabel:`State`, and :guilabel:`Zip code`. These are the
|
||||
three minimum required fields.
|
||||
|
||||
:guilabel:`Save` the settings to implement the configuration.
|
||||
|
||||
.. tip::
|
||||
Manually :guilabel:`Validate` the address by navigating to the :menuselection:`Contacts app`, and
|
||||
selecting a contact. Now that the *AvaTax* module has been configured on the database, a
|
||||
:guilabel:`Validate` button appears directly below the :guilabel:`Address`.
|
||||
|
||||
Click :guilabel:`Validate`, and a pop-up window appears with a :guilabel:`Validated Address` and
|
||||
:guilabel:`Original Address` listed. If the :guilabel:`Validated Address` is the correct mailing
|
||||
address for tax purposes, click :guilabel:`Save Validated`.
|
||||
|
||||
.. image:: avatax/validate-address.png
|
||||
:align: center
|
||||
:alt: Validate address pop-up window in Odoo with "Save Validated" button and "Validated
|
||||
Address" highlighted.
|
||||
|
||||
.. warning::
|
||||
All previously-entered addresses for contacts in the Odoo database will need to be validated
|
||||
using the manually validate process outlined above. Addresses are not automatically validated if
|
||||
they were entered previously. This only occurs upon tax calculation.
|
||||
|
||||
Test connection
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
After entering all the above information into the *AvaTax* setup on Odoo, click :guilabel:`Test
|
||||
connection`. This ensures the :guilabel:`API ID` and :guilabel:`API KEY` are correct, and a
|
||||
connection is made between Odoo and the *AvaTax* application programming interface (API).
|
||||
|
||||
Sync parameters
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Upon finishing the configuration and settings of the *AvaTax* section, click the :guilabel:`Sync
|
||||
Parameters` button. This action synchronizes the exemption codes from *AvaTax*.
|
||||
|
||||
.. _avatax/fiscal_positions:
|
||||
|
||||
Fiscal position
|
||||
---------------
|
||||
|
||||
Next, navigate to :menuselection:`Accounting app --> Configuration --> Accounting: Fiscal
|
||||
Positions`. A :guilabel:`Fiscal Position` is listed named, :guilabel:`Automatic Tax Mapping
|
||||
(AvaTax)`. Click it to open *AvaTax's* fiscal position configuration page.
|
||||
|
||||
Here, ensure that the :guilabel:`Use AvaTax API` checkbox is ticked.
|
||||
|
||||
Optionally, tick the checkbox next to the field labeled: :guilabel:`Detect Automatically`. Should
|
||||
this option be ticked, then, Odoo will automatically apply this :guilabel:`Fiscal Position` for
|
||||
transactions in Odoo.
|
||||
|
||||
Enabling :guilabel:`Detect Automatically` also makes specific parameters, such as :guilabel:`VAT
|
||||
required`, :guilabel:`Foreign Tax ID`, :guilabel:`Country Group`, :guilabel:`Country`,
|
||||
:guilabel:`Federal States`, or :guilabel:`Zip Range` appear. Filling these parameters filters the
|
||||
:guilabel:`Fiscal Position` usage. Leaving them blank ensures all calculations are made using this
|
||||
:guilabel:`Fiscal Position`.
|
||||
|
||||
.. warning::
|
||||
Should the :guilabel:`Detect Automatically` checkbox not be ticked, each customer will need to
|
||||
have the :guilabel:`Fiscal Position` set on their :guilabel:`Sales and Purchase` tab of the
|
||||
contact record. To do so, navigate to :menuselection:`Sales app --> Order --> Customers`, or
|
||||
:menuselection:`Contacts app --> Contacts`. Then, select a customer or contact to set the fiscal
|
||||
position on.
|
||||
|
||||
Navigate to the :guilabel:`Sales and Purchase` tab, and down to the section labeled,
|
||||
:guilabel:`Fiscal Position`. Set the :guilabel:`Fiscal Position` field to the fiscal position
|
||||
for the customer.
|
||||
|
||||
.. seealso::
|
||||
:doc:`fiscal_positions`
|
||||
|
||||
AvaTax accounts
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Upon selecting the checkbox option for :guilabel:`Use AvaTax API` a new :guilabel:`AvaTax` tab
|
||||
appears. Click into this tab to reveal two different settings.
|
||||
|
||||
The first setting is the :guilabel:`AvaTax Invoice Account`, while the second is, :guilabel:`AvaTax
|
||||
Refund Account`. Ensure both accounts are set for smooth end-of-year record keeping. Consult a
|
||||
certified public accountant (CPA) for specific guidance on setting both accounts.
|
||||
|
||||
Click :guilabel:`Save` to implement the changes.
|
||||
|
||||
Tax mapping
|
||||
===========
|
||||
-----------
|
||||
|
||||
The Avatax integration is available on Sale Orders and Invoices with the included Avatax fiscal
|
||||
The *AvaTax* integration is available on sale orders and invoices with the included *AvaTax* fiscal
|
||||
position.
|
||||
|
||||
.. tip::
|
||||
Additionally, there is a :guilabel:`Tax Mapping` tab and :guilabel:`Account Mapping` tab in the
|
||||
:guilabel:`Automatic Tax Mapping (AvaTax)` fiscal position, where mapping for products can also
|
||||
be configured. To access :guilabel:`Fiscal Positions` navigate to :menuselection:`Accounting app
|
||||
--> Configuration --> Accounting: Fiscal Positions`.
|
||||
|
||||
Product category mapping
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Before using the integration, specify an :guilabel:`Avatax Category` on the product categories.
|
||||
Navigate to :menuselection:`Inventory app --> Configuration --> Product Categories`. Select the
|
||||
product category to add the :guilabel:`AvaTax Category` to. In the :guilabel:`AvaTax Category`
|
||||
field, select a category from the drop-down menu, or :guilabel:`Search More...` to open the complete
|
||||
list of options.
|
||||
|
||||
.. image:: avatax/avatax-category.png
|
||||
:align: center
|
||||
:alt: Specify Avatax Category on products
|
||||
:alt: Specify AvaTax Category on products.
|
||||
|
||||
Avatax Categories may be overridden or set on individual products as well.
|
||||
Product mapping
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
*AvaTax* Categories may be set on individual products, as well. To set the :guilabel:`Avatax
|
||||
Category` navigate to :menuselection:`Inventory app --> Products --> Products`. Select the product
|
||||
to add the :guilabel:`Avatax Category` to. Under the :guilabel:`General Information` tab, on the
|
||||
far-right, is a selector field labeled: :guilabel:`Avatax Category`. Finally, click the drop-down
|
||||
menu, and select a category, or :guilabel:`Search More...` to find one that is not listed.
|
||||
|
||||
.. note::
|
||||
If both the product, and its category, have an :guilabel:`AvaTax Category` set, the product's
|
||||
:guilabel:`AvaTax Category` takes precedence.
|
||||
|
||||
.. image:: avatax/override-avatax-product-category.png
|
||||
:align: center
|
||||
:alt: Override product categories as needed
|
||||
:alt: Override product categories as needed.
|
||||
|
||||
.. _avatax/address-mapping:
|
||||
|
||||
Address validation
|
||||
==================
|
||||
|
||||
Manually validate customer addresses by clicking the :guilabel:`Validate address` link in the
|
||||
customer form view.
|
||||
|
||||
.. image:: avatax/validate-customer-address.png
|
||||
:align: center
|
||||
:alt: Validate customer addresses
|
||||
|
||||
If preferred, choose to keep the newly validated address or the original address in the wizard that
|
||||
pops up.
|
||||
|
||||
.. image:: avatax/choose-customer-address.png
|
||||
:align: center
|
||||
:alt: Address validation wizard
|
||||
|
||||
.. _avatax/tax-calculation:
|
||||
|
||||
Tax calculation
|
||||
===============
|
||||
|
||||
Automatically calculate taxes on Odoo quotations and invoices with Avatax by confirming the
|
||||
documents. Alternatively, calculate the taxes manually by clicking the :guilabel:`Compute taxes
|
||||
using Avatax` button while these documents are in draft mode.
|
||||
|
||||
Use the :guilabel:`Avalara Code` field that's available on customers, quotations, and invoices to
|
||||
cross-reference data in Odoo and Avatax.
|
||||
.. important::
|
||||
Mapping an :guilabel:`AvaTax Category` on either the *Product* or *Product Category* should be
|
||||
completed for every *Product* or *Product Category*, depending on the route that is chosen.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`fiscal_positions`
|
||||
- :doc:`avatax/avatax_use`
|
||||
- :doc:`avatax/avalara_portal`
|
||||
- `US Tax Compliance: Avatax elearning video
|
||||
<https://www.odoo.com/slides/slide/us-tax-compliance-avatax-2858?fullscreen=1>`_
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
avatax/avatax_use
|
||||
avatax/avalara_portal
|
||||
|
||||
@@ -0,0 +1,259 @@
|
||||
|
||||
.. _avatax/portal:
|
||||
|
||||
=======================
|
||||
Avalara (Avatax) portal
|
||||
=======================
|
||||
|
||||
Avalara's (*AvaTax*) management console offers account management options including: viewing/editing
|
||||
the transactions sent from Odoo to *AvaTax*, details on how the taxes are calculated, tax reporting,
|
||||
tax exemption management, and tax return resources.
|
||||
|
||||
.. tip::
|
||||
Avalara is the software developer of the tax software, *AvaTax*.
|
||||
|
||||
To access the console, first, navigate to either Avalara's `sandbox
|
||||
<https://sandbox.admin.avalara.com/>`_ or `production <https://admin.avalara.com/>`_ environment.
|
||||
This will depend on which type of account was set in the :doc:`integration <../avatax>`. Log in to
|
||||
the management console.
|
||||
|
||||
.. image:: avalara_portal/avalara-portal.png
|
||||
:align: center
|
||||
:alt: Avalara dashboard after logging into management portal.
|
||||
|
||||
.. seealso::
|
||||
For more information see Avalara's documentation: `Activate your Communications Customer Portal
|
||||
account
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=qvv1656594440497&topicId=Activate_your_Communications_Customer_Portal_account.html&_LANG=enus>`_.
|
||||
|
||||
.. _avalara/portal-transactions:
|
||||
|
||||
Transactions
|
||||
============
|
||||
|
||||
To access transactions, click in the :guilabel:`Transactions` link on the main dashboard upon
|
||||
logging into the :ref:`avatax/portal`. To manually access the *Transactions* page, while logged into
|
||||
the Avalara console, navigate to :menuselection:`Transactions --> Transactions`.
|
||||
|
||||
.. image:: avalara_portal/avalara-transactions.png
|
||||
:align: center
|
||||
:alt: Avalara portal with the transactions shortcut highlighted.
|
||||
|
||||
Edit transaction
|
||||
----------------
|
||||
|
||||
Click into a transaction to reveal more details about the transaction. These details include
|
||||
sections on :guilabel:`Invoice detail`, :guilabel:`Additional info`, and :guilabel:`Customer info`.
|
||||
Click :icon:`fa-pencil` :guilabel:`Edit document details` to make changes to the transaction.
|
||||
|
||||
A :guilabel:`Discount` can be added to adjust the invoice. This is especially useful in cases where
|
||||
the transaction has already synced with Avalara / *AvaTax*, and changes need to be made afterward.
|
||||
|
||||
.. _avalara/portal-filter:
|
||||
|
||||
Filter
|
||||
------
|
||||
|
||||
Filter transactions on the :guilabel:`Transactions` page, by setting the :guilabel:`From` and
|
||||
:guilabel:`To` fields, and configuring other fields to filter by, including:
|
||||
|
||||
- :guilabel:`Document Status`: any of the following options, :guilabel:`All`, :guilabel:`Voided`,
|
||||
:guilabel:`Committed`, :guilabel:`Uncommitted`, or :guilabel:`Locked`.
|
||||
- :guilabel:`Document Code`: any of the following options, :guilabel:`Exactly match`,
|
||||
:guilabel:`Starts with`, or :guilabel:`Contains`.
|
||||
- :guilabel:`Customer/Vendor Code`: the customer/vendor code in Odoo (e.g. `Contact18`).
|
||||
- :guilabel:`Country`: the country this tax was calculated in; this is a text field.
|
||||
- :guilabel:`Region`: the region of the country, which varies based on the :guilabel:`Country`
|
||||
selection.
|
||||
|
||||
Click :icon:`fa-plus` :guilabel:`Filters` to access the following filter conditions:
|
||||
|
||||
- :guilabel:`Document Type`: any of the following selections, :guilabel:`All`, :guilabel:`Sales
|
||||
Invoice`, :guilabel:`Purchase Invoice`, :guilabel:`Return Invoice`, :guilabel:`Inventory Transfer
|
||||
Inbound Invoice`, :guilabel:`Inventory Transfer Outbound Invoice`, or :guilabel:`Customs
|
||||
Invoice`.
|
||||
- :guilabel:`Import ID`: represents the import ID of the document.
|
||||
|
||||
Sort by
|
||||
-------
|
||||
|
||||
On the :guilabel:`Transactions` page, transactions will be listed below, according to the set
|
||||
:ref:`avalara/portal-filter`, located in the top half of the page. The following columns are
|
||||
available by default, to sort by ascending or descending order:
|
||||
|
||||
- :guilabel:`Doc Code`: either of the following options, :guilabel:`Exactly match`,
|
||||
:guilabel:`Starts with`, or :guilabel:`Contains`.
|
||||
- :guilabel:`Doc Status`: either of the following options, :guilabel:`All`, :guilabel:`Voided`,
|
||||
:guilabel:`Committed`, :guilabel:`Uncommitted`, or :guilabel:`Locked`.
|
||||
- :guilabel:`Cust/Vendor Code` : this is the customer/vendor code in Odoo (e.g. Contact18).
|
||||
- :guilabel:`Region`: this is the region of the country, this will vary based on the
|
||||
:guilabel:`Country` selection.
|
||||
- :guilabel:`Amount`: the numeric amount of the total amount on the Odoo document.
|
||||
- :guilabel:`Tax`: the numeric amount of the tax applied to the total.
|
||||
|
||||
.. image:: avalara_portal/transactions.png
|
||||
:align: center
|
||||
:alt: Transactions page on the Avalara portal with the filter and sort-by options highlighted.
|
||||
|
||||
Customize columns
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Additional columns can be added by clicking the :icon:`fa-cog` :guilabel:`Customize columns`. On the
|
||||
resulting popover window, click the drop-down menu for the :guilabel:`column` that should be
|
||||
changed.
|
||||
|
||||
The following columns can be added for additional transactional information:
|
||||
|
||||
- :guilabel:`AvaTax calculated`: the amount of tax calculated by *AvaTax*.
|
||||
- :guilabel:`Country`: the country this tax was calculated in; this is a text field.
|
||||
- :guilabel:`Cust/vendor code`: the customer/vendor code in Odoo (e.g. `Contact18`).
|
||||
- :guilabel:`Currency`: the standardized abbreviation for the currency the amount total is in.
|
||||
- :guilabel:`Doc date`: the document's date of creation.
|
||||
- :guilabel:`Doc status`: any of the following options, :guilabel:`All`, :guilabel:`Voided`,
|
||||
:guilabel:`Committed`, :guilabel:`Uncommitted`, or :guilabel:`Locked`.
|
||||
- :guilabel:`Doc type`: any of the following selections, :guilabel:`All`, :guilabel:`Sales
|
||||
Invoice`, :guilabel:`Purchase Invoice`, :guilabel:`Return Invoice`, :guilabel:`Inventory Transfer
|
||||
Inbound Invoice`, :guilabel:`Inventory Transfer Outbound Invoice`, or :guilabel:`Customs
|
||||
Invoice`.
|
||||
- :guilabel:`Import ID`: represents the import ID of the document.
|
||||
- :guilabel:`Last modified`: timestamp of the last time the document was modified.
|
||||
- :guilabel:`Location code`: the location code used to calculate the tax, based on the delivery
|
||||
address.
|
||||
- :guilabel:`PO number`: the purchase order number.
|
||||
- :guilabel:`Reference code`: the Odoo reference code (e.g. NV/2024/00003)
|
||||
- :guilabel:`Region`: the region of the country,which varies based on the :guilabel:`Country`
|
||||
selection.
|
||||
- :guilabel:`Salesperson code`: the numeric ID of the user assigned to the sales order in Odoo.
|
||||
- :guilabel:`Tax date`: the month/day/year of the tax calculation.
|
||||
- :guilabel:`Tax override type`: where an exemption would appear, should there be none, the field
|
||||
populates with :guilabel:`None`.
|
||||
|
||||
To add a new column click the :icon:`fa-plus` :guilabel:`Column`.
|
||||
|
||||
.. seealso::
|
||||
For more information on *AvaTax* transactions, refer to this Avalara documentation: `Transactions
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=qvv1656594440497&topicId=transactions.html&_LANG=enus>`_.
|
||||
|
||||
Import-export
|
||||
-------------
|
||||
|
||||
While on the :ref:`avalara/portal-transactions`, click :icon:`fa-download` :guilabel:`Import
|
||||
transactions` or :icon:`fa-upload` :guilabel:`Export transactions` to import or export transactions.
|
||||
|
||||
Reports
|
||||
-------
|
||||
|
||||
To access reporting, navigate to the :menuselection:`Reports` link in the top menu of the Avalara
|
||||
management console. Next, select from one of the available reporting tabs: :guilabel:`Transactions
|
||||
reports`, :guilabel:`Liability & tax return reports`, or :guilabel:`Exemption reports`.
|
||||
|
||||
.. tip::
|
||||
Additionally, there is a :guilabel:`Favorites` tab and :guilabel:`Downloads` tab. The
|
||||
:guilabel:`Favorites` tab contains any favorited report configurations for the Avalara user. The
|
||||
:guilabel:`Downloads` tab contains a list view where the user can download the high-volume
|
||||
transaction reports created in the last 30 days.
|
||||
|
||||
Make a selection for the :guilabel:`Report Category`, and the :guilabel:`Report Name`, under the
|
||||
:guilabel:`Select a report` section.
|
||||
|
||||
Next, fill out the :guilabel:`Select report details` section. These options will vary based on the
|
||||
tab selected above.
|
||||
|
||||
Depending on the report size, the following two options are available in the section labeled,
|
||||
:guilabel:`Select the approximate number of transactions for your report`: :guilabel:`Create and
|
||||
download the report instantly` (for small reports) and :guilabel:`Create and download the report in
|
||||
the background` (for larger reports). Select one or the other depending on the volume of
|
||||
transactions in this report.
|
||||
|
||||
Finally, under the section labeled, :guilabel:`Report preview and export` make a selection of the
|
||||
file type to download. Either a :guilabel:`.PDF` or :guilabel:`.XLS` can be chosen. Alternatively,
|
||||
the file can be previewed by selecting the :guilabel:`Preview` option.
|
||||
|
||||
After making all the configurations, click :guilabel:`Create report` to download the report. Click
|
||||
:icon:`fa-star-o` :guilabel:`Make this report a favorite` to save the report configuration to the
|
||||
user's favorites.
|
||||
|
||||
After the report is created, click :icon:`fa-download` :guilabel:`Download` to download the file to
|
||||
the device.
|
||||
|
||||
.. tip::
|
||||
Select a pre-configured report from the :guilabel:`Frequently used reports` section of the
|
||||
reporting dashboard.
|
||||
|
||||
Access this list by clicking on the :guilabel:`Reports` option in the top menu of the Avalara
|
||||
management console, and scroll to the bottom of the page.
|
||||
|
||||
.. seealso::
|
||||
`See Avalara's documentation: Reports in AvaTax
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=rjq1671176624730&topicId=Reports_in_AvaTax.html&_LANG=enus>`_.
|
||||
|
||||
Add more jurisdictions
|
||||
======================
|
||||
|
||||
Additional jurisdictions (tax locations) can be added in the Avalara management console. Navigate to
|
||||
either Avalara's `sandbox <https://sandbox.admin.avalara.com/>`_ or `production
|
||||
<https://admin.avalara.com/>`_ environment. This will depend on which type of account was set in the
|
||||
:doc:`integration <../avatax>`.
|
||||
|
||||
Next, navigate to :menuselection:`Settings --> Where you collect tax`. Choose between the three
|
||||
different tabs, depending on the business need. The first tab is :guilabel:`Sales and use tax`,
|
||||
where tax can be collected for the United States. Click the :icon:`fa-plus` :guilabel:`Add to where
|
||||
you collect sales and use tax` to add another location where the company collects sales and use tax.
|
||||
|
||||
The second option, is the :guilabel:`VAT/GST` tab where the :icon:`fa-plus` :guilabel:`Add a country
|
||||
or territory where you collect VAT/GST` can be selected to add another country or territory where
|
||||
the company collects VAT/GST.
|
||||
|
||||
Finally, on the far-right, is the :guilabel:`Customs duty` tab, where a country can be added where
|
||||
the company collects customs duty. Simply click on the :icon:`fa-plus` :guilabel:`Add a country
|
||||
where you calculate customs duty` icon below the tab.
|
||||
|
||||
.. image:: avalara_portal/where-you-collect-tax.png
|
||||
:align: center
|
||||
:alt: AvaTax management console, on the Where you collect tax page, with the add button and
|
||||
sales and use tax tab highlighted.
|
||||
|
||||
.. seealso::
|
||||
`See Avalara's documentation: Add local jurisdiction taxes
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=bla1700809896571_bla1700809896571&topicId=nbw1698727575499.html&_LANG=enus>`_.
|
||||
|
||||
Tax exemption certificate
|
||||
=========================
|
||||
|
||||
Tax exemption certificates for customers can be added into the Avalara management console, so that
|
||||
*AvaTax* is aware of which customers may be exempt from paying certain taxes. To add an *exception
|
||||
certificate* navigate to :menuselection:`Exemptions --> Customer certificates`. From there, click on
|
||||
the :icon:`fa-plus` :guilabel:`Add a certificate` to configure an exemption.
|
||||
|
||||
.. warning::
|
||||
An Avalara subscription to Exemption Certificate Management (ECM) is required in order to attach
|
||||
certificate images, and to be ready for an audit. For more on subscribing to this add-on, visit
|
||||
`Avalara
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=hff1682048150115_hff1682048150115&topicId=fol1682356576230.html&_LANG=enus>`_.
|
||||
|
||||
End-of-year operations
|
||||
======================
|
||||
|
||||
Avalara's services include tax return services, for when it is time to file taxes at the end of the
|
||||
year. To access Avalara's tax services log, into the `management portal
|
||||
<https://admin.avalara.com/>`_. Then, from the main dashboard, click :guilabel:`Returns`. Avalara
|
||||
will prompt the Avalara user to log in for security purposes, and redirect the user to the *Returns*
|
||||
portal.
|
||||
|
||||
.. image:: avalara_portal/avalara-returns.png
|
||||
:align: center
|
||||
:alt: Avalara portal with the returns shortcut highlighted.
|
||||
|
||||
Click :guilabel:`Get started` to begin the tax return process. For more information, refer to this
|
||||
Avalara documentation: `About Managed Returns
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=hps1656397152776_hps1656397152776&topicId=Learn_about_Managed_Returns.html&_LANG=enus>`_.
|
||||
|
||||
.. tip::
|
||||
Alternatively, click on the :menuselection:`Returns` button in the top menu of the Avalara
|
||||
management console.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../avatax`
|
||||
- :doc:`avatax_use`
|
||||
- `US Tax Compliance: Avatax elearning video
|
||||
<https://www.odoo.com/slides/slide/us-tax-compliance-avatax-2858?fullscreen=1>`_
|
||||
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 29 KiB |