Compare commits
55 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 5f3e8ec996 | |||
| 7439ec721f | |||
| 71a3dac1e4 | |||
| 60eb05fecf | |||
| 4a527db915 | |||
| 0e783b0dfa | |||
| d13a635d67 | |||
| 499ead0b98 | |||
| 37ca3f1917 | |||
| 51323fba44 | |||
| 89c308cad4 | |||
| 3d5ff64bab | |||
| 8b45c6692f | |||
| ba0319e9df | |||
| f9ab7b716b | |||
| 4d51a12b1c | |||
| 91a2973306 | |||
| 2e47b6a600 | |||
| 2cebcb0cda | |||
| b0f8a58eaf | |||
| 5584ea5266 | |||
| e2241f76fc | |||
| fcb1cbeeb7 | |||
| af73b44168 | |||
| 23a1c496bf | |||
| 25187b2e3a | |||
| 27eaaf860b | |||
| e307186358 | |||
| 9f279170a5 | |||
| d2c046768b | |||
| 7ec544281b | |||
| 89f61f900e | |||
| 258636564e | |||
| 861bf246ef | |||
| 38fa0d3a4e | |||
| fe3cbf7231 | |||
| 314ddb2de3 | |||
| 97fabc9f37 | |||
| 41b6e2f227 | |||
| df888df654 | |||
| 22df52548b | |||
| eba257a7fa | |||
| 5c84c9fc7f | |||
| 76b6dd384c | |||
| ad3343d158 | |||
| 73ee687aca | |||
| 1039a0b195 | |||
| 3e62a8c4cd | |||
| c90f683947 | |||
| eb6b4e67a4 | |||
| 96fd984293 | |||
| ecd7d62a01 | |||
| 376588000e | |||
| 4a12c56fc4 | |||
| 7878980c1c |
@@ -18,6 +18,7 @@ CONFIG_DIR = .
|
||||
SPHINXOPTS = -D project_root=$(ROOT) -D canonical_version=$(CANONICAL_VERSION) \
|
||||
-D versions=$(VERSIONS) -D languages=$(LANGUAGES) -D language=$(CURRENT_LANG) \
|
||||
-D is_remote_build=$(IS_REMOTE_BUILD) \
|
||||
-T \
|
||||
-A google_analytics_key=$(GOOGLE_ANALYTICS_KEY) \
|
||||
-A plausible_script=$(PLAUSIBLE_SCRIPT) \
|
||||
-A plausible_domain=$(PLAUSIBLE_DOMAIN) \
|
||||
|
||||
@@ -30,6 +30,8 @@ confirmation for the account deletion.
|
||||
To confirm the deletion, enter the :guilabel:`Password` and the :guilabel:`Login` for the account
|
||||
being deleted. Then, click the :guilabel:`Delete Account` button to confirm the deletion.
|
||||
|
||||
.. _odoocom/change_password:
|
||||
|
||||
Odoo.com account password change
|
||||
================================
|
||||
|
||||
|
||||
@@ -60,6 +60,8 @@ daily operations.
|
||||
- By checking :guilabel:`For testing purposes`, all external actions (emails, payments, delivery
|
||||
orders, etc.) are disabled by default on the duplicated database.
|
||||
- Duplicated databases expire automatically after 15 days.
|
||||
- A maximum of five duplicates can be made per database. Under extraordinary circumstances,
|
||||
contact `support <https://www.odoo.com/help>`_ to raise the limit.
|
||||
|
||||
.. _odoo_online/rename:
|
||||
|
||||
|
||||
@@ -598,7 +598,143 @@ It should be stored securely, and should be generated randomly e.g.
|
||||
|
||||
$ python3 -c 'import base64, os; print(base64.b64encode(os.urandom(24)))'
|
||||
|
||||
which will generate a 32 characters pseudorandom printable string.
|
||||
which generates a 32-character pseudorandom printable string.
|
||||
|
||||
Reset the master password
|
||||
-------------------------
|
||||
|
||||
There may be instances where the master password is misplaced, or compromised, and needs to be
|
||||
reset. The following process is for system administrators of an Odoo on-premise database detailing
|
||||
how to manually reset and re-encrypt the master password.
|
||||
|
||||
.. seealso::
|
||||
For more information about changing an Odoo.com account password, see this documentation:
|
||||
:ref:`odoocom/change_password`.
|
||||
|
||||
When creating a new on-premise database, a random master password is generated. Odoo recommends
|
||||
using this password to secure the database. This password is implemented by default, so there is a
|
||||
secure master password for any Odoo on-premise deployment.
|
||||
|
||||
.. warning::
|
||||
When creating an Odoo on-premise database the installation is accessible to anyone on the
|
||||
internet, until this password is set to secure the database.
|
||||
|
||||
The master password is specified in the Odoo configuration file (`odoo.conf` or `odoorc` (hidden
|
||||
file)). The Odoo master password is needed to modify, create, or delete a database through the
|
||||
graphical user interface (GUI).
|
||||
|
||||
Locate configuration file
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
First, open the Odoo configuration file (`odoo.conf` or `odoorc` (hidden file)).
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. tab:: Windows
|
||||
|
||||
The configuration file is located at: `c:\\ProgramFiles\\Odoo{VERSION}\\server\\odoo.conf`
|
||||
|
||||
.. tab:: Linux
|
||||
|
||||
Depending on how Odoo is installed on the Linux machine, the configuration file is located in
|
||||
one of two different places:
|
||||
|
||||
- Package installation: `/etc/odoo.conf`
|
||||
- Source installation: `~/.odoorc`
|
||||
|
||||
Change old password
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Once the appropriate file has been opened, proceed to modify the old password in the configuration
|
||||
file to a temporary password.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Graphical user interface
|
||||
|
||||
After locating the configuration file, open it using a (:abbr:`GUI (graphical user
|
||||
interface)`). This can be achieved by simply double clicking on the file. Then, the device
|
||||
should have a default :abbr:`GUI (graphical user interface)` to open the file with.
|
||||
|
||||
Next, modify the master password line `admin_passwd = $pbkdf2-sha…` to `admin_passwd =
|
||||
newpassword1234`, for example. This password can be anything, as long as it is saved
|
||||
temporarily. Make sure to modify all characters after the `=`.
|
||||
|
||||
.. example::
|
||||
The line appears like this:
|
||||
`admin_passwd =
|
||||
$pbkdf2-sh39dji295.59mptrfW.9z6HkA$w9j9AMVmKAP17OosCqDxDv2hjsvzlLpF8Rra8I7p/b573hji540mk/.3ek0lg%kvkol6k983mkf/40fjki79m`
|
||||
|
||||
The modified line appears like this: `admin_passwd = newpassword1234`
|
||||
|
||||
.. group-tab:: Command-line interface
|
||||
|
||||
Modify the master password line using the following Unix command detailed below.
|
||||
|
||||
Connect to the Odoo server's terminal via Secure Shell (SSH) protocol, and edit the
|
||||
configuration file. To modify the configuration file, enter the following command:
|
||||
:command:`sudo nano /etc/odoo.conf`
|
||||
|
||||
After opening the configuration file, modify the master password line `admin_passwd =
|
||||
$pbkdf2-sha…` to `admin_passwd = newpassword1234`. This password can be anything, as long as
|
||||
it is saved temporarily. Make sure to modify all characters after the `=`.
|
||||
|
||||
.. example::
|
||||
The line appears like this:
|
||||
`admin_passwd =
|
||||
$pbkdf2-sh39dji295.59mptrfW.9z6HkA$w9j9AMVmKAP17OosCqDxDv2hjsvzlLpF8Rra8I7p/b573hji540mk/.3ek0lg%kvkol6k983mkf/40fjki79m`
|
||||
|
||||
The modified line appears like this: `admin_passwd = newpassword1234`
|
||||
|
||||
.. important::
|
||||
It is essential that the password is changed to something else, rather than triggering a new
|
||||
password reset by adding a semicolon `;` at the beginning of the line. This ensures the database
|
||||
is secure throughout the entire password reset process.
|
||||
|
||||
Restart Odoo server
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
After setting the temporary password, a restart of the Odoo server is **required**.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Graphical user interface
|
||||
|
||||
To restart the Odoo server, first, type `services` into the Windows :guilabel:`Search` bar.
|
||||
Then, select the :guilabel:`Services` application, and scroll down to the :guilabel:`Odoo`
|
||||
service.
|
||||
|
||||
Next, right click on :guilabel:`Odoo`, and select :guilabel:`Start` or :guilabel:`Restart`.
|
||||
This action manually restarts the Odoo server.
|
||||
|
||||
.. group-tab:: Command-line interface
|
||||
|
||||
Restart the Odoo server by typing the command: :command:`sudo service odoo15 restart`
|
||||
|
||||
.. note::
|
||||
Change the number after `odoo` to fit the specific version the server is running on.
|
||||
|
||||
Use web interface to re-encrypt password
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
First, navigate to `/web/database/manager` or `http://server_ip:port/web/database/manager` in a
|
||||
browser.
|
||||
|
||||
.. note::
|
||||
Replace `server_ip` with the IP address of the database. Replace `port` with the numbered port
|
||||
the database is accessible from.
|
||||
|
||||
Next, click :guilabel:`Set Master Password`, and type in the previously-selected temporary password
|
||||
into the :guilabel:`Master Password` field. Following this step, type in a :guilabel:`New Master
|
||||
Password`. The :guilabel:`New Master Password` is hashed (or encrypted), once the
|
||||
:guilabel:`Continue` button is clicked.
|
||||
|
||||
At this point, the password has been successfully reset, and a hashed version of the new password
|
||||
now appears in the configuration file.
|
||||
|
||||
.. seealso::
|
||||
For more information on Odoo database security, see this documentation:
|
||||
:ref:`db_manager_security`.
|
||||
|
||||
Supported Browsers
|
||||
==================
|
||||
|
||||
@@ -273,18 +273,22 @@ Dependencies
|
||||
|
||||
.. tab:: Debian/Ubuntu
|
||||
|
||||
For Debian-based systems, the packages are listed in the `debian/control
|
||||
<{GITHUB_PATH}/debian/control>`_ file of the Odoo sources.
|
||||
|
||||
On Debian/Ubuntu, the following commands should install the required packages:
|
||||
|
||||
.. code-block:: console
|
||||
|
||||
$ cd /CommunityPath
|
||||
$ sed -n -e '/^Depends:/,/^Pre/ s/ python3-\(.*\),/python3-\1/p' debian/control | sudo xargs apt-get install -y
|
||||
$ cd odoo #CommunityPath
|
||||
$ sudo ./setup/debinstall.sh
|
||||
|
||||
The `setup/debinstall.sh` script will parse the `debian/control
|
||||
<{GITHUB_PATH}/debian/control>` file and install the found packages.
|
||||
|
||||
.. tab:: Install with pip
|
||||
|
||||
.. warning::
|
||||
Using pip may lead to security issues and broken dependencies; only do this if you
|
||||
know what you are doing.
|
||||
|
||||
As some of the Python packages need a compilation step, they require system libraries to
|
||||
be installed.
|
||||
|
||||
|
||||
@@ -50,7 +50,7 @@ This matrix shows the support status of every version.
|
||||
- November 2023
|
||||
- October 2026 (planned)
|
||||
* - Odoo saas~16.4
|
||||
- |green|
|
||||
- |red|
|
||||
- N/A
|
||||
- N/A
|
||||
- August 2023
|
||||
|
||||
@@ -280,9 +280,7 @@ Upgrading the production database
|
||||
---------------------------------
|
||||
|
||||
Once the :ref:`tests <upgrade/test_your_db>` are completed and you are confident that the upgraded
|
||||
database can be used as your main database without any issues, it is time to plan the go-live day. It
|
||||
can be planned in coordination with Odoo's upgrade support analysts, reachable via the `support page
|
||||
<https://odoo.com/help>`__.
|
||||
database can be used as your main database without any issues, it is time to plan the go-live day.
|
||||
|
||||
Your production database will be unavailable during its upgrade. Therefore, we recommend planning
|
||||
the upgrade at a time when the use of the database is minimal.
|
||||
@@ -293,11 +291,11 @@ still successful, especially if it takes a long time to finish. Fully rehearsing
|
||||
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.
|
||||
|
||||
@@ -5,5 +5,6 @@ Odoo essentials
|
||||
.. toctree::
|
||||
|
||||
essentials/activities
|
||||
essentials/contacts
|
||||
essentials/export_import_data
|
||||
essentials/in_app_purchase
|
||||
|
||||
@@ -0,0 +1,238 @@
|
||||
========
|
||||
Contacts
|
||||
========
|
||||
|
||||
The *Contacts* application comes installed on all Odoo databases. Contacts are created for customers
|
||||
the company does business with through Odoo. A contact is a repository of vital business
|
||||
information, facilitating communication and business transactions.
|
||||
|
||||
Contact form
|
||||
============
|
||||
|
||||
To create a new contact, navigate to the :menuselection:`Contacts app`, and click
|
||||
:guilabel:`Create`. A new form appears where various contact information can be added.
|
||||
|
||||
Contact type
|
||||
------------
|
||||
|
||||
Odoo allows for both :guilabel:`Individual` and :guilabel:`Company` contacts. Select either
|
||||
:guilabel:`Individual` or :guilabel:`Company`, depending on the type of contact that is being added.
|
||||
|
||||
Name
|
||||
----
|
||||
|
||||
First, fill in the name of the :guilabel:`Individual` or :guilabel:`Company`. This is how the name
|
||||
appears throughout the database. This field is **mandatory**.
|
||||
|
||||
.. tip::
|
||||
:guilabel:`Individual` contacts can have a :guilabel:`Company` contact linked to it. After
|
||||
selecting :guilabel:`Individual`, a new :guilabel:`Company Name...` field appears below the
|
||||
first name field.
|
||||
|
||||
Address
|
||||
-------
|
||||
|
||||
Next, enter the :guilabel:`Address` of the :guilabel:`Company` or :guilabel:`Individual`.
|
||||
|
||||
.. tip::
|
||||
If the :guilabel:`Individual` option is chosen, then the *type of address* can be chosen from a
|
||||
drop-down menu. Options for this drop-down menu include: :guilabel:`Contact`, :guilabel:`Invoice
|
||||
Address`, :guilabel:`Delivery Address`, :guilabel:`Other Address`, and :guilabel:`Private
|
||||
Address`.
|
||||
|
||||
Additional fields
|
||||
-----------------
|
||||
|
||||
Additional details are included on the initial form. The following fields are available:
|
||||
|
||||
- :guilabel:`VAT`: Value Added Tax number.
|
||||
- :guilabel:`Citizen Identification`: citizen or government identification number (only available
|
||||
on :guilabel:`Individual`).
|
||||
- :guilabel:`Job Position`: list the job position of the :guilabel:`Individual` (only available on
|
||||
:guilabel:`Individual`).
|
||||
- :guilabel:`Phone`: list phone number (with country code). Make a call, send an SMS, or WhatsApp
|
||||
message by hovering over the field on the saved form, and clicking the desired option.
|
||||
- :guilabel:`Mobile`: list mobile phone number (with country code). Make a call, send an SMS, or
|
||||
WhatsApp message by hovering over the field on the saved form, and clicking on the desired option.
|
||||
- :guilabel:`Email`: enter the email address with the domain.
|
||||
- :guilabel:`Website`: enter the full website address, starting with `http` or `https`.
|
||||
- :guilabel:`Title`: select :guilabel:`Doctor`, :guilabel:`Madam`, :guilabel:`Miss`,
|
||||
:guilabel:`Mister`, :guilabel:`Professor`, or create a new one directly from this field.
|
||||
- :guilabel:`Tags`: enter preconfigured tags by typing them in the field, or clicking the drop-down
|
||||
menu, and selecting one. To create a new one, type the new tag in the field, and click
|
||||
:guilabel:`Create` from the resulting drop-down menu.
|
||||
|
||||
Contacts & Addresses tab
|
||||
------------------------
|
||||
|
||||
At the bottom of the contact form are several tabs. On the :guilabel:`Contacts & Addresses` tab,
|
||||
contacts can be added that are associated with a :guilabel:`Company` and related addresses. For
|
||||
example, a specific contact person for the company can be listed here.
|
||||
|
||||
Multiple addresses can be added on both :guilabel:`Individual` and :guilabel:`Company` contacts. To
|
||||
do so, click :guilabel:`Add` in the :guilabel:`Contacts & Addresses` tab. Doing so reveals a
|
||||
:guilabel:`Create Contact` pop-up form, in which additional addresses can be configured.
|
||||
|
||||
.. image:: contacts/contact-form-add-address.png
|
||||
:align: center
|
||||
:alt: Add a contact/address to the contact form.
|
||||
|
||||
On the :guilabel:`Create Contact` pop-up form, start by clicking the default :guilabel:`Other
|
||||
Address` field at the top to reveal a drop-down menu of address-related options.
|
||||
|
||||
Select any of the following options:
|
||||
|
||||
- :guilabel:`Contact`: adds another contact to the existing contact form.
|
||||
- :guilabel:`Invoice Address`: adds a specific invoice address to the existing contact form.
|
||||
- :guilabel:`Delivery Address`: adds a specific delivery address to the existing contact form.
|
||||
- :guilabel:`Other Address`: adds an alternate address to the existing contact form.
|
||||
- :guilabel:`Private Address`: adds a private address to the existing contact form.
|
||||
|
||||
.. image:: contacts/create-contact-window.png
|
||||
:align: center
|
||||
:alt: Create a new contact/address on a contact form.
|
||||
|
||||
Once an option is selected, enter the corresponding contact information that should be used for the
|
||||
specified address type.
|
||||
|
||||
Add the :guilabel:`Contact Name`, :guilabel:`Address`, :guilabel:`Email`, along with the
|
||||
:guilabel:`Phone` and/or :guilabel:`Mobile` numbers below.
|
||||
|
||||
Set the :guilabel:`Job Position`, which appears if the :guilabel:`Contact` address type has been
|
||||
selected. This is similar to the :guilabel:`Individual` contact.
|
||||
|
||||
To add a note, click on the text field next to :guilabel:`Notes`, and write anything that is
|
||||
applicable to the customer or contact.
|
||||
|
||||
Then, click :guilabel:`Save & Close` to save the address, and close the :guilabel:`Create Contact`
|
||||
window. Or, click :guilabel:`Save & New` to save the address, and immediately input another one.
|
||||
|
||||
Sales & Purchase tab
|
||||
--------------------
|
||||
|
||||
Next, is the :guilabel:`Sales & Purchases` tab, which only appears when the *Sales*, *Purchase*,
|
||||
**or** *Point of Sale* applications are installed.
|
||||
|
||||
The :guilabel:`Fiscal Position` can be set on the :guilabel:`Sales & Purchases` tab. Select a
|
||||
:guilabel:`Fiscal Position` from the drop-down menu.
|
||||
|
||||
Sales section
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Under the :guilabel:`Sales` heading, a specific :guilabel:`Salesperson` can be assigned to a
|
||||
contact. To do that, click the :guilabel:`Salesperson` drop-down field, and select one. Create a new
|
||||
:guilabel:`Salesperson` by typing the user's name, and making the appropriate selection.
|
||||
|
||||
Certain :guilabel:`Payment Terms`, or a certain :guilabel:`Pricelist`, can also be set, if needed.
|
||||
Click the drop-down menu next to :guilabel:`Payment Terms`, and change it to one of the preselected
|
||||
:guilabel:`Payment Terms`, or :guilabel:`Create` a new one. Select the :guilabel:`Pricelist`
|
||||
drop-down menu to choose the appropriate :guilabel:`Pricelist`.
|
||||
|
||||
Click into the :guilabel:`Delivery Method` field to select an option from the drop-down menu.
|
||||
|
||||
Point Of Sale section
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Under the :guilabel:`Point Of Sale` heading, enter a :guilabel:`Barcode` that can be used to
|
||||
identify the contact. Use the :guilabel:`Loyalty Points` field to track points the user won as part
|
||||
of a *Loyalty Program*.
|
||||
|
||||
Purchase section
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
Specify :guilabel:`Payment Terms`, :guilabel:`1099 Box` information, and a preferred
|
||||
:guilabel:`Payment Method` here. A :guilabel:`Receipt Reminder` can be set here, as well.
|
||||
|
||||
Misc section
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Under the :guilabel:`Misc.` heading, use :guilabel:`Reference` field to add any additional
|
||||
information for this contact. If this contact should only be accessible for one company in a
|
||||
multi-company database, select it from the :guilabel:`Company` field drop-down list. Use the
|
||||
:guilabel:`Website` drop-down menu to restrict the publishing of this contact to one website (if
|
||||
working on a database with multiple websites). Select one or more :guilabel:`Website Tags` to assist
|
||||
in filtering published customers on the `/customers` website page. Select an :guilabel:`Industry`
|
||||
for this contact from the drop-down menu. Use the :guilabel:`SLA Policies` field to assign a
|
||||
*Helpdesk* SLA policy to this contact.
|
||||
|
||||
Accounting tab
|
||||
--------------
|
||||
|
||||
The :guilabel:`Accounting` tab appears when the *Accounting* application is installed. Here, a user
|
||||
can add any related :guilabel:`Bank Accounts`, or set default :guilabel:`Accounting entries`.
|
||||
|
||||
Under the :guilabel:`Miscellaneous` heading, use the :guilabel:`LEI` field to enter a Legal Entity
|
||||
Identifier, if necessary.
|
||||
|
||||
Internal Notes tab
|
||||
------------------
|
||||
|
||||
Following the :guilabel:`Accounting` tab is the :guilabel:`Internal Notes` tab, where notes can be
|
||||
left on this contact form, just like on the contact form noted above.
|
||||
|
||||
Partner Assignment tab
|
||||
----------------------
|
||||
|
||||
Next is the :guilabel:`Partner Assignment` tab, which by default, includes a :guilabel:`Geolocation`
|
||||
section, and other partner options, including :guilabel:`Partner Activation` and :guilabel:`Partner
|
||||
Review` configurations. These are **only** present when the *Enterprise Resellers* module is
|
||||
installed.
|
||||
|
||||
Membership tab
|
||||
--------------
|
||||
|
||||
Finally, there is the :guilabel:`Membership` tab, which can help users manage any memberships that
|
||||
are being offered to this specific contact. It should be noted that this tab only appears when the
|
||||
*Members* applications is installed.
|
||||
|
||||
Smart buttons
|
||||
=============
|
||||
|
||||
At the top of the contact form, there are some additional options available, known as *smart
|
||||
buttons*.
|
||||
|
||||
Here, Odoo displays a variety of records, related to this contact, that were created on other apps.
|
||||
Odoo integrates information from every single app, so there are many smart buttons.
|
||||
|
||||
.. example::
|
||||
For example, there is an :guilabel:`Opportunities` smart button, where all the opportunities
|
||||
related to this customer from the *CRM* app are accessible.
|
||||
|
||||
.. tip::
|
||||
If the corresponding applications are installed, their related smart buttons appear
|
||||
automatically on a contact form.
|
||||
|
||||
A user can see any :guilabel:`Meetings`, :guilabel:`Sales`, :guilabel:`POS Orders`,
|
||||
:guilabel:`Subscriptions`, project :guilabel:`Tasks`, and the :guilabel:`More` smart button reveals
|
||||
additional options, via a drop-down menu. A user can even quickly access :guilabel:`Purchases`,
|
||||
:guilabel:`Helpdesk` tasks, :guilabel:`On-time Rate` for deliveries, :guilabel:`Invoiced`
|
||||
information, :guilabel:`Vendor Bills`, and the :guilabel:`Partner Ledger` connected to this contact.
|
||||
|
||||
Deliveries, documents, loyalty cards, and direct debits are *also* linked to smart buttons, like
|
||||
this, should there be any outstanding/on-file for this contact.
|
||||
|
||||
If the contact is a partner, the user can visit their partner page on the Odoo-built website by
|
||||
clicking the :guilabel:`Go to Website` smart button.
|
||||
|
||||
Archive contacts
|
||||
----------------
|
||||
|
||||
If a user decides they no longer want to have this contact active, the record can be archived. To do
|
||||
that, go to the :icon:`fa-cog` :guilabel:`Action` menu at the top of the contact form, and click
|
||||
:guilabel:`Archive`.
|
||||
|
||||
Then, click :guilabel:`OK` from the resulting :guilabel:`Confirmation` pop-up window.
|
||||
|
||||
With this contact successfully archived, as indicated by a banner at the top, they do not show up
|
||||
in the main contacts page, but they can still be searched for with the :guilabel:`Archived` filter.
|
||||
|
||||
.. tip::
|
||||
A contact can be *unarchived*, if the user decides to work with them again. To do that, just
|
||||
click the :icon:`fa-cog` :guilabel:`Action` menu again at the top of the archived contact form,
|
||||
and click :guilabel:`Unarchive`. Upon doing so, the :guilabel:`Archived` banner is removed, and
|
||||
the contact is restored.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Add different addresses in CRM <../sales/sales/send_quotations/different_addresses>`
|
||||
- `Odoo's eLearning Contacts tutorial
|
||||
<https://www.odoo.com/slides/slide/contacts-2527?fullscreen=1>`_
|
||||
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -25,11 +25,14 @@ to reflect the change in inventory valuation. However, Odoo does **not** automat
|
||||
valuation <inventory/avg_price/leaving_inventory>`.
|
||||
|
||||
.. note::
|
||||
This document addresses a specific use case for theoretical purposes. Navigate :ref:`here
|
||||
<inventory/inventory_valuation_config>` for instructions on how to set up and use |AVCO| in Odoo.
|
||||
This document addresses a specific use case for theoretical purposes. For instructions on how to
|
||||
set up and use |AVCO|, refer to the :doc:`inventory valuation configuration
|
||||
<../../../inventory_and_mrp/inventory/management/reporting/inventory_valuation_config>`
|
||||
doc.
|
||||
|
||||
.. seealso::
|
||||
- :ref:`Using inventory valuation <inventory/reporting/using_inventory_val>`
|
||||
- :doc:`Using inventory valuation
|
||||
<../../../inventory_and_mrp/inventory/management/reporting/using_inventory_valuation>`
|
||||
- :ref:`Other inventory valuation methods <inventory/inventory_valuation_config/costing_methods>`
|
||||
|
||||
Configuration
|
||||
@@ -41,7 +44,8 @@ product category page, set :guilabel:`Costing Method` to `Average Cost (AVCO)` a
|
||||
:guilabel:`Inventory Valuation` to `Automated`.
|
||||
|
||||
.. seealso::
|
||||
:ref:`Inventory valuation configuration <inventory/inventory_valuation_config>`
|
||||
:doc:`Inventory valuation configuration
|
||||
<../../../inventory_and_mrp/inventory/management/reporting/inventory_valuation_config>`
|
||||
|
||||
Using average cost valuation
|
||||
============================
|
||||
|
||||
@@ -101,8 +101,9 @@ correctly reporting a balance of zero. If that is the case, set an :guilabel:`Al
|
||||
to the last day of the fiscal year by going to :menuselection:`Accounting --> Accounting --> Lock
|
||||
Dates`.
|
||||
|
||||
.. warning::
|
||||
Setting an :guilabel:`All Users Lock Date` is **irreversible** and cannot be removed.
|
||||
.. tip::
|
||||
Install the :guilabel:`Irreversible Lock Date` (`account_lock`) module to make the :guilabel:`All
|
||||
Users Lock Date` *irreversible* once set.
|
||||
|
||||
.. note::
|
||||
A specific year-end closing entry is **optional** in order to close out the **profit and loss
|
||||
|
||||
@@ -1,74 +1,408 @@
|
||||
:show-content:
|
||||
|
||||
==================
|
||||
Avatax integration
|
||||
AvaTax integration
|
||||
==================
|
||||
|
||||
Avatax is a tax calculation provider that can be integrated in Odoo.
|
||||
Avalara's *AvaTax* is a cloud-based tax software. Integrating *AvaTax* with Odoo provides real-time
|
||||
and region-specific tax calculations when users sell, purchase, and invoice items in Odoo. *AvaTax*
|
||||
tax calculation is supported with every United Nations charted country, including inter-border
|
||||
transactions.
|
||||
|
||||
.. important::
|
||||
*AvaTax* is only available for integration with databases/companies that have locations in the
|
||||
United States 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/credentials:
|
||||
|
||||
Credential configuration
|
||||
========================
|
||||
Odoo AvaTax settings
|
||||
--------------------
|
||||
|
||||
To integrate Avatax with Odoo, go to :menuselection:`Accounting --> Configuration --> Settings -->
|
||||
Taxes` and add your Avatax credentials in the :guilabel:`Avatax` section.
|
||||
|
||||
.. tip::
|
||||
If you do not yet have credentials, click on :guilabel:`How to Get Credentials`.
|
||||
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.
|
||||
|
||||
.. image:: avatax/avatax-configuration-settings.png
|
||||
:align: center
|
||||
:alt: Configure Avatax settings
|
||||
:alt: Configure AvaTax settings
|
||||
|
||||
.. _avatax/tax-mapping:
|
||||
Prerequisites
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
First, select the :guilabel:`Environment` in which the company wishes to use *AvaTax* in. It can
|
||||
either be :guilabel:`Sandbox` or :guilabel:`Production`.
|
||||
|
||||
.. seealso::
|
||||
For help determining which *AvaTax* environment to use (either :guilabel:`Production` or
|
||||
:guilabel:`Sandbox`), visit: `Sandbox vs Production environments
|
||||
<https://knowledge.avalara.com/bundle/fzc1692293626742/page/sandbox-vs-production.html>`_.
|
||||
|
||||
Credentials
|
||||
~~~~~~~~~~~
|
||||
|
||||
Now, the credentials can be entered in. The *AvaTax* :guilabel:`Account ID` should be entered in the
|
||||
:guilabel:`API ID` field, and the :guilabel:`License Key` should be entered in the :guilabel:`API
|
||||
Key` field.
|
||||
|
||||
.. important::
|
||||
The :guilabel:`Account ID` can be found by logging into the *AvaTax* portal (`sandbox
|
||||
<https://sandbox.admin.avalara.com/>`_ or `production <https://admin.avalara.com/>`_). In the
|
||||
upper-right corner, click on the initials of the user and :guilabel:`Account`. The
|
||||
:guilabel:`Account ID` is listed first.
|
||||
|
||||
To access the :guilabel:`License Key` see this documentation:
|
||||
:ref:`avatax/create_avalara_credentials`.
|
||||
|
||||
For the :guilabel:`Company Code` field, enter the Avalara company code for the company being
|
||||
configured. Avalara interprets this as `DEFAULT`, if it is not set. The :guilabel:`Company Code` can
|
||||
be accessed in the Avalara management portal.
|
||||
|
||||
First, log into the *AvaTax* portal (`sandbox <https://sandbox.admin.avalara.com/>`_ or `production
|
||||
<https://admin.avalara.com/>`_). Then, navigate to :menuselection:`Settings --> Manage Companies`.
|
||||
The :guilabel:`Company Code` value is located in the row of the :guilabel:`Company` in the
|
||||
:guilabel:`Company Code` column.
|
||||
|
||||
.. image:: avatax/company-code.png
|
||||
:align: center
|
||||
:alt: AvaTax company code highlighted on the company details page.
|
||||
|
||||
Transaction options
|
||||
~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
There are two transactional settings in the Odoo *AvaTax* settings that can be configured:
|
||||
:guilabel:`Use UPC` and :guilabel:`Commit Transactions`.
|
||||
|
||||
If the checkbox next to :guilabel:`Use UPC` is ticked, the transactions will use Universal Product
|
||||
Codes (UPC), instead of custom defined codes in Avalara. Consult a certified public accountant (CPA)
|
||||
for specific guidance.
|
||||
|
||||
Should the :guilabel:`Commit Transactions` checkbox be ticked, then, the transactions in the Odoo
|
||||
database will be committed for reporting in *AvaTax*.
|
||||
|
||||
Address validation
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The *Address Validation* feature ensures that the most up-to-date address by postal standards is set
|
||||
on a contact in Odoo. This is important to provide accurate tax calculations for customers.
|
||||
|
||||
.. important::
|
||||
The :guilabel:`Address Validation` feature only works with partners/customers in North America.
|
||||
|
||||
Additionally, tick the checkbox next to the :guilabel:`Address validation` field.
|
||||
|
||||
.. important::
|
||||
For accurate tax calculations, it is best practice to enter a complete address for the contacts
|
||||
saved in the database. However, *AvaTax* can still function by implementing a best effort attempt
|
||||
using only the :guilabel:`Country`, :guilabel:`State`, and :guilabel:`Zip code`. These are the
|
||||
three minimum required fields.
|
||||
|
||||
:guilabel:`Save` the settings to implement the configuration.
|
||||
|
||||
.. tip::
|
||||
Manually :guilabel:`Validate` the address by navigating to the :menuselection:`Contacts app`, and
|
||||
selecting a contact. Now that the *AvaTax* module has been configured on the database, a
|
||||
:guilabel:`Validate` button appears directly below the :guilabel:`Address`.
|
||||
|
||||
Click :guilabel:`Validate`, and a pop-up window appears with a :guilabel:`Validated Address` and
|
||||
:guilabel:`Original Address` listed. If the :guilabel:`Validated Address` is the correct mailing
|
||||
address for tax purposes, click :guilabel:`Save Validated`.
|
||||
|
||||
.. image:: avatax/validate-address.png
|
||||
:align: center
|
||||
:alt: Validate address pop-up window in Odoo with "Save Validated" button and "Validated
|
||||
Address" highlighted.
|
||||
|
||||
.. warning::
|
||||
All previously-entered addresses for contacts in the Odoo database will need to be validated
|
||||
using the manually validate process outlined above. Addresses are not automatically validated if
|
||||
they were entered previously. This only occurs upon tax calculation.
|
||||
|
||||
Test connection
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
After entering all the above information into the *AvaTax* setup on Odoo, click :guilabel:`Test
|
||||
connection`. This ensures the :guilabel:`API ID` and :guilabel:`API KEY` are correct, and a
|
||||
connection is made between Odoo and the *AvaTax* application programming interface (API).
|
||||
|
||||
Sync parameters
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Upon finishing the configuration and settings of the *AvaTax* section, click the :guilabel:`Sync
|
||||
Parameters` button. This action synchronizes the exemption codes from *AvaTax*.
|
||||
|
||||
.. _avatax/fiscal_positions:
|
||||
|
||||
Fiscal position
|
||||
---------------
|
||||
|
||||
Next, navigate to :menuselection:`Accounting app --> Configuration --> Accounting: Fiscal
|
||||
Positions`. A :guilabel:`Fiscal Position` is listed named, :guilabel:`Automatic Tax Mapping
|
||||
(AvaTax)`. Click it to open *AvaTax's* fiscal position configuration page.
|
||||
|
||||
Here, ensure that the :guilabel:`Use AvaTax API` checkbox is ticked.
|
||||
|
||||
Optionally, tick the checkbox next to the field labeled: :guilabel:`Detect Automatically`. Should
|
||||
this option be ticked, then, Odoo will automatically apply this :guilabel:`Fiscal Position` for
|
||||
transactions in Odoo.
|
||||
|
||||
Enabling :guilabel:`Detect Automatically` also makes specific parameters, such as :guilabel:`VAT
|
||||
required`, :guilabel:`Foreign Tax ID`, :guilabel:`Country Group`, :guilabel:`Country`,
|
||||
:guilabel:`Federal States`, or :guilabel:`Zip Range` appear. Filling these parameters filters the
|
||||
:guilabel:`Fiscal Position` usage. Leaving them blank ensures all calculations are made using this
|
||||
:guilabel:`Fiscal Position`.
|
||||
|
||||
.. warning::
|
||||
Should the :guilabel:`Detect Automatically` checkbox not be ticked, each customer will need to
|
||||
have the :guilabel:`Fiscal Position` set on their :guilabel:`Sales and Purchase` tab of the
|
||||
contact record. To do so, navigate to :menuselection:`Sales app --> Order --> Customers`, or
|
||||
:menuselection:`Contacts app --> Contacts`. Then, select a customer or contact to set the fiscal
|
||||
position on.
|
||||
|
||||
Navigate to the :guilabel:`Sales and Purchase` tab, and down to the section labeled,
|
||||
:guilabel:`Fiscal Position`. Set the :guilabel:`Fiscal Position` field to the fiscal position
|
||||
for the customer.
|
||||
|
||||
.. seealso::
|
||||
:doc:`fiscal_positions`
|
||||
|
||||
AvaTax accounts
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Upon selecting the checkbox option for :guilabel:`Use AvaTax API` a new :guilabel:`AvaTax` tab
|
||||
appears. Click into this tab to reveal two different settings.
|
||||
|
||||
The first setting is the :guilabel:`AvaTax Invoice Account`, while the second is, :guilabel:`AvaTax
|
||||
Refund Account`. Ensure both accounts are set for smooth end-of-year record keeping. Consult a
|
||||
certified public accountant (CPA) for specific guidance on setting both accounts.
|
||||
|
||||
Click :guilabel:`Save` to implement the changes.
|
||||
|
||||
Tax mapping
|
||||
===========
|
||||
-----------
|
||||
|
||||
The Avatax integration is available on Sale Orders and Invoices with the included Avatax fiscal
|
||||
The *AvaTax* integration is available on sale orders and invoices with the included *AvaTax* fiscal
|
||||
position.
|
||||
|
||||
Product category mapping
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Before using the integration, specify an :guilabel:`Avatax Category` on the product categories.
|
||||
Navigate to :menuselection:`Inventory app --> Configuration --> Product Categories`. Select the
|
||||
product category to add the :guilabel:`AvaTax Category` to. In the :guilabel:`AvaTax Category`
|
||||
field, select a category from the drop-down menu, or :guilabel:`Search More...` to open the complete
|
||||
list of options.
|
||||
|
||||
.. image:: avatax/avatax-category.png
|
||||
:align: center
|
||||
:alt: Specify Avatax Category on products
|
||||
:alt: Specify AvaTax Category on products.
|
||||
|
||||
Avatax Categories may be overridden or set on individual products as well.
|
||||
Product mapping
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
*AvaTax* Categories may be set on individual products, as well. To set the :guilabel:`Avatax
|
||||
Category` navigate to :menuselection:`Inventory app --> Products --> Products`. Select the product
|
||||
to add the :guilabel:`Avatax Category` to. Under the :guilabel:`General Information` tab, on the
|
||||
far-right, is a selector field labeled: :guilabel:`Avatax Category`. Finally, click the drop-down
|
||||
menu, and select a category, or :guilabel:`Search More...` to find one that is not listed.
|
||||
|
||||
.. note::
|
||||
If both the product, and its category, have an :guilabel:`AvaTax Category` set, the product's
|
||||
:guilabel:`AvaTax Category` takes precedence.
|
||||
|
||||
.. image:: avatax/override-avatax-product-category.png
|
||||
:align: center
|
||||
:alt: Override product categories as needed
|
||||
:alt: Override product categories as needed.
|
||||
|
||||
.. _avatax/address-mapping:
|
||||
|
||||
Address validation
|
||||
==================
|
||||
|
||||
Manually validate customer addresses by clicking the :guilabel:`Validate address` link in the
|
||||
customer form view.
|
||||
|
||||
.. image:: avatax/validate-customer-address.png
|
||||
:align: center
|
||||
:alt: Validate customer addresses
|
||||
|
||||
If preferred, choose to keep the newly validated address or the original address in the wizard that
|
||||
pops up.
|
||||
|
||||
.. image:: avatax/choose-customer-address.png
|
||||
:align: center
|
||||
:alt: Address validation wizard
|
||||
|
||||
.. _avatax/tax-calculation:
|
||||
|
||||
Tax calculation
|
||||
===============
|
||||
|
||||
Automatically calculate taxes on Odoo quotations and invoices with Avatax by confirming the
|
||||
documents. Alternatively, calculate the taxes manually by clicking the :guilabel:`Compute taxes
|
||||
using Avatax` button while these documents are in draft mode.
|
||||
|
||||
Use the :guilabel:`Avalara Code` field that's available on customers, quotations, and invoices to
|
||||
cross-reference data in Odoo and Avatax.
|
||||
.. important::
|
||||
Mapping an :guilabel:`AvaTax Category` on either the *Product* or *Product Category* should be
|
||||
completed for every *Product* or *Product Category*, depending the route that is chosen.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`fiscal_positions`
|
||||
- :doc:`avatax/avatax_use`
|
||||
- :doc:`avatax/avalara_portal`
|
||||
- `US Tax Compliance: Avatax elearning video
|
||||
<https://www.odoo.com/slides/slide/us-tax-compliance-avatax-2858?fullscreen=1>`_
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
avatax/avatax_use
|
||||
avatax/avalara_portal
|
||||
|
||||
@@ -0,0 +1,259 @@
|
||||
|
||||
.. _avatax/portal:
|
||||
|
||||
=======================
|
||||
Avalara (Avatax) portal
|
||||
=======================
|
||||
|
||||
Avalara's (*AvaTax*) management console offers account management options including: viewing/editing
|
||||
the transactions sent from Odoo to *AvaTax*, details on how the taxes are calculated, tax reporting,
|
||||
tax exemption management, and tax return resources.
|
||||
|
||||
.. tip::
|
||||
Avalara is the software developer of the tax software, *AvaTax*.
|
||||
|
||||
To access the console, first, navigate to either Avalara's `sandbox
|
||||
<https://sandbox.admin.avalara.com/>`_ or `production <https://admin.avalara.com/>`_ environment.
|
||||
This will depend on which type of account was set in the :doc:`integration <../avatax>`. Log in to
|
||||
the management console.
|
||||
|
||||
.. image:: avalara_portal/avalara-portal.png
|
||||
:align: center
|
||||
:alt: Avalara dashboard after logging into management portal.
|
||||
|
||||
.. seealso::
|
||||
For more information see Avalara's documentation: `Activate your Communications Customer Portal
|
||||
account
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=qvv1656594440497&topicId=Activate_your_Communications_Customer_Portal_account.html&_LANG=enus>`_.
|
||||
|
||||
.. _avalara/portal-transactions:
|
||||
|
||||
Transactions
|
||||
============
|
||||
|
||||
To access transactions, click in the :guilabel:`Transactions` link on the main dashboard upon
|
||||
logging into the :ref:`avatax/portal`. To manually access the *Transactions* page, while logged into
|
||||
the Avalara console, navigate to :menuselection:`Transactions --> Transactions`.
|
||||
|
||||
.. image:: avalara_portal/avalara-transactions.png
|
||||
:align: center
|
||||
:alt: Avalara portal with the transactions shortcut highlighted.
|
||||
|
||||
Edit transaction
|
||||
----------------
|
||||
|
||||
Click into a transaction to reveal more details about the transaction. These details include
|
||||
sections on :guilabel:`Invoice detail`, :guilabel:`Additional info`, and :guilabel:`Customer info`.
|
||||
Click :icon:`fa-pencil` :guilabel:`Edit document details` to make changes to the transaction.
|
||||
|
||||
A :guilabel:`Discount` can be added to adjust the invoice. This is especially useful in cases where
|
||||
the transaction has already synced with Avalara / *AvaTax*, and changes need to be made afterward.
|
||||
|
||||
.. _avalara/portal-filter:
|
||||
|
||||
Filter
|
||||
------
|
||||
|
||||
Filter transactions on the :guilabel:`Transactions` page, by setting the :guilabel:`From` and
|
||||
:guilabel:`To` fields, and configuring other fields to filter by, including:
|
||||
|
||||
- :guilabel:`Document Status`: any of the following options, :guilabel:`All`, :guilabel:`Voided`,
|
||||
:guilabel:`Committed`, :guilabel:`Uncommitted`, or :guilabel:`Locked`.
|
||||
- :guilabel:`Document Code`: any of the following options, :guilabel:`Exactly match`,
|
||||
:guilabel:`Starts with`, or :guilabel:`Contains`.
|
||||
- :guilabel:`Customer/Vendor Code`: the customer/vendor code in Odoo (e.g. `Contact18`).
|
||||
- :guilabel:`Country`: the country this tax was calculated in; this is a text field.
|
||||
- :guilabel:`Region`: the region of the country, which varies based on the :guilabel:`Country`
|
||||
selection.
|
||||
|
||||
Click :icon:`fa-plus` :guilabel:`Filters` to access the following filter conditions:
|
||||
|
||||
- :guilabel:`Document Type`: any of the following selections, :guilabel:`All`, :guilabel:`Sales
|
||||
Invoice`, :guilabel:`Purchase Invoice`, :guilabel:`Return Invoice`, :guilabel:`Inventory Transfer
|
||||
Inbound Invoice`, :guilabel:`Inventory Transfer Outbound Invoice`, or :guilabel:`Customs
|
||||
Invoice`.
|
||||
- :guilabel:`Import ID`: represents the import ID of the document.
|
||||
|
||||
Sort by
|
||||
-------
|
||||
|
||||
On the :guilabel:`Transactions` page, transactions will be listed below, according to the set
|
||||
:ref:`avalara/portal-filter`, located in the top half of the page. The following columns are
|
||||
available by default, to sort by ascending or descending order:
|
||||
|
||||
- :guilabel:`Doc Code`: either of the following options, :guilabel:`Exactly match`,
|
||||
:guilabel:`Starts with`, or :guilabel:`Contains`.
|
||||
- :guilabel:`Doc Status`: either of the following options, :guilabel:`All`, :guilabel:`Voided`,
|
||||
:guilabel:`Committed`, :guilabel:`Uncommitted`, or :guilabel:`Locked`.
|
||||
- :guilabel:`Cust/Vendor Code` : this is the customer/vendor code in Odoo (e.g. Contact18).
|
||||
- :guilabel:`Region`: this is the region of the country, this will vary based on the
|
||||
:guilabel:`Country` selection.
|
||||
- :guilabel:`Amount`: the numeric amount of the total amount on the Odoo document.
|
||||
- :guilabel:`Tax`: the numeric amount of the tax applied to the total.
|
||||
|
||||
.. image:: avalara_portal/transactions.png
|
||||
:align: center
|
||||
:alt: Transactions page on the Avalara portal with the filter and sort-by options highlighted.
|
||||
|
||||
Customize columns
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Additional columns can be added by clicking the :icon:`fa-cog` :guilabel:`Customize columns`. On the
|
||||
resulting popover window, click the drop-down menu for the :guilabel:`column` that should be
|
||||
changed.
|
||||
|
||||
The following columns can be added for additional transactional information:
|
||||
|
||||
- :guilabel:`AvaTax calculated`: the amount of tax calculated by *AvaTax*.
|
||||
- :guilabel:`Country`: the country this tax was calculated in; this is a text field.
|
||||
- :guilabel:`Cust/vendor code`: the customer/vendor code in Odoo (e.g. `Contact18`).
|
||||
- :guilabel:`Currency`: the standardized abbreviation for the currency the amount total is in.
|
||||
- :guilabel:`Doc date`: the document's date of creation.
|
||||
- :guilabel:`Doc status`: any of the following options, :guilabel:`All`, :guilabel:`Voided`,
|
||||
:guilabel:`Committed`, :guilabel:`Uncommitted`, or :guilabel:`Locked`.
|
||||
- :guilabel:`Doc type`: any of the following selections, :guilabel:`All`, :guilabel:`Sales
|
||||
Invoice`, :guilabel:`Purchase Invoice`, :guilabel:`Return Invoice`, :guilabel:`Inventory Transfer
|
||||
Inbound Invoice`, :guilabel:`Inventory Transfer Outbound Invoice`, or :guilabel:`Customs
|
||||
Invoice`.
|
||||
- :guilabel:`Import ID`: represents the import ID of the document.
|
||||
- :guilabel:`Last modified`: timestamp of the last time the document was modified.
|
||||
- :guilabel:`Location code`: the location code used to calculate the tax, based on the delivery
|
||||
address.
|
||||
- :guilabel:`PO number`: the purchase order number.
|
||||
- :guilabel:`Reference code`: the Odoo reference code (e.g. NV/2024/00003)
|
||||
- :guilabel:`Region`: the region of the country,which varies based on the :guilabel:`Country`
|
||||
selection.
|
||||
- :guilabel:`Salesperson code`: the numeric ID of the user assigned to the sales order in Odoo.
|
||||
- :guilabel:`Tax date`: the month/day/year of the tax calculation.
|
||||
- :guilabel:`Tax override type`: where an exemption would appear, should there be none, the field
|
||||
populates with :guilabel:`None`.
|
||||
|
||||
To add a new column click the :icon:`fa-plus` :guilabel:`Column`.
|
||||
|
||||
.. seealso::
|
||||
For more information on *AvaTax* transactions, refer to this Avalara documentation: `Transactions
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=qvv1656594440497&topicId=transactions.html&_LANG=enus>`_.
|
||||
|
||||
Import-export
|
||||
-------------
|
||||
|
||||
While on the :ref:`avalara/portal-transactions`, click :icon:`fa-download` :guilabel:`Import
|
||||
transactions` or :icon:`fa-upload` :guilabel:`Export transactions` to import or export transactions.
|
||||
|
||||
Reports
|
||||
-------
|
||||
|
||||
To access reporting, navigate to the :menuselection:`Reports` link in the top menu of the Avalara
|
||||
management console. Next, select from one of the available reporting tabs: :guilabel:`Transactions
|
||||
reports`, :guilabel:`Liability & tax return reports`, or :guilabel:`Exemption reports`.
|
||||
|
||||
.. tip::
|
||||
Additionally, there is a :guilabel:`Favorites` tab and :guilabel:`Downloads` tab. The
|
||||
:guilabel:`Favorites` tab contains any favorited report configurations for the Avalara user. The
|
||||
:guilabel:`Downloads` tab contains a list view where the user can download the high-volume
|
||||
transaction reports created in the last 30 days.
|
||||
|
||||
Make a selection for the :guilabel:`Report Category`, and the :guilabel:`Report Name`, under the
|
||||
:guilabel:`Select a report` section.
|
||||
|
||||
Next, fill out the :guilabel:`Select report details` section. These options will vary based on the
|
||||
tab selected above.
|
||||
|
||||
Depending on the report size, the following two options are available in the section labeled,
|
||||
:guilabel:`Select the approximate number of transactions for your report`: :guilabel:`Create and
|
||||
download the report instantly` (for small reports) and :guilabel:`Create and download the report in
|
||||
the background` (for larger reports). Select one or the other depending on the volume of
|
||||
transactions in this report.
|
||||
|
||||
Finally, under the section labeled, :guilabel:`Report preview and export` make a selection of the
|
||||
file type to download. Either a :guilabel:`.PDF` or :guilabel:`.XLS` can be chosen. Alternatively,
|
||||
the file can be previewed by selecting the :guilabel:`Preview` option.
|
||||
|
||||
After making all the configurations, click :guilabel:`Create report` to download the report. Click
|
||||
:icon:`fa-star-o` :guilabel:`Make this report a favorite` to save the report configuration to the
|
||||
user's favorites.
|
||||
|
||||
After the report is created, click :icon:`fa-download` :guilabel:`Download` to download the file to
|
||||
the device.
|
||||
|
||||
.. tip::
|
||||
Select a pre-configured report from the :guilabel:`Frequently used reports` section of the
|
||||
reporting dashboard.
|
||||
|
||||
Access this list by clicking on the :guilabel:`Reports` option in the top menu of the Avalara
|
||||
management console, and scroll to the bottom of the page.
|
||||
|
||||
.. seealso::
|
||||
`See Avalara's documentation: Reports in AvaTax
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=rjq1671176624730&topicId=Reports_in_AvaTax.html&_LANG=enus>`_.
|
||||
|
||||
Add more jurisdictions
|
||||
======================
|
||||
|
||||
Additional jurisdictions (tax locations) can be added in the Avalara management console. Navigate to
|
||||
either Avalara's `sandbox <https://sandbox.admin.avalara.com/>`_ or `production
|
||||
<https://admin.avalara.com/>`_ environment. This will depend on which type of account was set in the
|
||||
:doc:`integration <../avatax>`.
|
||||
|
||||
Next, navigate to :menuselection:`Settings --> Where you collect tax`. Choose between the three
|
||||
different tabs, depending on the business need. The first tab is :guilabel:`Sales and use tax`,
|
||||
where tax can be collected for the United States. Click the :icon:`fa-plus` :guilabel:`Add to where
|
||||
you collect sales and use tax` to add another location where the company collects sales and use tax.
|
||||
|
||||
The second option, is the :guilabel:`VAT/GST` tab where the :icon:`fa-plus` :guilabel:`Add a country
|
||||
or territory where you collect VAT/GST` can be selected to add another country or territory where
|
||||
the company collects VAT/GST.
|
||||
|
||||
Finally, on the far-right, is the :guilabel:`Customs duty` tab, where a country can be added where
|
||||
the company collects customs duty. Simply click on the :icon:`fa-plus` :guilabel:`Add a country
|
||||
where you calculate customs duty` icon below the tab.
|
||||
|
||||
.. image:: avalara_portal/where-you-collect-tax.png
|
||||
:align: center
|
||||
:alt: AvaTax management console, on the Where you collect tax page, with the add button and
|
||||
sales and use tax tab highlighted.
|
||||
|
||||
.. seealso::
|
||||
`See Avalara's documentation: Add local jurisdiction taxes
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=bla1700809896571_bla1700809896571&topicId=nbw1698727575499.html&_LANG=enus>`_.
|
||||
|
||||
Tax exemption certificate
|
||||
=========================
|
||||
|
||||
Tax exemption certificates for customers can be added into the Avalara management console, so that
|
||||
*AvaTax* is aware of which customers may be exempt from paying certain taxes. To add an *exception
|
||||
certificate* navigate to :menuselection:`Exemptions --> Customer certificates`. From there, click on
|
||||
the :icon:`fa-plus` :guilabel:`Add a certificate` to configure an exemption.
|
||||
|
||||
.. warning::
|
||||
An Avalara subscription to Exemption Certificate Management (ECM) is required in order to attach
|
||||
certificate images, and to be ready for an audit. For more on subscribing to this add-on, visit
|
||||
`Avalara
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=hff1682048150115_hff1682048150115&topicId=fol1682356576230.html&_LANG=enus>`_.
|
||||
|
||||
End-of-year operations
|
||||
======================
|
||||
|
||||
Avalara's services include tax return services, for when it is time to file taxes at the end of the
|
||||
year. To access Avalara's tax services log, into the `management portal
|
||||
<https://admin.avalara.com/>`_. Then, from the main dashboard, click :guilabel:`Returns`. Avalara
|
||||
will prompt the Avalara user to log in for security purposes, and redirect the user to the *Returns*
|
||||
portal.
|
||||
|
||||
.. image:: avalara_portal/avalara-returns.png
|
||||
:align: center
|
||||
:alt: Avalara portal with the returns shortcut highlighted.
|
||||
|
||||
Click :guilabel:`Get started` to begin the tax return process. For more information, refer to this
|
||||
Avalara documentation: `About Managed Returns
|
||||
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=hps1656397152776_hps1656397152776&topicId=Learn_about_Managed_Returns.html&_LANG=enus>`_.
|
||||
|
||||
.. tip::
|
||||
Alternatively, click on the :menuselection:`Returns` button in the top menu of the Avalara
|
||||
management console.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../avatax`
|
||||
- :doc:`avatax_use`
|
||||
- `US Tax Compliance: Avatax elearning video
|
||||
<https://www.odoo.com/slides/slide/us-tax-compliance-avatax-2858?fullscreen=1>`_
|
||||
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 33 KiB |
@@ -0,0 +1,164 @@
|
||||
==========
|
||||
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`
|
||||
- :doc:`avalara_portal`
|
||||
- `US Tax Compliance: Avatax elearning video
|
||||
<https://www.odoo.com/slides/slide/us-tax-compliance-avatax-2858?fullscreen=1>`_
|
||||
- :doc:`../fiscal_positions`
|
||||
|
||||
|
After Width: | Height: | Size: 41 KiB |
|
After Width: | Height: | Size: 27 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 8.6 KiB |
|
Before Width: | Height: | Size: 13 KiB |
@@ -2,6 +2,11 @@
|
||||
France
|
||||
======
|
||||
|
||||
.. important::
|
||||
You must :doc:`install <../../general/apps_modules>` the **France - Adding Mandatory Invoice
|
||||
Mentions (Decree no. 2022-1299)** (`l10n_fr_invoice_addr`) module to comply with the `local
|
||||
legislation <https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000046383394>`_.
|
||||
|
||||
.. _france/fec:
|
||||
|
||||
FEC - Fichier des Écritures Comptables
|
||||
|
||||
@@ -172,7 +172,7 @@ German Tax Accounting Standards: Odoo's guide to GoBD Compliance
|
||||
|
||||
**GoBD** stands for `Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern,
|
||||
Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff
|
||||
<https://www.bundesfinanzministerium.de/Content/DE/Downloads/BMF_Schreiben/Weitere_Steuerthemen/Abgabenordnung/2019-11-28-GoBD.pdf>`_.
|
||||
<https://ao.bundesfinanzministerium.de/ao/2021/Anhaenge/BMF-Schreiben-und-gleichlautende-Laendererlasse/Anhang-64/anhang-64.html>`_.
|
||||
In short, it is a **guideline for the proper management and storage of books, records, and documents
|
||||
in electronic form, as well as for data access**, that is relevant for the German tax authority, tax
|
||||
declaration, and balance sheet.
|
||||
|
||||
@@ -1,100 +1,66 @@
|
||||
.. _developer-mode:
|
||||
|
||||
===========================
|
||||
Developer Mode (debug mode)
|
||||
Developer mode (debug mode)
|
||||
===========================
|
||||
|
||||
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>`.
|
||||
The developer mode, also known as debug mode, unlocks access to advanced :ref:`tools and settings
|
||||
<developer-mode/tools>` in Odoo.
|
||||
|
||||
.. _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.
|
||||
.. 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.
|
||||
|
||||
.. note::
|
||||
: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.
|
||||
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.
|
||||
|
||||
Activation
|
||||
==========
|
||||
|
||||
To activate it, open the :guilabel:`Settings` app, scroll down to the :guilabel:`Developer Tools`
|
||||
section, and click :guilabel:`Activate the developer mode`.
|
||||
|
||||
Once activated, the :guilabel:`Deactivate the developer mode` option becomes available.
|
||||
|
||||
.. _general/developer_mode/browser-extension:
|
||||
.. image:: developer_mode/settings.png
|
||||
:alt: Activating the developer mode in the Settings app
|
||||
|
||||
Activate through the 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.
|
||||
|
||||
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:
|
||||
|
||||
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.
|
||||
Use `?debug=assets` to activate the developer mode with assets and `?debug=tests` to activate it
|
||||
with tests assets.
|
||||
|
||||
.. tip::
|
||||
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>`.
|
||||
Open the **command palette** by pressing `Ctrl + K` or `Cmd ⌘ + K`, then type `debug` to
|
||||
activate the developer mode with assets or deactivate it.
|
||||
|
||||
.. _developer-mode/mode-tools:
|
||||
.. admonition:: Browser extension
|
||||
|
||||
Locate the developer 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/>`_.
|
||||
|
||||
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-mode/tools:
|
||||
|
||||
.. image:: developer_mode/button-location.png
|
||||
:align: center
|
||||
:alt: Overview of a console page and the debug icon being shown in Odoo.
|
||||
Developer tools and technical menu
|
||||
==================================
|
||||
|
||||
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:
|
||||
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.
|
||||
|
||||
- :guilabel:`Edit Action`
|
||||
- :guilabel:`Manage Filters`
|
||||
- Edit the current view (e.g. Kanban, List, Graph, etc.)
|
||||
- See the :guilabel:`Fields View Get`
|
||||
.. 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
|
||||
|
||||
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 25 KiB After Width: | Height: | Size: 6.1 KiB |
|
After Width: | Height: | Size: 9.4 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 24 KiB |
@@ -34,14 +34,14 @@ registration`. On the :guilabel:`Register an application` screen, rename the :gu
|
||||
and personal Microsoft accounts (e.g. Skype, Xbox)`.
|
||||
|
||||
Under the :guilabel:`Redirect URL` section, select :guilabel:`Web` as the platform, and then input
|
||||
`https://<odoo base url>/microsoft_outlook/confirm` in the :guilabel:`URL` field. The Odoo base URL
|
||||
is the canonical domain at which your Odoo instance can be reached in the URL field.
|
||||
`https://<web base url>/microsoft_outlook/confirm` in the :guilabel:`URL` field. The `web.base.url`
|
||||
is subject to change depending on the URL used to log in to the database.
|
||||
|
||||
.. example::
|
||||
*mydatabase.odoo.com*, where *mydatabase* is the actual prefix of the database's subdomain,
|
||||
assuming it's hosted on Odoo.com
|
||||
.. note::
|
||||
The documentation about the :ref:`web.base.url <domain-name/web-base-url>` explains how to freeze
|
||||
a unique URL. It is also possible to add different redirect URLs on the Microsoft app.
|
||||
|
||||
After the URL has been added to the field, :guilabel:`Register` the application so it is created.
|
||||
After the URL has been added to the field, :guilabel:`Register` the application, so it is created.
|
||||
|
||||
API permissions
|
||||
---------------
|
||||
|
||||
@@ -1,4 +1,6 @@
|
||||
:nosearch:
|
||||
:show-content:
|
||||
:show-toc:
|
||||
|
||||
=======
|
||||
Devices
|
||||
@@ -14,3 +16,8 @@ Devices
|
||||
devices/footswitch
|
||||
devices/printer
|
||||
devices/scale
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Worldline payment terminal
|
||||
<../../sales/point_of_sale/payment_methods/terminals/worldline>`
|
||||
- :doc:`Ingenico payment terminal <../../sales/point_of_sale/payment_methods/terminals/ingenico>`
|
||||
|
||||
@@ -6,6 +6,18 @@ A scale can be connected to the :abbr:`IoT (Internet of Things)` box on an Odoo
|
||||
easy steps. After setup, the *Point of Sale* app can be used to weigh products, which is helpful if
|
||||
their prices are calculated based on weight.
|
||||
|
||||
.. important::
|
||||
- In EU member states, `certification is legally required <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=uriserv%3AOJ.L_.2014.096.01.0107.01.ENG>`_
|
||||
to use a scale as an integrated device.
|
||||
- Odoo is not certified in several countries, including France, Germany, and Switzerland. If you
|
||||
reside in one of these countries, you can still use a scale but without integration to your
|
||||
Odoo database.
|
||||
- Alternatively, you have the option to acquire a *non-integrated* certified scale that prints
|
||||
certified labels, which can then be scanned into your Odoo database.
|
||||
|
||||
.. seealso::
|
||||
`Directive 2014/31/EU of the European Parliament <https://eur-lex.europa.eu/legal-content/EN/TXT/?uri=uriserv%3AOJ.L_.2014.096.01.0107.01.ENG>`_
|
||||
|
||||
Connection
|
||||
==========
|
||||
|
||||
|
||||
@@ -3,8 +3,8 @@ Contracts
|
||||
=========
|
||||
|
||||
Every employee in Odoo is required to have a contract in order to be paid. A contract outlines the
|
||||
terms of an employee's position, their compensation, their working hours, and any other details
|
||||
about their position.
|
||||
terms of an employee's position, their compensation, working hours, and any other details about
|
||||
their position.
|
||||
|
||||
.. important::
|
||||
Contract documents (PDFs) are uploaded and organized using the *Documents* application, and are
|
||||
@@ -12,10 +12,10 @@ about their position.
|
||||
sign contracts. Please refer to the :doc:`/applications/productivity/documents` and
|
||||
:doc:`/applications/productivity/sign` documentation.
|
||||
|
||||
To view the employee contracts, go to the :menuselection:`Payroll app --> Employees --> Contracts`
|
||||
To view the employee contracts, go to the :menuselection:`Payroll app --> Contracts --> Contracts`
|
||||
from the top menu. All employee contracts, and their current contract status, are displayed in a
|
||||
default kanban view. The default view displays both running contracts and contracts that need
|
||||
action. Expired and canceled contracts are hidden in the default view.
|
||||
Kanban view, by default. The Kanban view displays running contracts, contracts that require action,
|
||||
expired contracts, and cancelled contracts.
|
||||
|
||||
.. image:: contracts/contracts-overview.png
|
||||
:align: center
|
||||
@@ -23,90 +23,96 @@ action. Expired and canceled contracts are hidden in the default view.
|
||||
|
||||
.. note::
|
||||
The list of contracts in the *Payroll* application matches the list of contracts in the
|
||||
*Employees* application. The default contracts view in the *Payroll* application displays running
|
||||
contracts and contracts needing attention, while the default contracts view in the *Employees*
|
||||
application displays all contracts in a kanban view, organized by their stage, regardless of
|
||||
status. All contracts can be viewed by changing the filters.
|
||||
*Employees* application.
|
||||
|
||||
Create a new contract
|
||||
=====================
|
||||
|
||||
In order for an employee to be paid, an active contract is required. If a new contract is needed,
|
||||
click the :guilabel:`Create` button on the contracts dashboard. A contract form appears where the
|
||||
information can be entered. Required fields are underlined in bold.
|
||||
click the :guilabel:`Create` button on the :guilabel:`Contracts` dashboard. A contract form appears
|
||||
where the information can be entered. Required fields are underlined in bold.
|
||||
|
||||
Required fields
|
||||
---------------
|
||||
New contract form
|
||||
-----------------
|
||||
|
||||
.. image:: contracts/required-fields.png
|
||||
:align: center
|
||||
:alt: New contract form to be filled in when creating a new contract.
|
||||
|
||||
- :guilabel:`Contact Reference`: Type in the name or title for the contract, such as `John Smith
|
||||
Contract`.
|
||||
- :guilabel:`Company`: Select the company the contract applies to by clicking on the drop-down menu.
|
||||
A new company can be created by typing the name in the field, then clicking either
|
||||
:guilabel:`Create` to create the new company, or :guilabel:`Create and Edit` to create the new
|
||||
company and edit the company details.
|
||||
- :guilabel:`Salary Structure Type`: Select one of the salary structure types from the drop-down
|
||||
- :guilabel:`Contact Reference`: type in the name or title for the contract, such as `John Smith
|
||||
Contract`. This field is **required**.
|
||||
- :guilabel:`Employee`: name of the employee the contract applies to.
|
||||
- :guilabel:`Contract Start Date`: the date the contract starts. Choose a date by clicking on the
|
||||
drop-down menu, navigating to the correct month and year by using the :icon:`fa-chevron-left`
|
||||
:icon:`fa-chevron-right` :guilabel:`(arrow)` icons, then clicking on the desired date. This field
|
||||
is **required**.
|
||||
- :guilabel:`Contract End Date`: the date the contract ends. Choose a date by clicking on the
|
||||
drop-down menu, navigating to the correct month and year by using the :icon:`fa-chevron-left`
|
||||
:icon:`fa-chevron-right` :guilabel:`(arrow)` icons, then clicking on the desired date. This field
|
||||
is **required**.
|
||||
- :guilabel:`Salary Structure Type`: select one of the salary structure types from the drop-down
|
||||
menu. The default salary structure types are :guilabel:`Employee` or :guilabel:`Worker`. A new
|
||||
salary structure type can be created by typing the name in the field.
|
||||
- :guilabel:`Start Date`: The date the contract starts. Choose a date by clicking on the drop-down
|
||||
menu, navigating to the correct month and year by using the :guilabel:`< > (arrow)` icons, then
|
||||
clicking on the :guilabel:`date`.
|
||||
- :guilabel:`Working Schedule`: Select one of the working schedules from the drop-down menu.
|
||||
|
||||
.. tip::
|
||||
The :guilabel:`Working Schedule` drop-down menu displays all the working times for the selected
|
||||
:guilabel:`Company`. To modify or add to this list, go to :menuselection:`Payroll -->
|
||||
Configuration --> Working Times` and either :guilabel:`Create` a new working time or click on an
|
||||
existing working time and edit it by clicking :guilabel:`Edit`.
|
||||
|
||||
Optional fields
|
||||
---------------
|
||||
|
||||
- :guilabel:`Employee`: Name of the employee that the contract applies to.
|
||||
- :guilabel:`Department`: The department the contract applies to.
|
||||
- :guilabel:`Job Position`: The specific job position the contract applies to.
|
||||
- :guilabel:`Contract Type`: Choose from :guilabel:`CDI`, :guilabel:`CDD`, or :guilabel:`PFI` from
|
||||
salary structure type can be created by typing the name in the field. This field is **required**.
|
||||
- :guilabel:`Working Schedule`: select one of the working schedules from the drop-down menu. This
|
||||
field is **required**.
|
||||
- :guilabel:`Department`: the department the contract applies to.
|
||||
- :guilabel:`Job Position`: the specific job position the contract applies to.
|
||||
- :guilabel:`Wage on Payroll`: the amount to be paid to the employee each month.
|
||||
- :guilabel:`Contract Type`: choose from :guilabel:`CDI`, :guilabel:`CDD`, or :guilabel:`PFI` from
|
||||
the drop-down menu.
|
||||
|
||||
- :guilabel:`CDI` is an open-ended contract with only a start date but no end date.
|
||||
- :guilabel:`CDI` is an open-ended contract with only a start date, but no end date.
|
||||
- :guilabel:`CDD` is a contract with both a start date and an end date.
|
||||
- :guilabel:`PFI` is a Belgian-specific contract used when hiring employees that need training,
|
||||
and covers the training period specifically.
|
||||
|
||||
- :guilabel:`End Date`: If the contract has a specific end date, click the drop-down menu, navigate
|
||||
to the correct month and year using the arrow icons, then click on the date.
|
||||
- :guilabel:`HR Responsible`: If there is a specific person in HR that is responsible for the
|
||||
contract, select the person from the drop-down menu.
|
||||
- :guilabel:`Analytic Account`: This field allows a link between the contract and a specific
|
||||
analytic account for accounting purposes.
|
||||
- :guilabel:`HR Responsible`: if there is a specific person in HR that is responsible for the
|
||||
contract, select the person from the drop-down menu. This field is required.
|
||||
|
||||
.. tip::
|
||||
The :guilabel:`Working Schedule` drop-down menu displays all the working times for the selected
|
||||
:guilabel:`Company`. To modify or add to this list, go to :menuselection:`Payroll app -->
|
||||
Configuration --> Working Times`, and either :guilabel:`Create` a new working time, or click on
|
||||
an existing working time, then edit it by clicking :guilabel:`Edit`.
|
||||
|
||||
Contract details
|
||||
----------------
|
||||
|
||||
The contract details section allows for the addition and editing of a contract, and the ability to
|
||||
send the contract to the employee for approval and signatures.
|
||||
The :guilabel:`Contract Details` tab allows for the addition and editing of a contract, along with
|
||||
specifying which template to use when a new contract is created. These fields **must** be populated
|
||||
in order to create a new contract.
|
||||
|
||||
.. important::
|
||||
To access the various contract template fields in the :guilabel:`Contract Details` tab, the
|
||||
*Salary Configurator* (`hr_contract_salary`) module **must** be :ref:`installed
|
||||
<general/install>`.
|
||||
|
||||
When the *Salary Configurator* module is installed, the *Salary Configurator - Holidays* and
|
||||
*Salary Configurator - Payroll* modules install, as well.
|
||||
|
||||
Once the modules are installed, the database reverts to the main dashboard.
|
||||
|
||||
.. image:: contracts/contract-details.png
|
||||
:align: center
|
||||
:alt: Contract details in optional tabs for a new contract.
|
||||
|
||||
- :guilabel:`Contract Template`: Select a pre-existing contract template from the drop-down menu.
|
||||
- :guilabel:`Analytic Account`: this field allows a link between the contract and a specific
|
||||
analytic account for accounting purposes.
|
||||
- :guilabel:`Contract Template`: select a pre-existing contract template from the drop-down menu.
|
||||
Contract templates are typically created through the *Recruitment* application.
|
||||
- :guilabel:`New Contract Document Template`: Select a contract from the drop-down menu to be
|
||||
- :guilabel:`New Contract Document Template`: select a contract from the drop-down menu to be
|
||||
modified for this new employee contract.
|
||||
- :guilabel:`Contract Update Document Template`: Select a contract from the drop-down menu if the
|
||||
- :guilabel:`Contract Update Document Template`: select a contract from the drop-down menu, if the
|
||||
employee has an existing contract that requires updating.
|
||||
- :guilabel:`Notes`: The notes field is a text field where any notes for the employee contract can
|
||||
- :guilabel:`Notes`: the notes field is a text field where any notes for the employee contract can
|
||||
be entered for future reference.
|
||||
|
||||
Modifying a contract
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
Modify a contract template
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Click the :guilabel:`External Link` button at the end of each line to open the corresponding
|
||||
contract template and make any changes.
|
||||
Click the :icon:`fa-external-link` :guilabel:`(external Link)` icon at the end of either the
|
||||
:guilabel:`New Contract Document Template` or :guilabel:`Contract Update Document Template` to open
|
||||
the corresponding contract template, and proceed to make any desired changes.
|
||||
|
||||
.. image:: contracts/external-link.png
|
||||
:align: center
|
||||
@@ -118,23 +124,26 @@ A pop-up window appears with all the contract details. Modify the fields for the
|
||||
:align: center
|
||||
:alt: Edit the details for the contract.
|
||||
|
||||
- :guilabel:`Tags`: Select any tags associated with the contract.
|
||||
- :guilabel:`Signed Document Workspace`: This is where the signatures are stored. Choose a
|
||||
pre-configured workspace or create a new one.
|
||||
- :guilabel:`Signed Document Tags`: Select or create any tags associated only with the signed
|
||||
contract as opposed to the original unsigned contract.
|
||||
- :guilabel:`Redirect Link`: Enter a redirect link for the employee to access the contract. A
|
||||
redirect link takes the user from one URL to another, in this case, to the newly updated contract
|
||||
specifically written for them.
|
||||
- :guilabel:`Who can Sign`: Select either :guilabel:`All Users` or :guilabel:`On Invitation`.
|
||||
- :guilabel:`Tags`: select any tags associated with the contract.
|
||||
- :guilabel:`Signed Document Workspace`: this is where the signatures are stored. Choose a
|
||||
pre-configured workspace, or create a new one. To create a new :guilabel:`Signed Document
|
||||
Workspace`, type in the name of the workspace, then click either :guilabel:`Create` to add the new
|
||||
workspace, or :guilabel:`Create and Edit` to add the workspace and modify the workspace details.
|
||||
- :guilabel:`Signed Document Tags`: select or create any tags that are only associated with the
|
||||
signed contract, as opposed to the original unsigned contract.
|
||||
- :guilabel:`Redirect Link`: enter a redirect link for the employee to access the contract. A
|
||||
redirect link takes the user from one URL to another. In this case, it takes them to the
|
||||
newly-updated contract specifically written for them.
|
||||
- :guilabel:`Who can Sign`: select either :guilabel:`All Users` or :guilabel:`On Invitation`.
|
||||
|
||||
- :guilabel:`All Users`: Any user in the organization can sign the contract.
|
||||
- :guilabel:`On Invitation`: Only users selected in this field can sign the contract.
|
||||
- :guilabel:`All Users`: any user in the organization can sign the contract.
|
||||
- :guilabel:`On Invitation`: only users selected in this field can sign the contract.
|
||||
|
||||
- :guilabel:`Invited Users`: Select the person(s) that can sign the document.
|
||||
- :guilabel:`Document`: The attached document can be replaced by clicking the :guilabel:`✏️
|
||||
(pencil)` icon. A pop-up window appears so another document can be selected for upload. The file
|
||||
must be a PDF. To remove the document, click the :guilabel:`🗑️ (trash can)` icon.
|
||||
- :guilabel:`Invited Users`: select the person (or people) that can sign the document.
|
||||
- :guilabel:`Document`: the attached document can be replaced by clicking the :icon:`fa-pencil`
|
||||
:guilabel:`(pencil)` icon. A pop-up window appears, so another document can be selected for
|
||||
upload. The file **must** be a PDF. To remove the document, click the :icon:`fa-trash-o`
|
||||
:guilabel:`(trash can)` icon.
|
||||
|
||||
Once the edits are complete, click the :guilabel:`Save` button. All the information for the selected
|
||||
contract template populates the fields in the :guilabel:`Salary Information` tab. Any additional
|
||||
@@ -148,44 +157,25 @@ Salary information
|
||||
:alt: Optional tabs for a new contract.
|
||||
|
||||
This section is where the specific salary details are defined. This section is country-specific, so
|
||||
depending on where the company is located, these fields may vary.
|
||||
these fields vary, depending on where the company is located.
|
||||
|
||||
Enter the amount in the various fields, or check a box to apply a benefit. Some options that can be
|
||||
entered here include :guilabel:`Meal Vouchers`, :guilabel:`Fuel Card`, :guilabel:`Internet`,
|
||||
:guilabel:`Paid Time Off`, etc.
|
||||
Enter the amount in the various fields, or tick a checkbox to apply a benefit. Some options that can
|
||||
be entered here include :guilabel:`Group Insurance Sacrifice Rate` and :guilabel:`Canteen Cost`, for
|
||||
example.
|
||||
|
||||
Some fields may be automatically filled in based off of the contracts selected in the
|
||||
:guilabel:`Contract Details` tab.
|
||||
Some fields may be automatically filled in as other fields are entered. For example, the
|
||||
:guilabel:`Yearly Cost (Real)` and :guilabel:`Monthly Cost (Real)` updates once the :guilabel:`Wage`
|
||||
is populated.
|
||||
|
||||
Attachment of salary
|
||||
--------------------
|
||||
Personal documents
|
||||
------------------
|
||||
|
||||
Any automatic deductions or allocations for an employee, such as child support payments and wage
|
||||
garnishments, are referred to as a *salary attachment*. This section is where all of these
|
||||
deductions or allocations are set.
|
||||
This tab **only** appears after an :guilabel:`Employee` is selected, and houses any documents that
|
||||
are linked to the employee on their employee record. Documents cannot be added to this tab, this tab
|
||||
**only** shows documents that are already uploaded and associated with the employee.
|
||||
|
||||
To add a new deduction, click :guilabel:`Add a line`. Type in a description for the allocation under
|
||||
:guilabel:`Description`.
|
||||
|
||||
.. image:: contracts/garnishment.png
|
||||
:align: center
|
||||
:alt: Enter a new line for each type of garnishment.
|
||||
|
||||
Select the :guilabel:`Garnished Type` from the drop-down menu. Choose from:
|
||||
|
||||
- :guilabel:`Attachment of Salary`: Any payments taken out towards something that is *not* child
|
||||
support. Typically any garnishments such as lawsuit payments, payments toward taxes owed, etc.
|
||||
- :guilabel:`Assignment of Salary`: Any deduction that is not required but voluntary, such as a
|
||||
pre-tax allocation to a college savings account.
|
||||
- :guilabel:`Child Support`: Any payments taken out specifically for child support.
|
||||
|
||||
Enter the start and end dates the entry applies to. Click on the drop-down menu under
|
||||
:guilabel:`From` and :guilabel:`To`, navigate to the correct month and year by using the
|
||||
:guilabel:`< > (arrow)` icons, then click on the :guilabel:`date`.
|
||||
|
||||
Last, enter the :guilabel:`Amount` that each payslip pays towards the entry.
|
||||
|
||||
To delete a line, click the :guilabel:`🗑️ (trash can)` icon at the end of the line.
|
||||
The available documents in this tab can be downloaded. Click the :icon:`fa-download`
|
||||
:guilabel:`(download)` icon next to the document to download it.
|
||||
|
||||
Save and send the contract
|
||||
--------------------------
|
||||
@@ -199,21 +189,21 @@ Click on one of the following buttons to send the contract to the employee:
|
||||
:align: center
|
||||
:alt: Send the contract to the employee via one of the buttons.
|
||||
|
||||
- :guilabel:`Generate Simulation Link`: This option is for Belgian companies only. Clicking this
|
||||
opens a pop-up window that contains the basic information from the contract as well as a link for
|
||||
the contract when using the salary configurator. Click :guilabel:`Send Offer` to send an email to
|
||||
the employee so they can sign the contract.
|
||||
- :guilabel:`Generate Simulation Link`: this option is **only** for Belgian companies. Clicking this
|
||||
opens a pop-up window that contains the basic information from the contract, as well as a link for
|
||||
the contract when using the salary configurator. Click :guilabel:`Send` to send an email to the
|
||||
employee, so they can sign the contract.
|
||||
|
||||
.. image:: contracts/simulation.png
|
||||
:align: center
|
||||
:alt: Sends a link to the employee for the contract.
|
||||
|
||||
.. note::
|
||||
In order to send a contract using the :guilabel:`Generate Simulation Link`, there must be a
|
||||
signature field in the contract PDF being sent to the employee so they can sign it.
|
||||
In order to send a contract using the :guilabel:`Generate Simulation Link`, there **must** be a
|
||||
signature field in the contract PDF being sent to the employee, so they can sign it.
|
||||
|
||||
- :guilabel:`Signature Request`: Click this and a pop-up window appears where an email can be typed
|
||||
to the employee. Select the document, such as a contract, NDA, or Homeworking Policy, from the
|
||||
- :guilabel:`Signature Request`: clicking this reveals a pop-up window, where an email can be typed
|
||||
to the employee. Select the document (such as a contract, NDA, or Homeworking Policy) from the
|
||||
drop-down menu, and fill out the email section. Click :guilabel:`Send` when the email is ready to
|
||||
be sent.
|
||||
|
||||
@@ -221,5 +211,48 @@ Click on one of the following buttons to send the contract to the employee:
|
||||
:align: center
|
||||
:alt: Request a signature for the contract via email.
|
||||
|
||||
- :guilabel:`Credit Time`: This option is for Belgian companies only. When clicked, a pop-up window
|
||||
appears that allows for the changing of working times, and can compute time off.
|
||||
Salary attachments
|
||||
------------------
|
||||
|
||||
Any automatic deductions or allocations for an employee, such as child support payments and wage
|
||||
garnishments, are referred to as a *salary attachment*. This section is where all of these
|
||||
deductions or allocations are set.
|
||||
|
||||
To add a new deduction, first navigate to :menuselection:`Payroll app --> Contracts --> Salary
|
||||
Attachments`. Next, click :guilabel:`Create`, and a new salary attachment form loads.
|
||||
|
||||
.. image:: contracts/garnishment.png
|
||||
:align: center
|
||||
:alt: The salary attachment form with everything filled in for Ronnie Hart's child support.
|
||||
|
||||
Fill out the following fields on the form:
|
||||
|
||||
- :guilabel:`Employee`: using the drop-down menu, select the employee the salary attachment applies
|
||||
to.
|
||||
- :guilabel:`Description`: enter a short description for the salary attachment, such as `Child
|
||||
Support` or `529 Contribution`.
|
||||
- :guilabel:`Type`: using the drop-down menu, select the type of salary attachment being created.
|
||||
Choose from:
|
||||
|
||||
- :guilabel:`Attachment of Salary`: any payments taken out towards something that is *not* child
|
||||
support. Typically any garnishments, such as lawsuit payments, payments toward taxes owed, etc.
|
||||
- :guilabel:`Assignment of Salary`: any deduction that is not required, but voluntary, such as a
|
||||
pre-tax allocation to a college savings account.
|
||||
- :guilabel:`Child Support`: any payments taken out specifically for child support.
|
||||
|
||||
- :guilabel:`Start Date`: the date the salary attachment starts. Choose a date by clicking on the
|
||||
drop-down menu, navigating to the correct month and year by using the :icon:`fa-chevron-left`
|
||||
:icon:`fa-chevron-right` :guilabel:`(arrow)` icons, then clicking on the desired date. This field
|
||||
is **required**.
|
||||
- :guilabel:`Estimated End Date`: this field automatically populates after both the
|
||||
:guilabel:`Monthly Amount` and :guilabel:`Total Amount` fields are populated. This field is
|
||||
**not** modifiable.
|
||||
- :guilabel:`Document`: attach any documents relevant to the salary attachment. Click the
|
||||
:guilabel:`Upload Your File` button, navigate to the desired document in the file explorer, then
|
||||
click :guilabel:`Open` to select the document, and attach it to the form. To change the attached
|
||||
document, click the :icon:`fa-pencil` :guilabel:`(pencil)` icon, and select a different document.
|
||||
To remove a document, click the :icon:`fa-trash-o` :guilabel:`(trash can)` icon.
|
||||
- :guilabel:`Monthly Amount`: enter the amount to be taken out of the employee's paycheck every
|
||||
month for this specific salary attachment.
|
||||
- :guilabel:`Total Amount`: enter the total amount that the employee pays for the salary attachment
|
||||
to be completed.
|
||||
|
||||
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 6.0 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 6.4 KiB After Width: | Height: | Size: 9.5 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 34 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 13 KiB After Width: | Height: | Size: 14 KiB |
@@ -1,3 +1,5 @@
|
||||
:show-content:
|
||||
|
||||
=========
|
||||
Referrals
|
||||
=========
|
||||
@@ -99,327 +101,6 @@ sequence.
|
||||
:align: center
|
||||
:alt: The onboarding slides in a list, with the drag and drop arrows highlighted.
|
||||
|
||||
Share job positions
|
||||
===================
|
||||
|
||||
In order to earn referral points, a user must first share a job position so the applicant can apply
|
||||
for the position. There are several ways to share job positions within the Referrals application,
|
||||
through the :ref:`View Jobs <referrals/view-jobs>` button and the :ref:`Email A Friend
|
||||
<referrals/email-jobs>` button.
|
||||
|
||||
.. _referrals/view-jobs:
|
||||
|
||||
View Jobs
|
||||
---------
|
||||
|
||||
To see all job positions that are actively recruiting candidates, click the :guilabel:`View Jobs`
|
||||
button on the main Referrals dashboard. This presents all job positions, with each individual job
|
||||
presented in its own card.
|
||||
|
||||
.. image:: referrals/jobs.png
|
||||
:align: center
|
||||
:alt: The 'View Jobs' screen, displaying all current open job positions. All information is
|
||||
displayed on the card.
|
||||
|
||||
Each job position card contains the following information:
|
||||
|
||||
- The title of the job position. This information is taken from the :guilabel:`Job Position` field
|
||||
of the job form.
|
||||
- The number of positions being recruited. This information is taken from the :guilabel:`Expected
|
||||
New Employees` field of the :guilabel:`Recruitment` tab of the job form.
|
||||
- The points a user will earn when an applicant applies for the position.
|
||||
- The job description detailing the job position. This information is taken from the :guilabel:`Job
|
||||
Position` tab of the job form.
|
||||
|
||||
To see all the details for a job position, click the :guilabel:`More Info` button on the specific
|
||||
card. This opens the job position webpage in a new browser tab. This is what an applicant sees
|
||||
before applying for a position.
|
||||
|
||||
.. note::
|
||||
Only published job positions will be visible in the Referrals app. To check which job positions
|
||||
are published or not, refer to the :doc:`recruitment/new_job` documentation.
|
||||
|
||||
Refer friends
|
||||
-------------
|
||||
|
||||
To share a job position with someone, click the :guilabel:`Refer Friend` button on the specific job
|
||||
position card. A pre-configured :guilabel:`Send Job Offer by Mail` email pop-up window appears.
|
||||
Enter the recipient's email address in the :guilabel:`Email` field.
|
||||
|
||||
The subject and body are populated using a default template. The subject `Job for you` appears, and
|
||||
can be modified if desired.
|
||||
|
||||
The specific title of the job position will populate the :guilabel:`Job Position` placeholder in the
|
||||
email body. The `See Job Offer` text in the email body is an individualized tracking link to the
|
||||
specific job position listed on the website. When the prospective employee receives the email, the
|
||||
link will send them to the job position page, where they can apply for the position, and the person
|
||||
who referred them is tracked in the Referrals application.
|
||||
|
||||
If desired, add any text or closing salutation to the email body. When all edits have been made,
|
||||
click :guilabel:`Send Email` to send the email, or click :guilabel:`Cancel` to close the email
|
||||
pop-up window.
|
||||
|
||||
.. image:: referrals/email.png
|
||||
:align: center
|
||||
:alt: Referral email pop-up window with the email message inside it.
|
||||
|
||||
Share a job
|
||||
-----------
|
||||
|
||||
There are several other ways to share a job position aside from sending an email, via social media
|
||||
platforms and tracking links to the job position. At the bottom of each job position card are four
|
||||
icons and corresponding tracking links that can be used to share the job position, keeping track of
|
||||
applicants in the Referrals application.
|
||||
|
||||
.. image:: referrals/share.png
|
||||
:align: center
|
||||
:alt: The various sharing icons that appear for each job.
|
||||
|
||||
Link
|
||||
~~~~
|
||||
|
||||
To share the job position with a customized tracking link, click the :guilabel:`Share Now` button
|
||||
with the :guilabel:`🔗 (chain)` icon inside it. A :guilabel:`Link to Share` pop-up window appears
|
||||
with the tracking link. Click :guilabel:`Copy` to copy the link. After the link is copied, click the
|
||||
:guilabel:`Close` button to close the pop-up. Next, share the link with the prospective employee
|
||||
however desired.
|
||||
|
||||
Facebook
|
||||
~~~~~~~~
|
||||
|
||||
To share the job position using Facebook, click the :guilabel:`Share Now` button with the
|
||||
:guilabel:`f (Facebook icon)` inside it. If the user is already logged into Facebook, when the
|
||||
:guilabel:`f (Facebook icon)` is clicked, a :guilabel:`Share on Facebook` page loads in a new tab,
|
||||
with the link populated in the main body of the new post. If the user is *not* already logged in, a
|
||||
log-in screen loads instead, prompting the user to log-in to Facebook first.
|
||||
|
||||
Type in any additional information to add to the post, in the space directly below your name. If
|
||||
desired, :guilabel:`tag` users, :guilabel:`check-in` at a location, or add a :guilabel:`status` to
|
||||
the post. To tag a user, click the :guilabel:`Tag Friends` icon and select the people to tag to the
|
||||
post. To add a check-in location, click the :guilabel:`Check in` icon, and select the location from
|
||||
the pop-up of predetermined locations based on your current location. To add a :guilabel:`status`,
|
||||
click the :guilabel:`Feeling/Activity` icon, then select either the feeling or the activity type,
|
||||
and lastly, if an activity type was selected, select the specific activity.
|
||||
|
||||
There are five methods to share the job position, :guilabel:`Your Story`, :guilabel:`Share on a
|
||||
Friend's Timeline`, :guilabel:`Share in a Group`, :guilabel:`Share in an Event`, and
|
||||
:guilabel:`Share in a Private Message`. To select the sharing method, click the drop-down menu
|
||||
located at the top of the page, directly beneath the :guilabel:`Share on Facebook` banner.
|
||||
|
||||
.. image:: referrals/facebook.png
|
||||
:align: center
|
||||
:alt: The view on Facebook when sharing a job description. All the various ways to share are
|
||||
highlighted, as are all the required settings.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. tab:: Share to news feed or story
|
||||
|
||||
The default sharing method is through the :guilabel:`News Feed`, :guilabel:`Story`, or both.
|
||||
At the lower portion of the form are radio buttons next to the two options, :guilabel:`Feed`
|
||||
(for the News Feed) and :guilabel:`Your Story` for stories. When :guilabel:`Share to News Feed
|
||||
or Story` is selected, these buttons are active, if another option is selected, these radio
|
||||
buttons are greyed out. Activate the radio button(s) to indicate how the job position should
|
||||
be shared, either in the news feed, the story, or both.
|
||||
|
||||
The :guilabel:`Share to news feed or story` option allows for specific privacy settings to be
|
||||
selected. In the lower right corner of the screen, there are two drop-down menu options, one
|
||||
for the :guilabel:`Feed` option, the other for the :guilabel:`Your story` option. Select the
|
||||
posting parameters from the drop-down menus. The :guilabel:`Feed` ad :guilabel:`Your story`
|
||||
options appear different from user to user, depending on what privacy settings have been
|
||||
created in Facebook. :guilabel:`Public` and :guilabel:`Friends` are default options, but other
|
||||
options that the user may have configured will appear as well, such as custom groups.
|
||||
|
||||
When the post and/or story is ready to be shared, click the blue :guilabel:`Post to Facebook`
|
||||
button at the bottom of the screen.
|
||||
|
||||
.. tab:: Share on a friend's timeline
|
||||
|
||||
Instead of making a public post on the user's on Facebook page, the job position can be shared
|
||||
directly on a friend's timeline. Click the :guilabel:`Share to News Feed or Story` drop-down
|
||||
menu near the top of the page, and select :guilabel:`Share on a Fried's Timeline`.
|
||||
|
||||
When selected, a :guilabel:`Friend` field appears below the selection. Begin to type in the
|
||||
friend's name. As the name is typed, a list appears, populated with names that match what is
|
||||
entered. Select the friend from the list. **Only** one friend can be selected.
|
||||
|
||||
When the post is ready to be shared, click the blue :guilabel:`Post to Facebook` button at the
|
||||
bottom of the screen.
|
||||
|
||||
.. tab:: Share in a group
|
||||
|
||||
To reach a specific audience and not share the job position publicly with everyone, a job can
|
||||
be shared in a group. Click the :guilabel:`Share to News Feed or Story` drop-down menu near
|
||||
the top of the page, and select :guilabel:`Share in a Group`.
|
||||
|
||||
When selected, a :guilabel:`Group` field appears below the selection. The available groups
|
||||
that can be posted to are groups the user is currently a member of. Job positions cannot be
|
||||
shared with groups the user has not joined. Begin to type in the name of the group. As the
|
||||
group name is typed, a list appears, populated with the group names that match what is
|
||||
entered. Select the group from the list. Only one group can be selected.
|
||||
|
||||
When the post is ready to be shared, click the blue :guilabel:`Post to Facebook` button at the
|
||||
bottom of the screen.
|
||||
|
||||
.. tab:: Share in an event
|
||||
|
||||
A job position can also be shared on an event page. Click the :guilabel:`Share to News Feed or
|
||||
Story` drop-down menu near the top of the page, and select :guilabel:`Share in an Event`.
|
||||
|
||||
When selected, an :guilabel:`Event` field appears below the selection. The available events
|
||||
that can be posted to are events the user is invited to. This includes events that the user
|
||||
has not responded to yet, and events that have occurred in the past. Begin to type in the name
|
||||
of the event. As the event name is typed, a list appears, populated with the events that match
|
||||
what is entered. Select the event from the list. Only one event can be selected.
|
||||
|
||||
When the post is ready to be shared, click the blue :guilabel:`Post to Facebook` button at the
|
||||
bottom of the screen.
|
||||
|
||||
.. tab:: Share in a private message
|
||||
|
||||
The last option is to share a job position privately instead of publicly, in a Facebook
|
||||
message. Click the :guilabel:`Share to News Feed or Story` drop-down menu near the top of the
|
||||
page, and select :guilabel:`Share in an Private Message`.
|
||||
|
||||
When selected, a :guilabel:`To` field appears below the selection. Begin to type in the
|
||||
friend's name. As the name is typed, a list appears, populated with names that match what is
|
||||
entered. Select the friend from the list. Multiple friends can be selected and added to a
|
||||
single message. Repeat this process for each friend to be added.
|
||||
|
||||
When the message is ready to be sent, click the blue :guilabel:`Send message` button at the
|
||||
bottom of the screen.
|
||||
|
||||
X/Twitter
|
||||
~~~~~~~~~
|
||||
|
||||
A job position can also be shared on X/Twitter. Click the :guilabel:`Share Now` button with the bird
|
||||
icon inside it. If the user is already signed in to X/Twitter, when the :guilabel:`Share Now` icon
|
||||
is clicked, an X/Twitter page loads in a new tab with a pre-populated message ready to post, in a
|
||||
draft pop-up. If the user is *not* already signed in, a sign-in screen loads instead, prompting the
|
||||
user to sign in to X/Twitter.
|
||||
|
||||
The default message is:
|
||||
|
||||
:guilabel:`Amazing job offer for (Job Position)! Check it live: (link to Job Position)`
|
||||
|
||||
Type in any additional information or make any edits to the message. If desired, click the
|
||||
:guilabel:`X` in the top left corner of the thumbnail preview of the webpage to remove it. To adjust
|
||||
the audience for the message, click the drop-down button labeled :guilabel:`Everyone`. Select the
|
||||
preferred audience from the drop-down menu. The default option is :guilabel:`Everyone`, and the
|
||||
other options is :guilabel:`Circle`. The :guilabel:`Circle` is a group of people that the user has
|
||||
selected in X/Twitter.
|
||||
|
||||
The default setting is :guilabel:`🌎 (globe) Everyone can reply`, an allows everyone on X/Twitter to
|
||||
reply to the message. To change this, click the :guilabel:`🌎 (globe) Everyone can reply` button in
|
||||
the lower left section of the message. There are four options presented: :guilabel:`Everyone`,
|
||||
:guilabel:`Accounts you follow`, :guilabel:`Verified accounts`, and :guilabel:`Only accounts you
|
||||
mention`. Selecting one of the other options restricts who can reply to the message.
|
||||
|
||||
There are various other items that can be added to the message. Media (photos, videos, etc), GIF's,
|
||||
polls, emojis, and a location may all be added. Click the corresponding icon in the bottom left of
|
||||
the message and follow the prompts to add the desired additional elements.
|
||||
|
||||
To have the message posted at a future date and time, click the :guilabel:`Schedule` icon in the
|
||||
lower left of the message window. It is the fifth icon from the left. Enter the date and time that
|
||||
the message should be posted using the date and time selector presented. Click :guilabel:`Confirm`
|
||||
to add the scheduled time to the message.
|
||||
|
||||
To post the message, click :guilabel:`Post`. The message will be immediately posted, or, if it was
|
||||
scheduled, will be posted at the scheduled date and time.
|
||||
|
||||
.. image:: referrals/twitter.png
|
||||
:align: center
|
||||
:alt: The X/Twitter pop-up when sharing a job description. All the other items than can be added
|
||||
to the message are highlighted, as is the visibility setting and the post button.
|
||||
|
||||
LinkedIn
|
||||
~~~~~~~~
|
||||
|
||||
To share a job position on LinkedIn, click the :guilabel:`Share Now` button with the :guilabel:`in
|
||||
(LinkedIn logo)` inside it. If the user is already logged into LinkedIn, when the :guilabel:`Share
|
||||
Now` button is clicked, a new tab loads in LinkedIn, with a link to the job position at the top. If
|
||||
the user is *not* already logged in, a log-in screen loads instead, prompting the user to log-in to
|
||||
LinkedIn first.
|
||||
|
||||
The job position can be shared either in a public post, or in a private message to an individual or
|
||||
group of individuals.
|
||||
|
||||
Share in a post
|
||||
***************
|
||||
|
||||
To share the job position in a public post, click the :guilabel:`✏️ (pencil) Share in a post` button
|
||||
in the lower-left corner of the screen. A :guilabel:`Create a post` window loads, with the job
|
||||
position link populated. Enter any other information to the post in the field.
|
||||
|
||||
To change the audience that will see the post, click the :guilabel:`🌎 (globe) Anyone` drop-down,
|
||||
located directly beneath the account name. Click on the desired selection, then click the
|
||||
:guilabel:`Save` button on the far right side of the screen, beneath the last listed option.
|
||||
|
||||
:guilabel:`Anyone` allows anyone on LinkedIn to see the post. :guilabel:`Connections only` will
|
||||
only share the post with people who are connected with the user, and will be hidden from everyone
|
||||
else. :guilabel:`Group` shares the post with a specific group the user is a member of. The post can
|
||||
only be shared with one group; posting to multiple groups at once is not available. If
|
||||
:guilabel:`Group` is selected, a page loads with a list of all the groups the user is currently a
|
||||
member of. Click on a group to select it, then click the :guilabel:`Save` button in the lower right
|
||||
corner.
|
||||
|
||||
Next, select who can comment on the post. To change this setting, click on the :guilabel:`💬 (speech
|
||||
bubble) Anyone` button located beneath the body of the post. A page loads with the various options.
|
||||
Click on one of the three options to select it. The three options are :guilabel:`Anyone`,
|
||||
:guilabel:`Connections only`, and :guilabel:`No one`. The default option is :guilabel:`Anyone`,
|
||||
which allows anyone with a LinkedIn account to comment on the post. :guilabel:`Connections only`
|
||||
will only allow people who are connected with the user to comment on the post. :guilabel:`No one`
|
||||
turns off commenting. After making a selection, click the :guilabel:`Save` button in the far lower
|
||||
right corner.
|
||||
|
||||
Finally, once the post is edited and the settings have been selected, click :guilabel:`Post` to
|
||||
share the job position.
|
||||
|
||||
.. image:: referrals/linkedin.png
|
||||
:align: center
|
||||
:alt: A linkedIn post to share a job. The job position is highlighted as is the post button.
|
||||
|
||||
Send as private message
|
||||
***********************
|
||||
|
||||
Instead of making a public post, the post can be sent to a connection in a private message. To do
|
||||
so, click the :guilabel:`Send as private message` button in the lower left corner. A message window
|
||||
loads with the link to the job description in the bottom of the window. First, select the
|
||||
recipient(s) for the message. Type the name in the :guilabel:`Search for message recipients` field.
|
||||
As the name is typed in, any matching connections appear. Click on a connection to add them. Repeat
|
||||
this for all the recipients to send the message to. There is no limit on the number of connections
|
||||
that can be messaged. Next, enter any additional text in the message body. Click :guilabel:`Send` in
|
||||
the lower right corner to send the message. A :guilabel:`Message successfully sent!` screen loads.
|
||||
Two options are presented, :guilabel:`View Message` and :guilabel:`Continue to LinkedIn`. Click on
|
||||
the desired selection to navigate to that choice, or close the browser tab to exit.
|
||||
|
||||
.. _referrals/email-jobs:
|
||||
|
||||
Email a friend
|
||||
--------------
|
||||
|
||||
Another way to share job opportunities is to share the entire current list of open job positions
|
||||
instead of one job position at a time. To do this, navigate to the main *Referrals* app dashboard.
|
||||
Click the :guilabel:`Email a friend` button at the bottom of the screen. A :guilabel:`Send Job Offer
|
||||
by Mail` pop-up window appears.
|
||||
|
||||
Enter the email address(es) in the :guilabel:`Email` line. The email can be sent to multiple
|
||||
recipients, simply enter a comma followed by a single space after each email address. The
|
||||
:guilabel:`Subject` is pre-configured with `Job for you`, but can be edited.
|
||||
|
||||
The email body is also populated with pre-configured text. The text that appears is:
|
||||
|
||||
`Hello,`
|
||||
|
||||
`There are some amazing job offers in my company! Have a look, they can be interesting for you`
|
||||
|
||||
`See Job Offers`
|
||||
|
||||
The `See Job Offers` text is a tracking link to a complete list of all job positions currently being
|
||||
recruited for, that are live on the company's website (published). Add any additional text and/or
|
||||
make any edits to the message body, then click :guilabel:`Send Mail` to send the email. The message
|
||||
will be sent and the window will close.
|
||||
|
||||
.. _referrals/hired:
|
||||
|
||||
Hired referrals
|
||||
@@ -776,3 +457,10 @@ spreadsheet from the drop-down menu, or select :guilabel:`New Spreadsheet`. Clic
|
||||
.. note::
|
||||
The spreadsheet is stored in the *Documents* application. This application needs to be installed
|
||||
in order to use the :guilabel:`Insert in Spreadsheet` option.
|
||||
|
||||
.. seealso::
|
||||
:doc:`referrals/share_jobs`
|
||||
|
||||
.. toctree::
|
||||
|
||||
referrals/share_jobs
|
||||
|
||||
|
Before Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 8.4 KiB |
@@ -0,0 +1,165 @@
|
||||
===================
|
||||
Share job positions
|
||||
===================
|
||||
|
||||
In Odoo *Referrals*, users can earn referral points by sharing job positions with potential
|
||||
applicants. Job positions can be shared in several ways, through the :ref:`View Jobs
|
||||
<referrals/view-jobs>` button and the :ref:`Email A Friend <referrals/email-jobs>` button, located
|
||||
at the bottom of the *Referrals* app dashboard.
|
||||
|
||||
.. note::
|
||||
Sharing jobs can **only** occur after onboarding slides have been viewed or skipped.
|
||||
|
||||
.. _referrals/view-jobs:
|
||||
|
||||
View Jobs
|
||||
=========
|
||||
|
||||
To see all job positions that are actively recruiting candidates, click the :guilabel:`View Jobs`
|
||||
button on the main *Referrals* dashboard. This presents all job positions, with each individual job
|
||||
presented with its own card.
|
||||
|
||||
.. image:: share_jobs/jobs.png
|
||||
:align: center
|
||||
:alt: The 'View Jobs' screen, displaying all current open job positions. All information is
|
||||
displayed on the card.
|
||||
|
||||
Each job position card contains the following information:
|
||||
|
||||
- The title of the job position. This information is taken from the *Job Position* field of the job
|
||||
form.
|
||||
- The number of :guilabel:`Open Positions` being recruited. This information is taken from the
|
||||
*Expected New Employees* field of the *Recruitment* tab of the job form.
|
||||
- The points a user earns when an applicant applies for the position.
|
||||
- The job description detailing the job position. This information is taken from the *Job Position*
|
||||
tab of the job form.
|
||||
|
||||
To see all the details for a job position, click the :guilabel:`More Info` button on the specific
|
||||
card. This opens the job position webpage in a new browser tab. This is what an applicant sees
|
||||
before applying for a position.
|
||||
|
||||
.. note::
|
||||
Only published job positions are visible in the *Referrals* app. To check which job positions are
|
||||
published or not, refer to the :doc:`../recruitment/new_job` documentation.
|
||||
|
||||
Refer friends
|
||||
=============
|
||||
|
||||
To share a job position with someone, click the :guilabel:`Refer Friend` button on the specific job
|
||||
position card. A pre-configured :guilabel:`Send Job Offer by Mail` pop-up window appears. Enter the
|
||||
recipient's email address in the :guilabel:`Email` field.
|
||||
|
||||
The :guilabel:`Subject` and :guilabel:`Body` are populated using a default template. The
|
||||
:guilabel:`Subject` `Job for you` is present, by default, but can be modified, if desired.
|
||||
|
||||
The specific title of the job position populates the *Job Position* placeholder in the email body.
|
||||
The `See Job Offer` text in the email body is an individualized tracking link to the specific job
|
||||
position listed on the website.
|
||||
|
||||
When the prospective employee receives the email, the link sends them to the job position page,
|
||||
where they can apply for the position, and the person who referred them is tracked in the
|
||||
*Referrals* application.
|
||||
|
||||
If desired, add any text or closing salutation to the email body. When all edits have been made,
|
||||
click :guilabel:`Send Mail` to send the email, or click :guilabel:`Cancel` to close the pop-up
|
||||
window.
|
||||
|
||||
.. image:: share_jobs/email.png
|
||||
:align: center
|
||||
:alt: Referral email pop-up window with the email message inside it.
|
||||
|
||||
Share a job
|
||||
===========
|
||||
|
||||
Other than sending an email, job positions can be shared, via social media platforms, and by
|
||||
tracking links to the job position. At the bottom of each job position card are four icons, and
|
||||
corresponding tracking links, that can be used to share the job position, keeping track of
|
||||
applicants in the *Referrals* application.
|
||||
|
||||
.. image:: share_jobs/share.png
|
||||
:align: center
|
||||
:alt: The various sharing icons that appear for each job.
|
||||
|
||||
Link
|
||||
----
|
||||
|
||||
To share the job position with a customized tracking link, click the :guilabel:`Share Now` button
|
||||
with the :icon:`fa-chain` :guilabel:`(link)` icon above it. A :guilabel:`Link to Share` pop-up
|
||||
window appears with the tracking link. Click :guilabel:`Copy` to copy the link. After the link is
|
||||
copied, click the :guilabel:`Close` button to close the pop-up window. Next, share the link with
|
||||
the prospective employee.
|
||||
|
||||
Facebook
|
||||
--------
|
||||
|
||||
To share the job position using Facebook, click the :guilabel:`Share Now` button with the
|
||||
:icon:`fa-facebook` :guilabel:`(Facebook)` icon above it.
|
||||
|
||||
If the user is already logged into Facebook, when the the :guilabel:`Share Now` button is clicked, a
|
||||
:guilabel:`Share on Facebook` page loads in a new tab, with the link populated in the main body of
|
||||
the new post in a pop-up window. If the user is *not* already logged in, a log-in screen loads,
|
||||
instead, prompting the user to log-in to Facebook first.
|
||||
|
||||
Type in any additional information to add to the post, then share the job position using the
|
||||
available options in Facebook.
|
||||
|
||||
X (formerly Twitter)
|
||||
--------------------
|
||||
|
||||
A job position can also be shared on X. Click the :guilabel:`Share Now` button with the
|
||||
:guilabel:`(X)` icon above it.
|
||||
|
||||
If the user is already signed-in to X, when the :guilabel:`Share Now` button is clicked, an X page
|
||||
loads in a new tab with a pre-populated message ready to post, in a draft pop-up window. If the user
|
||||
is *not* already signed-in, a sign-in screen loads instead, prompting the user to first sign-in to
|
||||
X.
|
||||
|
||||
The default message is:
|
||||
|
||||
`Amazing job offer for (Job Position)! Check it live: (link to Job Position)`
|
||||
|
||||
Type in any additional information, or make any edits to the message, then share using the available
|
||||
options in X.
|
||||
|
||||
LinkedIn
|
||||
--------
|
||||
|
||||
To share a job position on LinkedIn, click the :guilabel:`Share Now` button with the
|
||||
:icon:`fa-linkedin` :guilabel:`(LinkedIn)` icon above it.
|
||||
|
||||
If the user is already logged into LinkedIn, when the :guilabel:`Share Now` button is clicked, a new
|
||||
tab loads in LinkedIn, with a link to the job position at the top. If the user is *not* already
|
||||
logged in, a log-in screen loads instead, prompting the user to log-in to LinkedIn first.
|
||||
|
||||
The job position can be shared either in a public post, or in a private message to an individual (or
|
||||
group of individuals).
|
||||
|
||||
Type in any additional information, or make any edits to the message or post, then share using the
|
||||
available options in LinkedIn.
|
||||
|
||||
.. _referrals/email-jobs:
|
||||
|
||||
Email a friend
|
||||
--------------
|
||||
|
||||
Another way to share job opportunities is to share the entire current list of open job positions,
|
||||
instead of one job position at a time. To do this, navigate to the :menuselection:`Referrals` main
|
||||
dashboard. Click the :guilabel:`Email a friend` button at the bottom of the screen. A
|
||||
:guilabel:`Send Job Offer by Mail` pop-up window appears.
|
||||
|
||||
Enter the email address in the :guilabel:`Email` field. The email can be sent to multiple
|
||||
recipients by separating each email address with a comma followed by a single space. The
|
||||
:guilabel:`Subject` is pre-configured with :guilabel:`Job for you`, but can be edited.
|
||||
|
||||
The email :guilabel:`Body` is also populated with pre-configured text. The text that appears is:
|
||||
|
||||
`Hello,`
|
||||
|
||||
`There are some amazing job offers in my company! Have a look, they can be interesting for you\:`
|
||||
|
||||
`See Job Offers`
|
||||
|
||||
The :guilabel:`See Job Offers` text is a tracking link to a complete list of all job positions
|
||||
currently being recruited for. Add any additional text and make any edits to the message body, if
|
||||
necessary. Then, click :guilabel:`Send Mail` to send the email. This sends the message, and closes
|
||||
the window.
|
||||
|
Before Width: | Height: | Size: 9.6 KiB After Width: | Height: | Size: 9.6 KiB |
|
After Width: | Height: | Size: 26 KiB |
|
After Width: | Height: | Size: 8.5 KiB |
|
Before Width: | Height: | Size: 30 KiB |
@@ -1,9 +1,8 @@
|
||||
:nosearch:
|
||||
|
||||
===============
|
||||
Inventory & MRP
|
||||
===============
|
||||
|
||||
============
|
||||
Supply Chain
|
||||
============
|
||||
|
||||
.. toctree::
|
||||
|
||||
|
||||
@@ -164,6 +164,13 @@ For example, different packages for cans of soda can be configured as a 6-pack,
|
||||
of 36. Each flavor of soda would need a `6`, `12`, and `36` can packaging configured on the
|
||||
individual product since packagings are product specific, not generic.
|
||||
|
||||
.. tip::
|
||||
Packaging can be used in conjunction with Odoo :ref:`Barcode <inventory/barcode/software>`. When
|
||||
receiving products from suppliers, scanning the packaging barcode automatically adds the number
|
||||
of units in the packaging to the internal count of the product.
|
||||
|
||||
.. _inventory/management/packaging-setup:
|
||||
|
||||
Set up packagings
|
||||
-----------------
|
||||
|
||||
@@ -210,6 +217,43 @@ and create another one in a fresh pop-up window.
|
||||
:alt: Show packaging and contained quantities, specified on the product page form in the
|
||||
Inventory tab.
|
||||
|
||||
Partial reservation
|
||||
-------------------
|
||||
|
||||
After :ref:`completing the packaging setup <inventory/management/packaging-setup>`, packagings can
|
||||
be reserved in full or partial quantities for outgoing shipments. Partial packaging flexibility
|
||||
expedites order fulfillment by allowing the immediate shipment of available items, while awaiting
|
||||
the rest.
|
||||
|
||||
To configure packaging reservation methods, go to :menuselection:`Inventory app --> Configuration
|
||||
--> Product Categories`. Then, click :guilabel:`Create`, or select the desired product category.
|
||||
|
||||
On the product category's form, in the :guilabel:`Logistics` section, :guilabel:`Reserve Packagings`
|
||||
can be set to :guilabel:`Reserve Only Full Packagings` or :guilabel:`Reserve Partial Packagings`.
|
||||
|
||||
.. important::
|
||||
To see the :guilabel:`Reserve Packaging` field, the :guilabel:`Product Packaging` feature
|
||||
**must** be enabled. To enable this feature, go to :menuselection:`Inventory app -->
|
||||
Configuration --> Settings`, scroll to the :guilabel:`Products` section, tick the
|
||||
:guilabel:`Product Packagings` checkbox, and click :guilabel:`Save`.
|
||||
|
||||
.. image:: usage/reserve-packaging.png
|
||||
:align: center
|
||||
:alt: Show Reserve Packagings field on the product categories page.
|
||||
|
||||
.. example::
|
||||
To better evaluate the options based on business needs, consider the following example:
|
||||
|
||||
- a product is sold in twelve units per packaging.
|
||||
- an order demands two packagings.
|
||||
- there are only twenty-two units in stock.
|
||||
|
||||
When :guilabel:`Reserve Only Full Packagings` is selected, only twelve units are reserved for the
|
||||
order.
|
||||
|
||||
Conversely, when :guilabel:`Reserve Partial Packagings` is selected, twenty-two units are
|
||||
reserved for the order.
|
||||
|
||||
View all packagings
|
||||
-------------------
|
||||
|
||||
@@ -241,7 +285,3 @@ used for the product(s). The chosen packaging is displayed on the :abbr:`SO (Sal
|
||||
:align: center
|
||||
:alt: Assign packagings on the Sales Order Line.
|
||||
|
||||
.. tip::
|
||||
Packaging can be used in conjunction with Odoo :ref:`Barcode <inventory/barcode/software>`. When
|
||||
receiving products from suppliers, scanning the packaging barcode automatically adds the number
|
||||
of units in the packaging to the internal count of the product.
|
||||
|
||||
|
After Width: | Height: | Size: 6.4 KiB |
@@ -2,7 +2,7 @@
|
||||
Inventory valuation configuration
|
||||
=================================
|
||||
|
||||
.. _inventory/inventory_valuation_config:
|
||||
.. |external link| replace:: :icon:`fa-external-link` :guilabel:`(external link)`
|
||||
|
||||
All of a company's stock on-hand contributes to the valuation of its inventory. That value should
|
||||
be reflected in the company's accounting records to accurately show the value of the company and
|
||||
@@ -11,9 +11,8 @@ all of its assets.
|
||||
By default, Odoo uses a periodic inventory valuation (also known as manual inventory valuation).
|
||||
This method implies that the accounting team posts journal entries based on the physical inventory
|
||||
of the company, and that warehouse employees take the time to count the stock. In Odoo, this method
|
||||
is reflected inside each product category, where the :guilabel:`Costing Method` field will be set
|
||||
to `Standard Price` by default, and the :guilabel:`Inventory Valuation` field will be set to
|
||||
`Manual`.
|
||||
is reflected inside each product category, where the :guilabel:`Costing Method` field will be set to
|
||||
`Standard Price` by default, and the :guilabel:`Inventory Valuation` field will be set to `Manual`.
|
||||
|
||||
.. image:: inventory_valuation_config/inventory-valuation-fields.png
|
||||
:align: center
|
||||
@@ -32,72 +31,85 @@ between locations in a company's inventory.
|
||||
.. _inventory/inventory_valuation_config/accounting:
|
||||
|
||||
Types of accounting
|
||||
-------------------
|
||||
===================
|
||||
|
||||
Accounting entries will depend on the accounting mode: *Continental* or *Anglo-Saxon*.
|
||||
|
||||
.. tip::
|
||||
Verify the accounting mode by activating the :ref:`developer-mode` and navigating to
|
||||
:menuselection:`Accounting --> Configuration --> Settings`.
|
||||
:menuselection:`Accounting app --> Configuration --> Settings`.
|
||||
|
||||
Then, in the search bar, look for :guilabel:`Anglo-Saxon Accounting`, to see if the feature is
|
||||
enabled. If it is **not** enabled, Continental accounting mode is in use.
|
||||
|
||||
.. image:: inventory_valuation_config/anglo-saxon.png
|
||||
:align: center
|
||||
:alt: Show the Anglo-Saxon accounting mode feature.
|
||||
|
||||
In *Anglo-Saxon* accounting, the costs of goods sold (COGS) are reported when products are sold or
|
||||
delivered. This means that the cost of a good is only recorded as an expense when a customer is
|
||||
invoiced for a product. *Interim Stock Accounts* are used for the input and output accounts, and are
|
||||
both *Asset Accounts* in the balance sheet.
|
||||
invoiced for a product. So for **manual** valuation method, set the :guilabel:`Expense Account` to
|
||||
`Stock Valuation` for the current asset type; for **automatic** valuation method, set the the
|
||||
:guilabel:`Expense Account` to an *Expenses* or a *Cost of Revenue* type (e.g. `Cost of Production`,
|
||||
`Cost of Goods Sold`, etc.).
|
||||
|
||||
In *Continental* accounting, the cost of a good is reported as soon as a product is received into
|
||||
stock. Additionally, a single *Expense* account is used for both input and output accounts in
|
||||
the balance sheet.
|
||||
stock. Because of this, the :guilabel:`Expense Account` can be set to **either** *Expenses* or a
|
||||
*Cost of Revenue* type, however, it is more commonly set to an *Expenses* account.
|
||||
|
||||
.. _inventory/inventory_valuation_config/costing_methods:
|
||||
.. seealso::
|
||||
:ref:`Details about configuring Expense and Stock accounts
|
||||
<inventory/management/config-inventory-valuation>`
|
||||
|
||||
Costing methods
|
||||
---------------
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Below are the three costing methods that can be used in Odoo for inventory valuation.
|
||||
|
||||
- **Standard Price**: is the default costing method in Odoo. The cost of the product is manually
|
||||
defined on the product form, and this cost is used to compute the valuation. Even if the purchase
|
||||
price on a purchase order differs, the valuation will still use the cost defined on the product
|
||||
form.
|
||||
- **Average Cost (AVCO)**: calculates the valuation of a product based on the average cost of that
|
||||
product, divided by the total number of available stock on-hand. With this costing method,
|
||||
inventory valuation is *dynamic*, and constantly adjusts based on the purchase price of products.
|
||||
- **First In First Out (FIFO)**: tracks the costs of incoming and outgoing items in real-time and
|
||||
uses the real price of the products to change the valuation. The oldest purchase price is used as
|
||||
the cost for the next good sold until an entire lot of that product is sold. When the next
|
||||
inventory lot moves up in the queue, an updated product cost is used based on the valuation of
|
||||
that specific lot. This method is arguably the most accurate inventory valuation method for a
|
||||
variety of reasons, however, it's highly sensitive to input data and human error.
|
||||
|
||||
.. warning::
|
||||
Changing the costing method greatly impacts inventory valuation. It's highly recommended to
|
||||
consult an accountant first before making any adjustments here.
|
||||
|
||||
Configure automated inventory valuation in Odoo
|
||||
-----------------------------------------------
|
||||
|
||||
Make changes to inventory valuation options by navigating to :menuselection:`Inventory -->
|
||||
Configuration --> Product Categories`, and choose the category/categories where the automated
|
||||
valuation method should apply.
|
||||
Make changes to inventory valuation options by navigating to :menuselection:`Inventory app -->
|
||||
Configuration --> Product Categories`. In the :guilabel:`Inventory Valuation` section, select the
|
||||
desired :guilabel:`Costing Method` and :guilabel:`Inventory Valuation` options.
|
||||
|
||||
.. note::
|
||||
It is possible to use different valuation settings for different product categories.
|
||||
|
||||
Under the :guilabel:`Inventory Valuation` heading are two labels: :guilabel:`Costing Method` and
|
||||
:guilabel:`Inventory Valuation`. Pick the desired :guilabel:`Costing Method` using the drop-down
|
||||
menu (e.g. :guilabel:`Standard`, :guilabel:`Average Cost (AVCO)`, or :guilabel:`First In First Out
|
||||
(FIFO)`) and switch the :guilabel:`Inventory Valuation` to :guilabel:`Automated`.
|
||||
.. image:: inventory_valuation_config/config-inventory-valuation.png
|
||||
:align: center
|
||||
:alt: Show inventory valuation configuration options.
|
||||
|
||||
.. _inventory/inventory_valuation_config/costing_methods:
|
||||
|
||||
Costing method
|
||||
--------------
|
||||
|
||||
From the product category's configuration page, choose the desired :guilabel:`Costing Method`:
|
||||
|
||||
- :guilabel:`Standard Price`: the default costing method in Odoo. The cost of the product is
|
||||
manually defined on the product form, and this cost is used to compute the valuation. Even if the
|
||||
purchase price on a purchase order differs, the valuation will still use the cost defined on the
|
||||
product form.
|
||||
- :guilabel:`Average Cost (AVCO)`: calculates the valuation of a product based on the average cost
|
||||
of that product, divided by the total number of available stock on-hand. With this costing method,
|
||||
inventory valuation is *dynamic*, and constantly adjusts based on the purchase price of products.
|
||||
|
||||
.. note::
|
||||
When choosing :guilabel:`Average Cost (AVCO)` as the :guilabel:`Costing Method`, changing the
|
||||
numerical value in the :guilabel:`Cost` field for products in the respective product category
|
||||
creates a new record in the *Inventory Valuation* report to adjust the value of the product.
|
||||
The :guilabel:`Cost` amount will then automatically update based on the average purchase price
|
||||
both of inventory on hand and the costs accumulated from validated purchase orders.
|
||||
|
||||
- :guilabel:`First In First Out (FIFO)`: tracks the costs of incoming and outgoing items in
|
||||
real-time and uses the real price of the products to change the valuation. The oldest purchase
|
||||
price is used as the cost for the next good sold until an entire lot of that product is sold. When
|
||||
the next inventory lot moves up in the queue, an updated product cost is used based on the
|
||||
valuation of that specific lot. This method is arguably the most accurate inventory valuation
|
||||
method for a variety of reasons, however, it is highly sensitive to input data and human error.
|
||||
|
||||
.. warning::
|
||||
Changing the costing method greatly impacts inventory valuation. It is highly recommended to
|
||||
consult an accountant first before making any adjustments here.
|
||||
|
||||
.. seealso::
|
||||
:ref:`Using the inventory valuation<inventory/reporting/using_inventory_val>`
|
||||
|
||||
.. note::
|
||||
When choosing :guilabel:`Average Cost (AVCO)` as the :guilabel:`Costing Method`, changing the
|
||||
numerical value in the :guilabel:`Cost` field for products in the respective product category
|
||||
creates a new record in the *Inventory Valuation* report to adjust the value of the product. The
|
||||
:guilabel:`Cost` amount will then automatically update based on the average purchase price both
|
||||
of inventory on hand and the costs accumulated from validated purchase orders.
|
||||
:doc:`using_inventory_valuation`
|
||||
|
||||
When the :guilabel:`Costing Method` is changed, products already in stock that were using the
|
||||
:guilabel:`Standard` costing method **do not** change value; rather, the existing units keep their
|
||||
@@ -105,12 +117,89 @@ value, and any product moves from then on affect the average cost, and the cost
|
||||
change. If the value in the :guilabel:`Cost` field on a product form is changed manually, Odoo will
|
||||
generate a corresponding record in the *Inventory Valuation* report.
|
||||
|
||||
On the same screen, the :guilabel:`Account Stock Properties` fields will appear, as they are now
|
||||
required fields given the change to automated inventory valuation. These accounts are defined as
|
||||
follows:
|
||||
.. _inventory/management/config-inventory-valuation:
|
||||
|
||||
Inventory valuation
|
||||
-------------------
|
||||
|
||||
Inventory valuation in Odoo can be set to be updated manually or automatically. While *Expense*
|
||||
accounts apply to both, the *Stock Input* and *Stock Output* accounts are only used for automated
|
||||
valuation.
|
||||
|
||||
Refer to the :ref:`Expense <inventory/management/expense-account>` and :ref:`Stock input/output
|
||||
<inventory/management/stock-account>` sections for details on configuring each account type.
|
||||
|
||||
.. _inventory/management/expense-account:
|
||||
|
||||
Expense account
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
To configure the *expense account*, go to the :guilabel:`Account Properties` section of the intended
|
||||
product category (:menuselection:`Inventory app --> Configuration --> Product Categories`). Then,
|
||||
choose an existing account from the :guilabel:`Expense Account` drop-down menu.
|
||||
|
||||
To ensure the chosen account is the correct :guilabel:`Type,` click the |external link| icon to the
|
||||
right of the account. Then, set the account type based on the information below.
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Anglo-Saxon
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Automated
|
||||
|
||||
In Anglo-Saxon accounting for automated inventory valuation, set the :guilabel:`Expense
|
||||
Account` to the `Expenses` account. Then, click the |external link| icon to the right of
|
||||
the account.
|
||||
|
||||
In the pop-up window, choose :guilabel:`Expenses` or :guilabel:`Cost of Revenue` from
|
||||
the :guilabel:`Type` drop-down menu.
|
||||
|
||||
.. image:: inventory_valuation_config/external-link.png
|
||||
:align: center
|
||||
:alt: Show **Expense Account** field, and external link icon.
|
||||
|
||||
.. group-tab:: Manual
|
||||
|
||||
To configure the :guilabel:`Expense Account`, choose :guilabel:`Stock Valuation` from
|
||||
the field's drop-down menu. Verify the account's type by clicking the |external link|
|
||||
icon, and then ensure the :guilabel:`Type` is :guilabel:`Current Assets`.
|
||||
|
||||
.. image:: inventory_valuation_config/manual-anglo-saxon-expense.png
|
||||
:align: center
|
||||
:alt: Show the **Expense Account** field.
|
||||
|
||||
.. group-tab:: Continental
|
||||
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Automated
|
||||
|
||||
Set the :guilabel:`Expense Account` to the :guilabel:`Expenses` or :guilabel:`Cost of
|
||||
Revenue` account type.
|
||||
|
||||
.. group-tab:: Manual
|
||||
|
||||
Set the :guilabel:`Expense Account` to the :guilabel:`Expenses` or :guilabel:`Cost of
|
||||
Revenue` account type.
|
||||
|
||||
.. _inventory/management/stock-account:
|
||||
|
||||
Stock input/output (automated only)
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To configure the :guilabel:`Stock Input Account` and :guilabel:`Stock Output Account`, go to
|
||||
:menuselection:`Inventory app --> Configuration --> Product Categories` and select the desired
|
||||
product category.
|
||||
|
||||
In the :guilabel:`Inventory Valuation` field, select :guilabel:`Automated`. Doing so makes the
|
||||
:guilabel:`Account Stock Properties` section appear. These accounts are defined as follows:
|
||||
|
||||
- :guilabel:`Stock Valuation Account`: when automated inventory valuation is enabled on a product,
|
||||
this account will hold the current value of the products.
|
||||
- :guilabel:`Stock Journal`: accounting journal where entries are automatically posted when a
|
||||
product's inventory valuation changes.
|
||||
- :guilabel:`Stock Input Account`: counterpart journal items for all incoming stock moves will be
|
||||
posted in this account, unless there is a specific valuation account set on the source location.
|
||||
This is the default value for all products in a given category, and can also be set directly on
|
||||
@@ -120,13 +209,52 @@ follows:
|
||||
location. This is the default value for all products in a given category, and can also be set
|
||||
directly on each product.
|
||||
|
||||
Access reporting data generated by inventory valuation
|
||||
------------------------------------------------------
|
||||
.. tabs::
|
||||
|
||||
.. group-tab:: Anglo-Saxon
|
||||
|
||||
In Anglo-Saxon accounting, the :guilabel:`Stock Input Account` and :guilabel:`Stock Output
|
||||
Account` are set to *different* :guilabel:`Current Assets` accounts. This way, delivering
|
||||
products and invoicing the customer balance the *Stock Output* account, while receiving
|
||||
products and billing vendors balance the *Stock Input* account.
|
||||
|
||||
To modify the account type, go to the click the |external link| icon to the right of the stock
|
||||
input/output account. In the pop-up window, choose :guilabel:`Current Assets` from the
|
||||
:guilabel:`Type` drop-down menu.
|
||||
|
||||
.. figure:: inventory_valuation_config/account-type.png
|
||||
:align: center
|
||||
:alt: Display account setup page, highlighting the **Type** field.
|
||||
|
||||
The *Stock Input* account is set to `Stock Interim (Received)`, a *Current Asset* account
|
||||
type.
|
||||
|
||||
.. group-tab:: Continental
|
||||
|
||||
In Continental accounting, the :guilabel:`Stock Input Account` and :guilabel:`Stock Output
|
||||
Account` are set to **the same** :guilabel:`Current Assets` account. That way, one account can
|
||||
be balanced when items are bought and sold.
|
||||
|
||||
.. example::
|
||||
The stock input and output accounts are both set to `Stock Interim (Received)`, a
|
||||
:guilabel:`Current Assets` account type. They can also be set to the `Stock Interim
|
||||
(Delivered)`, as long as the input and output accounts are assigned to the **same**
|
||||
account.
|
||||
|
||||
.. image:: inventory_valuation_config/continental-stock-account.png
|
||||
:align: center
|
||||
:alt: Show the Stock Input and Output accounts.
|
||||
|
||||
Inventory valuation reporting
|
||||
=============================
|
||||
|
||||
To start, go to :menuselection:`Accounting --> Reporting --> Balance Sheet`. At the top of the
|
||||
dashboard, change the :guilabel:`As of` field value to :guilabel:`Today`, and adjust the filtering
|
||||
:guilabel:`Options` to :guilabel:`Unfold All` in order to see all of the latest data displayed,
|
||||
all at once.
|
||||
:guilabel:`Options` to :guilabel:`Unfold All` in order to see all of the latest data displayed, all
|
||||
at once.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../../../../finance/accounting/get_started/cheat_sheet`
|
||||
|
||||
Under the parent :guilabel:`Current Assets` line item, look for the nested :guilabel:`Stock
|
||||
Valuation Account` line item, where the total valuation of all of the inventory on hand is
|
||||
|
||||
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 8.1 KiB |
|
After Width: | Height: | Size: 6.2 KiB |
|
After Width: | Height: | Size: 5.5 KiB |
@@ -2,8 +2,6 @@
|
||||
Using inventory valuation
|
||||
=========================
|
||||
|
||||
.. _inventory/reporting/using_inventory_val:
|
||||
|
||||
*Inventory valuation* is a quintessential accounting procedure that calculates the value of on-hand
|
||||
stock. Once determined, the inventory valuation amount is then incorporated into a company's overall
|
||||
value.
|
||||
@@ -12,7 +10,7 @@ In Odoo, this process can be conducted manually— by warehouse employees physic
|
||||
products— or automatically through the database.
|
||||
|
||||
.. seealso::
|
||||
:ref:`Inventory valuation configuration<inventory/inventory_valuation_config>`
|
||||
:doc:`inventory_valuation_config`
|
||||
|
||||
Understand the basics of inventory valuation
|
||||
============================================
|
||||
|
||||
@@ -10,5 +10,6 @@ Shipping Setup
|
||||
|
||||
setup/delivery_method
|
||||
setup/third_party_shipper
|
||||
setup/bpost
|
||||
setup/ups_credentials
|
||||
setup/dhl_credentials
|
||||
|
||||
@@ -0,0 +1,110 @@
|
||||
=================
|
||||
Bpost integration
|
||||
=================
|
||||
|
||||
Set up the *Bpost* shipping connector in Odoo to manage Bpost shipments to clients directly within
|
||||
Odoo. To configure it, complete these steps:
|
||||
|
||||
#. Create a Bpost account.
|
||||
#. Get the :ref:`Account ID and passphrase <inventory/shipping/Bpost-account>`.
|
||||
#. Set up the shipping method in Odoo.
|
||||
|
||||
Upon completion, it is possible to calculate the cost of shipping, based on package size and weight,
|
||||
have the charges applied directly to a Bpost business account, and automatically print Bpost
|
||||
tracking labels through Odoo.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`third_party_shipper`
|
||||
- :doc:`delivery_method`
|
||||
- :doc:`dhl_credentials`
|
||||
- :doc:`ups_credentials`
|
||||
|
||||
Bpost account setup
|
||||
===================
|
||||
|
||||
To begin, go to the `Bpost website <https://parcel.bpost.be/en/home/business>`_ to create, or log
|
||||
into, the company's Bpost business account. When creating the Bpost account, have the company's VAT
|
||||
number and mobile phone number ready.
|
||||
|
||||
Follow the website's steps to complete registration, and sign up for shipping services. Doing so
|
||||
submits a request to enter a contractual business relationship between the company and Bpost.
|
||||
|
||||
.. important::
|
||||
Odoo **cannot** be integrated with `non-business Bpost
|
||||
<https://bpost.freshdesk.com/support/solutions/articles/174847-account-id-and-passphrase>`_
|
||||
accounts.
|
||||
|
||||
After completing the setup, get the Bpost account ID and passphrase, by navigating to the
|
||||
:guilabel:`Shipping Manager` menu item.
|
||||
|
||||
.. _inventory/shipping/bpost-account:
|
||||
|
||||
On the :guilabel:`Shipping Manager` page, go to the :guilabel:`Admin` tab, then the
|
||||
:guilabel:`General Settings` tab, to find the :guilabel:`Account ID` and :guilabel:`Passphrase`
|
||||
needed to configure Odoo's shipping method.
|
||||
|
||||
.. image:: bpost/credentials.png
|
||||
:align: center
|
||||
:alt: In the *Admin* tab, show the Account ID and Passphrase.
|
||||
|
||||
Configure Bpost shipping method
|
||||
===============================
|
||||
|
||||
With those necessary credentials, configure the Bpost shipping method in Odoo by going to
|
||||
:menuselection:`Inventory app --> Configuration --> Shipping Methods`.
|
||||
|
||||
On the :guilabel:`Shipping Methods` page, click :guilabel:`Create`.
|
||||
|
||||
In the :guilabel:`Provider` field, select :guilabel:`Bpost` from the drop-down menu. Doing so
|
||||
reveals the :guilabel:`Bpost Configuration` tab at the bottom of the form, where the Bpost
|
||||
credentials can be entered.
|
||||
|
||||
For details on configuring the other fields on the shipping method, such as :guilabel:`Delivery
|
||||
Product`, refer to the :doc:`Configure third-party carrier <third_party_shipper>` documentation.
|
||||
|
||||
.. note::
|
||||
To generate Bpost :doc:`shipping labels <../operation/labels>` through Odoo, ensure the
|
||||
:guilabel:`Integration Level` option is set to :guilabel:`Get Rate and Create Shipment`.
|
||||
|
||||
In the :guilabel:`Bpost Configuration` tab, complete the following fields:
|
||||
|
||||
- :guilabel:`Bpost Account Number` (required field): enter the company's unique :ref:`account ID
|
||||
<inventory/shipping/bpost-account>` from the Bpost website.
|
||||
- :guilabel:`Passphrase` (required field): enter the :ref:`passphrase
|
||||
<inventory/shipping/bpost-account>` from the Bpost website.
|
||||
- :guilabel:`Bpost Delivery Nature`: select either :guilabel:`Domestic` or :guilabel:`International`
|
||||
shipping services. Choosing :guilabel:`Domestic` shows the :guilabel:`Options` section, while
|
||||
:guilabel:`International` enables the :guilabel:`Bpost Shipment Type` and :guilabel:`Bpost Parcel
|
||||
Return Instructions` fields.
|
||||
- :guilabel:`Bpost Package Type`: select the type of shipping service from the drop-down menu.
|
||||
|
||||
For `domestic delivery
|
||||
<https://help.shipmondo.com/en/articles/6092265-bpost-belgium-parcel-types-and-requirements>`_,
|
||||
the options are: :guilabel:`bpack 24h Pro`, :guilabel:`bpack 24h business`, or :guilabel:`bpack
|
||||
Bus`.
|
||||
|
||||
For `international delivery <https://www.bpost.be/en/business-parcels-send/international>`_, the
|
||||
options are: :guilabel:`bpack World Express Pro`, :guilabel:`bpack World Business`, or
|
||||
:guilabel:`bpack Europe Business`.
|
||||
- :guilabel:`Bpost Shipment Type` (required field): for international deliveries, declare the type
|
||||
of goods in the package as :guilabel:`SAMPLE`, :guilabel:`GIFT`, :guilabel:`GOODS`,
|
||||
:guilabel:`DOCUMENTS`, or :guilabel:`OTHER`.
|
||||
- :guilabel:`Bpost Parcel Return Address`: return address when an international shipment fails to
|
||||
deliver. Select from the drop-down menu: :guilabel:`Destroy`, :guilabel:`Return to sender by air`,
|
||||
or :guilabel:`Return to sender by road`.
|
||||
- :guilabel:`Label Type`: choose :guilabel:`A6` or :guilabel:`A4` label sizes from the drop-down
|
||||
menu.
|
||||
- :guilabel:`Label Format`: choose :guilabel:`PDF` or :guilabel:`PNG` from the drop-down menu.
|
||||
|
||||
For domestic deliveries, these features are available in the :guilabel:`Options` section:
|
||||
|
||||
- Enable the :guilabel:`Delivery on Saturday` feature to include Saturdays as possible delivery
|
||||
dates. Depending on the :guilabel:`Bpost Package Type` selected, this option might incur
|
||||
additional costs to the company.
|
||||
- Enable the :guilabel:`Generate Return Label` feature to automatically print a return label upon
|
||||
validating the delivery order.
|
||||
|
||||
.. image:: bpost/bpost.png
|
||||
:align: center
|
||||
:alt: Show Bpost shipping method.
|
||||
|
||||
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 15 KiB |
@@ -3,8 +3,8 @@ SMS essentials
|
||||
==============
|
||||
|
||||
Utilizing :abbr:`SMS (Short Message Service)` outreach in communication strategies can help
|
||||
companies expand their market reach, especially in some countries, where emails might not be very
|
||||
common, or even used at all.
|
||||
companies expand their market reach, especially in countries where emails might not be common, or
|
||||
even used at all.
|
||||
|
||||
Odoo's *SMS Marketing* application can also help boost conversion rates around valuable actions,
|
||||
such as event registrations, free trials, purchases, etc., since text and mobile-based marketing
|
||||
@@ -58,26 +58,25 @@ will be sent. By default, Odoo has :guilabel:`Mailing List` selected. If this is
|
||||
|
||||
.. note::
|
||||
To create (or edit) a mailing list, go to :menuselection:`Mailing Lists --> Mailing List`. There,
|
||||
Odoo displays all previously created mailing lists, along with various types of data related to
|
||||
Odoo displays all previously-created mailing lists, along with various types of data related to
|
||||
that specific list (e.g. number of contacts, mailings, recipients, etc.).
|
||||
|
||||
To learn more about mailing lists and contacts, check out
|
||||
:doc:`mailing_lists_blacklists`
|
||||
To learn more about mailing lists and contacts, check out :doc:`mailing_lists_blacklists`.
|
||||
|
||||
.. image:: sms_essentials/sms-mailing-list.png
|
||||
:align: center
|
||||
:alt: View of the mailing list page in the SMS marketing application.
|
||||
|
||||
To reveal all the possible options in the :guilabel:`Recipients` field, click the field to see all
|
||||
the choices Odoo makes avaialble.
|
||||
the choices Odoo makes available.
|
||||
|
||||
When another field (other than :guilabel:`Mailing List`) is selected, the option to specify that
|
||||
chosen field even further becomes available — either with a default recipient filter equation that
|
||||
appears automatically (which can be customized to fit any business need), or, if no default
|
||||
recipient filter equation is present, an :guilabel:`Add Filter` button will appear.
|
||||
recipient filter equation is present, an :guilabel:`Add Filter` button appears.
|
||||
|
||||
Clicking the :guilabel:`Add Filter` button, reveals fully customizable domain rule fields, which can
|
||||
be configured similar to an equation. You can create multiple recipient rules, if necessary.
|
||||
Clicking the :guilabel:`Add Filter` button reveals fully customizable domain rule fields, which can
|
||||
be configured similar to an equation. Multiple recipient rules can be created, if necessary.
|
||||
|
||||
Then, Odoo will only send the :abbr:`SMS (Short Message Service)` to recipients who fit into
|
||||
whatever criteria is configured in those fields. Multiple rules can be added.
|
||||
@@ -176,6 +175,34 @@ is visualized as different graphs and charts, which can be sorted and grouped in
|
||||
:align: center
|
||||
:alt: Reporting page in SMS Marketing.
|
||||
|
||||
.. tip::
|
||||
SMS messages can be sent using server actions in Odoo. To do so, in :ref:`developer mode
|
||||
<developer-mode>`, navigate to :menuselection:`Settings app --> Technical menu --> Automation
|
||||
section --> Automated Actions`. Then, click :guilabel:`Create` to create a new action.
|
||||
|
||||
Enter an :guilabel:`Action Name` and select a :guilabel:`Model` to implement this action on. Set
|
||||
the :guilabel:`Trigger` to either :guilabel:`On Creation`, :guilabel:`On Update`, :guilabel:`On
|
||||
Creation & Update`, :guilabel:`On Deletion`, :guilabel:`Based on Form Modification`, or
|
||||
:guilabel:`Based on Timed Condition`.
|
||||
|
||||
Based on the selection for the :guilabel:`Trigger`, additional fields may populate.
|
||||
|
||||
Under the :guilabel:`Apply on` field a record filter using a domain can be created. Ensure a
|
||||
model has been selected before setting any domains on the :guilabel:`Apply on` field. Click
|
||||
:guilabel:`Edit Domain` to set record parameters.
|
||||
|
||||
Under :guilabel:`Action To Do` drop-down field, select :guilabel:`Send SMS Text Message`. Next,
|
||||
set the :guilabel:`SMS Template`, and choose whether the SMS message should be logged as a note,
|
||||
by ticking the box next to :guilabel:`Log as Note`.
|
||||
|
||||
.. image:: sms_essentials/automated-action-sms.png
|
||||
:align: center
|
||||
:alt: Automated action template with action to do, SMS template and log as note highlighted.
|
||||
|
||||
Ensure the :guilabel:`Active` toggle is set to *on* for the automated action to run.
|
||||
:guilabel:`Save` the completed automated action to implement the change.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`sms_campaign_settings`
|
||||
- :doc:`mailing_lists_blacklists`
|
||||
- :doc:`../../../essentials/in_app_purchase`
|
||||
|
||||
|
After Width: | Height: | Size: 15 KiB |
@@ -9,9 +9,9 @@ Odoo VoIP (Voice over Internet Protocol) can be set up to work together with `Ax
|
||||
<https://www.axivox.com/>`_. In that case, an Asterisk server is **not** necessary, as the
|
||||
infrastructure is hosted and managed by Axivox.
|
||||
|
||||
To use this service, `contact Axivox <https://www.axivox.com/contact/>`_ to open an account. Before
|
||||
doing so, verify that Axivox covers the company's area, along with the areas the company's users
|
||||
wish to call.
|
||||
To use this service, `contact Axivox <https://www.axivox.com/en/contact/>`_ to open an account.
|
||||
Before doing so, verify that Axivox covers the company's area, along with the areas the company's
|
||||
users wish to call.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
@@ -1,48 +1,83 @@
|
||||
===================================================
|
||||
Enrich your contacts base with Partner Autocomplete
|
||||
===================================================
|
||||
=========================================
|
||||
Enrich contacts with partner autocomplete
|
||||
=========================================
|
||||
|
||||
Parter Autocomplete helps you to enrich your contacts database with corporate data. Select one of
|
||||
the companies suggested in the dropdown, and quickly get all the information you need.
|
||||
*Partner autocomplete* enriches the contacts database with corporate data. In any module, enter the
|
||||
new company name into the :guilabel:`Customer` field (`partner_id` technical field), and select one
|
||||
of the companies suggested in the drop-down menu. Instantly get valuable company information full of
|
||||
hard-to-find data for a desired company.
|
||||
|
||||
.. important::
|
||||
A company **cannot** already be manually entered in the *Contacts* application prior to enriching
|
||||
it with data.
|
||||
|
||||
The information provided by partner autocomplete can include general information about the business
|
||||
(including full business name and logo), social media accounts, :guilabel:`Company type`,
|
||||
:guilabel:`Founded` information, :guilabel:`Sectors` information, the number of
|
||||
:guilabel:`Employees`, :guilabel:`Estimated revenue`, :guilabel:`Phone` number,
|
||||
:guilabel:`Timezone`, and :guilabel:`Technologies Used`.
|
||||
|
||||
.. important::
|
||||
When getting a company's contact information make sure to be aware of the latest EU regulations.
|
||||
For more information about General Data Protection Regulation refer to: `Odoo GDPR
|
||||
<http://odoo.com/gdpr>`_. In Odoo, individual contact information cannot be searched for with
|
||||
the partner autocomplete feature.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Go to :menuselection:`Settings --> Contacts` and activate the *Partner Autocomplete* feature.
|
||||
Go to :menuselection:`Settings app --> Contacts section`. Then, activate the :guilabel:`Partner
|
||||
Autocomplete` feature, by ticking the checkbox beside it, and clicking :guilabel:`Save`.
|
||||
|
||||
.. image:: partner_autocomplete/settings_partner_autocomplete.png
|
||||
.. image:: partner_autocomplete/settings-partner-autocomplete.png
|
||||
:align: center
|
||||
:alt: View of settings page and the activations of the feature in Odoo
|
||||
:alt: View of settings page and the activations of the feature in Odoo.
|
||||
|
||||
Enrich your contacts with corporate data
|
||||
========================================
|
||||
Enrich contacts with corporate data
|
||||
===================================
|
||||
|
||||
| From any module, once you start to create a new contact typing the name of it, the system
|
||||
will suggest a potential match. If you select it, the contact will be populated with corporate
|
||||
data.
|
||||
| For example, after typing *Odoo*, you will get the following information:
|
||||
From any module, as the user is typing in the name of a new company contact, Odoo reveals a large
|
||||
drop-down menu of potential match suggestions. If any are selected, the contact is then populated
|
||||
with corporate data related to that specific selection.
|
||||
|
||||
.. image:: partner_autocomplete/odoo_autocomplete.png
|
||||
For example, after typing `Odoo`, the following information populates:
|
||||
|
||||
.. image:: partner_autocomplete/odoo-autocomplete.png
|
||||
:align: center
|
||||
:alt: Creating a new contact in Odoo
|
||||
|
||||
.. image:: partner_autocomplete/odoo_info_autocomplete.png
|
||||
In the chatter, the following information populates about the company, after clicking on the desired
|
||||
pre-populated contact:
|
||||
|
||||
.. image:: partner_autocomplete/odoo-info-autocomplete.png
|
||||
:align: center
|
||||
:alt: View of the information being shown about odoo with the autocomplete option in Odoo
|
||||
|
||||
.. tip:: Partner Autocomplete also works if you enter a VAT number instead of a company name.
|
||||
.. tip::
|
||||
Partner Autocomplete also works if a :abbr:`VAT (value-added tax)` number is entered instead of
|
||||
company name.
|
||||
|
||||
Pricing
|
||||
=======
|
||||
|
||||
| *Partner Autocomplete* is an *In-App Purchase (IAP)* service, which requires prepaid credits to be
|
||||
used. Each request will consume one credit.
|
||||
| To buy credits, go to :menuselection:`Settings --> Contacts --> Partner Autocomplete or Odoo IAP -->
|
||||
View My Services` and select a package.
|
||||
*Partner Autocomplete* is an *In-App Purchase (IAP)* service, which requires prepaid credits to be
|
||||
used. Each request consumes one credit.
|
||||
|
||||
To buy credits, go to :menuselection:`Settings app --> Contacts section`. Then, locate either the
|
||||
:guilabel:`Partner Autocomplete` feature and click :guilabel:`Buy credits`, or locate the
|
||||
:guilabel:`Odoo IAP` feature and click :guilabel:`View My Services`. From the resulting page, select
|
||||
a desired package.
|
||||
|
||||
.. note::
|
||||
- If you run out of credits, the only information that will be populated when clicking on
|
||||
the suggested company will be the website link and the logo.
|
||||
- If you are on Odoo Online and you have the Enterprise version, you benefit from free trial
|
||||
credits to test the feature.
|
||||
- Learn about our *Privacy Policy* `here <https://iap.odoo.com/privacy#header_2>`_.
|
||||
If the database runs out of credits, the only information populated when clicking on the
|
||||
suggested company will be the website link and the logo.
|
||||
|
||||
Learn about our `Privacy Policy <https://iap.odoo.com/privacy>`_.
|
||||
|
||||
.. note::
|
||||
Enterprise Odoo users with a valid subscription get free credits to test :abbr:`IAP (In-App
|
||||
Purchase)` features before deciding to purchase more credits for the database. This includes
|
||||
demo/training databases, educational databases, and one-app-free databases.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../../../essentials/in_app_purchase`
|
||||
|
||||
|
After Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 9.3 KiB |
|
Before Width: | Height: | Size: 53 KiB |
@@ -30,5 +30,6 @@ and select a product to open the product form. In the :guilabel:`Sales` tab, ena
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
configuration/epos_printers
|
||||
configuration/https
|
||||
configuration/epos_ssc
|
||||
|
||||
@@ -0,0 +1,53 @@
|
||||
=============
|
||||
ePOS printers
|
||||
=============
|
||||
|
||||
ePOS printers are designed to work seamlessly with Point of Sale systems. Once connected, these
|
||||
devices automatically share information, allowing for direct printing of tickets from the POS system
|
||||
to the ePOS printer.
|
||||
|
||||
.. important::
|
||||
- Epson printers using Wi-Fi/Ethernet connections and following the `EPOS SDK Javascript protocol
|
||||
<https://download4.epson.biz/sec_pubs/pos/reference_en/technology/epson_epos_sdk.html>`_ are
|
||||
compatible with Odoo **without** needing an :doc:`IoT Box
|
||||
</applications/general/iot/devices/printer>`.
|
||||
- Thermal printers using ESC/POS or StarPRNT protocol are compatible **with** an :doc:`IoT Box
|
||||
</applications/general/iot/devices/printer>`.
|
||||
- Epson printers using only USB connections are compatible **with** an :doc:`IoT Box
|
||||
</applications/general/iot/devices/printer>`.
|
||||
- Epson printers that connect via Bluetooth are **not compatible**.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`https`
|
||||
- :doc:`epos_ssc`
|
||||
|
||||
Directly supported ePOS printers
|
||||
================================
|
||||
|
||||
The following ePOS printers are directly compatible with Odoo without needing an :doc:`IoT Box
|
||||
</applications/general/iot/devices/printer>`.
|
||||
|
||||
- Epson TM-m30 i/ii/iii (Wi-Fi/Ethernet models only; Recommended)
|
||||
- Epson TM-H6000IV-DT (Receipt printer only)
|
||||
- Epson TM-T70II-DT
|
||||
- Epson TM-T88V-DT
|
||||
- Epson TM-L90-i
|
||||
- Epson TM-T70-i
|
||||
- Epson TM-T82II-i
|
||||
- Epson TM-T83II-i
|
||||
- Epson TM-U220-i
|
||||
- Epson TM-m10
|
||||
- Epson TM-P20 (Wi-Fi® model)
|
||||
- Epson TM-P60II (Receipt: Wi-Fi® model)
|
||||
- Epson TM-P60II (Peeler: Wi-Fi® model)
|
||||
- Epson TM-P80 (Wi-Fi® model)
|
||||
|
||||
ePOS printers with IoT Box integration
|
||||
======================================
|
||||
|
||||
The following printers require an :doc:`IoT Box </applications/general/iot/devices/printer>` to be
|
||||
compatible with Odoo:
|
||||
|
||||
- Epson TM-T20 family (incompatible ePOS software)
|
||||
- Epson TM-T88 family (incompatible ePOS software)
|
||||
- Epson TM-U220 family (incompatible ePOS software)
|
||||
@@ -4,32 +4,7 @@
|
||||
Self-signed certificate for ePOS printers
|
||||
=========================================
|
||||
|
||||
ePOS printers are designed to work seamlessly with Point of Sale systems. Once connected, the two
|
||||
devices automatically share information, enabling the direct printing of tickets from the POS system
|
||||
to the ePOS printer.
|
||||
|
||||
.. note::
|
||||
These `Epson ePOS printers
|
||||
<https://c4b.epson-biz.com/modules/community/index.php?content_id=91>`_ are compatible with Odoo:
|
||||
|
||||
- TM-H6000IV-DT (Receipt printer only)
|
||||
- TM-T70II-DT
|
||||
- TM-T88V-DT
|
||||
- TM-L90-i
|
||||
- TM-T20II-i
|
||||
- TM-T70-i
|
||||
- TM-T82II-i
|
||||
- TM-T83II-i
|
||||
- TM-T88V-i
|
||||
- TM-U220-i
|
||||
- TM-m10
|
||||
- TM-m30
|
||||
- TM-P20 (Wi-Fi® model)
|
||||
- TM-P60II (Receipt: Wi-Fi® model)
|
||||
- TM-P60II (Peeler: Wi-Fi® model)
|
||||
- TM-P80 (Wi-Fi® model)
|
||||
|
||||
To work with Odoo, some models that can be used without an
|
||||
To work with Odoo, some printer models that can be used without an
|
||||
:doc:`IoT box </applications/general/iot/config/connect>` may require :doc:`the HTTPS protocol
|
||||
<https>` to establish a secure connection between the browser and the printer. However, trying to
|
||||
reach the printer's IP address using HTTPS leads to a warning page on most web browsers. In that
|
||||
|
||||
@@ -2,8 +2,8 @@
|
||||
Secure connection (HTTPS)
|
||||
=========================
|
||||
|
||||
If **Direct Devices** is enabled in a Point of Sale settings (for example, if you use an ePos
|
||||
printer), HTTP becomes the default protocol.
|
||||
If **Direct Devices** is enabled in a Point of Sale settings (for example, if you use an :doc:`ePos
|
||||
printer <epos_printers>`), HTTP becomes the default protocol.
|
||||
|
||||
Force your Point of Sale to use a secure connection (HTTPS)
|
||||
===========================================================
|
||||
|
||||
@@ -6,8 +6,8 @@ Connecting a payment terminal allows you to offer a fluid payment flow to your c
|
||||
the work of your cashiers.
|
||||
|
||||
.. important::
|
||||
- Worldline payment terminals require an :doc:`IoT Box </applications/general/iot>`.
|
||||
- Worldline is currently only available in Belgium, the Netherlands and Luxembourg.
|
||||
- Ingenico payment terminals require an :doc:`IoT Box </applications/general/iot>`.
|
||||
- Ingenico is currently only available in Belgium, the Netherlands and Luxembourg.
|
||||
- Odoo works with the Ingenico Lane/, Desk/, and Move/ payment terminals as they support the TLV
|
||||
communication protocol through TCP/IP.
|
||||
|
||||
@@ -17,21 +17,22 @@ Configuration
|
||||
Connect an IoT Box
|
||||
------------------
|
||||
|
||||
Connecting an Ingenico Payment Terminal to Odoo is a feature that
|
||||
requires an IoT Box. For more information on how to connect an IoT Box
|
||||
to your database, please refer to the :doc:`IoT documentation
|
||||
</applications/general/iot/config/connect>`.
|
||||
Connecting an Ingenico payment terminal to Odoo is a feature that requires an IoT Box. For more
|
||||
information on how to connect an IoT Box to your database, please refer to the :doc:`IoT
|
||||
documentation </applications/general/iot/config/connect>`.
|
||||
|
||||
Configure the Lane/5000 for Ingenico BENELUX
|
||||
--------------------------------------------
|
||||
Configure the Lane/Desk/Move 5000 terminals for Ingenico BENELUX
|
||||
----------------------------------------------------------------
|
||||
|
||||
Click on the F button of the terminal, then go in the
|
||||
:menuselection:`PoS Menu --> Settings` and enter the settings password.
|
||||
#. Press the function button (:guilabel:`F` on Lane/5000, :guilabel:`⦿` on Desk/5000 and
|
||||
Move/5000).
|
||||
#. Go to :menuselection:`Kassa menu --> Settings Menu` and enter the settings password.
|
||||
#. Select :guilabel:`Change Connection` and press :guilabel:`OK` on the next screen.
|
||||
#. Select :guilabel:`TCP/IP` and :guilabel:`IP-address`.
|
||||
#. On the next screen, enter the IP address of your IoT Box.
|
||||
#. Enter `9000` as port number and press :guilabel:`OK` on the next screen.
|
||||
|
||||
Now, click on connection change and TCP/IP. Type the IP of your *IoT
|
||||
Box* (you can find it on the form view of your IoT Box). Then, enter
|
||||
9000 as port. The terminal will restart. Once it is done, go on your
|
||||
*IoT Box* form in Odoo and verify that the terminal has been found.
|
||||
At this point, the terminal restarts and should be displayed in your IoT Box form in Odoo.
|
||||
|
||||
.. image:: ingenico/payment_terminal_02.png
|
||||
:align: center
|
||||
|
||||
@@ -6,8 +6,8 @@ Connecting a Vantiv payment terminal allows you to offer a fluid payment flow to
|
||||
ease the work of your cashiers.
|
||||
|
||||
.. note::
|
||||
Please note MercuryPay only operates with US and Canadian banks, making
|
||||
this procedure only suitable for North American businesses.
|
||||
Please note MercuryPay only operates with US and Canadian banks, making this procedure only
|
||||
suitable for North American businesses.
|
||||
|
||||
.. warning::
|
||||
Vantiv card readers should be purchased exclusively from Vantiv, as certain Vantiv terminals
|
||||
@@ -16,35 +16,30 @@ ease the work of your cashiers.
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Configure the Payment Method
|
||||
Configure the payment method
|
||||
----------------------------
|
||||
|
||||
First, go in the general settings of the POS app, and activate the
|
||||
Vantiv setting.
|
||||
Enable the payment terminal in the :guilabel:`Payment Terminals` section :ref:`of the application
|
||||
settings <configuration/settings>`.
|
||||
|
||||
.. image:: vantiv/vantiv_01.png
|
||||
:align: center
|
||||
Then, go to :menuselection:`Point of Sale --> Configuration --> Payment Methods`, and :doc:`create
|
||||
the related payment method <../../payment_methods>`. Set the journal type as :guilabel:`Bank` and
|
||||
select :guilabel:`Vantiv` in the :guilabel:`Use a Payment Terminal` field.
|
||||
|
||||
Back in :menuselection:`Point of Sale --> Configuration --> Point of Sale`, go in the
|
||||
payments section and access your payment methods. Create a new payment
|
||||
method for Vantiv, select the payment terminal option Vantiv, and create
|
||||
new Vantiv credentials.
|
||||
Type the name you want to give to your :guilabel:`Vantiv Credentials` and click :guilabel:`Create
|
||||
and edit`. Enter your :guilabel:`Merchant ID` and :guilabel:`Merchant Password`, then click
|
||||
:guilabel:`Save & Close`.
|
||||
|
||||
.. image:: vantiv/vantiv_02.png
|
||||
:align: center
|
||||
.. image:: vantiv/vantiv-method.png
|
||||
:alt: Vantiv payment method
|
||||
|
||||
To create new Vantiv credentials, fill in your merchant ID and password,
|
||||
then save. Make sure the credentials you just created are selected, then
|
||||
save the payment method.
|
||||
Once the payment method is created, you can select it in your POS settings. To do so, go to the
|
||||
:ref:`POS' settings <configuration/settings>`, click :guilabel:`Edit`, and add the payment method
|
||||
under the :guilabel:`Payments` section.
|
||||
|
||||
.. image:: vantiv/vantiv_03.png
|
||||
:align: center
|
||||
|
||||
Pay with a Payment Terminal
|
||||
Pay with a payment terminal
|
||||
===========================
|
||||
|
||||
In your PoS interface, at the moment of the payment, select your Vantiv
|
||||
payment method and… that’s all.
|
||||
|
||||
.. image:: vantiv/vantiv_04.png
|
||||
:align: center
|
||||
When processing a payment, select the related payment method. Check the amount and click on
|
||||
:guilabel:`Send`. Once the payment is successful, the status changes to :guilabel:`Payment
|
||||
Successful`.
|
||||
|
||||
|
After Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 82 KiB |
|
Before Width: | Height: | Size: 15 KiB |
@@ -19,6 +19,7 @@ Receipt Printing` setting.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`restaurant/bill_printing`
|
||||
- :doc:`configuration/epos_printers`
|
||||
|
||||
Reprint a receipt
|
||||
-----------------
|
||||
|
||||
@@ -49,14 +49,21 @@ The connector is able to:
|
||||
downloading monthly fees reports, handling disputes, or issuing refunds must be managed from
|
||||
Amazon Seller Central, as usual.
|
||||
|
||||
.. warning::
|
||||
As of February 19, 2024, in North American marketplaces, :abbr:`FBA (Fulfilled by Amazon)` orders
|
||||
created with the *Amazon Connector*, do not get the customer's name passed onto the
|
||||
sales/delivery order in Odoo. This is due to the fact that Amazon now calculates, and remits,
|
||||
sales tax on behalf of sellers. In other words, personally identifiable customer information is
|
||||
not transmitted to the seller any longer, after a :abbr:`FBA (Fulfilled by Amazon)` order.
|
||||
|
||||
.. _amazon/supported-marketplaces:
|
||||
|
||||
Supported Marketplaces
|
||||
======================
|
||||
|
||||
The Amazon Connector currently supports 9 marketplaces.
|
||||
If a marketplace is not listed below, it may be possible for you to :ref:`add it as an unsupported
|
||||
marketplace <amazon/add-unsupported-marketplace>`.
|
||||
The *Amazon Connector* currently supports 9 marketplaces. If a marketplace is not listed below, it
|
||||
may be possible for you to :ref:`add it as an unsupported marketplace
|
||||
<amazon/add-unsupported-marketplace>`.
|
||||
|
||||
+-------------------------------+
|
||||
| **North America region** |
|
||||
|
||||
@@ -5,6 +5,9 @@ reCAPTCHA v3 on forms
|
||||
Google's reCAPTCHA protects website forms against spam and abuse. It attempts to distinguish between
|
||||
human and bot submissions.
|
||||
|
||||
.. warning::
|
||||
reCAPTCHA v3 may not be compliant with local data protection regulations.
|
||||
|
||||
.. note::
|
||||
reCAPTCHA v3 works in the background and does not interrupt visitors. However, if the check
|
||||
fails, visitors cannot submit the form.
|
||||
|
||||