Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| bdaf736eef |
@@ -18,7 +18,6 @@ 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) \
|
||||
|
||||
@@ -9,7 +9,6 @@
|
||||
- Python dependencies listed in the file `requirements.txt`.
|
||||
- Make
|
||||
- A local copy of the [odoo/odoo repository](https://github.com/odoo/odoo) (optional)
|
||||
- A local copy of the [odoo/upgrade-util repository](https://github.com/odoo/upgrade-util) (optional)
|
||||
|
||||
### Instructions
|
||||
|
||||
@@ -19,9 +18,8 @@
|
||||
3. See [this guide](https://www.odoo.com/documentation/latest/contributing/documentation.html)
|
||||
for more detailed instructions.
|
||||
|
||||
Optional: place your local copy of the `odoo/odoo` and `odoo/upgrade-util` repositories in
|
||||
the parent directory or in the root directory of the documentation to build the latter
|
||||
with the documented Python docstrings.
|
||||
Optional: place your local copy of the `odoo/odoo` repository in the parent directory or in the root
|
||||
directory of the documentation to build the latter with the documented Python docstrings.
|
||||
|
||||
## Contribute to the documentation
|
||||
|
||||
|
||||
@@ -133,24 +133,6 @@ else:
|
||||
)
|
||||
odoo_dir_in_path = True
|
||||
|
||||
if odoo_dir_in_path:
|
||||
upgrade_util_dir = next(filter(Path.exists, [Path('upgrade-util'), Path('../upgrade-util')]), None)
|
||||
if not upgrade_util_dir:
|
||||
_logger.warning(
|
||||
"Could not find Upgrade Utils sources directory in `upgrade_util`.\n"
|
||||
"The developer documentation will be built but autodoc directives will be skipped.\n"
|
||||
"In order to fully build the 'Developer' documentation, clone the repository with "
|
||||
"`git clone https://github.com/odoo/upgrade-util` or create a symbolic link."
|
||||
)
|
||||
odoo_dir_in_path = False
|
||||
else:
|
||||
_logger.info(
|
||||
"Found Upgrade Util sources in %(directory)s",
|
||||
{'directory': upgrade_util_dir.resolve()},
|
||||
)
|
||||
from odoo import upgrade
|
||||
upgrade.__path__.append(str((upgrade_util_dir / 'src').resolve()))
|
||||
|
||||
# Mapping between odoo models related to master data and the declaration of the
|
||||
# data. This is used to point users to available xml_ids when giving values for
|
||||
# a field with the autodoc_field extension.
|
||||
@@ -268,9 +250,6 @@ redirects_dir = 'redirects/'
|
||||
sphinx_tabs_disable_tab_closing = True
|
||||
sphinx_tabs_disable_css_loading = True
|
||||
|
||||
# Autodoc ordering
|
||||
autodoc_member_order = 'bysource'
|
||||
|
||||
#=== Options for HTML output ===#
|
||||
|
||||
html_theme = 'odoo_theme'
|
||||
|
||||
@@ -46,10 +46,10 @@ Transferring an Odoo Online database
|
||||
====================================
|
||||
|
||||
.. important::
|
||||
Odoo Online's :ref:`intermediary versions <supported_versions>` are not supported by Odoo.sh or
|
||||
on-premise. Therefore, if the database to transfer is running an intermediary version, it must be
|
||||
upgraded first to the next :ref:`major version <supported_versions>`, waiting for its release if
|
||||
necessary.
|
||||
Odoo Online's :ref:`intermediary versions <supported_versions>` cannot be hosted on-premise as
|
||||
that type of hosting does not support those versions. Therefore, if the database to transfer
|
||||
is running an intermediary version, it must be upgraded first to the next :ref:`major version
|
||||
<supported_versions>`, waiting for its release if necessary.
|
||||
|
||||
.. example::
|
||||
Transferring an online database running on Odoo 16.3 would require first upgrading it to Odoo
|
||||
|
||||
@@ -30,8 +30,6 @@ 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
|
||||
================================
|
||||
|
||||
|
||||
@@ -60,8 +60,6 @@ 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:
|
||||
|
||||
|
||||
@@ -146,7 +146,7 @@ Manually
|
||||
--------
|
||||
|
||||
If you want to create your module structure manually,
|
||||
you can follow the :doc:`/developer/tutorials/server_framework_101` tutorial to understand
|
||||
you can follow the :doc:`/developer/tutorials/getting_started` tutorial to understand
|
||||
the structure of a module and the content of each file.
|
||||
|
||||
Push the development branch
|
||||
|
||||
@@ -740,143 +740,7 @@ It should be stored securely, and should be generated randomly e.g.
|
||||
|
||||
$ python3 -c 'import base64, os; print(base64.b64encode(os.urandom(24)))'
|
||||
|
||||
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`.
|
||||
which will generate a 32 characters pseudorandom printable string.
|
||||
|
||||
Supported Browsers
|
||||
==================
|
||||
|
||||
@@ -45,7 +45,7 @@ Git
|
||||
|
||||
To clone a Git repository, choose between cloning with HTTPS or SSH. In most cases, the best option
|
||||
is HTTPS. However, choose SSH to contribute to Odoo source code or when following the :doc:`Getting
|
||||
Started developer tutorial </developer/tutorials/server_framework_101>`.
|
||||
Started developer tutorial </developer/tutorials/getting_started>`.
|
||||
|
||||
.. tabs::
|
||||
|
||||
|
||||
@@ -2,6 +2,8 @@
|
||||
Upgrade
|
||||
=======
|
||||
|
||||
.. _administration/upgrade:
|
||||
|
||||
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.
|
||||
@@ -43,23 +45,30 @@ An upgrade does not cover:
|
||||
<upgrade/request-test-database>` while also :doc:`upgrading the source code of your custom
|
||||
modules </developer/howtos/upgrade_custom_db>`.
|
||||
|
||||
|
||||
Upgrading in a nutshell
|
||||
-----------------------
|
||||
|
||||
#. Request an upgraded test database (see :ref:`obtaining an upgraded test database
|
||||
<upgrade/request-test-database>`).
|
||||
|
||||
#. 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 by `submitting a ticket for an issue
|
||||
related to my future upgrade (I am testing an upgrade) <https://odoo.com/help?stage=migration>`_.
|
||||
|
||||
#. Report any issue encountered during the testing to Odoo via the `support page
|
||||
<https://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>`).
|
||||
#. Report any issue encountered during the upgrade to Odoo by `submitting a ticket for an issue
|
||||
related to my upgrade (production) <https://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:
|
||||
|
||||
@@ -245,9 +254,9 @@ 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 by `submitting a ticket for an issue related to my future upgrade (I am testing an upgrade)
|
||||
<https://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.
|
||||
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.
|
||||
|
||||
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
|
||||
@@ -271,25 +280,24 @@ 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 by `submitting a ticket for
|
||||
an issue related to my future upgrade (I am testing an upgrade)
|
||||
<https://odoo.com/help?stage=migration>`_.
|
||||
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>`__.
|
||||
|
||||
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.
|
||||
@@ -350,9 +358,10 @@ 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 by
|
||||
`submitting a ticket for an issue related to my upgrade (production)
|
||||
<https://odoo.com/help?stage=post_upgrade>`_.
|
||||
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.
|
||||
|
||||
|
||||
.. _upgrade/sla:
|
||||
|
||||
|
||||
@@ -2,348 +2,238 @@
|
||||
Activities
|
||||
==========
|
||||
|
||||
*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>`:
|
||||
|
||||
- :guilabel:`🕘 (clock)`: the default icon, which appears if nothing is scheduled.
|
||||
- :guilabel:`📞 (phone)`: this icon appears if a phone call is scheduled.
|
||||
- :guilabel:`✉️ (envelope)`: this icon appears if an email is scheduled.
|
||||
- :guilabel:`✔️ (checkmark)`: this icon appears if a to-do is scheduled.
|
||||
- :guilabel:`(group of people)`: this icon appears if a meeting is scheduled.
|
||||
- :guilabel:`(arrow pointing up above a line)`: this icon appears if a document is scheduled to be
|
||||
uploaded.
|
||||
- :guilabel:`(pencil in a box)`: this icon appears if a signature request is scheduled.
|
||||
*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.
|
||||
|
||||
Schedule activities
|
||||
===================
|
||||
|
||||
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.
|
||||
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/chatter:
|
||||
.. 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`.
|
||||
|
||||
Chatter
|
||||
-------
|
||||
Enter a title for the activity in the :guilabel:`Summary` field, located in the :guilabel:`Schedule
|
||||
Activity` pop-up window.
|
||||
|
||||
Activities can be created from the chatter on any record.
|
||||
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.
|
||||
|
||||
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
|
||||
-----------
|
||||
|
||||
Another way that activities are created is from the Kanban view in an application.
|
||||
|
||||
.. image:: activities/kanban.png
|
||||
:align: center
|
||||
:alt: The Kanban icon in the top menu, highlighted.
|
||||
|
||||
To do so, click on the :guilabel:`🕘 (clock)` icon 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.
|
||||
Lastly, feel free to add any additional information in the optional :guilabel:`Log a note...` field.
|
||||
|
||||
.. note::
|
||||
If a record already has a scheduled activity, the :guilabel:`🕘 (clock)` icon is replaced by the
|
||||
icon that represents the existing scheduled activity. Click on the activity type's icon to
|
||||
schedule another activity.
|
||||
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.
|
||||
|
||||
.. _activities/list:
|
||||
Lastly, click one of the following buttons:
|
||||
|
||||
List view
|
||||
---------
|
||||
- :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.
|
||||
|
||||
Activities can also be created from a list view.
|
||||
|
||||
If the :guilabel:`Activities` column is hidden, reveal it using the :guilabel:`(additional options
|
||||
toggle)` icon in the far-right of the top row, represented by two horizontal lines with two dots.
|
||||
|
||||
Then, click on the :guilabel:`🕘 (clock)` icon for the record the activity is being added to, then
|
||||
click :guilabel:`+ Schedule an activity`. Proceed to :ref:`fill out the Schedule Activity form
|
||||
<activities/form>` that appears.
|
||||
.. image:: activities/schedule-pop-up.png
|
||||
:alt: View of CRM leads and the option to schedule an activity.
|
||||
|
||||
.. note::
|
||||
If a record already has a scheduled activity, the :guilabel:`🕘 (clock)` icon is replaced by the
|
||||
icon that represents the existing scheduled activity. Click on the activity type's icon to
|
||||
schedule another activity.
|
||||
Depending on the activity type, the :guilabel:`Schedule` button may be replaced by a
|
||||
:guilabel:`Save` button, or an :guilabel:`Open Calendar` button.
|
||||
|
||||
.. image:: activities/schedule-list-activity.png
|
||||
:align: center
|
||||
:alt: List view of the CRM pipeline and the option to schedule an activity.
|
||||
Scheduled activities are added to the chatter for the record under :guilabel:`Planned activities`.
|
||||
|
||||
.. _activities/activity:
|
||||
.. image:: activities/chatter-activities.png
|
||||
:alt: View of CRM leads and the option to schedule an activity.
|
||||
|
||||
Activity view
|
||||
-------------
|
||||
Activities can also be scheduled from the kanban, list, or activities view of an application.
|
||||
|
||||
Most applications in Odoo have an *Activity* view available. If available, a :guilabel:`🕘 (clock)`
|
||||
activity icon is visible in the top-right of the main menu bar.
|
||||
.. tabs::
|
||||
|
||||
To open the activity view, click the :guilabel:`🕘 (clock)` activity icon.
|
||||
.. tab:: Kanban view
|
||||
|
||||
.. image:: activities/activities.png
|
||||
:align: center
|
||||
:alt: Top-right menu with the Activities icon called out.
|
||||
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.
|
||||
|
||||
In this view, all the available activities are listed in the columns, while the horizontal entries
|
||||
represent all the individual records.
|
||||
.. image:: activities/schedule-kanban-activity.png
|
||||
:alt: Kanban view of the CRM pipeline and the option to schedule an activity.
|
||||
|
||||
Activities that appear green have a due date in the future, activities that appear orange are due
|
||||
today, while activities appearing red are overdue.
|
||||
.. tab:: List view
|
||||
|
||||
Color bars in each column represent records for specific activity types, and display a number
|
||||
indicating how many activities are scheduled for that type.
|
||||
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.
|
||||
|
||||
If multiple activity types are scheduled for a record, a number appears in the box, indicating the
|
||||
total number of scheduled activities.
|
||||
.. 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.
|
||||
|
||||
To schedule an activity for a record, hover over the corresponding field, and a :guilabel:`➕ (plus
|
||||
sign)` appears. Click the :guilabel:`➕ (plus sign)`, and then :ref:`fill out the Schedule Activity
|
||||
form <activities/form>`.
|
||||
- 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.
|
||||
|
||||
.. image:: activities/activity-view.png
|
||||
:align: center
|
||||
:alt: Activity view of the CRM pipeline and the option to schedule an activity.
|
||||
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.
|
||||
|
||||
.. _activities/form:
|
||||
View scheduled activities
|
||||
=========================
|
||||
|
||||
Schedule Activity form
|
||||
----------------------
|
||||
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.
|
||||
|
||||
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>`.
|
||||
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.
|
||||
|
||||
Enter the following information on the form:
|
||||
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.
|
||||
|
||||
- :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.
|
||||
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.
|
||||
|
||||
.. note::
|
||||
Individual applications have a list of dedicated :ref:`activity types <activities/types>`. For
|
||||
example, installing the *Sales* application makes :guilabel:`Order Upsell` available, while
|
||||
installing the *Sign* application makes :guilabel:`Request Signature` available.
|
||||
.. image:: activities/activities-menu.png
|
||||
:alt: View of CRM leads page emphasizing the activities menu.
|
||||
|
||||
- :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
|
||||
Configure activity types
|
||||
========================
|
||||
|
||||
To view a consolidated list of activities, organized by application, click the :guilabel:`🕘
|
||||
(clock)` icon in the header menu, located in the top-right.
|
||||
|
||||
If any activities are scheduled, the number of activities appear in a red bubble on the
|
||||
:guilabel:`🕘 (clock)` icon.
|
||||
|
||||
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`.
|
||||
To configure the types of activities in the database, go to :menuselection:`Settings app --> Discuss
|
||||
--> Activities --> Activity Types`.
|
||||
|
||||
.. image:: activities/settings-activities-types.png
|
||||
:align: center
|
||||
:alt: Activity Types button in the Settings application under the Discuss section.
|
||||
: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.
|
||||
|
||||
.. image:: activities/activity-list.png
|
||||
:align: center
|
||||
:alt: The list of activity types already configured and available.
|
||||
To edit an existing activity type, select it from the list, then click :guilabel:`Edit`. To create a
|
||||
new activity type, click :guilabel:`Create`.
|
||||
|
||||
Edit activity types
|
||||
-------------------
|
||||
At the top of a blank activity type form, start by choosing a :guilabel:`Name` for the new activity
|
||||
type.
|
||||
|
||||
To edit an existing :ref:`activity type <activities/types>`, click on the activity type, and the
|
||||
activity type form loads.
|
||||
.. image:: activities/new-activity-type.png
|
||||
:alt: New activity type form.
|
||||
|
||||
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
|
||||
:guilabel:`(cloud upload)` icon, located in the top-left corner of the page.
|
||||
Activity settings
|
||||
-----------------
|
||||
|
||||
Create new activity types
|
||||
-------------------------
|
||||
Action
|
||||
~~~~~~
|
||||
|
||||
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.
|
||||
The *Action* field specifies the intent of the activity. Some actions trigger specific behaviors
|
||||
after an activity is scheduled.
|
||||
|
||||
Enter a :guilabel:`Name` for the activity type at the top of the form, then enter the following
|
||||
information on the form.
|
||||
- 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.
|
||||
|
||||
Activity Settings section
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
.. note::
|
||||
The actions available to select on an activity type vary, depending on the applications currently
|
||||
installed in the database.
|
||||
|
||||
- :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:
|
||||
Default user
|
||||
~~~~~~~~~~~~
|
||||
|
||||
- :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.
|
||||
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.
|
||||
|
||||
.. note::
|
||||
Available activity types vary based on the installed applications in the database.
|
||||
Default summary
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- :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`.
|
||||
To include notes whenever this activity type is created, enter them into the :guilabel:`Default
|
||||
Summary` field.
|
||||
|
||||
Using the drop-down menu, select the :guilabel:`Folder` the document is saved to.
|
||||
.. 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.
|
||||
|
||||
- :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.
|
||||
Next 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.
|
||||
To automatically suggest, or trigger, a new activity after an activity has been marked complete, the
|
||||
:guilabel:`Chaining Type` must be set.
|
||||
|
||||
- :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.
|
||||
|
||||
Next Activity section
|
||||
Suggest next activity
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
It is possible to have another activity either suggested or triggered. To do so, configure the
|
||||
:guilabel:`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.
|
||||
|
||||
- :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.
|
||||
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`.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`Chaining Type` field does **not** appear if :guilabel:`Upload Document` is
|
||||
selected for the :guilabel:`Action`.
|
||||
This :guilabel:`Schedule` field information can be altered before the activity is scheduled.
|
||||
|
||||
- :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.
|
||||
When all configurations are complete, click :guilabel:`Save`.
|
||||
|
||||
First, enter a numerical value indicating when the activity is suggested or triggered.
|
||||
.. image:: activities/schedule-recommended-activity.png
|
||||
:alt: Schedule activity popup with emphasis on recommended activities.
|
||||
|
||||
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`.
|
||||
.. 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.
|
||||
|
||||
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`.
|
||||
Trigger next activity
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. image:: activities/new-activity.png
|
||||
:align: center
|
||||
:alt: A new Activity form with all the fields filled out.
|
||||
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.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../productivity/discuss`
|
||||
- :doc:`../productivity/discuss/team_communication`
|
||||
- :doc:`/applications/productivity/discuss`
|
||||
- :doc:`/applications/productivity/discuss/team_communication`
|
||||
|
||||
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 5.5 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 9.5 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -1,6 +1,6 @@
|
||||
======================
|
||||
In-app purchases (IAP)
|
||||
======================
|
||||
=====================
|
||||
In-app purchase (IAP)
|
||||
=====================
|
||||
|
||||
.. |IAP| replace:: :abbr:`IAP (In-app purchases)`
|
||||
|
||||
@@ -22,9 +22,7 @@ the service in the app to activate it. However, each service requires its own pr
|
||||
when they run out, users **must** :ref:`buy more <iap/buying_credits>` in order to keep using it.
|
||||
|
||||
.. note::
|
||||
Enterprise Odoo users with a valid subscription get free credits to test IAP features before
|
||||
deciding to purchase more credits for the database. This includes demo/training databases,
|
||||
educational databases, and one-app-free databases.
|
||||
Users with an Enterprise version of Odoo Online get free credits to test IAP features.
|
||||
|
||||
.. _in_app_purchase/portal:
|
||||
|
||||
@@ -33,7 +31,7 @@ IAP services
|
||||
|
||||
|IAP| services are provided by Odoo, as well as third-parties, and have a wide range of uses.
|
||||
|
||||
The following |IAP| services are offered by Odoo:
|
||||
The following |IAP| services are provided by Odoo:
|
||||
|
||||
- :guilabel:`Documents Digitization`: digitizes scanned or PDF vendor bills, expenses, and resumes
|
||||
with OCR and AI.
|
||||
@@ -42,12 +40,9 @@ The following |IAP| services are offered by Odoo:
|
||||
- :guilabel:`Lead Generation`: generates leads based on a set of criteria, and converts web visitors
|
||||
into quality leads and opportunities.
|
||||
- :guilabel:`Snailmail`: sends customer invoices and follow-up reports by post, worldwide.
|
||||
- :guilabel:`Signer identification with itsme®️`: ask document signatories in Odoo *Sign* to provide
|
||||
their identity using the *itsme®* identity platform, which is available in Belgium and the
|
||||
Netherlands.
|
||||
|
||||
For more information on every service currently available (offered from developers other than Odoo),
|
||||
visit the `Odoo IAP Catalog <https://iap.odoo.com/iap/all-in-app-services>`_.
|
||||
For more information on every service currently available, visit the `Odoo IAP Catalog
|
||||
<https://iap.odoo.com/iap/all-in-app-services>`_.
|
||||
|
||||
Use IAP services
|
||||
----------------
|
||||
@@ -58,7 +53,7 @@ settings. To use a service, simply interact with it wherever it appears in the d
|
||||
.. example::
|
||||
The following flow focuses on the *SMS* |IAP| service being used from a contact's record.
|
||||
|
||||
This can be done by clicking the :guilabel:`📱 SMS` icon within the database.
|
||||
This can be done by clicking the :guilabel:`📱 (phone) SMS` icon within the database.
|
||||
|
||||
.. image:: in_app_purchase/sms-icon.png
|
||||
:align: center
|
||||
@@ -66,17 +61,16 @@ settings. To use a service, simply interact with it wherever it appears in the d
|
||||
|
||||
One way to utilize the *SMS* |IAP| service with Odoo is showcased in the following steps:
|
||||
|
||||
First, navigate to the :menuselection:`Contacts application`, and click on a contact with a
|
||||
mobile phone number entered in either the :guilabel:`Phone` or :guilabel:`Mobile` field of the
|
||||
contact form.
|
||||
|
||||
Next, find the :guilabel:`📱 SMS` icon that appears to the right of the :guilabel:`Phone` or
|
||||
:guilabel:`Mobile` fields. Click the :guilabel:`📱 SMS` icon, and a :guilabel:`Send SMS Text
|
||||
Message` pop-up window appears.
|
||||
|
||||
Type a message in the :guilabel:`Message` field of the pop-up window. Then, click the
|
||||
:guilabel:`Send SMS` button. Odoo then sends the message, via SMS, to the contact, and logs what
|
||||
was sent in the *chatter* of the contact's form.
|
||||
#. Navigate to the :menuselection:`Contacts application`, and click on a contact with a mobile
|
||||
phone number entered in either the :guilabel:`Phone` or :guilabel:`Mobile` field of the
|
||||
contact form.
|
||||
#. Hover the mouse over the :guilabel:`Phone` or :guilabel:`Mobile` field, and a :guilabel:`📱
|
||||
(phone) SMS` icon appears to the right.
|
||||
#. Click the :guilabel:`📱 (phone) SMS` icon, and a :guilabel:`Send SMS Text Message` pop-up
|
||||
window appears.
|
||||
#. Type a message in the :guilabel:`Message` field of the :guilabel:`Send SMS Text Message`
|
||||
pop-up window. Then, click the :guilabel:`Send SMS` button. Odoo then sends the message, via
|
||||
SMS, to the contact, and logs what was sent in the *chatter* of the contact's form.
|
||||
|
||||
Upon sending the SMS message, the prepaid credits for the *SMS* |IAP| service are automatically
|
||||
deducted from the existing credits. If there are not enough credits to send the message, Odoo
|
||||
@@ -86,10 +80,10 @@ settings. To use a service, simply interact with it wherever it appears in the d
|
||||
For more information on how to use various |IAP| services, and for more in-depth instructions
|
||||
related to SMS functionality in Odoo, review the documentation below:
|
||||
|
||||
- :doc:`Lead mining <../sales/crm/acquire_leads/lead_mining>`
|
||||
- :doc:`Lead mining </applications/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>`
|
||||
</applications/sales/crm/optimize/partner_autocomplete>`
|
||||
- :doc:`SMS essentials </applications/marketing/sms_marketing/essentials/sms_essentials>`
|
||||
|
||||
.. _in_app_purchase/credits:
|
||||
|
||||
@@ -119,7 +113,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.
|
||||
</applications/marketing/sms_marketing/pricing/pricing_and_faq>` documentation.
|
||||
|
||||
.. _iap/buying_credits:
|
||||
|
||||
@@ -130,10 +124,9 @@ If there are not enough credits to perform a task, the database automatically pr
|
||||
of more credits.
|
||||
|
||||
Users can check the current balance of credits for each service, and manually purchase more credits,
|
||||
by navigating to the :menuselection:`Settings app --> Contacts section`, and beneath the
|
||||
:guilabel:`Odoo IAP` setting, click :guilabel:`View My Services`.
|
||||
by navigating to the :menuselection:`Settings app --> Search IAP --> View My Services`.
|
||||
|
||||
Doing so reveals an :guilabel:`IAP Service` page, listing the various |IAP| services in the
|
||||
Doing so reveals an :guilabel:`IAP Account` page, listing the various |IAP| services in the
|
||||
database. From here, click an |IAP| service to open its :guilabel:`Account Information` page, where
|
||||
additional credits can be purchased.
|
||||
|
||||
@@ -142,29 +135,32 @@ Manually buy credits
|
||||
|
||||
To manually buy credits in Odoo, follow these steps:
|
||||
|
||||
First, go to the :menuselection:`Settings application` and type `IAP` in the :guilabel:`Search...`
|
||||
bar. Alternatively users can scroll down to the :guilabel:`Contacts` section. Under the
|
||||
:guilabel:`Contacts` section, where it says :guilabel:`Odoo IAP`, click :guilabel:`View My
|
||||
Services`.
|
||||
#. Go to the :menuselection:`Settings application`.
|
||||
#. Type `IAP` in the search bar.
|
||||
#. Click :guilabel:`View My Services`.
|
||||
|
||||
.. image:: in_app_purchase/view-services.png
|
||||
:align: center
|
||||
:alt: The Settings app showing the Odoo IAP heading and View My Services button.
|
||||
.. image:: in_app_purchase/view-services.png
|
||||
:align: center
|
||||
:alt: The Settings app showing the Odoo IAP heading and View My Services button.
|
||||
|
||||
Doing so reveals an :guilabel:`IAP Account` page, listing the various |IAP| services in the
|
||||
database. From here, click an |IAP| service to open its :guilabel:`Account Information` page, where
|
||||
additional credits can be purchased.
|
||||
#. Doing so reveals an :guilabel:`IAP Account` page, listing the various |IAP| services in the
|
||||
database. From here, click an |IAP| service to open its :guilabel:`Account Information` page,
|
||||
where additional credits can be purchased.
|
||||
#. On the :guilabel:`Account Information` page, click the :guilabel:`Buy Credit` button.
|
||||
|
||||
On the :guilabel:`Account Information` page, click the :guilabel:`Buy Credit` button. Doing so loads
|
||||
a :guilabel:`Buy Credits for (IAP Account)` page in a new tab. From here, click :guilabel:`Buy` on
|
||||
the desired pack of credits. Then, follow the prompts to enter payment details, and confirm the
|
||||
order.
|
||||
.. image:: in_app_purchase/account-info.png
|
||||
:align: center
|
||||
:alt: The Account Information page for an IAP service showing the Buy Credit button.
|
||||
|
||||
.. image:: in_app_purchase/buy-pack.png
|
||||
:align: center
|
||||
:alt: The SMS service page on IAP.Odoo.com with four packs of credits available for purchase.
|
||||
#. Doing so loads a :guilabel:`Buy Credits for (IAP Account)` page in a new tab. From here, click
|
||||
:guilabel:`Buy` on the desired pack of credits. Then, follow the prompts to enter payment
|
||||
details, and confirm the order.
|
||||
|
||||
Once the transaction is complete, the credits are available for use in the database.
|
||||
.. image:: in_app_purchase/buy-pack.png
|
||||
:align: center
|
||||
:alt: The SMS service page on IAP.Odoo.com with four packs of credits available for purchase.
|
||||
|
||||
#. Once the transaction is complete, the credits are available for use in the database.
|
||||
|
||||
.. _in_app_purchase/low-credits:
|
||||
|
||||
@@ -174,19 +170,23 @@ Low-credit notification
|
||||
It is possible to be notified when credits are low, in order to avoid running out of credits, while
|
||||
using an |IAP| service. To do that, follow this process:
|
||||
|
||||
Go to the :menuselection:`Settings application`, and type `IAP` in the :guilabel:`Search...` bar.
|
||||
Under the :guilabel:`Contacts` section, where it says :guilabel:`Odoo IAP`, click :guilabel:`View My
|
||||
Services`.
|
||||
#. Go to the :menuselection:`Settings application`.
|
||||
#. Type `IAP` in the search bar.
|
||||
#. Click :guilabel:`View My Services`.
|
||||
#. The available |IAP| accounts appear in a list view on the :guilabel:`IAP Account` page. From
|
||||
here, click on the desired |IAP| account to view that service's :guilabel:`Account Information`
|
||||
page.
|
||||
#. On the :guilabel:`Account Information` page, tick the :guilabel:`Warn Me` box. Doing so reveals
|
||||
two fields on the form: :guilabel:`Threshold` and :guilabel:`Warning Email`.
|
||||
|
||||
The available |IAP| accounts appear in a list view on the :guilabel:`IAP Account` page. From here,
|
||||
click on the desired |IAP| account to view that service's :guilabel:`Account Information` page.
|
||||
.. image:: in_app_purchase/low-credits.png
|
||||
:align: center
|
||||
:alt: Odoo will send an email alert when credits for this service fall below the threshold.
|
||||
|
||||
On the :guilabel:`Account Information` page, tick the :guilabel:`Warn Me` checkbox. Doing so reveals
|
||||
two fields on the form: :guilabel:`Threshold` and :guilabel:`Warning Email`.
|
||||
|
||||
In the :guilabel:`Threshold` field, enter an amount of credits Odoo should use as the
|
||||
minimum threshold for this service. In the :guilabel:`Warning Email` field, enter the email address
|
||||
that receives the notification.
|
||||
#. In the :guilabel:`Threshold` field, enter an amount of credits Odoo should use as the minimum
|
||||
threshold for this service.
|
||||
#. In the :guilabel:`Warning Email` field, enter the email address that should receive the
|
||||
notification.
|
||||
|
||||
Odoo sends a low-credit alert to the :guilabel:`Warning Email` when the balance of credits falls
|
||||
below the amount listed as the :guilabel:`Threshold`.
|
||||
|
||||
|
Before Width: | Height: | Size: 8.7 KiB After Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 73 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 3.4 KiB After Width: | Height: | Size: 3.4 KiB |
|
Before Width: | Height: | Size: 19 KiB After Width: | Height: | Size: 57 KiB |
|
Before Width: | Height: | Size: 9.1 KiB After Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 6.9 KiB After Width: | Height: | Size: 12 KiB |
@@ -1,214 +1,100 @@
|
||||
=================================
|
||||
Search, filter, and group records
|
||||
=================================
|
||||
=========================
|
||||
Search and filter records
|
||||
=========================
|
||||
|
||||
Odoo allows for the searching, filtering, and grouping of records in a view to display only the most
|
||||
relevant records. The search bar is located at the top of the view, start typing to :ref:`search for
|
||||
values <search/values>`, or click the :guilabel:`🔽 (down arrow)` icon to access the :ref:`Filter
|
||||
<search/filters>`, :ref:`Group By <search/group>`, and :ref:`Favorites <search/favorites>` drop-down
|
||||
menus.
|
||||
|
||||
.. _search/values:
|
||||
|
||||
Search for values
|
||||
=================
|
||||
|
||||
Use the search field to quickly look for specific values, and add them as a filter. Type the value
|
||||
to search for, and select the desired option from the drop-down menu to apply the search filter.
|
||||
|
||||
.. example::
|
||||
Instead of adding a :ref:`custom filter <search/custom-filters>` to select records where
|
||||
*Mitchell Admin* is the salesperson on the *Sales Analysis* report (:menuselection:`Sales app -->
|
||||
Reporting --> Sales`), search for `Mitch`, and click the :guilabel:`⏵ (right arrow)` next to
|
||||
:guilabel:`Search Salesperson for: Mitch`, and select :guilabel:`Mitchell Admin`.
|
||||
|
||||
.. image:: search/search-values.png
|
||||
:align: center
|
||||
:alt: Searching for a specific value on the Sales Analysis report
|
||||
|
||||
.. note::
|
||||
Using the search field is equivalent to using the *contains* operator when adding a :ref:`custom
|
||||
filter <search/custom-filters>`. If a partial value is entered, and the desired field is directly
|
||||
selected (without selecting the :guilabel:`⏵ (right arrow)`), *all* records containing the typed
|
||||
characters for the selected field are included.
|
||||
|
||||
.. _search/filters:
|
||||
|
||||
Filters
|
||||
=======
|
||||
|
||||
Filters are used to select records that meet specific criteria. The default selection of records is
|
||||
specific to each view, but can be modified by selecting one (or several) :ref:`preconfigured filters
|
||||
<search/preconfigured-filters>`, or by adding a :ref:`custom filter <search/custom-filters>`.
|
||||
Odoo uses filters to include only the most relevant records depending on the purpose of the view you
|
||||
are on. However, you can edit the default filter or search for specific values.
|
||||
|
||||
.. _search/preconfigured-filters:
|
||||
|
||||
Preconfigured filters
|
||||
---------------------
|
||||
=====================
|
||||
|
||||
Modify the default selection of records by clicking the :guilabel:`🔽 (down arrow)` icon from the
|
||||
search bar, and selecting one (or several) *preconfigured filters* from the :guilabel:`Filters`
|
||||
drop-down menu.
|
||||
You can modify the default selection of records by clicking :guilabel:`Filters` and selecting one or
|
||||
several **preconfigured filters**.
|
||||
|
||||
.. example::
|
||||
On the *Sales Analysis* report (:menuselection:`Sales app --> Reporting --> Sales`), only records
|
||||
that are at the *sales order* stage, with an *order date* within the last 365 days, are selected
|
||||
by default.
|
||||
|
||||
To also include records at the *quotation* stage, select :guilabel:`Quotations` from the
|
||||
:guilabel:`Filters`.
|
||||
|
||||
Furthermore, to *only* include sales order and quotation records from a specific year, like
|
||||
2024, for example, first remove the existing `Order Date: Last 365 Days` filter, by clicking the
|
||||
:guilabel:`❌ (remove)` icon, then select :menuselection:`Order Date --> 2024`.
|
||||
On the Sales Analysis report, only records at the sales order stage are selected by default.
|
||||
However, you could *also* include records at the quotation stage by selecting
|
||||
:guilabel:`Quotations`. Furthermore, you could *only* include records from a specific year, for
|
||||
example *2022*, by selecting :menuselection:`Order Date --> 2022`.
|
||||
|
||||
.. image:: search/preconfigured-filters.png
|
||||
:align: center
|
||||
:alt: Using preconfigured filters on the Sales Analysis report
|
||||
|
||||
.. note::
|
||||
The preconfigured :guilabel:`Filters` are grouped, and each group is separated by a horizontal
|
||||
line. Selecting preconfigured filters from the same group allows records to match *any* of the
|
||||
applied conditions. However, selecting filters from different groups requires records to match
|
||||
*all* of the applied conditions.
|
||||
If you select preconfigured filters from the same group (i.e., that are *not* separated by an
|
||||
horizontal line), the records can match *any* condition to be included. However, if you select
|
||||
filters from different groups, the records have to match *all* condition to be included.
|
||||
|
||||
.. _search/custom-filters:
|
||||
|
||||
Custom filters
|
||||
--------------
|
||||
==============
|
||||
|
||||
If the :ref:`preconfigured filters <search/preconfigured-filters>` are not specific enough, add a
|
||||
custom filter. To do so, click the :guilabel:`🔽 (down arrow)` icon in the search bar, then select
|
||||
:menuselection:`Filters --> Add Custom Filter`.
|
||||
|
||||
The :guilabel:`Add Custom Filter` pop-up window displays the matching option, filter rule, and a
|
||||
toggle to :guilabel:`Include archived` records.
|
||||
|
||||
.. image:: search/custom-filter.png
|
||||
:align: center
|
||||
:alt: The Add Custom Filter pop-up window.
|
||||
|
||||
The default matching configuration is to :guilabel:`Match any of the following rules`, indicating
|
||||
that each filter rule is applied independently. To change the matching configuration to
|
||||
:guilabel:`Match all of the following rules`, at least two filter rules must be added to the custom
|
||||
filter.
|
||||
|
||||
- :guilabel:`Match all 🔽 of the following rules`: **all** of the filter rules must be met.
|
||||
Logically, this is an *AND* (`&`) operation.
|
||||
- :guilabel:`Match any 🔽 of the following rules`: **any** of the filter rules can be met.
|
||||
Logically, this is an *OR* (`|`) operation.
|
||||
|
||||
By default, a single filter rule is added to the custom filter. The following describes the
|
||||
structure of a filter rule:
|
||||
|
||||
#. The first inline field is the *field name* to filter by. Some fields have refined parameters that
|
||||
are nested within another field. These fields have an :guilabel:`> (arrow)` icon beside them,
|
||||
which can be selected to reveal the nested fields.
|
||||
#. The second inline field is the conditional *operator* used to compare the field name to the
|
||||
value. The :ref:`available conditional operators <reference/orm/domains>` are specific to the
|
||||
field's data type.
|
||||
#. The third inline field is the variable *value* of the field name. The value input may appear as a
|
||||
drop-down menu, a text input, a number input, a date/time input, a boolean selector, or it may be
|
||||
blank, depending on the operator used and the field's data type.
|
||||
|
||||
Three inline buttons are also available to the right of the rule's filter criteria:
|
||||
|
||||
#. :guilabel:`➕ (plus sign)`: adds a new rule below the existing rule.
|
||||
#. :guilabel:`(Add branch)`: adds a new group of rules below the existing rule, with the
|
||||
:guilabel:`any` and :guilabel:`all` matching options available to define how each rule within
|
||||
this branch is applied to the filter. If the matching option is set to the same as the parent
|
||||
group, the fields are moved to join the parent group.
|
||||
|
||||
.. example::
|
||||
If the matching option is set to :guilabel:`Match all 🔽 of the following rules`, and a new
|
||||
branch is added with its matching option changed from :guilabel:`any 🔽 of` to :guilabel:`all
|
||||
🔽 of`, the newly-added branch disappears, and its group of rules are moved to the parent
|
||||
group.
|
||||
|
||||
#. :guilabel:`🗑️ (garbage can)`: deletes the node. If a branch node is deleted, all children of
|
||||
that node are deleted, as well.
|
||||
|
||||
A new filter rule can be added to the custom filter by clicking the :guilabel:`New Rule` button.
|
||||
|
||||
Once the filter criteria are defined, click :guilabel:`Add` to add the custom filter to the view.
|
||||
You can create custom filters using most fields present on the model by clicking
|
||||
:menuselection:`Filters --> Add Custom Filter`, selecting a field, an operator, a value, and
|
||||
clicking :guilabel:`Apply`.
|
||||
|
||||
.. example::
|
||||
To target all leads and opportunities from the :menuselection:`CRM` app that are in the *Won*
|
||||
stage, and have an expected revenue greater than $1,000, the following should be entered:
|
||||
You could *only* include records from a single salesperson on the Sales Analysis report, for
|
||||
example *Mitchell Admin*, by selecting :guilabel:`Salesperson` as the field, :guilabel:`is equal
|
||||
to` as the operator, and typing `Mitchell Admin` as the value.
|
||||
|
||||
:guilabel:`Match all 🔽 (down arrow) of the following rules:`
|
||||
|
||||
#. :guilabel:`Stage` :guilabel:`is in` :guilabel:`Won`
|
||||
#. :guilabel:`Expected Revenue` :guilabel:`>` `1,000`
|
||||
#. :guilabel:`any 🔽 (down arrow)` :guilabel:`of:`
|
||||
|
||||
- :guilabel:`Type` :guilabel:`=` :guilabel:`Lead`
|
||||
- :guilabel:`Type` :guilabel:`=` :guilabel:`Opportunity`
|
||||
|
||||
.. image:: search/custom-filter-example.png
|
||||
.. image:: search/custom-filter.png
|
||||
:align: center
|
||||
:alt: Adding a custom filter to filter specific records in CRM.
|
||||
:alt: Using a custom filter on the Sales Analysis report
|
||||
|
||||
.. tip::
|
||||
Activate :ref:`developer-mode` to reveal each field's technical name and data type, as well as
|
||||
the :guilabel:`# Code editor` text area below the filter rules, to view and edit the domain
|
||||
manually.
|
||||
.. note::
|
||||
If the records should *only* match one of several conditions, click :guilabel:`Add a condition`
|
||||
before applying a custom filter. If the records should match *all* conditions, add new custom
|
||||
filters instead.
|
||||
|
||||
.. _search/values:
|
||||
|
||||
Search for values
|
||||
=================
|
||||
|
||||
You can use the search field to quickly look for specific values and add them as a filter. Either
|
||||
type the full value you are searching for and select the desired field, or type a part of the
|
||||
value, click the dropdown button (:guilabel:`⏵`) before the chosen field, and select the exact
|
||||
value you are looking for.
|
||||
|
||||
.. example::
|
||||
Instead of adding a custom filter to select records where *Mitchell Admin* is the salesperson on
|
||||
the Sales Analysis report, you could search for `Mitch`, click the dropdown button
|
||||
(:guilabel:`⏵`) next to :guilabel:`Search Salesperson for: Mitch`, and select
|
||||
:guilabel:`Mitchell Admin`.
|
||||
|
||||
.. image:: search/search-values.png
|
||||
:align: center
|
||||
:alt: Searching for a specific value on the Sales Analysis report
|
||||
|
||||
.. note::
|
||||
Using the search field is equivalent to using the *contains* operator when adding a custom
|
||||
filter. If you enter a partial value and directly select the desired field, *all* records
|
||||
containing the characters you typed for the selected field will be included.
|
||||
|
||||
.. _search/group:
|
||||
|
||||
Group records
|
||||
=============
|
||||
|
||||
The display of records in a view can be clustered together, according to one of the *preconfigured
|
||||
groups*. To do so, click the :guilabel:`🔽 (down arrow)` icon in the search bar, then select one of
|
||||
the :guilabel:`Group By` options from the drop-down menu.
|
||||
You can click :guilabel:`Group By` below the search field to cluster records together according to
|
||||
one of the **preconfigured groups**.
|
||||
|
||||
.. example::
|
||||
To group the records by salesperson on the *Sales Analysis* report (:menuselection:`Sales app -->
|
||||
Reporting --> Sales`), click the :guilabel:`Salesperson` option from the :guilabel:`Group By`
|
||||
drop-down menu. The view changes to group the records by salesperson, without filtering out any
|
||||
records.
|
||||
You could group the records by salesperson on the Sales Analysis report by clicking
|
||||
:guilabel:`Group By` and selecting :guilabel:`Salesperson`. No records are filtered out.
|
||||
|
||||
.. image:: search/group.png
|
||||
:align: center
|
||||
:alt: Grouping records on the Sales Analysis report
|
||||
|
||||
It is possible to *customize groups* by using a field present on the model. To do so, click
|
||||
:menuselection:`Add Custom Group`, and select a field from the drop-down menu.
|
||||
You can **customize groups** by using a wide selection of fields present on the model. To do so,
|
||||
click :menuselection:`Group By --> Add Custom Group`, select a field, and click :guilabel:`Apply`.
|
||||
|
||||
.. note::
|
||||
Several groups can be used at the same time. The first group that is selected is the main
|
||||
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/favorites:
|
||||
|
||||
Favorites
|
||||
=========
|
||||
|
||||
Favorites are a way to save a specific search for future use, or as the new default filter for the
|
||||
view.
|
||||
|
||||
To save the current view as a favorite, click the :guilabel:`🔽 (down arrow)` icon in the search
|
||||
bar, then select the :guilabel:`Save current search` drop-down menu to display the following
|
||||
options:
|
||||
|
||||
- Filter name: name of the favorited search.
|
||||
- :guilabel:`Default filter`: sets the favorited search as the default filter for the view.
|
||||
- :guilabel:`Shared`: makes the favorited search available to all users. By default, the favorited
|
||||
search is only available to the user who created it.
|
||||
|
||||
Once the options are set, click :guilabel:`Save` to save the favorited search.
|
||||
|
||||
.. image:: search/favorites.png
|
||||
:align: center
|
||||
:alt: Saving a favorite search on the Sales Analysis report
|
||||
|
||||
Saved favorites can be accessed by clicking the :guilabel:`🔽 (down arrow)` icon in the search bar,
|
||||
then selecting the saved filter in the :guilabel:`Favorites` drop-down menu. To remove a saved
|
||||
favorite, click the :guilabel:`🗑️ (garbage can)` icon next to the favorited search.
|
||||
|
||||
.. tip::
|
||||
To view *all* favorited searches, first activate :ref:`developer-mode`, and navigate to
|
||||
:menuselection:`Settings app --> Technical --> User Interface: User-defined Filters`. From here,
|
||||
all favorited searches can be viewed, edited, archived, or deleted.
|
||||
You can use several groups at the same time. The first group you select is the main cluster, the
|
||||
next one you add further divides the main group's categories, and so on.
|
||||
|
||||
|
Before Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 16 KiB |
@@ -27,19 +27,11 @@ Odoo supports multiple file formats to import transactions:
|
||||
- Quicken Interchange Format (.QIF);
|
||||
- Belgium: Coded Statement of Account (.CODA).
|
||||
|
||||
To import a file, go to the **Accounting Dashboard**, and in the :guilabel:`Bank` journal,
|
||||
click on :guilabel:`Import File`.
|
||||
To import a file, go to the :guilabel:`Accounting Dashboard`, and in the :guilabel:`Bank` journal,
|
||||
click on :guilabel:`Import Transactions`.
|
||||
|
||||
.. tip::
|
||||
Alternatively, you can also:
|
||||
|
||||
- click :guilabel:`⋮` on the :guilabel:`Bank` journal and select :guilabel:`Import file`;
|
||||
- or access the transaction list by clicking :guilabel:`⋮` on the :guilabel:`Bank` journal and
|
||||
selecting :guilabel:`Transactions`, then click the gear icon :guilabel:`(⚙)` and select
|
||||
:guilabel:`Import records`.
|
||||
|
||||
.. image:: transactions/import-transactions.png
|
||||
:alt: Import bank transactions from the bank journal
|
||||
.. image:: transactions/import-transactions.png
|
||||
:alt: Import bank transactions from the bank journal
|
||||
|
||||
Next, select the file and upload it.
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 11 KiB |
@@ -55,8 +55,7 @@ Generate deferral entries on validation
|
||||
.. tip::
|
||||
Make sure the :guilabel:`Start Date` and :guilabel:`End Date` fields are visible in the
|
||||
:guilabel:`Invoice Lines` tab. In most cases, the :guilabel:`Start Date` should be in the same
|
||||
month as the :guilabel:`Invoice Date`. Deferred revenue entries are posted from the invoice
|
||||
date and are displayed in the report accordingly.
|
||||
month as the :guilabel:`Invoice Date`.
|
||||
|
||||
For each line of the invoice that should be deferred, specify the start and end dates of the
|
||||
deferral period.
|
||||
|
||||
@@ -36,8 +36,8 @@ your customer’s address is set correctly, including the country, before sendin
|
||||
<developer-mode>`, go to :menuselection:`General Settings --> Technical --> Reporting
|
||||
section: Paper Format`.
|
||||
- A square of **15mm by 15mm** on the bottom left corner has to stay clear.
|
||||
- The postage area has to stay clear (:download:`download the snailmail PDF template
|
||||
<snailmail/snailmail-template.pdf>` for more details).
|
||||
- The postage area has to stay clear (click :download:`here <snailmail/snailmail-template.pdf>`
|
||||
to get more info about the area).
|
||||
- Pingen (Odoo Snailmail service provider) scans the area to process the address, so if something
|
||||
gets written outside the area, it is not counted as part of the address.
|
||||
|
||||
@@ -51,5 +51,7 @@ To buy stamps, go to :menuselection:`Accounting --> Configuration --> Settings -
|
||||
invoices: Snailmail`, click on :guilabel:`Buy credits`, or go to :menuselection:`Settings --> In-App
|
||||
Purchases: Odoo IAP`, and click on :guilabel:`View my Services`.
|
||||
|
||||
.. seealso::
|
||||
`Odoo's IAP Privacy Policy <https://iap.odoo.com/privacy#header_4>`_
|
||||
.. tip::
|
||||
- If you are on Odoo Online and have the Enterprise version, you benefit from free trial credits
|
||||
to test the feature.
|
||||
- Click `here <https://iap.odoo.com/privacy#header_4>`_ to know about our *Privacy Policy*.
|
||||
|
||||
@@ -101,9 +101,8 @@ 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`.
|
||||
|
||||
.. tip::
|
||||
Install the :guilabel:`Irreversible Lock Date` (`account_lock`) module to make the :guilabel:`All
|
||||
Users Lock Date` *irreversible* once set.
|
||||
.. warning::
|
||||
Setting an :guilabel:`All Users Lock Date` is **irreversible** and cannot be removed.
|
||||
|
||||
.. note::
|
||||
A specific year-end closing entry is **optional** in order to close out the **profit and loss
|
||||
|
||||
@@ -1,406 +1,74 @@
|
||||
:show-content:
|
||||
|
||||
==================
|
||||
AvaTax integration
|
||||
Avatax integration
|
||||
==================
|
||||
|
||||
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 and Canada. This means the fiscal position/country of a database can only be set to
|
||||
the United States or Canada. 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 and **not** the warehouse address.
|
||||
- Exercise 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&bundleId=dqa1657870670369_dqa1657870670369&topicId=About_AvaTax.html&_LANG=enus>`_
|
||||
|
||||
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://community.avalara.com/support/s/document-item?bundleId=dqa1657870670369_dqa1657870670369&topicId=Create_a_Basic_company_profile.html&_LANG=enus>`_.
|
||||
|
||||
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://community.avalara.com/support/s/document-item?bundleId=dqa1657870670369_dqa1657870670369&topicId=Add_your_company_information.html&_LANG=enus>`_.
|
||||
#. `Tell us where the company collects and pays tax
|
||||
<https://community.avalara.com/support/s/document-item?bundleId=dqa1657870670369_dqa1657870670369&topicId=Tell_us_where_you_collect_and_pay_tax.html&_LANG=enus>`_.
|
||||
#. `Verify jurisdictions and activate the company
|
||||
<https://community.avalara.com/support/s/document-item?bundleId=dqa1657870670369_dqa1657870670369&topicId=Verify_your_jurisdictions_and_activate_your_company.html&_LANG=enus>`_.
|
||||
#. `Add other company locations for location-based filing
|
||||
<https://community.avalara.com/support/s/document-item?bundleId=dqa1657870670369_dqa1657870670369&topicId=Add_other_company_locations_for_location-based_filing.html&_LANG=enus>`_.
|
||||
#. `Add a marketplace to the company profile
|
||||
<https://community.avalara.com/support/s/document-item?bundleId=dqa1657870670369_dqa1657870670369&topicId=Add_marketplace_transactions_to_your_company_profile.html&_LANG=enus>`_.
|
||||
|
||||
.. _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`.
|
||||
|
||||
.. note::
|
||||
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.
|
||||
|
||||
.. important::
|
||||
Copy this key to a safe place. It is **strongly encouraged** to backup 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` or :guilabel:`Canada`. 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 SO`
|
||||
- `account_avatax_sale`
|
||||
- Includes the information needed for tax calculation on sales orders in Odoo.
|
||||
* - :guilabel:`Avatax for Subscriptions`
|
||||
- `account_avatax_sale_subscription`
|
||||
- This module includes the features required for tax calculation on subscriptions in Odoo.
|
||||
* - :guilabel:`Account Avatax - Ecommerce`
|
||||
- `website_sale_account_avatax`
|
||||
- Includes tax calculation features for the checkout process on Odoo eCommerce.
|
||||
* - :guilabel:`Account AvaTax - Ecommerce - Delivery`
|
||||
- `website_sale_delivery_avatax`
|
||||
- Includes tax calculation features for the delivery process on Odoo eCommerce.
|
||||
|
||||
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:`Account Avatax - Ecommerce`: `website_sale_account_avatax`
|
||||
|
||||
Should *AvaTax* be needed for Odoo *Subscriptions*, or for delivery tax in Odoo *eCommerce*, then
|
||||
install those modules individually by clicking on :guilabel:`Install`.
|
||||
Avatax is a tax calculation provider that can be integrated in Odoo.
|
||||
|
||||
.. _avatax/credentials:
|
||||
|
||||
Odoo AvaTax settings
|
||||
--------------------
|
||||
Credential configuration
|
||||
========================
|
||||
|
||||
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.
|
||||
To integrate Avatax with Odoo, go to :menuselection:`Accounting --> Configuration --> Settings -->
|
||||
Taxes` and add your Avatax credentials in the :guilabel:`Avatax` section.
|
||||
|
||||
.. tip::
|
||||
If you do not yet have credentials, click on :guilabel:`How to Get Credentials`.
|
||||
|
||||
.. image:: avatax/avatax-configuration-settings.png
|
||||
:align: center
|
||||
:alt: Configure AvaTax settings
|
||||
:alt: Configure Avatax settings
|
||||
|
||||
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.
|
||||
.. _avatax/tax-mapping:
|
||||
|
||||
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.
|
||||
|
||||
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
|
||||
|
||||
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.
|
||||
Avatax Categories may be overridden or set on individual products as well.
|
||||
|
||||
.. image:: avatax/override-avatax-product-category.png
|
||||
:align: center
|
||||
:alt: Override product categories as needed.
|
||||
:alt: Override product categories as needed
|
||||
|
||||
.. important::
|
||||
Mapping an :guilabel:`AvaTax Category` on either the *Product* or *Product Category* should be
|
||||
completed for every *Product* or *Product Category*, depending the route that is chosen.
|
||||
.. _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.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`fiscal_positions`
|
||||
- :doc:`avatax/avatax_use`
|
||||
- `US Tax Compliance: Avatax elearning video
|
||||
<https://www.odoo.com/slides/slide/us-tax-compliance-avatax-2858?fullscreen=1>`_
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
avatax/avatax_use
|
||||
|
||||
@@ -1,161 +0,0 @@
|
||||
==========
|
||||
AvaTax use
|
||||
==========
|
||||
|
||||
AvaTax is a tax calculation software that can be integrated with Odoo in the United States and
|
||||
Canada. Once the :doc:`integration setup <../avatax>` is complete, the calculated tax is simple and
|
||||
automatic.
|
||||
|
||||
Tax calculation
|
||||
===============
|
||||
|
||||
Automatically calculate taxes on Odoo quotations and invoices with AvaTax by confirming the
|
||||
documents during the sales flow. Alternatively, calculate the taxes manually by clicking the
|
||||
:guilabel:`Compute taxes using Avatax` button while these documents are in draft mode.
|
||||
|
||||
.. tip::
|
||||
Clicking the :guilabel:`Compute taxes using Avatax` button recalculates taxes if any product
|
||||
lines are edited on the invoice.
|
||||
|
||||
.. image:: avatax_use/calculate-avatax.png
|
||||
:align: center
|
||||
:alt: Sales quotation with the confirm and compute taxes using AvaTax buttons highlighted.
|
||||
|
||||
The tax calculation is triggered during the following :ref:`automatic trigger
|
||||
<avatax/automatic-triggers>` and :ref:`manual trigger <avatax/manual-triggers>` circumstances.
|
||||
|
||||
.. _avatax/automatic-triggers:
|
||||
|
||||
Automatic triggers
|
||||
------------------
|
||||
|
||||
- When the sales rep sends the quote by email with :guilabel:`Send by email` button (pop-up).
|
||||
- When the customer views the online quote on the portal.
|
||||
- When a quote is confirmed and becomes a sales order.
|
||||
- When the customer views the invoice on the portal.
|
||||
- When a draft invoice is validated.
|
||||
- When the customer views the subscription in the portal.
|
||||
- When a subscription generates an invoice.
|
||||
- When the customer gets to the last screen of the eCommerce checkout.
|
||||
|
||||
.. _avatax/manual-triggers:
|
||||
|
||||
Manual triggers
|
||||
---------------
|
||||
|
||||
- :guilabel:`Compute taxes using Avatax` button at the bottom of the quote.
|
||||
- :guilabel:`Compute taxes using Avatax` button at the top of the invoice.
|
||||
|
||||
.. tip::
|
||||
Use the :guilabel:`Avalara Partner Code` field that is available on customer records, quotations,
|
||||
and invoices to cross-reference data in Odoo and AvaTax. This field is located under the
|
||||
:menuselection:`Other info` tab of the sales order or quotation in the :guilabel:`Sales` section.
|
||||
|
||||
On the customer record, navigate to *Contacts app* and select a contact. Then open the
|
||||
:guilabel:`Sales & Purchase` tab and the :guilabel:`Avalara Partner Code` under the
|
||||
:guilabel:`Sales` section.
|
||||
|
||||
.. important::
|
||||
The :guilabel:`Automatic Tax Mapping (AvaTax)` fiscal position is also applied on those Odoo
|
||||
documents, like subscriptions.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../fiscal_positions`
|
||||
|
||||
AvaTax synchronization
|
||||
======================
|
||||
|
||||
Synchronization occurs with AvaTax, when the *invoice* is created in Odoo. This means the sales tax
|
||||
is recorded with Avalara (AvaTax software developer).
|
||||
|
||||
To do so, navigate to :menuselection:`Sales app --> Orders --> Quotations`. Select a quotation from
|
||||
the list.
|
||||
|
||||
After confirming a quotation and validating the delivery, click :guilabel:`Create Invoice`. Indicate
|
||||
whether it is a :guilabel:`Regular invoice`, :guilabel:`Down payment (percentage)`, or
|
||||
:guilabel:`Down payment (fixed amount)`.
|
||||
|
||||
Then click :guilabel:`Create and view invoice`. The recorded taxes can be seen in the
|
||||
:guilabel:`Journal Items` tab of the invoice. There will be different taxes depending on the
|
||||
location of the :guilabel:`Delivery Address`.
|
||||
|
||||
.. image:: avatax_use/journal-items.png
|
||||
:align: center
|
||||
:alt: Journal items highlighted on a invoice in Odoo.
|
||||
|
||||
Finally, press the :guilabel:`Confirm` button to complete the invoice and synchronize with the
|
||||
AvaTax portal.
|
||||
|
||||
.. warning::
|
||||
An invoice cannot be :guilabel:`Reset to draft` because this causes de-synchronization with the
|
||||
AvaTax Portal. Instead, click :guilabel:`Add credit note` and state: `Sync with AvaTax Portal`.
|
||||
See this documentation: :doc:`../../../accounting/customer_invoices/credit_notes`.
|
||||
|
||||
Fixed price discounts
|
||||
=====================
|
||||
|
||||
Add a fixed price discount to a valuable customer by click :guilabel:`Add a line` on the customer's
|
||||
invoice. Add the product discount and set the :guilabel:`Price` to either a positive or negative
|
||||
value. To recalculate the taxes, click :guilabel:`Compute taxes using Avatax`.
|
||||
|
||||
.. tip::
|
||||
Tax calculation can even be done on negative subtotals and credit notes.
|
||||
|
||||
Logging
|
||||
=======
|
||||
|
||||
It is possible to log Avalara/*AvaTax* actions in Odoo for further analysis, or verification of
|
||||
functionality. Logging is accessible through the *AvaTax* settings.
|
||||
|
||||
To start logging *AvaTax* actions, first, navigate to the :menuselection:`Accounting app -->
|
||||
Configuration --> Settings`.
|
||||
|
||||
Then, in the :guilabel:`Taxes` section, under the :guilabel:`AvaTax` settings, click
|
||||
:guilabel:`Start logging for 30 minutes`.
|
||||
|
||||
Upon starting the log process, Odoo will log all Avalara/*AvaTax* actions performed in the database.
|
||||
|
||||
To view the logs, click on :guilabel:`Show logs` to the right of the :guilabel:`Start logging for 30
|
||||
minutes`. This reveals a detailed list of Avalara/*AvaTax* actions. This list is sortable by the
|
||||
following columns:
|
||||
|
||||
- :guilabel:`Created on`: timestamp of the *AvaTax* calculation.
|
||||
- :guilabel:`Created by`: numeric value of the user in the database.
|
||||
- :guilabel:`Database name`: name of the database.
|
||||
- :guilabel:`Type`: two values can be chosen for this field, :guilabel:`Server` or
|
||||
:guilabel:`Client`.
|
||||
- :guilabel:`Name`: Avalara service name. In this case, it will be *AvaTax*.
|
||||
- :guilabel:`Level`: by default, this will be `INFO`.
|
||||
- :guilabel:`Path`: indicates the path taken to make the calculation.
|
||||
- :guilabel:`Line`: indicates the line the calculation is made on.
|
||||
- :guilabel:`Function`: indicates the calculation taken on the line.
|
||||
|
||||
.. image:: avatax_use/logging.png
|
||||
:align: center
|
||||
:alt: Avalara logging page with top row of list highlighted.
|
||||
|
||||
Click into the log line to reveal another field, called :guilabel:`Message`.
|
||||
|
||||
This field populates a raw transcription of the transaction, which involves the creation (or
|
||||
adjustment) of a sales invoice using the Avalara *AvaTax* API.
|
||||
|
||||
The transaction includes details, such as addresses for shipping from and to, line items describing
|
||||
the products or services, tax codes, tax amounts, and other relevant information.
|
||||
|
||||
The :guilabel:`Message` contains the calculated taxes for different jurisdictions and confirms the
|
||||
creation (or adjustment) of the transaction.
|
||||
|
||||
.. tip::
|
||||
Custom fields can be made using Odoo *Studio*. Click the :icon:`fa-ellipsis-v`
|
||||
:guilabel:`(ellipsis)` menu to the far-right of the header row. Then click :icon:`fa-plus`
|
||||
:guilabel:`Add custom field`. This action opens Odoo *Studio*.
|
||||
|
||||
.. important::
|
||||
Odoo *Studio* requires a *custom* pricing plan. Consult the database's customer success manager
|
||||
for more information on switching plans. Or to see if Odoo *Studio* is included in the database's
|
||||
current pricing plan. See this documentation: :doc:`../../../../studio`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../avatax`
|
||||
- `US Tax Compliance: Avatax elearning video
|
||||
<https://www.odoo.com/slides/slide/us-tax-compliance-avatax-2858?fullscreen=1>`_
|
||||
|
Before Width: | Height: | Size: 41 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 8.6 KiB |
|
After Width: | Height: | Size: 13 KiB |
@@ -55,8 +55,7 @@ Generate deferral entries on validation
|
||||
.. tip::
|
||||
Make sure the :guilabel:`Start Date` and :guilabel:`End Date` fields are visible in the
|
||||
:guilabel:`Invoice Lines` tab. In most cases, the :guilabel:`Start Date` should be in the same
|
||||
month as the :guilabel:`Bill Date`. Deferred expense entries are posted from the bill date and
|
||||
are displayed in the report accordingly.
|
||||
month as the :guilabel:`Bill Date`.
|
||||
|
||||
For each line of the bill that should be deferred, specify the start and end dates of the deferral
|
||||
period.
|
||||
|
||||
@@ -523,7 +523,7 @@ is generated for each POS order and added to its receipt. This allows the govern
|
||||
all revenue is declared.
|
||||
|
||||
.. warning::
|
||||
Only the FDM from **Boîtenoire.be** with the `FDM certificate number BMC04
|
||||
Only the FDM from **Boîtenoire.be** with the `FDM certificate number BMC01
|
||||
<https://www.systemedecaisseenregistreuse.be/fr/systemes-certifies#FDM%20certifiés>`_ is
|
||||
supported by Odoo. `Contact the manufacturer (GCV BMC) <https://www.boîtenoire.be/contact>`_ to
|
||||
order one.
|
||||
@@ -533,7 +533,7 @@ Configuration
|
||||
|
||||
Before setting up your database to work with an FDM, ensure you have the following hardware:
|
||||
|
||||
- a **Boîtenoire.be** (certificate number BMC04) FDM;
|
||||
- a **Boîtenoire.be** (certificate number BMC01) FDM;
|
||||
- an RS-232 serial null modem cable per FDM;
|
||||
- an RS-232 serial-to-USB adapter per FDM;
|
||||
- an :ref:`IoT Box <belgium/iotbox>` (one IoT box per FDM); and
|
||||
|
||||
@@ -61,21 +61,6 @@ localization:
|
||||
<../accounting/customer_invoices/electronic_invoicing>`, based on the Technical
|
||||
documentation published by the SRI. The authorized documents are: Invoices, Credit Notes,
|
||||
Debit Notes, Withholdings and Purchase liquidations.
|
||||
* - :guilabel:`Ecuadorian Accounting Reports`
|
||||
- `l10n_ec_reports`
|
||||
- Includes all the technical and functional requirements to generate forms 103 and 104.
|
||||
* - :guilabel:`Ecuador - ATS Report`
|
||||
- `l10n_ec_reports_ats`
|
||||
- Includes all the technical and functional requirements to generate the ATS report XML file
|
||||
ready to be uploaded to the *DIMM Formularios*.
|
||||
* - :guilabel:`Ecuadorian Website`
|
||||
- `l10n_ec_website_sale`
|
||||
- Includes all the technical and functional requirements to generate automatic electronic
|
||||
invoices from a Website sale.
|
||||
* - :guilabel:`Ecuadorian Point of Sale`
|
||||
- `l10n_ec_edi_pos`
|
||||
- Includes all the technical and functional requirements to generate automatic electronic
|
||||
invoices from a PoS sale.
|
||||
|
||||
.. note::
|
||||
When you install a database from scratch selecting `Ecuador` as the country, Odoo automatically
|
||||
@@ -321,8 +306,8 @@ The following options have been automatically configured:
|
||||
of 103 form if it is a income tax withholding code.
|
||||
- :guilabel:`Tax Name`:
|
||||
|
||||
- For IVA tax, format the name as: `IVA [percent] (104, [form code] [tax support code] [tax
|
||||
support short name])`
|
||||
- For IVA tax, format the name as: `IVA [percent] (104, [form code] [tax support code] [tax support
|
||||
short name])`
|
||||
- For income tax withholding code, format the name as: `Code ATS [Percent of withhold] [withhold
|
||||
name]`
|
||||
|
||||
@@ -569,94 +554,13 @@ withholdings percentages apply.
|
||||
withholding of 70% in a new line with the same tax support, the system will allow you as long as
|
||||
the total of the bases matches the total from the :guilabel:`Vendor Bill`.
|
||||
|
||||
eCommerce
|
||||
---------
|
||||
|
||||
The :ref:`ATS Report module <ecuador/ats>` enables the following:
|
||||
|
||||
- Choose the SRI Payment Method in each payment method's configuration.
|
||||
- Customers can manually input their identification type and identification number during the
|
||||
eCommerce checkout process.
|
||||
- Automatically generate a valid electronic invoice for Ecuador at the end of the checkout process.
|
||||
|
||||
Configuration
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Website
|
||||
*******
|
||||
|
||||
To generate an invoice after the checkout process, navigate to :menuselection:`Website -->
|
||||
Configuration --> Settings` and activate the :guilabel:`Automatic Invoice` option found under the
|
||||
:guilabel:`Invoicing` section.
|
||||
|
||||
.. tip::
|
||||
The invoice's email template can be modified from the :guilabel:`Invoice Email Template` field
|
||||
under the :guilabel:`Automatic Invoice` option.
|
||||
|
||||
.. important::
|
||||
The sales journal used for invoicing is the first in the sequence of priority in the
|
||||
:guilabel:`Journal` menu.
|
||||
|
||||
Payment providers
|
||||
*****************
|
||||
|
||||
To activate the payment providers that should be used to capture eCommerce payments, navigate to
|
||||
:menuselection:`Website --> Configuration --> Payment Providers` section and then click on the
|
||||
:guilabel:`View other providers` button under the :guilabel:`Activate Payments` heading. From here,
|
||||
each payment provider can be configured by selecting a provider record. Refer to the :doc:`payment
|
||||
provider <../payment_providers>` documentation for more information.
|
||||
|
||||
Payment methods
|
||||
^^^^^^^^^^^^^^^
|
||||
|
||||
To activate one or more payment methods for a payment provider, click :guilabel:`→ Enable Payment
|
||||
Methods` within the :guilabel:`Configuration` tab of each provider.
|
||||
|
||||
When configuring the payment method, it is **mandatory** to set the :guilabel:`SRI Payment Method`
|
||||
for each method. This field appears after you create and save the payment method for the first
|
||||
time.
|
||||
|
||||
.. note::
|
||||
Adding the :guilabel:`SRI Payment Method` is necessary to generate correctly the electronic
|
||||
invoice from an eCommerce sale. Select a **payment method** to access its configuration menu and
|
||||
the field.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Payment provider <../payment_providers>`
|
||||
|
||||
.. image:: ecuador/l10n-ec-sri-payment-method.png
|
||||
:align: center
|
||||
:alt: l10n_ec SRI Payment Method.
|
||||
|
||||
eCommerce workflow
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Type and identification number
|
||||
******************************
|
||||
|
||||
The client who is making a purchase will have the option to indicate their identification type and
|
||||
number during the checkout process. This information is required to correctly generate the
|
||||
electronic invoice after the checkout is completed.
|
||||
|
||||
.. image:: ecuador/website-checkout-form.png
|
||||
:align: center
|
||||
:alt: Website checkout form.
|
||||
|
||||
.. note::
|
||||
Verification is done to ensure the *Identification Number* field is completed and has the correct
|
||||
number of digits. For RUC identification, 13 digits are required. For Cédula, 9 digits are
|
||||
required.
|
||||
|
||||
After finishing the checkout process, a confirmed invoice is generated, ready to be sent manually or
|
||||
asynchronously to the SRI.
|
||||
|
||||
Financial Reports
|
||||
=================
|
||||
|
||||
In Ecuador, there are fiscal reports that the company presents to SRI. Odoo supports two of the main
|
||||
financial reports used by companies: **reports 103** and **104**.
|
||||
In Ecuador, there are fiscal reports that the company presents to SRI. In Odoo, we have two of the
|
||||
main financial reports used by companies. These are the reports 103 and 104.
|
||||
|
||||
To get these reports, go to the **Accounting** app and select :menuselection:`Reporting -->
|
||||
To get these reports go to the :guilabel:`Accounting` app and select :menuselection:`Reporting -->
|
||||
Statements Reports --> Tax Report` and then filter by `Tax Report 103` or `Tax Report 104`.
|
||||
|
||||
Report 103
|
||||
@@ -665,8 +569,8 @@ Report 103
|
||||
This report contains information of income tax withholdings in a given period, this can be reported
|
||||
monthly or semi-annually.
|
||||
|
||||
You can see the information needed to report, which includes base and tax amounts, but also includes
|
||||
the tax code within the parenthesis in order to report it to the SRI.
|
||||
You can see the information needed to report, which includes base and tax amounts, which also
|
||||
includes the tax code within the parenthesis in order to report it to the SRI.
|
||||
|
||||
.. image:: ecuador/103-form.png
|
||||
:align: center
|
||||
@@ -678,15 +582,13 @@ Report 104
|
||||
This report contains information on VAT tax and VAT withholding for a given period, this can be
|
||||
monthly or semi-annually.
|
||||
|
||||
You can see the information needed to report, which includes base and tax amounts, but also includes
|
||||
the tax code within the parenthesis to report it to the SRI.
|
||||
You can see the information needed to report, which includes base and tax amounts, which also
|
||||
includes the tax code within the parenthesis in order to report it to the SRI.
|
||||
|
||||
.. image:: ecuador/104-form.png
|
||||
:align: center
|
||||
:alt: Report 104 form for Ecuador.
|
||||
|
||||
.. _ecuador/ats:
|
||||
|
||||
ATS report
|
||||
----------
|
||||
|
||||
@@ -694,8 +596,8 @@ ATS report
|
||||
downloading the ATS report in XML format.
|
||||
|
||||
.. note::
|
||||
The Ecuadorian *ATS Report* module depends on the previous installation of the *Accounting* app
|
||||
and the *Ecuadorian EDI module*.
|
||||
The Ecuadorian *ATS Report* module is dependent on the previous installation of the *Accounting*
|
||||
app and the *Ecuadorian EDI module*.
|
||||
|
||||
Configuration
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 20 KiB |
@@ -96,13 +96,6 @@ Periodic submission to HMRC
|
||||
Import your obligations HMRC, filter on the period you want to submit, and send your tax report by
|
||||
clicking :guilabel:`Send to HMRC`.
|
||||
|
||||
.. tip::
|
||||
You can use dummy credentials to demo the HMRC flow. To do so, activate the
|
||||
:ref:`developer mode <developer-mode>` and go to :menuselection:`General Settings -->
|
||||
Technical --> System Parameters`. From here, search for `l10n_uk_reports.hmrc_mode` and change
|
||||
the value line to `demo`. You can get such credentials from the `HMRC Developer Hub
|
||||
<https://developer.service.hmrc.gov.uk/api-test-user>`_.
|
||||
|
||||
Periodic submission to HMRC for multi-company
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
||||
@@ -5,10 +5,6 @@ Stripe
|
||||
`Stripe <https://stripe.com/>`_ is a United States-based online payment solution provider allowing
|
||||
businesses to accept **credit cards** and other payment methods.
|
||||
|
||||
.. seealso::
|
||||
- `List of countries supported by Stripe <https://stripe.com/global>`_
|
||||
- `List of payment methods supported by Stripe <https://stripe.com/payments/payment-methods>`_
|
||||
|
||||
Create your Stripe account with Odoo
|
||||
====================================
|
||||
|
||||
|
||||
@@ -30,9 +30,9 @@ Configuration on the Xendit Dashboard
|
||||
the webhook token.
|
||||
#. Under :guilabel:`Webhook verification token`, click :guilabel:`View Webhook Verification Token`,
|
||||
then confirm your password to display the token. Save it for later.
|
||||
#. In the :guilabel:`Webhook URL` section, enter your Odoo database's URL, followed by
|
||||
`/payment/xendit/webhook` (e.g., `https://example.odoo.com/payment/xendit/webhook`) in the field
|
||||
:guilabel:`Invoices paid` and click the :guilabel:`Test and save` button next to it.
|
||||
#. In the :guilabel:`Webhook URL` section, enter your Odoo database URL (e.g.,
|
||||
`https://example.odoo.com`) in the field :guilabel:`Invoices paid` and click the
|
||||
:guilabel:`Test and save` button next to it.
|
||||
|
||||
Configuration on Odoo
|
||||
=====================
|
||||
|
||||
@@ -4,196 +4,89 @@
|
||||
Companies
|
||||
=========
|
||||
|
||||
A centralized management environment allows an administrator to select multiple companies
|
||||
simultaneously, and set their specific warehouses, customers, equipment, and contacts. It provides
|
||||
the ability to generate reports of aggregated figures without switching interfaces, which
|
||||
facilitates daily tasks, and enhances the overall management process.
|
||||
|
||||
.. danger::
|
||||
Utilizing a multi-company environment in an Odoo database warrants a subscription change from
|
||||
*Standard* (or *One App Free*) to a *Custom* plan. Should the administrator not migrate the
|
||||
subscription to a *Custom* plan after adding another company, the database risks being
|
||||
deactivated. For more information, consult the `Odoo Pricing page
|
||||
<https://www.odoo.com/pricing-plan>`_.
|
||||
|
||||
If the customer is on the *Standard* plan, and adds multi-company functionality to the database,
|
||||
it triggers an upsell for the *Custom* plan.
|
||||
|
||||
If they are on a *Yearly* or *Multi-year* contract, this creates an upsell order, with a 30-day
|
||||
limit (risking deactivation). If multi-company functionality is fully removed within that time
|
||||
period, the next time the database pings, the upsell order and limit are removed automatically.
|
||||
|
||||
If the customer is on a *Monthly* contract, once the next bill is created, and multi-company
|
||||
functionality is still detected while they are on a *Standard* plan, they are automatically
|
||||
switched, and billed on the *Custom* plan.
|
||||
|
||||
Should the customer want to go back to *Standard*, the Customer Success Team **must** be
|
||||
contacted.
|
||||
|
||||
To create a new company, navigate to :menuselection:`Settings app --> Companies section`, and click
|
||||
:guilabel:`Manage Companies`. Then, click :guilabel:`New` to create a new company.
|
||||
|
||||
Proceed to fill out the new company form that appears.
|
||||
|
||||
.. tip::
|
||||
To archive a company, navigate to :menuselection:`Settings app --> Companies section --> Manage
|
||||
Companies`. Then, tick the checkbox to the left of the company to be archived. If the
|
||||
:guilabel:`Companies` page is not in list view, click the :guilabel:`≣ (four bars)` icon, located
|
||||
in the top-right corner of the page.
|
||||
|
||||
After selecting the appropriate company, click the :guilabel:`⚙️ Actions` icon, and select
|
||||
:guilabel:`Archive` from the resulting drop-down menu.
|
||||
|
||||
To ensure all records related to the archived company are archived, contact Odoo's `Support Team
|
||||
<https://www.odoo.com/help>`_.
|
||||
|
||||
Should a record not be archived, there is a risk of reactivating the archived company, and
|
||||
creating the upsell again.
|
||||
A centralized management environment allows you to select multiple companies simultaneously and set
|
||||
their specific warehouses, customers, equipment, and contacts. It provides you the ability to
|
||||
generate reports of aggregated figures without switching interfaces, which facilitates daily tasks
|
||||
and the overall management process.
|
||||
|
||||
.. _companies/manage:
|
||||
|
||||
Manage companies and records
|
||||
============================
|
||||
|
||||
Go to :menuselection:`Settings app --> Companies section --> Manage Companies`. Then, either click
|
||||
:guilabel:`New`, and fill in the form with the company's information, or select a pre-existing
|
||||
company to edit it.
|
||||
Go to :menuselection:`Settings --> Manage Companies` and fill in the form with your company’s
|
||||
information. If a *Parent Company* is selected, records are shared between the two companies (as
|
||||
long as both environments are active).
|
||||
|
||||
.. image:: companies/company-info.png
|
||||
.. image:: companies/create_js_store_us.png
|
||||
:align: center
|
||||
:alt: Overview of a new company's form in Odoo.
|
||||
:alt: Overview of a new company's form in Odoo
|
||||
|
||||
.. tip::
|
||||
Activate the :ref:`developer mode <developer-mode>` to set social media accounts and
|
||||
company-specific email system parameters. See this documentation on
|
||||
:doc:`../marketing/social_marketing` and :ref:`email_servers/outbound`.
|
||||
Activate the :ref:`developer mode <developer-mode>` to choose a *Favicon* for each of your
|
||||
companies, and easily identify them by the browser tabs. Set your favicons’ files size to 16x16
|
||||
or 32x32 pixels. JPG, PNG, GIF, and ICO are extensions accepted.
|
||||
|
||||
Companies also have a :guilabel:`Parent Company` set on the company form in :ref:`developer mode
|
||||
<developer-mode>`.
|
||||
|
||||
Switch between companies
|
||||
------------------------
|
||||
|
||||
Switch between (or select) multiple companies, by clicking on the company name, located in the
|
||||
far-right corner of the header menu, anywhere throughout the database. Tick the checkboxes next to
|
||||
the desired company name(s) to activate them. The highlighted company represents the current
|
||||
environment that is in use. To switch environments, click on the desired company name.
|
||||
|
||||
.. example::
|
||||
In the example below, the user has access to eight companies, two are activated, and the
|
||||
environment the database is in belongs to: *My Company (San Francisco)*.
|
||||
|
||||
.. image:: companies/multi-companies-menu-dashboard.png
|
||||
.. image:: companies/favicon.png
|
||||
:align: center
|
||||
:alt: View of the companies menu through the main dashboard in Odoo.
|
||||
:height: 200
|
||||
:alt: View of a web browser and the favicon for a specific company chosen in Odoo
|
||||
|
||||
Share records
|
||||
-------------
|
||||
Switch between or select multiple companies by enabling their selection boxes to activate them. The
|
||||
grayed company is the one which environment is in use. To switch environments, click on the
|
||||
company’s name. In the example below, the user has access to three companies, two are activated, and
|
||||
the environment in use is of *JS Store US*.
|
||||
|
||||
Data (such as, products, contacts, and equipment) can be shared, or set to be shown for a specific
|
||||
.. image:: companies/multi_companies_menu_dashboard.png
|
||||
:align: center
|
||||
:alt: View of the companies menu through the main dashboard in Odoo
|
||||
|
||||
Data such as Products, Contacts, and Equipment can be shared or set to be shown for a specific
|
||||
company only. To do so, on their forms, choose between:
|
||||
|
||||
- *A blank field*: the record is shared within all companies.
|
||||
- *Adding a company*: the record is visible to users logged in to that specific company.
|
||||
|
||||
.. image:: companies/product-form-company.png
|
||||
.. image:: companies/product_form_company.png
|
||||
:align: center
|
||||
:alt: View of a product's form emphasizing the company field in Odoo Sales.
|
||||
:alt: View of a product's form emphasizing the company field in Odoo Sales
|
||||
|
||||
When an environment is selected from the top menu, along with an additional company, records are
|
||||
shared between the two companies.
|
||||
Employees' access
|
||||
=================
|
||||
|
||||
Branches
|
||||
========
|
||||
Once companies are created, manage your employees' :doc:`Access Rights <users/access_rights>`
|
||||
for *Multi Companies*.
|
||||
|
||||
Branches are available to add to a company. Branches can be added by navigating to
|
||||
:menuselection:`Settings app --> Companies section --> Manage Companies`. Then, select the desired
|
||||
company from the list. From the company detail form, open the :guilabel:`Branches` tab. To add a
|
||||
branch, click :guilabel:`Add a line`, and fill out the :guilabel:`Create Branches` pop-up form that
|
||||
appears.
|
||||
|
||||
.. image:: companies/add-branch.png
|
||||
:align: center
|
||||
:alt: Add a branch to a company with branches and add a line highlighted.
|
||||
|
||||
.. tip::
|
||||
Activate the :ref:`developer mode <developer-mode>` to set social media accounts and
|
||||
company-specific email system parameters. See this documentation on
|
||||
:doc:`../marketing/social_marketing` and :ref:`email_servers/outbound`.
|
||||
|
||||
Branches also have a :guilabel:`Parent Company` set on the branch form in :ref:`developer mode
|
||||
<developer-mode>`. Accounting and fiscal localizations for the branch are set on the
|
||||
:guilabel:`Parent Company`. To do so, select the company from the *company selector* in the top
|
||||
menu, and go to :menuselection:`Settings app --> Accounting --> Fiscal Localization`.
|
||||
|
||||
.. danger::
|
||||
Adding a branch to a company triggers an upsell, should the database be in the *Standard* or
|
||||
*One App Free* pricing plans. Adding one or more branches constitutes a multi-company database,
|
||||
and needs to be moved to the *Custom* pricing plan.
|
||||
|
||||
For more information on pricing, see `Odoo's pricing <https://www.odoo.com/pricing-plan>`_ page.
|
||||
|
||||
Employee access
|
||||
===============
|
||||
|
||||
Once companies are created, manage the employees' :doc:`Access Rights <users/access_rights>` for
|
||||
*Multi Companies*.
|
||||
|
||||
To access the *Access Rights*, navigate to :menuselection:`Settings app --> Users section --> Manage
|
||||
Users`.
|
||||
|
||||
From the :guilabel:`Users` page, select a user from the list to modify. Then, either change the
|
||||
fields for :guilabel:`Allowed Companies` or :guilabel:`Default Company`.
|
||||
|
||||
Multiple companies can be set for :guilabel:`Allowed Companies`, and *only one* can be set as the
|
||||
:guilabel:`Default Company`.
|
||||
|
||||
.. image:: companies/access-rights-multi-companies.png
|
||||
.. image:: companies/access_rights_multi_companies.png
|
||||
:align: center
|
||||
:alt: View of an user form emphasizing the multi companies field under the access rights tabs
|
||||
in Odoo.
|
||||
in Odoo
|
||||
|
||||
If an administrator has multiple companies activated on the database, and is editing a record, the
|
||||
editing occurs on the record's related company.
|
||||
| If a user has multiple companies *activated* on his database, and he is **editing** a record,
|
||||
the editing happens on the record's related company.
|
||||
| Example: if editing a sale order issued under JS Store US while working on the JS Store Belgium
|
||||
environment, the changes are applied under JS Store US (the company from which the sale order
|
||||
was issued).
|
||||
| When **creating** a record, the company taken into account is:
|
||||
|
||||
.. example::
|
||||
If editing a sale order issued under `JS Store US`, while working on the `JS Store Belgium`
|
||||
environment, the changes are applied under `JS Store US` (the company from which the sale order
|
||||
was issued).
|
||||
- The current company (the one active) or,
|
||||
- No company is set (on products and contacts’ forms for example) or,
|
||||
- The company set is the one linked to the document (the same as if a record is being edited).
|
||||
|
||||
When creating a record, the company taken into account is:
|
||||
Documents’ format
|
||||
=================
|
||||
|
||||
- The current company selected in the company selector, in the upper-right hand of the screen (the
|
||||
one that is highlighted/active)
|
||||
To set documents' formats according to each company, *activate* and *select* the respective one and,
|
||||
under *Settings*, click on *Configure Document Layout*.
|
||||
|
||||
**OR**
|
||||
|
||||
- No company is set (because none is set on the product and contact forms, for example)
|
||||
|
||||
**OR**
|
||||
|
||||
- The company set is the company linked to the document (the same as if a record is being edited)
|
||||
|
||||
Document format
|
||||
===============
|
||||
|
||||
To set document formats according to each company, *activate* and *select* the respective company,
|
||||
and, under the :menuselection:`Settings app --> Companies section`, click on :guilabel:`Configure
|
||||
Document Layout` and edit the information as needed.
|
||||
|
||||
.. image:: companies/document-layout.png
|
||||
.. image:: companies/document_layout.png
|
||||
:align: center
|
||||
:alt: View of the settings page emphasizing the document layout field in Odoo.
|
||||
:alt: View of the settings page emphasizing the document layout field in Odoo
|
||||
|
||||
:guilabel:`Company Details` can be edited on the document layout. By default, this field is
|
||||
populated from the company information listed, when navigating here: :menuselection:`Settings app
|
||||
--> Companies section --> Manage Companies`, and select a company from the list.
|
||||
|
||||
Inter-company transactions
|
||||
Inter-Company Transactions
|
||||
==========================
|
||||
|
||||
First, activate the :ref:`developer mode <developer-mode>`. Then, make sure each one of the
|
||||
companies is properly set in relation to:
|
||||
First, make sure each one of your companies is properly set in relation to:
|
||||
|
||||
- :doc:`Chart of Accounts <../finance/accounting/get_started/chart_of_accounts>`
|
||||
- :doc:`Taxes <../finance/accounting/taxes>`
|
||||
@@ -202,54 +95,44 @@ companies is properly set in relation to:
|
||||
- :doc:`Fiscal Localizations <../finance/fiscal_localizations>`
|
||||
- :doc:`Pricelists <../sales/sales/products_prices/prices/pricing>`
|
||||
|
||||
Next, navigate to :menuselection:`Settings app --> Companies section --> Manage Companies`. Then,
|
||||
select the desired company from the list. On the company form, select the :guilabel:`Inter-Company
|
||||
Transactions` tab, on the individual company's detail form.
|
||||
Now, activate the *Inter-Company Transactions* option under *Settings*. With the respective company
|
||||
*activated* and *selected*, choose if you would like operations between companies to be synchronized
|
||||
at an invoice/bills level or at a sales/purchase orders level.
|
||||
|
||||
With the respective company activated and selected, choose one of the following :guilabel:`Rule`
|
||||
options:
|
||||
|
||||
- :guilabel:`Do not synchronize`: do not synchronize any inter-company transactions.
|
||||
- :guilabel:`Synchronized invoice/bills`: generates a bill/invoice when a company confirms a
|
||||
bill/invoice for the selected company.
|
||||
- :guilabel:`Synchronize Sales Order`: generates a drafted sales order using the selected company
|
||||
warehouse, when a sales order is confirmed for the selected company. If, instead of a drafted
|
||||
sales order, it should be validated, enable :guilabel:`Automatic Validation`.\*
|
||||
- :guilabel:`Synchronize Purchase Order`: generates a drafted purchase order using the selected
|
||||
company warehouse, when a purchase order is confirmed for the selected company. If, instead of a
|
||||
drafted purchase order, it should be validated, enable :guilabel:`Automatic Validation`.\*
|
||||
- :guilabel:`Synchronize Sales and Purchase Order`: generates a drafted purchase/sales order using
|
||||
the selected company warehouse, when a sales/purchase order is confirmed for the selected company.
|
||||
If, instead of a drafted purchase/sales order, it should be validated, enable :guilabel:`Automatic
|
||||
Validation`.\*
|
||||
|
||||
\* The given option needs to be selected, so :guilabel:`Automatic Validation` appears in the
|
||||
configuration.
|
||||
|
||||
.. image:: companies/inter-company-transactions.png
|
||||
.. image:: companies/inter_company_transactions.png
|
||||
:align: center
|
||||
:alt: View of the settings page emphasizing the inter company transaction field in Odoo.
|
||||
:alt: View of the settings page emphasizing the inter company transaction field in Odoo
|
||||
|
||||
- **Synchronize invoice/bills**: generates a bill/invoice when a company confirms a bill/invoice for
|
||||
the selected company.
|
||||
|
||||
*Example:* an invoice posted on JS Store Belgium, for JS Store US, automatically creates a vendor
|
||||
bill on the JS Store US, from the JS Store Belgium.
|
||||
|
||||
.. image:: companies/invoice_inter_company.png
|
||||
:align: center
|
||||
:alt: View of an invoice for JS Store US created on JS Store Belgium in Odoo
|
||||
|
||||
- **Synchronize sales/purchase order**: generates a drafted purchase/sales order using the selected
|
||||
company warehouse when a sales/purchase order is confirmed for the selected company. If instead of
|
||||
a drafted purchase/sales order you rather have it validated, enable *Automatic Validation*.
|
||||
|
||||
*Example:* when a sale order for JS Store US is confirmed on JS Store Belgium, a purchase order
|
||||
on JS Store Belgium is automatically created (and confirmed if the *Automatic Validation* feature
|
||||
was enabled).
|
||||
|
||||
.. image:: companies/purchase_order_inter_company.png
|
||||
:align: center
|
||||
:alt: View of the purchase created on JS Store US from JS Store Belgium in Odoo
|
||||
|
||||
.. note::
|
||||
Products **must** be configured as :guilabel:`Can be sold` and shared between the companies. See
|
||||
:doc:`../inventory_and_mrp/inventory/product_management/product_tracking/type`.
|
||||
|
||||
.. example::
|
||||
:guilabel:`Synchronize invoice/bills`: an invoice posted on `JS Store Belgium`, for `JS Store
|
||||
US`, automatically creates a vendor bill, and generates a drafted purchase/sales order using the
|
||||
selected company warehouse, when a sales/purchase order is confirmed for the selected company.
|
||||
If, instead of a drafted purchase/sales order, it should be validated, enable
|
||||
:guilabel:`Automatic Validation`.
|
||||
|
||||
:guilabel:`Synchronize sales/purchase order`: when a sale order for `JS Store US` is confirmed on
|
||||
`JS Store Belgium`, a purchase order on `JS Store Belgium` is automatically created (and
|
||||
confirmed, if the :guilabel:`Automatic Validation` feature was enabled).
|
||||
Products have to be configured as *Can be sold* and must be shared between the companies.
|
||||
|
||||
.. tip::
|
||||
Remember to test all workflows as a user *other* than the administrator.
|
||||
Remember to test all workflows as an user other than the administrator.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Multi-company Guidelines <../../developer/howtos/company>`
|
||||
- :doc:`Multi-company Guidelines </developer/howtos/company>`
|
||||
- :doc:`../finance/accounting/get_started/multi_currency`
|
||||
|
||||
.. toctree::
|
||||
|
||||
|
Before Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 62 KiB |
|
Before Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 23 KiB |
@@ -1,232 +1,83 @@
|
||||
=============
|
||||
Digest emails
|
||||
Digest Emails
|
||||
=============
|
||||
|
||||
*Digest Emails* are periodic snapshots sent via email to users in an organization that include
|
||||
high-level information about how the business is performing.
|
||||
**Digest Emails** are periodic snapshots sent to your organization via email that include high-level
|
||||
information about how your business is performing.
|
||||
|
||||
To start sending digest emails, begin by navigating to :menuselection:`Settings app --> Statistics
|
||||
section`, activate the :guilabel:`Digest Emails` feature, and click :guilabel:`Save`.
|
||||
Navigate to Digest Emails by going to :menuselection:`Settings --> General Settings --> Statistics`,
|
||||
then activate the **Digest Emails** feature and click on save.
|
||||
|
||||
.. image:: digest_emails/digest-email-settings.png
|
||||
:align: center
|
||||
:alt: Digest Emails section inside General Settings.
|
||||
|
||||
A variety of settings can be configured for digest emails, such as:
|
||||
You can control a variety of settings for your Digest Emails, such as:
|
||||
|
||||
- Deciding which :abbr:`KPIs (key performance indicators)` are shared in the digest emails
|
||||
- Determining how often digest emails are sent
|
||||
- Choosing who in the organization receives digest emails
|
||||
- Creating custom digest email templates
|
||||
- Adding additional :abbr:`KPIs (key performance indicators)` (*Studio* app required)
|
||||
- which KPIs are shared in the Digest
|
||||
- how often Digest Emails are sent
|
||||
- who in your organization receives Digest Emails
|
||||
- creating custom Digest Email templates
|
||||
- adding additional KPIs (Studio required)
|
||||
|
||||
.. note::
|
||||
By default, the :guilabel:`Digest Email` feature is enabled. :guilabel:`Your Odoo Periodic
|
||||
Digest` serves as the primary template, which includes all :abbr:`KPI (key performance
|
||||
indicator)` measurements across the Odoo database, and is sent daily to administrators.
|
||||
|
||||
.. warning::
|
||||
When creating duplicates of databases that have sending capabilities (not testing-mode), the
|
||||
digest emails continue to send from the duplicate database, unless deactivated.
|
||||
|
||||
To deactivate the digest email, navigate to :menuselection:`Settings --> Statistics section`.
|
||||
Then, deactivate the :guilabel:`Digest Emails` feature, by un-ticking the checkbox, and clicking
|
||||
:guilabel:`Save`. See the section on :ref:`digest-emails/deactivate`.
|
||||
By default, Digest Email is *enabled*, and *Your Odoo Periodic Digest* serves as the primary
|
||||
template, which includes all KPI measurements across your Odoo database and is sent daily to
|
||||
administrators.
|
||||
|
||||
.. _digest-emails/customize-digest:
|
||||
|
||||
Customize default digest email
|
||||
==============================
|
||||
Customize *Your Odoo Periodic Digest*
|
||||
=====================================
|
||||
|
||||
To customize the default digest email (*Your Odoo Periodic Digest*), go to :menuselection:`Settings
|
||||
app --> Statistics section --> Digest Email field`. Then, select :guilabel:`Your Odoo Periodic
|
||||
Digest`, and click on the :guilabel:`↗️ (External link)` icon, next to the drop-down menu selection.
|
||||
To customize the default Digest Email (*Your Odoo Periodic Digest*), go to :menuselection:`Settings
|
||||
--> General Settings --> Statistics --> Digest Email`, select *Your Odoo Periodic Digest* and click
|
||||
on the *external link* next to the dropdown selection.
|
||||
|
||||
A pop-up window appears, and presents a variety of editable settings, which include:
|
||||
A popup window appears and presents a variety of editable settings, which include:
|
||||
|
||||
- :guilabel:`Digest Name`: the name of the digest email.
|
||||
- :guilabel:`Periodicity`: control how often digest emails are sent (:guilabel:`Daily`,
|
||||
:guilabel:`Weekly`, :guilabel:`Monthly`, or :guilabel:`Quarterly`).
|
||||
- :guilabel:`Next Send Date`: the date on which the digest email will be sent again.
|
||||
- :guilabel:`KPIs` tab: check/uncheck each calculated :abbr:`KPI (key performance indicator)` that
|
||||
appears in digest emails. A ticked box indicates an active :abbr:`KPI (key performance indicator)`
|
||||
in the digest email. See the section on :ref:`digest-emails/kpis`.
|
||||
- :guilabel:`Recipients` tab: add/remove users who receive the digest emails. See the section on
|
||||
:ref:`digest-emails/recipients`.
|
||||
|
||||
.. note::
|
||||
The :abbr:`KPIs (key performance indicators)` can be customized using Odoo *Studio*. Additional
|
||||
costs to the database subscription are incurred should *Studio* need to be installed. See this
|
||||
section on :ref:`digest-emails/custom-kpi`.
|
||||
- **Digest Title** - what you want your Digest Email to be called
|
||||
- **Periodicity** - control the regimen in how often Digest Emails are sent
|
||||
- **KPIs** - check/uncheck each calculated KPI that appears in Digest Emails
|
||||
- **Recipients** - add/remove users who receive your Digest Emails
|
||||
- **Custom** - add your own KPIs (Studio required)
|
||||
|
||||
.. image:: digest_emails/periodic-digest.png
|
||||
:align: center
|
||||
:alt: Customize default Digest Email settings and custom KPIs.
|
||||
|
||||
.. _digest-emails/deactivate:
|
||||
|
||||
Deactivate digest email
|
||||
=======================
|
||||
|
||||
To manually deactivate an individual digest email, first navigate to :menuselection:`Settings app
|
||||
--> Statistics section`, and click :guilabel:`Configure Digest Emails`. Then, select the desired
|
||||
digest email from the list that should be deactivated.
|
||||
|
||||
Next, click :guilabel:`DEACTIVATE FOR EVERYONE` to deactivate the digest email for everyone, or
|
||||
:guilabel:`UNSUBSCRIBE ME` to remove the logged in user from the mailing list. These buttons are
|
||||
located in the top menu, just above the :guilabel:`Digest Name`.
|
||||
|
||||
Manually send digest email
|
||||
==========================
|
||||
|
||||
To manually send a digest email, first navigate to :menuselection:`Settings app --> Statistics
|
||||
section`, and click :guilabel:`Configure Digest Emails`. Then, select the desired digest email, and
|
||||
click :guilabel:`SEND NOW`. This button is located in the top menu, just above the :guilabel:`Digest
|
||||
Name`.
|
||||
|
||||
.. _digest-emails/kpis:
|
||||
|
||||
KPIs
|
||||
====
|
||||
|
||||
Pre-configured :abbr:`KPIs (key performance indicators)` can be added to the digest email from the
|
||||
:guilabel:`KPIs` tab of the digest email template form.
|
||||
|
||||
First, navigate to :menuselection:`Settings app --> Statistics section`, and click
|
||||
:guilabel:`Configure Digest Emails`.
|
||||
|
||||
Then, select the desired digest email, and open the :guilabel:`KPIs` tab.
|
||||
|
||||
To add a :abbr:`KPI (key performance indicator)` to the digest email, tick the checkbox next to the
|
||||
desired :abbr:`KPI (key performance indicator)`. After all :abbr:`KPIs (key performance indicators)`
|
||||
are added (or deselected), click :guilabel:`Save`.
|
||||
|
||||
The following :abbr:`KPIs (key performance indicators)` are available in the :guilabel:`KPIs` tab on
|
||||
a digest email template form out-of-box in Odoo:
|
||||
|
||||
.. image:: digest_emails/oob-kpis.png
|
||||
:align: right
|
||||
:alt: KPIs listed in the out-of-box digest email.
|
||||
|
||||
:guilabel:`General`
|
||||
- :guilabel:`Connected Users`
|
||||
- :guilabel:`Messages`
|
||||
|
||||
:guilabel:`Project`
|
||||
- :guilabel:`Open Tasks`
|
||||
|
||||
:guilabel:`Recruitment`
|
||||
- :guilabel:`Employees`
|
||||
|
||||
:guilabel:`CRM`
|
||||
- :guilabel:`New Leads/Opportunities`
|
||||
- :guilabel:`Opportunities Won`
|
||||
|
||||
:guilabel:`Sales`
|
||||
- :guilabel:`All Sales`
|
||||
- :guilabel:`eCommerce Sales`
|
||||
|
||||
:guilabel:`Point of Sale`
|
||||
- :guilabel:`POS Sales`
|
||||
|
||||
:guilabel:`Live Chat`
|
||||
- :guilabel:`% of Happiness`
|
||||
- :guilabel:`Conversations handled`
|
||||
- :guilabel:`Time to answer (sec)`
|
||||
|
||||
:guilabel:`Helpdesk`
|
||||
- :guilabel:`Tickets Closed`
|
||||
|
||||
:guilabel:`Invoicing`
|
||||
- :guilabel:`Revenue`
|
||||
- :guilabel:`Banks and Cash Moves`
|
||||
|
||||
.. _digest-emails/recipients:
|
||||
|
||||
Recipients
|
||||
==========
|
||||
|
||||
Digest email recipients are added from the :guilabel:`Recipients` tab of the digest email template
|
||||
form.
|
||||
|
||||
To add a recipient, navigate to :menuselection:`Settings app --> Statistics section`, and click
|
||||
:guilabel:`Configure Digest Emails`. Then, select the desired digest email, and open the
|
||||
:guilabel:`Recipients` tab.
|
||||
|
||||
To add a recipient, click :guilabel:`Add a line`, and an :guilabel:`Add Recipients` pop-up window
|
||||
appears, with all available users to add as recipients.
|
||||
|
||||
From the pop-up window, tick the checkbox next to the :guilabel:`Name` of the user(s), and click the
|
||||
:guilabel:`Select` button.
|
||||
|
||||
To remove a user as a recipient, click the :guilabel:`❌ (remove)` icon to the far-right of the user
|
||||
listed in the :guilabel:`Recipients` tab.
|
||||
|
||||
Click :guilabel:`Save` to implement the changes.
|
||||
|
||||
.. _digest-emails/custom-emails:
|
||||
|
||||
Create digest emails
|
||||
Custom digest emails
|
||||
====================
|
||||
|
||||
To create a new digest email, navigate to :menuselection:`Settings app --> Statistics section`, and
|
||||
click :guilabel:`Configure Digest Emails`. Then, click :guilabel:`Create` to create a new digest
|
||||
email.
|
||||
To do so, click on **Configure Digest Emails** and then **Create**.
|
||||
|
||||
A separate page, with a blank digest email template appears, and presents a variety of editable
|
||||
settings, including:
|
||||
From there, give your Digest Email a title, specify periodicity, and choose your desired KPIs and
|
||||
recipients fields as needed.
|
||||
|
||||
- :guilabel:`Digest Name`: the name of the digest email.
|
||||
- :guilabel:`Periodicity`: control how often digest emails are sent (:guilabel:`Daily`,
|
||||
:guilabel:`Weekly`, :guilabel:`Monthly`, or :guilabel:`Quarterly`).
|
||||
- :guilabel:`Next Send Date`: the date on which the digest email will be sent again.
|
||||
- :guilabel:`KPIs` tab: check/uncheck each calculated :abbr:`KPI (key performance indicator)` that
|
||||
appears in digest emails. A ticked box indicates an active :abbr:`KPI (key performance indicator)`
|
||||
in the digest email. See the section on :ref:`digest-emails/kpis`.
|
||||
- :guilabel:`Recipients` tab: add/remove users who receive the digest emails. See the section on
|
||||
:ref:`digest-emails/recipients`.
|
||||
|
||||
From there, give the digest email a :guilabel:`Digest Name`, specify :guilabel:`Periodicity`,
|
||||
choose the desired :abbr:`KPIs (key performance indicators)`, and add :guilabel:`Recipients`, as
|
||||
needed.
|
||||
|
||||
After clicking :guilabel:`Save`, the new custom digest email is available as a selection in the
|
||||
:guilabel:`Digest Email` field, located in the :menuselection:`Settings app --> Statistics section`.
|
||||
After you click **Save**, your new custom Digest Email is available as a selection in the **General
|
||||
Settings** dropdown menu.
|
||||
|
||||
.. _digest-emails/custom-kpi:
|
||||
|
||||
Custom KPIs with Odoo Studio
|
||||
============================
|
||||
Custom KPIs with Studio
|
||||
-----------------------
|
||||
|
||||
The :abbr:`KPIs (key performance indicators)` on a digest email template form, in the
|
||||
:guilabel:`KPIs` tab, can be customized using Odoo *Studio*.
|
||||
For either *Your Odoo Periodic Digest* or your own custom Digest Email, you can add your own KPIs
|
||||
by using Odoo Studio.
|
||||
|
||||
.. warning::
|
||||
Additional costs to the database subscription are incurred, should Odoo *Studio* need to be
|
||||
installed.
|
||||
To begin, click the **Toggle Studio** icon or click the **Recipients** tab and then the ellipses
|
||||
:menuselection:`… icon --> Add Custom Field` to edit the template or add additional fields.
|
||||
|
||||
To begin, click the :guilabel:`🛠️ (tools)` icon in the top-right of the screen. This is the link to
|
||||
the Odoo *Studio* application.
|
||||
In order to create additional fields, you must create two fields on the digest object:
|
||||
|
||||
In order to create additional fields, create two fields on the digest object:
|
||||
|
||||
#. Create a boolean field called `kpi_myfield`, and display it in the :guilabel:`KPIs` tab.
|
||||
#. Create a computed field called `kpi_myfield_value` that computes the customized :abbr:`KPI (key
|
||||
performance indicator)`.
|
||||
#. Select the :abbr:`KPIs (key performance indicators)` in the :guilabel:`KPIs` tab.
|
||||
|
||||
.. tip::
|
||||
Here is the `source code
|
||||
<https://github.com/odoo/odoo/blob/15.0/addons/digest/models/digest.py>`_ for the `digest.py`
|
||||
file, which guides the programmer in the coding of the computed field.
|
||||
|
||||
.. seealso::
|
||||
Users can also click the :guilabel:`Recipients` tab, and then the vertical three-dot
|
||||
:guilabel:`(kebab)` menu to edit this view. Either click :guilabel:`EDIT LIST VIEW` or
|
||||
:guilabel:`EDIT FORM VIEW` to modify this tab.
|
||||
#. create a boolean field called `kpi_myfield` and display it in the KPIs tab
|
||||
#. create a computed field called `kpi_myfield_value` that computes your customized KPI
|
||||
#. select your KPI(s) in the KPIs tab.
|
||||
|
||||
Computed values reference table
|
||||
-------------------------------
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
+-----------------------+-------------------------------------------+
|
||||
| LABEL | VALUE |
|
||||
|
||||
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 9.7 KiB |
|
After Width: | Height: | Size: 45 KiB |
|
After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 43 KiB |
|
Before Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 44 KiB |
|
After Width: | Height: | Size: 68 KiB |
@@ -1,68 +1,102 @@
|
||||
.. _developer-mode:
|
||||
|
||||
===========================
|
||||
Developer mode (debug mode)
|
||||
Developer Mode (debug mode)
|
||||
===========================
|
||||
|
||||
The developer mode, also known as debug mode, unlocks access to advanced :ref:`tools and settings
|
||||
<developer-mode/tools>` in Odoo.
|
||||
The developer mode (or debug mode) unlocks access to extra and advanced tools in Odoo. There are
|
||||
several ways to activate the developer mode: through the
|
||||
:ref:`settings <general/developer_mode/settings>`, the
|
||||
:ref:`browser extension <general/developer_mode/browser-extension>`, through
|
||||
the :ref:`command palette <general/developer_mode/command-palette>` or the
|
||||
:ref:`URL <general/developer_mode/url>`.
|
||||
|
||||
.. warning::
|
||||
Proceed with caution, as some developer tools and technical settings are considered advanced and
|
||||
may have associated risks. Only use them if you understand the implications and are confident in
|
||||
your actions.
|
||||
.. _general/developer_mode/settings:
|
||||
|
||||
Activate through the Settings
|
||||
=============================
|
||||
|
||||
The debug mode can be activated in the Odoo database settings. Go to :menuselection:`Settings -->
|
||||
General Settings --> Developer Tools` and click on :guilabel:`Activate the developer mode`. At
|
||||
least one application needs to be installed for the :guilabel:`Developer Tools` section to appear
|
||||
in the :guilabel:`Settings` module.
|
||||
|
||||
.. image:: developer_mode/settings.png
|
||||
:align: center
|
||||
:alt: Overview of the debug options under settings in Odoo.
|
||||
|
||||
.. note::
|
||||
The developer mode is also available with :ref:`assets <frontend/framework/assets_debug_mode>`,
|
||||
which are used to debug JavaScript code, and with :ref:`tests assets
|
||||
<frontend/framework/tests_debug_mode>`, which are used to run test tours.
|
||||
|
||||
.. _developer-mode/activation:
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
To activate it, open the :guilabel:`Settings` app, scroll down to the :guilabel:`Developer Tools`
|
||||
section, and click :guilabel:`Activate the developer mode`.
|
||||
:guilabel:`Activate the developer mode (with assets)` is used by developers; :guilabel:`Activate
|
||||
the developer mode (with tests assets)` is used by developers and testers.
|
||||
|
||||
Once activated, the :guilabel:`Deactivate the developer mode` option becomes available.
|
||||
|
||||
.. image:: developer_mode/settings.png
|
||||
:alt: Activating the developer mode in the Settings app
|
||||
.. _general/developer_mode/browser-extension:
|
||||
|
||||
To activate the developer mode **from anywhere in the database**, add `?debug=1` to the URL after
|
||||
`/web` (e.g., `https://example.odoo.com/web?debug=1#action=menu&cids=1`). To deactivate it, use
|
||||
`?debug=0` instead.
|
||||
Activate through the browser extension
|
||||
======================================
|
||||
|
||||
Use `?debug=assets` to activate the developer mode with assets and `?debug=tests` to activate it
|
||||
with tests assets.
|
||||
Within a web browser, navigate to the browser settings and extensions and search for the `Odoo
|
||||
Debug` extension. Once the extension is installed, a new icon will be shown on the browser's
|
||||
toolbar.
|
||||
|
||||
For the *Odoo Debug* extension, a single click enables a normal version of the mode, while a
|
||||
double click enables it with assets. To deactivate it, use a single click.
|
||||
|
||||
.. image:: developer_mode/developer-mode-monkey.png
|
||||
:align: center
|
||||
:alt: View of Odoo's debug icon in a Google Chrome toolbar.
|
||||
|
||||
.. _general/developer_mode/command-palette:
|
||||
|
||||
Activate through the command palette
|
||||
====================================
|
||||
|
||||
In Odoo, the command palette tool has a command to activate the debug mode. First, open the command
|
||||
palette tool with the keyboard shortcut `ctrl+k` and then type `debug`. A command will show up to
|
||||
activate the debug mode.
|
||||
|
||||
.. image:: developer_mode/command-palette.png
|
||||
:align: center
|
||||
:alt: Command palette with debug command.
|
||||
|
||||
.. _general/developer_mode/url:
|
||||
|
||||
.. _developer-mode/url:
|
||||
|
||||
Activate through the URL
|
||||
========================
|
||||
|
||||
The debug mode can also be activated by adding an extra query string to the database's URL. In the
|
||||
URL, add `?debug=1` or `?debug=true` after `/web`. To deactivate the debug mode, change the
|
||||
value to `?debug=0` instead.
|
||||
|
||||
.. image:: developer_mode/url.png
|
||||
:align: center
|
||||
:alt: Overview of a URL with the debug mode command added.
|
||||
|
||||
.. tip::
|
||||
Open the **command palette** by pressing `Ctrl + K` or `Cmd ⌘ + K`, then type `debug` to
|
||||
activate the developer mode with assets or deactivate it.
|
||||
Additional modes are available for developers: `?debug=assets` enables the
|
||||
:ref:`assets mode <frontend/framework/assets_debug_mode>`, and `?debug=tests` enables
|
||||
the :ref:`tests mode <frontend/framework/tests_debug_mode>`.
|
||||
|
||||
.. admonition:: Browser extension
|
||||
.. _developer-mode/mode-tools:
|
||||
|
||||
The `Odoo Debug <https://github.com/Droggol/OdooDebug>`_ browser extension adds an icon to toggle
|
||||
developer mode on or off from the browser's toolbar. It is available on the `Chrome Web Store
|
||||
<https://chromewebstore.google.com/detail/odoo-debug/hmdmhilocobgohohpdpolmibjklfgkbi>`_ and
|
||||
`Firefox Add-ons <https://addons.mozilla.org/firefox/addon/odoo-debug/>`_.
|
||||
Locate the developer mode tools
|
||||
===============================
|
||||
|
||||
.. _developer-mode/tools:
|
||||
Once developer mode is activated, the developer mode tools can be accessed from the :guilabel:`Open
|
||||
Developer Tools` button, the bug icon located in the header of the Odoo database.
|
||||
|
||||
Developer tools and technical menu
|
||||
==================================
|
||||
.. image:: developer_mode/button-location.png
|
||||
:align: center
|
||||
:alt: Overview of a console page and the debug icon being shown in Odoo.
|
||||
|
||||
Once the developer mode is activated, the developer tools can be accessed by clicking the
|
||||
:icon:`fa-bug` :guilabel:`(bug)` icon. The menu contains tools useful for understanding or editing
|
||||
technical data, such as a view's field, filters, or actions. The options available depend on where
|
||||
the menu is accessed from.
|
||||
This menu contains additional tools that are useful to understand or edit technical data, such as
|
||||
the views or actions of a page. On a page that has filters, actions, and view options, the
|
||||
developer mode tools contain some useful menu items such as:
|
||||
|
||||
.. image:: developer_mode/tools.png
|
||||
:alt: Accessing the developer tools
|
||||
|
||||
Database administrators can access the technical menu from the :guilabel:`Settings` app. It contains
|
||||
advanced database settings, such as ones related to the database structure, security, actions, etc.
|
||||
|
||||
.. image:: developer_mode/technical.png
|
||||
:alt: Accessing the technical menu
|
||||
- :guilabel:`Edit Action`
|
||||
- :guilabel:`Manage Filters`
|
||||
- Edit the current view (e.g. Kanban, List, Graph, etc.)
|
||||
- See the :guilabel:`Fields View Get`
|
||||
|
||||
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 6.1 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 24 KiB |
@@ -12,7 +12,7 @@ providers classify Odoo's emails according to their own restriction policy and/o
|
||||
It is standard in Odoo that emails are received from ``"name of the author"
|
||||
<notifications@mycompany.odoo.com>``. In other words this can be translated to: ``"name of the
|
||||
author" <{ICP.mail.from.filter}@{mail.catchall.domain}>``. In this case ICP stands for
|
||||
`ir.config_parameter`, which are the System Parameters. Deliverability is greatly improved with the
|
||||
`ir.config.parameters`, which are the System Parameters. Deliverability is greatly improved with the
|
||||
:ref:`notifications configuration <email_servers/notifications>`.
|
||||
|
||||
In order for servers to accept emails from Odoo on a more regular basis, one of the solutions is
|
||||
@@ -96,8 +96,6 @@ the :abbr:`DNS (Domain Name System)` zone of the domain name. The most common pr
|
||||
Check if the :abbr:`DKIM (DomainKeys Identified Mail)` record is valid with a free tool like `DKIM
|
||||
Core <https://dkimcore.org/tools/>`_. If a selector is asked, enter `odoo`.
|
||||
|
||||
.. _email_communication/DMARC_compliant:
|
||||
|
||||
Check the DMARC policy
|
||||
======================
|
||||
|
||||
|
||||
@@ -55,8 +55,6 @@ their respective email, or as the name listed in their *Contacts* record.
|
||||
These notifications are sent using a default from address. For more information see
|
||||
:ref:`Use a default email address <email_communication/default>`.
|
||||
|
||||
.. _email_servers/outbound:
|
||||
|
||||
Manage outbound messages
|
||||
========================
|
||||
|
||||
@@ -119,7 +117,7 @@ combination of the two system parameters: `mail.default.from` and `mail.catchall
|
||||
|
||||
.. example::
|
||||
In the following example, the from email address is replaced with the combination of the the two
|
||||
system parameters (`mail.default.from` and `mail.catchall.domain`). This is the default \
|
||||
system parameters (`mail.default.from` and `mail.catchall.domain`). This is the default\
|
||||
notifications configuration in Odoo: ``“Admin” <admin@example.com>`` => ``“Admin”
|
||||
<notifications@mycompany.com>``.
|
||||
|
||||
|
||||
@@ -120,8 +120,6 @@ If this is a recurring problem with the same client, or the same domain, do not
|
||||
:ref:`developer mode <developer-mode>` by navigating to :menuselection:`Settings app -->
|
||||
Technical menu --> Parameters --> System Parameters`.
|
||||
|
||||
.. _email_communication/email-sent-late:
|
||||
|
||||
Email is sent late
|
||||
------------------
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ Click :guilabel:`Enable` to install the library on this project.
|
||||
|
||||
.. important::
|
||||
Using the *Google Translate* API **requires** a current billing account with `Google
|
||||
<https://myaccount.google.com/>`_.
|
||||
<https://https://myaccount.google.com/>`_.
|
||||
|
||||
Once a billing account is setup with *Google* and the library is enabled, click :guilabel:`Manage`
|
||||
to finish configuration on the API.
|
||||
|
||||