Compare commits
94 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fc2e3310be | |||
| d07052aa57 | |||
| b89d3e56c2 | |||
| 8d87bfe462 | |||
| b72d340b3c | |||
| a197b6c57d | |||
| f0cf3c68ac | |||
| 1f31ba3f06 | |||
| 2f0d98c9f7 | |||
| 4210a31408 | |||
| 080dc64e54 | |||
| 95f8067ed5 | |||
| f453b2266f | |||
| d88b185c27 | |||
| 62a4db0c7d | |||
| de2999c01d | |||
| 494ae5a555 | |||
| 283c843eeb | |||
| b0cc13d4fe | |||
| 6016ed4e93 | |||
| 6c561112a8 | |||
| 7a8f551d67 | |||
| 67adf2fc3b | |||
| 6f3ca9f4a3 | |||
| d1836f349f | |||
| e765370016 | |||
| 15beccfd50 | |||
| cec2e1f322 | |||
| 9cb186f87b | |||
| 075eea9326 | |||
| b5507c4940 | |||
| 64fabeb801 | |||
| 6667e3ec35 | |||
| 7b917cd1c3 | |||
| 884c1b3126 | |||
| b339573354 | |||
| 668420655f | |||
| abb3589471 | |||
| 588801185a | |||
| 78d1f23686 | |||
| e72b21d734 | |||
| 5ff951e927 | |||
| 78b3ca7521 | |||
| 9e3cb9eeaf | |||
| 9115d5d7a4 | |||
| c5b4336b52 | |||
| 78d289c677 | |||
| 14a9073ac9 | |||
| 4eb1baa5c5 | |||
| a2fbef0bc9 | |||
| 0f8e20e0aa | |||
| dfc42d4b62 | |||
| 5bd89e30b9 | |||
| 35602b9f50 | |||
| 79fa32eb3d | |||
| 3905b642fa | |||
| 5b581c31a5 | |||
| 90fffd3039 | |||
| 6fb216f70d | |||
| d4eece9b5f | |||
| 52e107681a | |||
| be6f7e1662 | |||
| 28f9d0c02c | |||
| 643ec40050 | |||
| 629a2852b6 | |||
| 77c1f6ff95 | |||
| 045fb847e8 | |||
| b963e4c7f9 | |||
| 3a3a224b17 | |||
| 86bd9fd91b | |||
| 6935a84404 | |||
| 31387885d6 | |||
| f8dce88995 | |||
| 78d998f5fc | |||
| 3ef14b8254 | |||
| 6d219133e0 | |||
| 2a52e0979b | |||
| f72e7a25e0 | |||
| c21233db05 | |||
| 5d7abe69ac | |||
| f18c11cb41 | |||
| 8c4cb060f0 | |||
| 07e7787668 | |||
| d4b8665fe2 | |||
| 3e7c00af02 | |||
| eff6545537 | |||
| 41cdeab0fa | |||
| 630d4385f4 | |||
| 30b173ff25 | |||
| 620b50f9e2 | |||
| 7612732f7f | |||
| f08db8544a | |||
| de4795724b | |||
| 556b5c4bc3 |
@@ -330,7 +330,7 @@ in ``/etc/nginx/sites-enabled/odoo.conf`` set:
|
||||
proxy_pass http://odoochat;
|
||||
proxy_set_header Upgrade $http_upgrade;
|
||||
proxy_set_header Connection $connection_upgrade;
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
@@ -339,7 +339,7 @@ in ``/etc/nginx/sites-enabled/odoo.conf`` set:
|
||||
# Redirect requests to odoo backend server
|
||||
location / {
|
||||
# Add Headers for odoo proxy mode
|
||||
proxy_set_header X-Forwarded-Host $host;
|
||||
proxy_set_header X-Forwarded-Host $http_host;
|
||||
proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
|
||||
proxy_set_header X-Forwarded-Proto $scheme;
|
||||
proxy_set_header X-Real-IP $remote_addr;
|
||||
@@ -439,51 +439,71 @@ Odoo static files are located in each module's :file:`static/` folder, so static
|
||||
by intercepting all requests to :samp:`/{MODULE}/static/{FILE}`, and looking up the right module
|
||||
(and file) in the various addons paths.
|
||||
|
||||
.. example::
|
||||
Say Odoo has been installed via the **debian packages** for Community and Enterprise and the
|
||||
:option:`--addons-path <odoo-bin --addons-path>` is ``'/usr/lib/python3/dist-packages/odoo/addons'``.
|
||||
It is recommended to set the ``Content-Security-Policy: default-src 'none'`` header on all images
|
||||
delivered by the web server. It is not strictly necessary as users cannot modify/inject content
|
||||
inside of modules' :file:`static/` folder and existing images are final (they do not fetch new
|
||||
resources by themselves). However, it is good practice.
|
||||
|
||||
Using the above NGINX (https) configuration, the following location block should be added to
|
||||
serve static files via NGINX.
|
||||
Using the above NGINX (https) configuration, the following ``map`` and ``location`` blocks should be
|
||||
added to serve static files via NGINX.
|
||||
|
||||
.. code-block:: nginx
|
||||
.. code-block:: nginx
|
||||
|
||||
location @odoo {
|
||||
# copy-paste the content of the / location block
|
||||
}
|
||||
map $sent_http_content_type $content_type_csp {
|
||||
default "";
|
||||
~image/ "default-src 'none'";
|
||||
}
|
||||
|
||||
# Serve static files right away
|
||||
location ~ ^/[^/]+/static/.+$ {
|
||||
root /usr/lib/python3/dist-packages/odoo/addons;
|
||||
try_files $uri @odoo;
|
||||
expires 24h;
|
||||
}
|
||||
server {
|
||||
# the rest of the configuration
|
||||
|
||||
location @odoo {
|
||||
# copy-paste the content of the / location block
|
||||
}
|
||||
|
||||
# Serve static files right away
|
||||
location ~ ^/[^/]+/static/.+$ {
|
||||
# root and try_files both depend on your addons paths
|
||||
root ...;
|
||||
try_files ... @odoo;
|
||||
expires 24h;
|
||||
add_header Content-Security-Policy $content_type_csp;
|
||||
}
|
||||
}
|
||||
|
||||
The actual ``root`` and ``try_files`` directives are dependant on your installation, specifically on
|
||||
your :option:`--addons-path <odoo-bin --addons-path>`.
|
||||
|
||||
.. example::
|
||||
Say Odoo has been installed via the **source**. The two git repositories for Community and
|
||||
Enterprise have been cloned in :file:`/opt/odoo/community` and :file:`/opt/odoo/enterprise`
|
||||
respectively and the :option:`--addons-path <odoo-bin --addons-path>` is
|
||||
``'/opt/odoo/community/odoo/addons,/opt/odoo/community/addons,/opt/odoo/enterprise'``.
|
||||
|
||||
Using the above NGINX (https) configuration, the following location block should be added to
|
||||
serve static files via NGINX.
|
||||
.. tabs::
|
||||
|
||||
.. code-block:: nginx
|
||||
.. group-tab:: Debian package
|
||||
|
||||
location @odoo {
|
||||
# copy-paste the content of the / location block
|
||||
}
|
||||
Say Odoo has been installed via the **debian packages** for Community and Enterprise, and
|
||||
that the :option:`--addons-path <odoo-bin --addons-path>` is
|
||||
``'/usr/lib/python3/dist-packages/odoo/addons'``.
|
||||
|
||||
# Serve static files right away
|
||||
location ~ ^/[^/]+/static/.+$ {
|
||||
root /opt/odoo;
|
||||
try_files /community/odoo/addons$uri /community/addons$uri /enterprise$uri @odoo;
|
||||
expires 24h;
|
||||
}
|
||||
The ``root`` and ``try_files`` should be:
|
||||
|
||||
.. warning::
|
||||
The actual NGINX configuration you need is highly dependent on your own installation. The two
|
||||
above snippets only highlight two possible configurations and may not be used as-is.
|
||||
.. code-block:: nginx
|
||||
|
||||
root /usr/lib/python3/dist-packages/odoo/addons;
|
||||
try_files $uri @odoo;
|
||||
|
||||
.. group-tab:: Git sources
|
||||
|
||||
Say Odoo has been installed via the **sources**, that both the Community and Enterprise git
|
||||
repositories were cloned in :file:`/opt/odoo/community` and :file:`/opt/odoo/enterprise`
|
||||
respectively, and that the :option:`--addons-path <odoo-bin --addons-path>` is
|
||||
``'/opt/odoo/community/odoo/addons,/opt/odoo/community/addons,/opt/odoo/enterprise'``.
|
||||
|
||||
The ``root`` and ``try_files`` should be:
|
||||
|
||||
.. code-block:: nginx
|
||||
|
||||
root /opt/odoo;
|
||||
try_files /community/odoo/addons$uri /community/addons$uri /enterprise$uri @odoo;
|
||||
|
||||
Serving attachments
|
||||
-------------------
|
||||
|
||||
@@ -54,10 +54,10 @@ Odoo needs a `PostgreSQL <https://www.postgresql.org/>`_ server to run properly.
|
||||
$ sudo systemctl start postgresql
|
||||
|
||||
.. warning::
|
||||
`wkhtmltopdf` is not installed through **pip** and must be installed manually in `version 0.12.5
|
||||
<https://github.com/wkhtmltopdf/wkhtmltopdf/releases/tag/0.12.5>`_ for it to support headers and
|
||||
footers. Check out the `wkhtmltopdf wiki <https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_ for
|
||||
more details on the various versions.
|
||||
`wkhtmltopdf` is not installed through **pip** and must be installed manually in `version 0.12.6
|
||||
<https://github.com/wkhtmltopdf/packaging/releases/tag/0.12.6.1-3>`_ for it to support headers
|
||||
and footers. Check out the `wkhtmltopdf wiki <https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_
|
||||
for more details on the various versions.
|
||||
|
||||
Repository
|
||||
----------
|
||||
|
||||
@@ -413,10 +413,10 @@ Dependencies
|
||||
$ sudo npm install -g rtlcss
|
||||
|
||||
.. warning::
|
||||
`wkhtmltopdf` is not installed through **pip** and must be installed manually in `version 0.12.5
|
||||
<https://github.com/wkhtmltopdf/wkhtmltopdf/releases/tag/0.12.5>`_ for it to support headers and
|
||||
footers. Check out the `wkhtmltopdf wiki <https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_ for
|
||||
more details on the various versions.
|
||||
`wkhtmltopdf` is not installed through **pip** and must be installed manually in `version 0.12.6
|
||||
<https://github.com/wkhtmltopdf/packaging/releases/tag/0.12.6.1-3>`_ for it to support headers
|
||||
and footers. Check out the `wkhtmltopdf wiki <https://github.com/odoo/odoo/wiki/Wkhtmltopdf>`_
|
||||
for more details on the various versions.
|
||||
|
||||
.. _install/source/running_odoo:
|
||||
|
||||
|
||||
@@ -129,6 +129,5 @@ users, click :guilabel:`Add more users`.
|
||||
To remove users, select them and click :guilabel:`Remove`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../../applications/general/users/manage_users`
|
||||
- :doc:`../../applications/general/users/delete_account`
|
||||
|
||||
- :doc:`/applications/general/users/manage_users`
|
||||
- :doc:`/applications/general/users/odoo_account`
|
||||
|
||||
@@ -39,10 +39,11 @@ An upgrade does not cover:
|
||||
- Migrating from another ERP to Odoo
|
||||
|
||||
.. warning::
|
||||
If your database contains a **custom module**, you must first upgrade its source code to be
|
||||
compatible with the new version of Odoo **before upgrading**.
|
||||
.. TODOUPG : once the page for developers is published, uncomment and link
|
||||
.. :doc:`first upgrade its source code </developer/reference/upgrade>`
|
||||
If your database contains custom modules, it cannot be upgraded until a version of your custom
|
||||
modules is available for the target version of Odoo. For customers maintaining their own custom
|
||||
modules, we recommend to parallelize the process by :ref:`requesting an upgraded database
|
||||
<upgrade/request-test-database>` while also :doc:`upgrading the source code of your custom
|
||||
modules </developer/howtos/upgrade_custom_db>`.
|
||||
|
||||
|
||||
Upgrading in a nutshell
|
||||
@@ -51,15 +52,15 @@ Upgrading in a nutshell
|
||||
#. Request an upgraded test database (see :ref:`obtaining an upgraded test database
|
||||
<upgrade/request-test-database>`).
|
||||
|
||||
#. If applicable, upgrade the source code of your custom module to be compatible with the new
|
||||
version of Odoo (see :doc:`/developer/howtos/upgrade_custom_db`).
|
||||
|
||||
#. Thoroughly test the upgraded database (see :ref:`testing the new version of the database
|
||||
<upgrade/test_your_db>`).
|
||||
|
||||
#. Report any issue encountered during the testing to Odoo via the `support page
|
||||
<https://odoo.com/help?stage=migration>`__.
|
||||
|
||||
#. (If applicable) : upgrade the source code of your custom module to be compatible with the new
|
||||
version of Odoo.
|
||||
|
||||
#. Once all issues are resolved and you are confident that the upgraded database can be used as
|
||||
your main database without any issues, plan the upgrade of your production database.
|
||||
|
||||
@@ -69,9 +70,6 @@ Upgrading in a nutshell
|
||||
#. Report any issue encountered during the upgrade to Odoo via the `support page
|
||||
<https://odoo.com/help?stage=post_upgrade>`__.
|
||||
|
||||
.. TODOUPG: Once the page for developers is published, put this at 4)
|
||||
.. (see :ref:`upgrading customizations <upgrade/upgrading_customizations>`).
|
||||
|
||||
.. _upgrade/request-test-database:
|
||||
|
||||
Obtaining an upgraded test database
|
||||
@@ -136,18 +134,13 @@ project <https://odoo.sh/project>`_.
|
||||
file of the upgrade process can be found in your newly upgraded staging build by going to
|
||||
:file:`~/logs/upgrade.log`.
|
||||
|
||||
.. note::
|
||||
In databases where custom modules are installed, their source code
|
||||
must be up-to-date with the target version of Odoo before the upgrade
|
||||
can be performed. If there are none, the "update on commit" mode is
|
||||
skipped, the upgraded database is built as soon as it is transferred from the upgrade
|
||||
platform, and the upgrade mode is exited.
|
||||
.. important::
|
||||
In databases where custom modules are installed, their source code must be up-to-date with
|
||||
the target version of Odoo before the upgrade can be performed. If there are none, the
|
||||
"update on commit" mode is skipped, the upgraded database is built as soon as it is
|
||||
transferred from the upgrade platform, and the upgrade mode is exited.
|
||||
|
||||
.. TODOUPG : once the page for developers is published, uncomment
|
||||
.. Check out the :doc:`upgrade for developers'
|
||||
.. documentation </developer/reference/upgrade>` for more information. In
|
||||
.. addition, if a module is not needed after an upgrade, :ref:`you can
|
||||
.. remove customizations <upgrade/remove_customizations>`.
|
||||
Check out the :doc:`/developer/howtos/upgrade_custom_db` page for more information.
|
||||
|
||||
.. group-tab:: On-premise
|
||||
|
||||
@@ -167,6 +160,11 @@ project <https://odoo.sh/project>`_.
|
||||
An upgraded test database can also be requested via the `Upgrade page
|
||||
<https://upgrade.odoo.com/>`_.
|
||||
|
||||
.. important::
|
||||
In databases where custom modules are installed, their source code must be up-to-date with
|
||||
the target version of Odoo before the upgrade can be performed. Check out the
|
||||
:doc:`/developer/howtos/upgrade_custom_db` page for more information.
|
||||
|
||||
.. note::
|
||||
- For security reasons, only the person who submitted the upgrade request can download it.
|
||||
- For storage reasons, the database's copy is submitted without a filestore to the upgrade
|
||||
@@ -291,8 +289,8 @@ the upgrade at a time when the use of the database is minimal.
|
||||
|
||||
As the standard upgrade scripts and your database are constantly evolving, it is also recommended
|
||||
to frequently request another upgraded test database to ensure that the upgrade process is
|
||||
still successful, especially if it takes a long time to finish. Fully rehearsing the upgrade
|
||||
process the day before upgrading the production database is also recommended.
|
||||
still successful, especially if it takes a long time to finish. **Fully rehearsing the upgrade
|
||||
process the day before upgrading the production database is also recommended.**
|
||||
|
||||
.. important::
|
||||
- Going into production without first testing may lead to:
|
||||
@@ -337,9 +335,8 @@ exceptions.
|
||||
|
||||
The update of your custom modules must be successful to complete the entire upgrade process.
|
||||
Make sure the status of your staging upgrade is :guilabel:`successful` before trying it in
|
||||
production.
|
||||
.. TODOUPG : once the page for developers is published, uncomment
|
||||
.. More information on how to upgrade your custom modules can be found in the :ref:`upgrading customizations documentation <upgrade/upgrading_customizations>`.
|
||||
production. More information on how to upgrade your custom modules can be found on
|
||||
:doc:`/developer/howtos/upgrade_custom_db`.
|
||||
|
||||
.. group-tab:: On-premise
|
||||
|
||||
|
||||
@@ -209,8 +209,7 @@ available methods are standard price, average price, :abbr:`LIFO (Last-In, First
|
||||
:abbr:`FIFO (First-In, First-Out).`
|
||||
|
||||
.. seealso::
|
||||
:doc:`View the impact of the valuation methods on transactions
|
||||
<../inventory_and_mrp/inventory/management/reporting/inventory_valuation_config>`
|
||||
:doc:`../inventory_and_mrp/inventory/warehouses_storage/inventory_valuation/inventory_valuation_config`
|
||||
|
||||
Retained earnings
|
||||
=================
|
||||
@@ -222,6 +221,8 @@ and loss balance is automatically reported on the balance sheet report.
|
||||
.. seealso::
|
||||
:doc:`Accounting Cheat Sheet <accounting/get_started/cheat_sheet>`
|
||||
|
||||
.. _fiduciaries:
|
||||
|
||||
Fiduciaries
|
||||
===========
|
||||
|
||||
|
||||
@@ -107,9 +107,9 @@ If your connection with the proxy is disconnected, you can reconnect with the pr
|
||||
:guilabel:`Fetch Account` button.
|
||||
|
||||
.. note::
|
||||
This disconnection can be caused by the Odoo support. In this case, please contact the `support
|
||||
<https://www.odoo.com/help>`_ directly with your client id or the reference of the error listed
|
||||
in the chatter.
|
||||
If you are unable to reconnect using the :guilabel:`Reconnect` button, please contact the
|
||||
`support <https://www.odoo.com/help>`_ directly with your client id or the reference of the error
|
||||
listed in the chatter.
|
||||
|
||||
.. _MigrationOnlineSync:
|
||||
|
||||
|
||||
@@ -21,6 +21,8 @@ vendors because of modifications to confirmed customer invoices or vendor bills.
|
||||
:doc:`return </applications/sales/sales/products_prices/returns>` if a storable product is
|
||||
returned.
|
||||
|
||||
.. _accounting/issue-credit-note:
|
||||
|
||||
Issue a credit note
|
||||
===================
|
||||
|
||||
@@ -72,6 +74,8 @@ prefilled with the same details from the original invoice.
|
||||
|
||||
This is the option to **modify** the content of a *validated* invoice.
|
||||
|
||||
.. _accounting/issue-debit-note:
|
||||
|
||||
Issue a debit note
|
||||
==================
|
||||
|
||||
|
||||
@@ -2,194 +2,175 @@
|
||||
Deferred revenues
|
||||
=================
|
||||
|
||||
**Deferred revenues**, or **unearned revenue**, are payments made in advance by customers for
|
||||
products yet to deliver or services yet to render.
|
||||
**Deferred revenues**, or **unearned revenues**, are invoices addressed to customers
|
||||
for goods yet to be delivered or services yet to be rendered.
|
||||
|
||||
Such payments are a **liability** for the company that receives them since it still owes its
|
||||
customers these products or services. The company cannot report them on the current **Profit and
|
||||
Loss statement**, or *Income Statement*, since the payments will be effectively earned in the future.
|
||||
The company cannot report them on the current **profit and loss statement**, or *income statement*,
|
||||
since the goods and services will be effectively delivered/rendered in the future.
|
||||
|
||||
These future revenues must be deferred on the company's balance sheet until the moment in time they
|
||||
can be **recognized**, at once or over a defined period, on the Profit and Loss statement.
|
||||
These future revenues must be deferred on the company's balance sheet among the current liabilities
|
||||
until they can be **recognized**, at once or over a defined period, on the profit and loss
|
||||
statement.
|
||||
|
||||
For example, let's say we sell a five-year extended warranty for $ 350. We already receive the money
|
||||
now but haven't earned it yet. Therefore, we post this new income in a deferred revenue account and
|
||||
decide to recognize it on a yearly basis. Each year, for the next 5 years, $ 70 will be recognized
|
||||
as revenue.
|
||||
For example, let's say a business sells a software license of $1200 for 1 year. They immediately
|
||||
invoice it to the customer but can't consider it earned yet, as the future months of licensing have
|
||||
not yet been delivered. Therefore, they post this new revenue in a deferred revenue account and
|
||||
recognize it on a monthly basis. Each month, for the next 12 months, $100 will be recognized as
|
||||
revenue.
|
||||
|
||||
Odoo Accounting handles deferred revenues by spreading them in multiple entries that are
|
||||
automatically created in *draft mode* and then posted periodically.
|
||||
Odoo Accounting handles deferred revenues by spreading them in multiple entries that are posted
|
||||
periodically.
|
||||
|
||||
.. note::
|
||||
The server checks once a day if an entry must be posted. It might then take up to 24 hours before
|
||||
you see a change from *draft* to *posted*.
|
||||
you see a change from :guilabel:`Draft` to :guilabel:`Posted`.
|
||||
|
||||
Prerequisites
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Such transactions must be posted on a **Deferred Revenue Account** rather than on the default income
|
||||
account.
|
||||
Make sure the default settings are correctly configured for your business. To do so, go to
|
||||
:menuselection:`Accounting --> Configuration --> Settings`. The following options are available:
|
||||
|
||||
Configure a Deferred Revenue Account
|
||||
------------------------------------
|
||||
Journal
|
||||
The deferral entries are posted in this journal.
|
||||
Deferred Expense Account
|
||||
Expenses are deferred on this Current Asset account until they are recognized.
|
||||
Deferred Revenue Account
|
||||
Revenues are deferred on this Current Liability account until they are recognized.
|
||||
Generate Entries
|
||||
By default, Odoo :ref:`automatically generates <customer_invoices/deferred/generate_on_validation>`
|
||||
the deferral entries when you post a customer invoice. However, you can also choose to
|
||||
:ref:`generate them manually <customer_invoices/deferred/generate_manually>` by selecting the
|
||||
:guilabel:`Manually & Grouped` option instead.
|
||||
Amount Computation
|
||||
Suppose an invoice of $1200 must be deferred over 12 months. The :guilabel:`Equal per month`
|
||||
computation accounts for $100 each month, while the :guilabel:`Based on days` computation
|
||||
accounts for different amounts depending on the number of days in each month.
|
||||
|
||||
To configure your account in the **Chart of Accounts**, go to :menuselection:`Accounting -->
|
||||
Configuration --> Chart of Accounts`, click on *Create*, and fill out the form.
|
||||
.. _customer_invoices/deferred/generate_on_validation:
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenues01.png
|
||||
:align: center
|
||||
:alt: Configuration of a Deferred Revenue Account in Odoo Accounting
|
||||
Generate deferral entries on validation
|
||||
=======================================
|
||||
|
||||
.. tip::
|
||||
Make sure the :guilabel:`Start Date` and :guilabel:`End Date` fields are visible in the
|
||||
:guilabel:`Invoice Lines` tab. In most cases, the :guilabel:`Start Date` should be in the same
|
||||
month as the :guilabel:`Invoice Date`.
|
||||
|
||||
For each line of the invoice that should be deferred, specify the start and end dates of the
|
||||
deferral period.
|
||||
|
||||
If the :guilabel:`Generate Entries` field in the **Settings** is set to :guilabel:`On invoice/bill
|
||||
validation`, Odoo automatically generates the deferral entries when the invoice is validated. Click
|
||||
the :guilabel:`Deferred Entries` smart button to see them.
|
||||
|
||||
One entry, dated on the same day as the invoice, moves the invoice amounts from the income account
|
||||
to the deferred account. The other entries are deferral entries which, month after month, move
|
||||
the invoice amounts from the deferred account to the income account to recognize the revenue.
|
||||
|
||||
.. example::
|
||||
You can defer a January invoice of $1200 over 12 months by specifying a start date of 01/01/2023
|
||||
and an end date of 12/31/2023. At the end of August, $800 is recognized as an income,
|
||||
whereas $400 remains on the deferred account.
|
||||
|
||||
Reporting
|
||||
=========
|
||||
|
||||
The deferred revenue report computes an overview of the necessary deferral entries for each account.
|
||||
To access it, go to :menuselection:`Accounting --> Reporting --> Deferred Revenue`.
|
||||
|
||||
To view the journal items of each account, click on the account name and then :guilabel:`Journal
|
||||
Items`.
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenue_report.png
|
||||
:alt: Deferred revenue report
|
||||
|
||||
.. note::
|
||||
This account's type must be either *Current Liabilities* or *Non-current Liabilities*
|
||||
Only invoices whose accounting date is before the end of the period of the report
|
||||
are taken into account.
|
||||
|
||||
Post an income to the right account
|
||||
-----------------------------------
|
||||
.. _customer_invoices/deferred/generate_manually:
|
||||
|
||||
Select the account on a draft invoice
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Generate grouped deferral entries manually
|
||||
==========================================
|
||||
|
||||
On a draft invoice, select the right account for all the products of which the incomes must be
|
||||
deferred.
|
||||
If you have a lot of deferred revenues and wish to reduce the number of journal entries created, you
|
||||
can generate deferral entries manually. To do so, set the :guilabel:`Generate Entries` field in the
|
||||
**Settings** to :guilabel:`Manually & Grouped`. Odoo then aggregates the deferred amounts in a
|
||||
single entry.
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenues02.png
|
||||
:align: center
|
||||
:alt: Selection of a Deferred Revenue Account on a draft invoice in Odoo Accounting
|
||||
At the end of each month, go to :menuselection:`Accounting --> Reporting --> Deferred Revenue` and
|
||||
click the :guilabel:`Generate Entries` button. This generates two deferral entries:
|
||||
|
||||
Choose a different Income Account for specific products
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
- One dated at the end of the month which aggregates, for each account, all the deferred amounts
|
||||
of that month. This means that a part of the deferred revenue is recognized at the end of that
|
||||
period.
|
||||
- The reversal of this created entry, dated on the following day (i.e., the first day of the
|
||||
next month) to cancel the previous entry.
|
||||
|
||||
Start editing the product, go to the *Accounting* tab, select the right **Income Account**, and
|
||||
save.
|
||||
.. example::
|
||||
There are two invoices:
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenues03.png
|
||||
:align: center
|
||||
:alt: Change of the Income Account for a product in Odoo
|
||||
- Invoice A: $1200 to be deferred from 01/01/2023 to 12/31/2023
|
||||
- Invoice B: $600 to be deferred from 01/01/2023 to 12/31/2023
|
||||
|
||||
.. tip::
|
||||
It is possible to automate the creation of revenue entries for these products (see:
|
||||
`Automate the Deferred Revenues`_).
|
||||
In January
|
||||
At the end of January, after clicking the :guilabel:`Generate Entries` button, there are the
|
||||
following entries:
|
||||
|
||||
Change the account of a posted journal item
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
- Entry 1 dated on the 31st January:
|
||||
|
||||
To do so, open your Sales Journal by going to
|
||||
:menuselection:`Accounting --> Accounting --> Sales`, select the journal item you
|
||||
want to modify, click on the account, and select the right one.
|
||||
- Line 1: Expense account -1200 -600 = **-1800** (cancelling the total of both invoices)
|
||||
- Line 2: Expense account 100 + 50 = **150** (recognizing 1/12 of invoice A and invoice B)
|
||||
- Line 3: Deferred account 1800 - 150 = **1650** (amount that has yet to be deferred later
|
||||
on)
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenues04.png
|
||||
:align: center
|
||||
:alt: Modification of a posted journal item's account in Odoo Accounting
|
||||
- Entry 2 dated on the 1st February, the reversal of the previous entry:
|
||||
|
||||
Deferred Revenues entries
|
||||
=========================
|
||||
- Line 1: Expense account **1800**
|
||||
- Line 2: Deferred account **-150**
|
||||
- Line 3: Expense account **-1650**
|
||||
|
||||
Create a new entry
|
||||
------------------
|
||||
In February
|
||||
At the end of February, after clicking the :guilabel:`Generate Entries` button, there are the
|
||||
following entries:
|
||||
|
||||
A **Deferred Revenues entry** automatically generates all journal entries in *draft mode*. They are
|
||||
then posted one by one at the right time until the full amount of the income is recognized.
|
||||
- Entry 1 dated on the 28th February:
|
||||
|
||||
To create a new entry, go to :menuselection:`Accounting --> Accounting --> Deferred Revenues`, click
|
||||
on *Create*, and fill out the form.
|
||||
- Line 1: Expense account -1200 -600 = **-1800** (cancelling the total of both invoices)
|
||||
- Line 2: Expense account 200 + 100 = **300** (recognizing 2/12 of invoice A and invoice B)
|
||||
- Line 3: Deferred account 1800 - 300 = **1500** (amount that has yet to be deferred later
|
||||
on)
|
||||
|
||||
Click on **select related purchases** to link an existing journal item to this new entry. Some
|
||||
fields are then automatically filled out, and the journal item is now listed under the **Related
|
||||
Sales** tab.
|
||||
- Entry 2 dated on the 1st March, the reversal of the previous entry.
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenues05.png
|
||||
:align: center
|
||||
:alt: Deferred Revenue entry in Odoo Accounting
|
||||
From March to October
|
||||
The same computation is done for each month until October.
|
||||
|
||||
Once done, you can click on *Compute Revenue* (next to the *Confirm* button) to generate all the
|
||||
values of the **Revenue Board**. This board shows you all the entries that Odoo will post to
|
||||
recognize your revenue, and at which date.
|
||||
In November
|
||||
At the end of November, after clicking the :guilabel:`Generate Entries` button, there are the
|
||||
following entries:
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenues06.png
|
||||
:align: center
|
||||
:alt: Revenue Board in Odoo Accounting
|
||||
- Entry 1 dated on the 30th November:
|
||||
|
||||
What does "Prorata Temporis" mean?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
- Line 1: Expense account -1200 -600 = **-1800** (cancelling the total of both invoices)
|
||||
- Line 2: Expense account 1100 + 550 = **1650** (recognizing 11/12 of invoice A and invoice
|
||||
B)
|
||||
- Line 3: Deferred account 1800 - 1650 = **150** (amount that has yet to be deferred later
|
||||
on)
|
||||
|
||||
The **Prorata Temporis** feature is useful to recognize your revenue the most accurately possible.
|
||||
- Entry 2 dated on the 1st December, the reversal of the previous entry.
|
||||
|
||||
With this feature, the first entry on the Revenue Board is computed based on the time left between
|
||||
the *Prorata Date* and the *First Recognition Date* rather than the default amount of time between
|
||||
recognitions.
|
||||
In December
|
||||
There is no need to generate entries in December. Indeed, if we do the computation for
|
||||
December, we have an amount of 0 to be deferred.
|
||||
|
||||
For example, the Revenue Board above has its first revenue with an amount of $ 4.22 rather than
|
||||
$ 70.00. Consequently, the last entry is also lower and has an amount of $ 65.78.
|
||||
In total
|
||||
If we aggregate everything, we would have:
|
||||
|
||||
Deferred Entry from the Sales Journal
|
||||
-------------------------------------
|
||||
- invoice A and invoice B
|
||||
- two entries (one for the deferral and one for the reversal) for each month from January to
|
||||
November
|
||||
|
||||
You can create a deferred entry from a specific journal item in your **Sales Journal**.
|
||||
|
||||
To do so, open your Sales Journal by going to
|
||||
:menuselection:`Accounting --> Accounting --> Sales`, and select the journal item you want to defer.
|
||||
Make sure that it is posted in the right account (see:
|
||||
`Change the account of a posted journal item`_).
|
||||
|
||||
Then, click on *Action*, select **Create Deferred Entry**, and fill out the form the same way you
|
||||
would do to `create a new entry`_.
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenues07.png
|
||||
:align: center
|
||||
:alt: Create Deferred Entry from a journal item in Odoo Accounting
|
||||
|
||||
Deferred Revenue Models
|
||||
=======================
|
||||
|
||||
You can create **Deferred Revenue Models** to create your Deferred Revenue entries faster.
|
||||
|
||||
To create a model, go to :menuselection:`Accounting --> Configuration --> Deferred Revenue Models`,
|
||||
click on *Create*, and fill out the form the same way you would do to create a new entry.
|
||||
|
||||
.. tip::
|
||||
You can also convert a *confirmed Deferred Revenue entry* into a model by
|
||||
opening it from :menuselection:`Accounting --> Accounting --> Deferred
|
||||
Revenues` and then, by clicking on the button *Save Model*.
|
||||
|
||||
Apply a Deferred Revenue Model to a new entry
|
||||
---------------------------------------------
|
||||
|
||||
When you create a new Deferred Revenue entry, fill out the **Deferred Revenue Account** with the
|
||||
right recognition account.
|
||||
|
||||
New buttons with all the models linked to that account appear at the top of the form. Clicking on a
|
||||
model button fills out the form according to that model.
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenues08.png
|
||||
:align: center
|
||||
:alt: Deferred Revenue model button in Odoo Accounting
|
||||
|
||||
.. _deferred-revenues-automation:
|
||||
|
||||
Automate the Deferred Revenues
|
||||
==============================
|
||||
|
||||
When you create or edit an account of which the type is either *Current Liabilities* or *Non-current
|
||||
Liabilities*, you can configure it to defer the revenues that are credited on it automatically.
|
||||
|
||||
You have three choices for the **Automate Deferred Revenue** field:
|
||||
|
||||
#. **No:** this is the default value. Nothing happens.
|
||||
#. **Create in draft:** whenever a transaction is posted on the account, a draft *Deferred Revenues
|
||||
entry* is created, but not validated. You must first fill out the form in
|
||||
:menuselection:`Accounting --> Accounting --> Deferred Revenues`.
|
||||
#. **Create and validate:** you must also select a Deferred Revenue Model (see:
|
||||
`Deferred Revenue Models`_). Whenever a transaction is posted on the account, a *Deferred
|
||||
Revenues entry* is created and immediately validated.
|
||||
|
||||
.. image:: deferred_revenues/deferred_revenues09.png
|
||||
:align: center
|
||||
:alt: Automate Deferred Revenue on an account in Odoo Accounting
|
||||
|
||||
.. tip::
|
||||
You can, for example, select this account as the default **Income Account** of a product to fully
|
||||
automate its sale. (see: `Choose a different Income Account for specific products`_).
|
||||
|
||||
.. seealso::
|
||||
* :doc:`../get_started/chart_of_accounts`
|
||||
* `Odoo Academy: Deferred Revenues (Recognition) <https://www.odoo.com/r/EWO>`_
|
||||
Therefore, at the end of December, invoices A and B are fully recognized as income
|
||||
only once in spite of all the created entries thanks to the reversal mechanism.
|
||||
|
||||
|
After Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
@@ -102,37 +102,138 @@ The `Peppol <https://peppol.org/about/>`_ network ensures the exchange of docume
|
||||
between enterprises and governmental authorities. It is primarily used for electronic invoicing, and
|
||||
its access points (connectors to the Peppol network) allow enterprises to exchange electronic
|
||||
documents.
|
||||
Odoo is now an **access point** enabling electronic invoicing transactions without the need to send
|
||||
invoices and bills by email or post.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
Odoo is an **access point** and an :abbr:`SMP (Service Metadata Publisher)`, enabling electronic
|
||||
invoicing transactions without the need to send invoices and bills by email or post.
|
||||
|
||||
First, :ref:`install <general/install>` the :guilabel:`Peppol` module (`account_peppol`).
|
||||
If not done yet, :ref:`install <general/install>` the :guilabel:`Peppol` module (`account_peppol`).
|
||||
|
||||
.. image:: electronic_invoicing/peppol-module.png
|
||||
:alt: Peppol module install
|
||||
.. important::
|
||||
- Peppol registration is **free** and available in Odoo Community
|
||||
- You can send **Customer Invoices** and **Credit Notes** and receive **Vendor Bills** and
|
||||
**Refunds** via Peppol.
|
||||
- You can send in one of the following supported document formats: **BIS Billing 3.0, XRechnung
|
||||
CIUS, NLCIUS**.
|
||||
- | The following **countries** are eligible for **Peppol registration in Odoo**:
|
||||
| Andorra, Albania, Austria, Bosnia and Herzegovina, Belgium, Bulgaria, Switzerland, Cyprus,
|
||||
Czech Republic, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece,
|
||||
Croatia, Hungary, Ireland, Iceland, Italy, Liechtenstein, Lithuania, Luxembourg, Latvia,
|
||||
Monaco, Montenegro, North Macedonia, Malta, Netherlands, Norway, Poland, Portugal, Romania,
|
||||
Serbia, Sweden, Slovenia, Slovakia, San Marino, Turkey, Holy See (Vatican City State)
|
||||
|
||||
Then, go to :menuselection:`Accounting --> Configuration --> Settings`, tick the
|
||||
:guilabel:`Use PEPPOL Invoicing`, and fill in the following information:
|
||||
Registration
|
||||
------------
|
||||
|
||||
- `PEPPOL EAS <https://ec.europa.eu/digital-building-blocks/wikis/display/DIGITAL/Code+lists/>`_
|
||||
- :guilabel:`Peppol Endpoint`
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings`, tick the :guilabel:`Use PEPPOL
|
||||
Invoicing` checkbox, and fill in the following information:
|
||||
|
||||
- :guilabel:`Peppol EAS`. This is the Peppol Electronic Address Scheme and usually depends on your
|
||||
company's country. Odoo often prefills this with the most commonly used EAS code in your country.
|
||||
For example, the preferred EAS code for most companies in Belgium is 0208.
|
||||
- :guilabel:`Peppol Endpoint`. This is usually a Company Registry number or a VAT number.
|
||||
- :guilabel:`Phone Number`, including the country code (e.g., `+32` in Belgium)
|
||||
- :guilabel:`Primary contact email`
|
||||
|
||||
If you are migrating from another access point, insert the :guilabel:`Migration key` from
|
||||
the previous provider.
|
||||
.. seealso::
|
||||
- `Peppol EAS - European Commision <https://ec.europa.eu/digital-building-blocks/wikis/display/DIGITAL/Code+lists/>`_
|
||||
- `Peppol Endpoint - OpenPeppol eDEC Code Lists <https://docs.peppol.eu/edelivery/codelists/>`_
|
||||
(open the "Participant Identifier Schemes" as HTML page)
|
||||
|
||||
If you are migrating from another access point, insert the :guilabel:`Migration key` from the
|
||||
previous provider.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-settings.png
|
||||
:alt: Configuration for peppol
|
||||
|
||||
Finally, click on :guilabel:`Validate registration`.
|
||||
|
||||
A text message containing a code is sent to the phone number provided to finalize the registration
|
||||
.. note::
|
||||
When testing Peppol, the system parameter `account_peppol.edi.mode` can be changed to `test`.
|
||||
Then, the registration occurs on the test server.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-system-parameter.png
|
||||
:alt: Peppol test mode
|
||||
|
||||
Now, you can request a verification code to be sent to you by clicking :guilabel:`Verify phone
|
||||
number`.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-registration-verify.png
|
||||
:alt: phone validation request verification
|
||||
|
||||
A text message containing a code is sent to the phone number provided to finalize the verification
|
||||
process.
|
||||
|
||||
.. image:: electronic_invoicing/phone-registration.png
|
||||
:alt: phone validation
|
||||
|
||||
All invoices and vendor bills are now sent directly using the Peppol network.
|
||||
Once you enter the code and click :guilabel:`Confirm`, you can see that your registration is pending
|
||||
activation. From this point onwards, the default journal for receiving Vendor Bills can be set.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-registration-pending.png
|
||||
:alt: pending application
|
||||
|
||||
It should be automatically activated within a day.
|
||||
|
||||
.. tip::
|
||||
It is also possible to manually trigger the cron that checks the registration status by going to
|
||||
:menuselection:`Settings --> Technical --> Scheduled Actions --> PEPPOL\: update participant
|
||||
status`.
|
||||
|
||||
Your application status should be updated soon after you are registered on the Peppol network.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-registration-active.png
|
||||
:alt: active application
|
||||
|
||||
All invoices and vendor bills can now be sent directly using the Peppol network.
|
||||
|
||||
Contact verification
|
||||
--------------------
|
||||
|
||||
Before sending an invoice to a contact using the Peppol network, it is necessary to verify that they
|
||||
are also registered as a Peppol participant.
|
||||
|
||||
To do so, go to :menuselection:`Accounting --> Customers --> Customers` and open the customer's
|
||||
form. Then go to :menuselection:`Accounting tab --> Electronic Invoicing`, select the correct
|
||||
format, and make sure their :guilabel:`Peppol EAS code` and the :guilabel:`Endpoint` are filled in.
|
||||
Then, click :guilabel:`Verify`. If the contact exists on the network, their Peppol endpoint validity
|
||||
is set to Valid.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-contact-verify.png
|
||||
:alt: verify contact registration
|
||||
|
||||
.. important::
|
||||
While Odoo prefills both the EAS code and the Endpoint number based on the information available
|
||||
for a contact, it is better to confirm these details directly with the contact.
|
||||
|
||||
Send invoices
|
||||
-------------
|
||||
|
||||
Once ready to send an invoice via the Peppol network, simply click :guilabel:`Send & Print` on the
|
||||
invoice form. To queue multiple invoices, select them in the list view and click
|
||||
:menuselection:`Actions --> Send & Print`; they will be sent in a batch later on. Both
|
||||
:guilabel:`BIS Billing 3.0` and :guilabel:`Send via PEPPOL` checkboxes need to be ticked.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-send-print.png
|
||||
:alt: Send peppol invoice
|
||||
|
||||
Once the invoices are sent via Peppol, the status is changed to :guilabel:`Processing`. The
|
||||
status is changed to `Done` after they have been successfully delivered to the contact's Access
|
||||
Point.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-message-processing.png
|
||||
:alt: Peppol message status
|
||||
|
||||
.. tip::
|
||||
By default, the Peppol status column is hidden on the Invoices list view. You can choose to have
|
||||
it displayed by selecting it from the optional columns, accessible from the top right corner of
|
||||
the Invoices list view.
|
||||
|
||||
Receive vendor bills
|
||||
--------------------
|
||||
|
||||
Once a day, a cron checks whether any new documents have been sent to you via the Peppol network.
|
||||
These documents are imported, and the corresponding vendor bills are created automatically as
|
||||
drafts.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-receive-bills.png
|
||||
:alt: peppol receive bills
|
||||
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 4.0 KiB |
|
After Width: | Height: | Size: 18 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 8.7 KiB |
|
After Width: | Height: | Size: 8.3 KiB |
|
After Width: | Height: | Size: 5.4 KiB |
|
After Width: | Height: | Size: 6.3 KiB |
@@ -25,7 +25,9 @@ transportation, insurance, customs clearance, and other relevant aspects of the
|
||||
- **DDP**: Delivered duty paid
|
||||
|
||||
.. seealso::
|
||||
:doc:`../reporting/intrastat`
|
||||
- :doc:`../reporting/intrastat`
|
||||
- :doc:`../customer_invoices`
|
||||
- :doc:`../vendor_bills`
|
||||
|
||||
.. _incoterms/invoices:
|
||||
|
||||
@@ -35,6 +37,16 @@ Define an Incoterm
|
||||
To define an Incoterm manually, create an invoice or bill, click the :guilabel:`Other Info` tab, and
|
||||
select the :guilabel:`Incoterm`.
|
||||
|
||||
Incoterm location
|
||||
-----------------
|
||||
|
||||
A location relevant to the chosen Incoterm can be added to the invoice or bill under
|
||||
:guilabel:`Other Info` in the :guilabel:`Incoterm Location` field.
|
||||
|
||||
.. example::
|
||||
If the chosen Incoterm code is `CIF` (Cost, Insurance, Freight), the associated location might be
|
||||
the destination port where the goods will be delivered.
|
||||
|
||||
.. _incoterms/default:
|
||||
|
||||
Default Incoterm configuration
|
||||
|
||||
@@ -3,7 +3,6 @@ Average price on returned goods
|
||||
===============================
|
||||
|
||||
.. |AVCO| replace:: :abbr:`AVCO (Average Cost Valuation)`
|
||||
|
||||
.. _inventory/avg_cost/definition:
|
||||
|
||||
*Average cost valuation* (AVCO) is an inventory valuation method that evaluates cost based on the
|
||||
|
||||
@@ -3,48 +3,39 @@ Chart of accounts
|
||||
=================
|
||||
|
||||
The **chart of accounts (COA)** is the list of all the accounts used to record financial
|
||||
transactions in the general ledger of an organization.
|
||||
transactions in the general ledger of an organization. The chart of accounts can be found under
|
||||
:menuselection:`Accounting --> Configuration --> Chart of Accounts`.
|
||||
|
||||
The accounts are usually listed in the order of appearance in the financial reports. Most of the
|
||||
time, they are listed as follows :
|
||||
When browsing your chart of accounts, you can sort the accounts by :guilabel:`Code`,
|
||||
:guilabel:`Account Name`, or :guilabel:`Type`, but other options are available in the drop-down menu
|
||||
|
||||
- Balance Sheet accounts:
|
||||
.. image:: chart_of_accounts/drop-down.png
|
||||
:alt: Drop-down toggle button
|
||||
|
||||
- Assets
|
||||
- Liabilities
|
||||
- Equity
|
||||
|
||||
- Profit & Loss:
|
||||
|
||||
- Income
|
||||
- Expense
|
||||
|
||||
When browsing your chart of accounts, you can filter the accounts by number, in the left column, and
|
||||
also group them by :guilabel:`Account Type`.
|
||||
|
||||
.. image:: chart_of_accounts/chart-of-accounts.png
|
||||
:align: center
|
||||
.. image:: chart_of_accounts/chart-of-accounts-sort.png
|
||||
:alt: Group the accounts by type in Odoo Accounting
|
||||
|
||||
Configuration of an account
|
||||
===========================
|
||||
|
||||
The country you select at the creation of your database (or additional company on your database)
|
||||
determines which **fiscal localization package** is installed by default. This package includes a
|
||||
standard chart of accounts already configured according to the country's regulations. You can use
|
||||
it directly or set it according to your company's needs.
|
||||
The country you select during the creation of your database (or additional company in your database)
|
||||
determines which :doc:`fiscal localization package <../../fiscal_localizations>` is installed by
|
||||
default. This package includes a standard chart of accounts already configured according to the
|
||||
country's regulations. You can use it directly or set it according to your company's needs.
|
||||
|
||||
To create a new account, go to :menuselection:`Accounting --> Configuration --> Chart of Accounts`,
|
||||
click :guilabel:`Create`, and fill in (at the minimum) the required fields
|
||||
(:guilabel:`Code, Account Name, Type`).
|
||||
|
||||
.. warning::
|
||||
It is not possible to modify the **fiscal localization** of a company once a journal entry has
|
||||
been posted.
|
||||
|
||||
To create a new account, go to :menuselection:`Accounting --> Configuration --> Chart of Accounts`,
|
||||
click on :guilabel:`Create`, and fill out the form.
|
||||
|
||||
Code and name
|
||||
-------------
|
||||
|
||||
Each account is identified by its **code** and **name**, which also indicates the account's purpose.
|
||||
Each account is identified by its :guilabel:`Code` and :guilabel:`Name`, which also indicate the
|
||||
account's purpose.
|
||||
|
||||
.. _chart-of-account/type:
|
||||
|
||||
@@ -59,7 +50,7 @@ Correctly configuring the **account type** is critical as it serves multiple pur
|
||||
- Generate opening entries
|
||||
|
||||
To configure an account type, open the :guilabel:`Type` field's drop-down selector and select the
|
||||
right type among the following list:
|
||||
corresponding type from the following list:
|
||||
|
||||
+---------------+--------------+-------------------------+
|
||||
| Report | Category | Account Types |
|
||||
@@ -101,32 +92,33 @@ right type among the following list:
|
||||
|Other | Other | Off-Balance Sheet |
|
||||
+---------------+--------------+-------------------------+
|
||||
|
||||
Assets, deferred expenses, and deferred revenues automation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Assets
|
||||
~~~~~~
|
||||
|
||||
Some **account types** display a new field **to automate** the creation of :ref:`assets
|
||||
<assets-automation>` entries, :ref:`deferred expenses <deferred-expenses-automation>` entries,
|
||||
and :ref:`deferred revenues <deferred-revenues-automation>` entries.
|
||||
Some **account types** can **automate** the creation of :ref:`asset <assets-automation>` entries.
|
||||
To **automate** entries, click :guilabel:`View` on an account line and go to the
|
||||
:guilabel:`Automation` tab.
|
||||
|
||||
You have three choices for the :guilabel:`Automation` field:
|
||||
You have three choices for the :guilabel:`Automation` tab:
|
||||
|
||||
#. :guilabel:`No`: this is the default value. Nothing happens.
|
||||
#. :guilabel:`Create in draft`: whenever a transaction is posted on the account, a draft entry is
|
||||
created, but not validated. You must first fill out the corresponding form.
|
||||
#. :guilabel:`Create and validate`: you must also select a **model**. Whenever a transaction is
|
||||
posted on the account, an entry is created and immediately validated.
|
||||
created but not validated. You must first fill out the corresponding form.
|
||||
#. :guilabel:`Create and validate`: you must also select a :guilabel:`Deferred Expense Model`.
|
||||
Whenever a transaction is posted on the account, an entry is created and immediately validated.
|
||||
|
||||
Default taxes
|
||||
-------------
|
||||
|
||||
Select a **default tax** that will be applied when this account is chosen for a product sale or
|
||||
purchase.
|
||||
In the :guilabel:`View` menu of an account, select a **default tax** to be applied when this
|
||||
account is chosen for a product sale or purchase.
|
||||
|
||||
Tags
|
||||
----
|
||||
|
||||
Some accounting reports require **tags** to be set on the relevant accounts. By default, you can
|
||||
choose among the tags that are used by the *Cash Flow Statement*.
|
||||
Some accounting reports require **tags** to be set on the relevant accounts. To add a tag, under
|
||||
:guilabel:`View`, click the :guilabel:`Tags` field and select an existing tag or :guilabel:`Create`
|
||||
a new one.
|
||||
|
||||
Account groups
|
||||
--------------
|
||||
@@ -134,31 +126,29 @@ Account groups
|
||||
**Account groups** are useful to list multiple accounts as *sub-accounts* of a bigger account and
|
||||
thus consolidate reports such as the **Trial Balance**. By default, groups are handled automatically
|
||||
based on the code of the group. For example, a new account `131200` is going to be part of the group
|
||||
`131000`.
|
||||
`131000`. You can attribute a specific group to an account in the :guilabel:`Group` field under
|
||||
:guilabel:`View`.
|
||||
|
||||
Create account groups manually
|
||||
------------------------------
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. note::
|
||||
Regular users should not need to create account groups manually. The following section is only
|
||||
intended for rare and advanced use cases.
|
||||
|
||||
To create a new account group, :ref:`developer mode <developer-mode>` and head to
|
||||
:menuselection:`Accounting app --> Configuration --> Account Groups`. Here, create a new group and
|
||||
enter the :guilabel:`name, code prefix, and company` to which that group account should be
|
||||
available. Note that you must enter the same code prefix in both :guilabel:`From` and :guilabel:`to`
|
||||
fields.
|
||||
To create a new account group, activate :ref:`developer mode <developer-mode>` and head to
|
||||
:menuselection:`Accounting --> Configuration --> Account Groups`. Here, create a new group and enter
|
||||
the :guilabel:`name, code prefix, and company` to which that group account should be available. Note
|
||||
that you must enter the same code prefix in both :guilabel:`From` and :guilabel:`to` fields.
|
||||
|
||||
.. image:: chart_of_accounts/account-groups.png
|
||||
:align: center
|
||||
:alt: Account groups creation.
|
||||
|
||||
To display your **Trial Balance** report with your account groups, go to :menuselection:`Accounting
|
||||
app-->Reporting-->Trial Balance`, then open the :guilabel:`Options` menu and select
|
||||
:guilabel:`Hierarchy and Subtotals`.
|
||||
To display your **Trial Balance** report with your account groups, go to
|
||||
:menuselection:`Accounting --> Reporting --> Trial Balance`, then open the :guilabel:`Options` menu
|
||||
and select :guilabel:`Hierarchy and Subtotals`.
|
||||
|
||||
.. image:: chart_of_accounts/trial-balance.png
|
||||
:align: center
|
||||
.. image:: chart_of_accounts/chart-of-accounts-groups.png
|
||||
:alt: Account Groups in the Trial Balance in Odoo Accounting
|
||||
|
||||
Allow reconciliation
|
||||
@@ -171,15 +161,18 @@ For example, an invoice paid with a credit card can be marked as :guilabel:`paid
|
||||
its payment. Therefore, the account used to record credit card payments needs to be configured as
|
||||
**allowing reconciliation**.
|
||||
|
||||
To do so, check the :guilabel:`Allow Reconciliation` box in the account's settings, and save.
|
||||
To do so, check the :guilabel:`Allow Reconciliation` box in the account's settings, and
|
||||
:guilabel:`Save`; or enable the button from the chart of accounts view.
|
||||
|
||||
.. image:: chart_of_accounts/chart-of-accounts-reconciliation.png
|
||||
:alt: Allow reconciliation for accounts in Odoo Accounting
|
||||
|
||||
Deprecated
|
||||
----------
|
||||
|
||||
It is not possible to delete an account once a transaction has been recorded on it. You can make
|
||||
them unusable by using the **Deprecated** feature.
|
||||
|
||||
To do so, check the :guilabel:`Deprecated` box in the account's settings, and save.
|
||||
them unusable by using the **Deprecated** feature: check the :guilabel:`Deprecated` box in the
|
||||
account's settings, and :guilabel:`Save`.
|
||||
|
||||
.. seealso::
|
||||
* :doc:`cheat_sheet`
|
||||
|
||||
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 2.4 KiB |
|
After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 461 B |
|
Before Width: | Height: | Size: 22 KiB |
@@ -4,15 +4,15 @@
|
||||
Payments
|
||||
========
|
||||
|
||||
In Odoo, payments can either be linked automatically to an invoice or bill or be stand-alone records
|
||||
for use at a later date.
|
||||
In Odoo, payments can either be automatically linked to an invoice or bill or be stand-alone records
|
||||
for use at a later date:
|
||||
|
||||
If a payment is **linked to an invoice or bill**, it reduces the amount due of the invoice. You can
|
||||
have multiple payments related to the same invoice.
|
||||
- If a payment is **linked to an invoice or bill**, it reduces/settles the amount due of the
|
||||
invoice. You can have multiple payments related to the same invoice.
|
||||
|
||||
If a payment is **not linked to an invoice or bill**, the customer has an outstanding credit with
|
||||
your company, or your company has an outstanding debit with a vendor. You can use those outstanding
|
||||
amounts to reduce unpaid invoices/bills.
|
||||
- If a payment is **not linked to an invoice or bill**, the customer has an outstanding credit with
|
||||
your company, or your company has an outstanding debit with a vendor. You can use those
|
||||
outstanding amounts to reduce/settle unpaid invoices/bills.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Internal transfers <payments/internal_transfers>`
|
||||
@@ -23,59 +23,54 @@ amounts to reduce unpaid invoices/bills.
|
||||
Registering payment from an invoice or bill
|
||||
===========================================
|
||||
|
||||
When clicking on :guilabel:`Register payment` in a customer invoice or vendor bill, it generates a
|
||||
new journal entry and changes the amount due according to the amount of the payment. The counterpart
|
||||
is reflected in an outstanding receipts or payments account. At this point, the customer invoice or
|
||||
vendor bill is marked as :guilabel:`In payment`. Then, when the outstanding account is reconciled
|
||||
with a bank statement line, the invoice or vendor bill changes to the :guilabel:`Paid` status.
|
||||
When clicking :guilabel:`Register payment` in a customer invoice or vendor bill, it generates a new
|
||||
journal entry and changes the amount due according to the payment amount. The counterpart is
|
||||
reflected in an :ref:`outstanding <bank/outstanding-accounts>` **receipts** or **payments** account.
|
||||
At this point, the customer invoice or vendor bill is marked as :guilabel:`In payment`. Then, when
|
||||
the outstanding account is reconciled with a bank statement line, the invoice or vendor bill changes
|
||||
to the :guilabel:`Paid` status.
|
||||
|
||||
The information icon near the payment line displays more information about the payment. You can
|
||||
access additional information, such as the related journal, by clicking on :guilabel:`View`.
|
||||
access additional information, such as the related journal, by clicking :guilabel:`View`.
|
||||
|
||||
.. image:: payments/information-icon.png
|
||||
:alt: See detailed information of a payment
|
||||
:alt: See detailed information of a payment.
|
||||
|
||||
.. note::
|
||||
- The customer invoice or vendor bill should be in the status :guilabel:`Posted` to register the
|
||||
- The customer invoice or vendor bill must be in the :guilabel:`Posted` status to register the
|
||||
payment.
|
||||
- When clicking on :guilabel:`Register payment`, you can select the amount to pay and make a
|
||||
partial or full payment.
|
||||
- If your main bank account is set as :ref:`outstanding account
|
||||
<bank/outstanding-accounts>`, and the payment is made in Odoo (not related to a
|
||||
bank statement), invoices and bills are directly registered in the status :guilabel:`Paid`.
|
||||
- If you unreconciled a payment, it still appears in your books but is no longer linked to the
|
||||
- If you unreconcile a payment, it still appears in your books but is no longer linked to the
|
||||
invoice.
|
||||
- If you (un)reconcile a payment in a different currency, a journal entry is automatically
|
||||
created to post the currency exchange gains/losses (reversal) amount.
|
||||
- If you (un)reconcile a payment and an invoice having cash basis taxes, a journal entry is
|
||||
automatically created to post the cash basis tax (reversal) amount.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`bank/reconciliation`
|
||||
.. tip::
|
||||
- If your main bank account is set as an :ref:`outstanding account
|
||||
<bank/outstanding-accounts>`, and the payment is registered in Odoo (not through a related
|
||||
bank statement), invoices and bills are directly registered as :guilabel:`Paid`.
|
||||
|
||||
Registering payments not tied to an invoice or bill
|
||||
===================================================
|
||||
|
||||
When a new payment is registered via the menu :menuselection:`Customers / Vendors --> Payments`, it
|
||||
is not directly linked to an invoice or bill. Instead, the account receivable or the account payable
|
||||
are matched with the outstanding account until they are manually matched with their related invoice
|
||||
or bill.
|
||||
When a new payment is registered via :menuselection:`Customers / Vendors --> Payments` menu, it is
|
||||
not directly linked to an invoice or bill. Instead, the account receivable or the account payable is
|
||||
matched with the **outstanding account** until it is manually matched with its related invoice or
|
||||
bill.
|
||||
|
||||
Matching invoices and bills with payments
|
||||
-----------------------------------------
|
||||
|
||||
A blue banner appears when you validate a new invoice or bill and there is an outstanding payment
|
||||
for this specific customer or vendor. It can easily be matched from the invoice or the bill by
|
||||
clicking on :guilabel:`ADD` under :guilabel:`Outstanding Credits` or :guilabel:`Outstanding Debits`.
|
||||
A blue banner appears when you validate a new invoice/bill and an **outstanding payment** exists for
|
||||
this specific customer or vendor. It can easily be matched from the invoice or bill by clicking
|
||||
:guilabel:`ADD` under :guilabel:`Outstanding Credits` or :guilabel:`Outstanding Debits`.
|
||||
|
||||
.. image:: payments/add-option.png
|
||||
:alt: Shows the ADD option to reconcile an invoice or a bill with a payment
|
||||
:alt: Shows the ADD option to reconcile an invoice or a bill with a payment.
|
||||
|
||||
The invoice or bill is now marked as :guilabel:`In payment` until it is reconciled with the bank
|
||||
statement.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`bank/reconciliation`
|
||||
The invoice or bill is now marked as :guilabel:`In payment` until it is reconciled with its
|
||||
corresponding bank statement.
|
||||
|
||||
.. _payments/batch-payments:
|
||||
|
||||
@@ -83,11 +78,11 @@ Batch payment
|
||||
-------------
|
||||
|
||||
Batch payments allow you to group different payments to ease :doc:`reconciliation
|
||||
<bank/reconciliation>`. They are also useful when you deposit checks to the bank or
|
||||
for SEPA Payments. To do so, go to :menuselection:`Accounting --> Customers --> Batch Payments` or
|
||||
:menuselection:`Accounting --> Vendors --> Batch Payments`. In the list view of payments, you can
|
||||
select several payments and group them in a batch by clicking on :menuselection:`Action --> Create
|
||||
Batch Payment`.
|
||||
<bank/reconciliation>`. They are also useful when you deposit :doc:`checks <payments/checks>` to the
|
||||
bank or for :doc:`SEPA payments <payments/pay_sepa>`. To do so, go to :menuselection:`Accounting -->
|
||||
Customers --> Batch Payments` or :menuselection:`Accounting --> Vendors --> Batch Payments`. In the
|
||||
list view of payments, you can select and group several payments in a batch by clicking
|
||||
:menuselection:`Action --> Create Batch Payment`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`payments/batch`
|
||||
@@ -99,36 +94,50 @@ Payments matching
|
||||
-----------------
|
||||
|
||||
The :guilabel:`Payments matching` tool opens all unreconciled customer invoices or vendor bills and
|
||||
gives you the opportunity to process them all one by one, doing the matching of all their payments
|
||||
and invoices at once. You can reach this tool from the :menuselection:`Accounting Dashboard -->
|
||||
Customer Invoices / Vendor Bills`, and click on :guilabel:`⋮` and select :guilabel:`Payments
|
||||
Matching`, or by going to :menuselection:`Accounting --> Reconciliation`.
|
||||
allows you to process them individually, matching all payments and invoices in one place. You can
|
||||
reach this tool from the :menuselection:`Accounting Dashboard --> Customer Invoices / Vendor Bills`,
|
||||
click the drop-down menu button (:guilabel:`⋮`), and select :guilabel:`Payments Matching`, or go to
|
||||
:menuselection:`Accounting --> Accounting --> Reconciliation`.
|
||||
|
||||
.. image:: payments/payments-journal.png
|
||||
:alt: Payments matching menu in the drop-down menu.
|
||||
|
||||
.. note::
|
||||
During the :doc:`reconciliation <bank/reconciliation>`, if the sum of the debits
|
||||
and credits does not match, there is a remaining balance. This either needs to be reconciled at a
|
||||
later date or needs to be written off directly.
|
||||
During the :doc:`reconciliation <bank/reconciliation>`, if the sum of the debits and credits does
|
||||
not match, there is a remaining balance. This either needs to be reconciled at a later date or
|
||||
needs to be written off directly.
|
||||
|
||||
Batch payments matching
|
||||
-----------------------
|
||||
|
||||
To reconcile several outstanding payments or invoices at once, for a specific customer or vendor,
|
||||
the batch reconciliation feature can be used. Go to :menuselection:`Accounting --> Reporting -->
|
||||
Aged Receivable / Aged Payable`. You now see all transactions that have not been reconciled yet, and
|
||||
when you select a customer or vendor, the :guilabel:`Reconcile` option is displayed.
|
||||
You can use the **batch reconciliation feature** to reconcile several outstanding payments or
|
||||
invoices simultaneously for a specific customer or vendor. Go to your **Accounting Dashboard** and
|
||||
open your **bank journal**. In the **bank reconciliation** view, select a **transaction**, and click
|
||||
the :guilabel:`Batch Payments` tab. From here, you can reconcile your
|
||||
:doc:`batch payments <payments/batch>` with your outstanding payments or invoices.
|
||||
|
||||
.. image:: payments/reconcile-option.png
|
||||
:alt: See the reconcile option
|
||||
:alt: The batch payment reconcile option.
|
||||
|
||||
Registering a partial payment
|
||||
=============================
|
||||
|
||||
To register a **partial payment**, click :guilabel:`Register payment` from the related invoice or
|
||||
bill, and enter the amount received or paid. Upon entering the amount, a prompt appears to decide
|
||||
whether to :guilabel:`Keep open` the invoice or bill, or :guilabel:`Mark as fully paid`. Select
|
||||
:guilabel:`Keep open` and click :guilabel:`Create payment`. The invoice or bill is now marked as
|
||||
:guilabel:`Partial`. Select :guilabel:`Mark as fully paid` if you wish to settle the invoice or bill
|
||||
with a difference in the amount.
|
||||
|
||||
.. image:: payments/payment-difference.png
|
||||
:alt: Partial payment of an invoice or bill.
|
||||
|
||||
Reconciling payments with bank statements
|
||||
=========================================
|
||||
|
||||
Once a payment has been registered, the status of the invoice or bill is :guilabel:`In payment`. The
|
||||
next step is to reconcile it with the related bank statement line to have the transaction finalized
|
||||
and the invoice or bill marked as :guilabel:`Paid`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`bank/reconciliation`
|
||||
next step is :doc:`reconciling <bank/reconciliation>` it with the related bank statement line to
|
||||
have the transaction finalized and the invoice or bill marked as :guilabel:`Paid`.
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
@@ -141,6 +150,5 @@ and the invoice or bill marked as :guilabel:`Paid`.
|
||||
payments/internal_transfers
|
||||
payments/pay_sepa
|
||||
payments/pay_checks
|
||||
payments/multiple
|
||||
payments/forecast
|
||||
payments/trusted_accounts
|
||||
|
||||
|
Before Width: | Height: | Size: 5.1 KiB After Width: | Height: | Size: 6.3 KiB |
@@ -25,7 +25,6 @@ window, select the :guilabel:`Journal` linked to your bank account and :guilabel
|
||||
the :guilabel:`Payment Method`, and click :guilabel:`Create Payment`.
|
||||
|
||||
.. image:: batch/batch-payments.png
|
||||
:align: center
|
||||
:alt: Registering a customer payment as part of a batch deposit
|
||||
|
||||
Add payments to a batch deposit
|
||||
@@ -36,14 +35,12 @@ Payments`, and click :guilabel:`New`. Next, select the :guilabel:`Bank` and choo
|
||||
Deposit` as the :guilabel:`Payment Method`.
|
||||
|
||||
.. image:: batch/batch-customer-payment.png
|
||||
:align: center
|
||||
:alt: Filling out a new inbound batch payment form
|
||||
|
||||
Click :guilabel:`Add a line`. In the pop-up window, tick all payments to include in the batch
|
||||
deposit, then click :guilabel:`Select`.
|
||||
|
||||
.. image:: batch/batch-lines-selection.png
|
||||
:align: center
|
||||
:alt: Selecting all payments to include in the batch deposit
|
||||
|
||||
Once done, click :guilabel:`Validate` to finalize the batch deposit.
|
||||
@@ -60,7 +57,6 @@ Items` on the related bank account. Go to the :guilabel:`Batch Payments` tab to
|
||||
batch and click :guilabel:`Validate` to finalize the process.
|
||||
|
||||
.. image:: batch/batch-reconciliation.png
|
||||
:align: center
|
||||
:alt: Reconciling the batch payment with all its transactions
|
||||
|
||||
.. note::
|
||||
|
||||
|
Before Width: | Height: | Size: 7.4 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 7.5 KiB |
|
Before Width: | Height: | Size: 8.0 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 47 KiB |
@@ -1,53 +0,0 @@
|
||||
=========================
|
||||
Pay several bills at once
|
||||
=========================
|
||||
|
||||
Odoo offers the possibility of grouping multiple bills' payments into one, facilitating the
|
||||
reconciliation process.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`/applications/inventory_and_mrp/purchase/manage_deals/manage`
|
||||
- :doc:`/applications/finance/accounting/bank/reconciliation`
|
||||
|
||||
Group payments
|
||||
==============
|
||||
|
||||
To register the payment of multiple bills at once, go to :menuselection:`Accounting app -->
|
||||
Vendors --> Bills`. Then, select the bills you wish to register a payment for by **ticking** the
|
||||
boxes next to the bills. When done, either click :guilabel:`Register Payment` or
|
||||
:menuselection:`Action --> Register Payment`.
|
||||
|
||||
.. image:: multiple/register-payment-button.png
|
||||
:align: center
|
||||
:alt: Register payment button.
|
||||
|
||||
.. note::
|
||||
Payments can only be registered for :guilabel:`posted` bills.
|
||||
|
||||
When registering the payments, a **pop-up window** appears. From here, you can either create
|
||||
**separate payments** for each bill all at once by clicking :guilabel:`Create Payment`, *or* create
|
||||
one payment by combining **all** bills' payments. To **combine** all payments, tick the
|
||||
:guilabel:`Group Payments` box.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`Group Payments` option only appears when selecting two or more bills.
|
||||
|
||||
.. image:: multiple/multiple-group-payments.png
|
||||
:align: center
|
||||
:alt: Group payments options when registering a payment.
|
||||
|
||||
When selecting :guilabel:`Group Payments`, the :guilabel:`amount, currency, date and memo` are all
|
||||
set automatically, but you can modify them according to your needs.
|
||||
|
||||
Partial group payments with cash discounts
|
||||
------------------------------------------
|
||||
|
||||
In case of **partial group payments with cash discounts**, you can follow the steps found on the
|
||||
:doc:`cash discount documentation page
|
||||
</applications/finance/accounting/customer_invoices/cash_discounts>`. Make sure to
|
||||
apply the :doc:`payment terms
|
||||
</applications/finance/accounting/customer_invoices/payment_terms>` to the **bills**
|
||||
*instead* of the invoices.
|
||||
|
||||
.. seealso::
|
||||
:doc:`/applications/finance/accounting/customer_invoices/payment_terms`
|
||||
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 36 KiB |
@@ -13,14 +13,15 @@ Activate checks payment methods
|
||||
-------------------------------
|
||||
|
||||
To activate the checks payment method, go to :menuselection:`Accounting --> Configuration -->
|
||||
Checks`, there you can activate the payment method as well as set up the :guilabel:`Check Layout`.
|
||||
Once activated the :guilabel:`Checks` setting, the feature is automatically setup for your
|
||||
:guilabel:`Outgoing Payments`.
|
||||
Settings`, and scroll down to the :guilabel:`Vendor Payments` section. There, you can activate the
|
||||
payment method as well as set up the :guilabel:`Check Layout`.
|
||||
|
||||
.. note::
|
||||
Some countries require specific modules to print checks; such modules may be installed by
|
||||
default. For instance, the :guilabel:`U.S. Checks Layout` module is required to print U.S.
|
||||
checks.
|
||||
- Once the :guilabel:`Checks` setting is activated, the **Checks** payment method is
|
||||
automatically set up in the :guilabel:`Outgoing Payments` tabs of **bank** journals.
|
||||
- Some countries require specific modules to print checks; such modules may be installed by
|
||||
default. For instance, the :guilabel:`U.S. Checks Layout` module is required to print U.S.
|
||||
checks.
|
||||
|
||||
Compatible check stationery for printing checks
|
||||
===============================================
|
||||
|
||||
|
After Width: | Height: | Size: 4.1 KiB |
|
After Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 7.2 KiB After Width: | Height: | Size: 32 KiB |
@@ -13,36 +13,34 @@ supports all kinds of uses and computations.
|
||||
Default taxes
|
||||
=============
|
||||
|
||||
**Default Taxes** define which taxes are automatically selected when creating a new product. They
|
||||
**Default taxes** define which taxes are automatically selected when creating a new product. They
|
||||
are also used to prefill the :guilabel:`Taxes` field when adding a new line on an invoice in
|
||||
**Accounting Firms** mode.
|
||||
|
||||
.. image:: taxes/default-taxes-product.png
|
||||
:alt: Odoo fills out the Tax field automatically according to the Default Taxes
|
||||
|
||||
To change your **Default Taxes**, go to :menuselection:`Accounting --> Configuration --> Settings
|
||||
--> Taxes --> Default Taxes`, select the appropriate taxes for your default **Sales Tax** and
|
||||
**Purchase Tax**, and click on *Save*.
|
||||
:ref:`Accounting Firms <fiduciaries>` mode.
|
||||
|
||||
.. image:: taxes/default-configuration.png
|
||||
:alt: Odoo fills out the Tax field automatically according to the Default Taxes
|
||||
|
||||
To change your **default taxes**, go to :menuselection:`Accounting --> Configuration --> Settings
|
||||
--> Taxes --> Default Taxes`, select the appropriate taxes for your default sales tax and purchase
|
||||
tax, and click on :guilabel:`Save`.
|
||||
|
||||
.. image:: taxes/default-taxes.png
|
||||
:alt: Define which taxes to use by default on Odoo
|
||||
|
||||
.. note::
|
||||
**Default Taxes** are automatically set up according to the country selected at the creation of
|
||||
**Default taxes** are automatically set up according to the country selected at the creation of
|
||||
your database, or when you set up a :ref:`fiscal localization package
|
||||
<fiscal_localizations/packages>` for your company.
|
||||
|
||||
.. _taxes/list_activation:
|
||||
|
||||
Activate Sales Taxes from the List view
|
||||
Activate sales taxes from the list view
|
||||
=======================================
|
||||
|
||||
As part of your :ref:`fiscal localization package <fiscal_localizations/packages>`, most of your
|
||||
country's sales taxes are already preconfigured on your database. However, only a few of them are
|
||||
activated by default, so that you can activate only the ones relevant for your business.
|
||||
|
||||
To activate Sale Taxes, go to :menuselection:`Accounting --> Configuration --> Taxes` and use the
|
||||
*Activate* toggle button to activate or deactivate a tax.
|
||||
country's sales taxes are already preconfigured on your database. However, only a few taxes are
|
||||
activated by default. To activate taxes relevant to your business, go to :menuselection:`Accounting
|
||||
--> Configuration --> Taxes` and enable the toggle button under the :guilabel:`Active` column.
|
||||
|
||||
.. image:: taxes/list.png
|
||||
:alt: Activate pre-configured taxes in Odoo Accounting
|
||||
@@ -52,46 +50,32 @@ To activate Sale Taxes, go to :menuselection:`Accounting --> Configuration --> T
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To edit or create a **Tax**, go to :menuselection:`Accounting --> Configuration --> Taxes` and open
|
||||
a tax or click on *Create*.
|
||||
To edit or create a **tax**, go to :menuselection:`Accounting --> Configuration --> Taxes` and open
|
||||
a tax or click on :guilabel:`New`.
|
||||
|
||||
.. image:: taxes/edit.png
|
||||
:alt: Edition of a tax in Odoo Accounting
|
||||
|
||||
.. _taxes/labels:
|
||||
|
||||
.. important::
|
||||
Taxes have three different labels, each one having a specific use. Refer to the following table to
|
||||
see where they are displayed.
|
||||
|
||||
+------------------+-------------------------+-------------------------+
|
||||
| :ref:`Tax Name | :ref:`Label on Invoice | :ref:`Tax Group |
|
||||
| <taxes/name>` | <taxes/label-invoices>` | <taxes/tax-group>` |
|
||||
+==================+=========================+=========================+
|
||||
| Back end | *Taxes* column on | Above the *Total* line |
|
||||
| | exported invoices | on exported invoices |
|
||||
+------------------+-------------------------+-------------------------+
|
||||
|
||||
Basic Options
|
||||
Basic options
|
||||
-------------
|
||||
|
||||
.. _taxes/name:
|
||||
|
||||
Tax Name
|
||||
Tax name
|
||||
~~~~~~~~
|
||||
|
||||
The **Tax Name** as you want to display it for backend users. This is the :ref:`label
|
||||
<taxes/labels>` you see while editing Sales Orders, Invoices, Products, etc.
|
||||
The **tax name** is displayed for backend users in the :guilabel:`Taxes` field in
|
||||
:doc:`sales orders <../../sales/sales>`, :doc:`invoices <customer_invoices>`, product forms, etc.
|
||||
|
||||
.. _taxes/computation:
|
||||
|
||||
Tax Computation
|
||||
Tax computation
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
- **Group of Taxes**
|
||||
|
||||
The tax is a combination of multiple sub-taxes. You can add as many taxes you want, in the order
|
||||
you want them to be applied.
|
||||
The tax is a combination of multiple sub-taxes. You can add as many taxes as you want, in the
|
||||
order you want them to be applied.
|
||||
|
||||
.. important::
|
||||
Make sure that the tax sequence is correct, as the order in which they are may impact the
|
||||
@@ -101,75 +85,93 @@ Tax Computation
|
||||
- **Fixed**
|
||||
|
||||
The tax has a fixed amount in the default currency. The amount remains the same, regardless of the
|
||||
Sales Price.
|
||||
sales price.
|
||||
|
||||
For example, a product has a Sales Price of $1000, and we apply a *$10 fixed* tax. We then have:
|
||||
.. example::
|
||||
A product has a sales price of $1000, and we apply a $10 *fixed* tax. We then have:
|
||||
|
||||
+-------------+-------------+----------+----------+
|
||||
| Product's | Price | Tax | Total |
|
||||
| Sales Price | without tax | | |
|
||||
+=============+=============+==========+==========+
|
||||
| 1,000 | 1,000 | 10 | 1,010.00 |
|
||||
+-------------+-------------+----------+----------+
|
||||
+-------------+-------------+----------+----------+
|
||||
| Product | Price | Tax | Total |
|
||||
| sales price | without tax | | |
|
||||
+=============+=============+==========+==========+
|
||||
| 1,000 | 1,000 | 10 | 1,010.00 |
|
||||
+-------------+-------------+----------+----------+
|
||||
|
||||
- **Percentage of Price**
|
||||
- **Percentage of price**
|
||||
|
||||
The *Sales Price* is the taxable basis: the tax's amount is computed by multiplying the Sales
|
||||
Price by the tax's percentage.
|
||||
The *sales price* is the taxable basis: the tax amount is computed by multiplying the sales price
|
||||
by the tax percentage.
|
||||
|
||||
For example, a product has a Sales Price of $1000, and we apply a *10% of Price* tax. We then
|
||||
have:
|
||||
.. example::
|
||||
A product has a sales price of $1000, and we apply a *10% of Price* tax. We then have:
|
||||
|
||||
+-------------+-------------+----------+----------+
|
||||
| Product's | Price | Tax | Total |
|
||||
| Sales Price | without tax | | |
|
||||
+=============+=============+==========+==========+
|
||||
| 1,000 | 1,000 | 100 | 1,100.00 |
|
||||
+-------------+-------------+----------+----------+
|
||||
+-------------+-------------+----------+----------+
|
||||
| Product | Price | Tax | Total |
|
||||
| sales price | without tax | | |
|
||||
+=============+=============+==========+==========+
|
||||
| 1,000 | 1,000 | 100 | 1,100.00 |
|
||||
+-------------+-------------+----------+----------+
|
||||
|
||||
- **Percentage of Price Tax Included**
|
||||
|
||||
The *Total* is the taxable basis: the tax's amount is a percentage of the Total.
|
||||
The **total** is the taxable basis: the tax amount is a percentage of the total.
|
||||
|
||||
For example, a product has a Sales Price of $1000, and we apply a *10% of Price Tax Included* tax.
|
||||
We then have:
|
||||
.. example::
|
||||
A product has a Sales Price of $1000, and we apply a *10% of Price Tax Included* tax. We then
|
||||
have:
|
||||
|
||||
+-------------+-------------+----------+----------+
|
||||
| Product's | Price | Tax | Total |
|
||||
| Sales Price | without tax | | |
|
||||
+=============+=============+==========+==========+
|
||||
| 1,000 | 1,000 | 111.11 | 1,111.11 |
|
||||
+-------------+-------------+----------+----------+
|
||||
+-------------+-------------+----------+----------+
|
||||
| Product | Price | Tax | Total |
|
||||
| sales price | without tax | | |
|
||||
+=============+=============+==========+==========+
|
||||
| 1,000 | 1,000 | 111.11 | 1,111.11 |
|
||||
+-------------+-------------+----------+----------+
|
||||
|
||||
- **Python code**
|
||||
|
||||
A tax defined as **Python code** consists of two snippets of Python code that are executed in a
|
||||
local environment containing data such as the unit price, product or partner.
|
||||
:guilabel:`Python Code` defines the amount of the tax, and :guilabel:`Applicable Code` defines if
|
||||
the tax is to be applied. The formula is found at the bottom of the :guilabel:`Definition` tab.
|
||||
|
||||
.. example::
|
||||
:guilabel:`Python Code`: `result = price_unit * 0.10`
|
||||
:guilabel:`Applicable Code`: `result = true`
|
||||
|
||||
.. _taxes/active:
|
||||
|
||||
Active
|
||||
~~~~~~
|
||||
|
||||
Only **Active** taxes can be added to new documents.
|
||||
Only **active** taxes can be added to new documents.
|
||||
|
||||
.. important::
|
||||
It is not possible to delete taxes that have already been used. Instead, you can deactivate them
|
||||
to prevent future use.
|
||||
|
||||
.. note::
|
||||
This field can be modified from the *List View*. See :ref:`above <taxes/list_activation>` for
|
||||
more information.
|
||||
This field can be modified from the :ref:`list view <taxes/list_activation>`.
|
||||
|
||||
.. _taxes/scope:
|
||||
|
||||
Tax Scope
|
||||
~~~~~~~~~
|
||||
Tax type
|
||||
~~~~~~~~
|
||||
|
||||
The **Tax Scope** determines the tax's application, which also restricts where it is displayed.
|
||||
The :guilabel:`Tax Type` determines the tax application, which also restricts where it is displayed.
|
||||
|
||||
- **Sales**: Customer Invoices, Product's Customer Taxes, etc.
|
||||
- **Purchase**: Vendor Bills, Product's Vendor Taxes, etc.
|
||||
- **Sales**: Customer invoices, product customer taxes, etc.
|
||||
- **Purchase**: Vendor bills, product vendor taxes, etc.
|
||||
- **None**
|
||||
|
||||
.. tip::
|
||||
You can use **None** for taxes that you want to include in a :ref:`Group of Taxes
|
||||
<taxes/computation>` but that you don't want to list along with other Sales or Purchase taxes.
|
||||
You can use :guilabel:`None` for taxes that you want to include in a :ref:`Group of Taxes
|
||||
<taxes/computation>` but that you do not want to list along with other sales or purchase taxes.
|
||||
|
||||
Tax scope
|
||||
~~~~~~~~~
|
||||
|
||||
The :guilabel:`Tax Scope` restricts the use of taxes to a type of product, either **goods** or
|
||||
**services**.
|
||||
|
||||
.. _taxes/definition-tab:
|
||||
|
||||
@@ -177,105 +179,118 @@ Definition tab
|
||||
--------------
|
||||
|
||||
Allocate with precision the amount of the taxable basis or percentages of the computed tax to
|
||||
multiple accounts and Tax Grids.
|
||||
multiple accounts and tax grids.
|
||||
|
||||
.. image:: taxes/definition.png
|
||||
:alt: Allocate tax amounts to the right accounts and tax grids
|
||||
|
||||
- **Based On**:
|
||||
|
||||
- Base: the price on the invoice line
|
||||
- % of tax: a percentage of the computed tax.
|
||||
- :guilabel:`Base`: the price on the invoice line
|
||||
- :guilabel:`% of tax`: a percentage of the computed tax.
|
||||
|
||||
- **Account**: if defined, an additional Journal Item is recorded.
|
||||
- **Tax Grids**: used to generate :doc:`Tax Reports <reporting/tax_returns>`
|
||||
- **Account**: if defined, an additional journal item is recorded.
|
||||
- **Tax Grids**: used to generate :doc:`tax reports <reporting/tax_returns>`
|
||||
automatically, according to your country's regulations.
|
||||
|
||||
.. _taxes/advanced-tab:
|
||||
|
||||
Advanced Options tab
|
||||
Advanced options tab
|
||||
--------------------
|
||||
|
||||
.. _taxes/label-invoices:
|
||||
|
||||
Label on Invoices
|
||||
Label on invoices
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
The label of the tax, as displayed on each invoice line in the **Taxes** column. This is the
|
||||
:ref:`label <taxes/labels>` visible to *front end* users, on exported invoices, on their Customer
|
||||
Portals, etc.
|
||||
The tax label is displayed on each invoice line in the :guilabel:`Taxes` column. This is visible to
|
||||
*front-end* users on exported invoices, in customer portals, etc.
|
||||
|
||||
.. image:: taxes/invoice-label.png
|
||||
:alt: The Label on Invoices is displayed on each invoice line
|
||||
:alt: The label on invoices is displayed on each invoice line
|
||||
|
||||
.. _taxes/tax-group:
|
||||
|
||||
Tax Group
|
||||
Tax group
|
||||
~~~~~~~~~
|
||||
|
||||
Select to which **Tax Group** the tax belongs. The Tax Group name is the :ref:`label
|
||||
<taxes/labels>` displayed above the *Total* line on exported invoices, and the Customer Portals.
|
||||
Select which **tax group** the tax belongs to. The tax group name is the displayed above the
|
||||
**total** line on exported invoices and in customer portals.
|
||||
|
||||
Tax groups include different iterations of the same tax. This can be useful when you must record
|
||||
differently the same tax according to :doc:`Fiscal Positions <taxes/fiscal_positions>`.
|
||||
the same tax differently according to :doc:`fiscal positions <taxes/fiscal_positions>`.
|
||||
|
||||
.. image:: taxes/invoice-tax-group.png
|
||||
:alt: The Tax Group name is different from the Label on Invoices
|
||||
.. example::
|
||||
|
||||
In the example above, we see a 0% tax for Intra-Community customers in Europe. It records amounts on
|
||||
specific accounts and with specific tax grids. Still, to the customer, it is a 0% tax. That's why
|
||||
the :ref:`Label on the Invoice <taxes/label-invoices>` indicates *0% EU*, and the Tax Group name,
|
||||
above the *Total* line, indicates *0%*.
|
||||
.. image:: taxes/invoice-tax-group.png
|
||||
:alt: The Tax Group name is different from the Label on Invoices
|
||||
|
||||
In the example above, the :guilabel:`0% EU S` tax for intra-community customers in Europe records
|
||||
the amount on specific accounts and tax grids. However, it remains a 0% tax to the customer. This
|
||||
is why the label indicates :guilabel:`0% EU S`, and the tax group name above the
|
||||
:guilabel:`Total` line indicates :guilabel:`VAT 0%`.
|
||||
|
||||
.. important::
|
||||
Taxes have three different labels, each one having a specific use. Refer to the following table
|
||||
to see where they are displayed.
|
||||
|
||||
+------------------+-------------------------+-------------------------+
|
||||
| :ref:`Tax Name | :ref:`Label on Invoice | :ref:`Tax Group |
|
||||
| <taxes/name>` | <taxes/label-invoices>` | <taxes/tax-group>` |
|
||||
+==================+=========================+=========================+
|
||||
| Backend | :guilabel:`Taxes` column| Above the |
|
||||
| | on exported invoices | :guilabel:`Total` line |
|
||||
| | | on exported invoices |
|
||||
+------------------+-------------------------+-------------------------+
|
||||
|
||||
.. _taxes/analytic-cost:
|
||||
|
||||
Include in Analytic Cost
|
||||
Include in analytic cost
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
With this option activated, the tax's amount is assigned to the same **Analytic Account** as the
|
||||
With this option activated, the tax amount is assigned to the same **analytic account** as the
|
||||
invoice line.
|
||||
|
||||
.. _taxes/included-in-price:
|
||||
|
||||
Included in Price
|
||||
Included in price
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
With this option activated, the total (including the tax) equals the **Sales Price**.
|
||||
With this option activated, the total (including the tax) equals the **sales price**.
|
||||
|
||||
:dfn:`Total = Sales Price = Computed Tax-Excluded price + Tax`
|
||||
`Total = Sales Price = Computed Tax-Excluded price + Tax`
|
||||
|
||||
For example, a product has a Sales Price of $1000, and we apply a *10% of Price* tax, which is
|
||||
*included in the price*. We then have:
|
||||
.. example::
|
||||
A product has a sales price of $1000, and we apply a *10% of Price* tax, which is *included in
|
||||
the price*. We then have:
|
||||
|
||||
+-------------+-------------+----------+----------+
|
||||
| Product's | Price | Tax | Total |
|
||||
| Sales Price | without tax | | |
|
||||
+=============+=============+==========+==========+
|
||||
| 1,000 | 900.10 | 90.9 | 1,000.00 |
|
||||
+-------------+-------------+----------+----------+
|
||||
+-------------+-------------+----------+----------+
|
||||
| Product | Price | Tax | Total |
|
||||
| sales price | without tax | | |
|
||||
+=============+=============+==========+==========+
|
||||
| 1,000 | 900.10 | 90.9 | 1,000.00 |
|
||||
+-------------+-------------+----------+----------+
|
||||
|
||||
.. note::
|
||||
If you need to define prices accurately, both tax-included and tax-excluded, please refer to the
|
||||
following documentation: :doc:`taxes/B2B_B2C`.
|
||||
|
||||
.. note::
|
||||
- **Invoices**: By default, the Line Subtotals displayed on your invoices are *Tax-Excluded*. To
|
||||
display *Tax-Included* Line Subtotals, go to :menuselection:`Accounting --> Configuration -->
|
||||
Settings --> Customer Invoices`, and select *Tax-Included* in the **Line Subtotals Tax
|
||||
Display** field, then click on *Save*.
|
||||
- **eCommerce**: By default, the prices displayed on your eCommerce website are *Tax-Excluded*.
|
||||
To display *Tax-Included* prices, go to :menuselection:`Website --> Configuration --> Settings
|
||||
--> Pricing`, and select *Tax-Included* in the **Product Prices** field, then click on *Save*.
|
||||
By default, only the :guilabel:`Tax excluded` column is displayed on invoices. To display the
|
||||
:guilabel:`Tax included` column, click the **dropdown toggle** button and check
|
||||
:guilabel:`Tax incl.`.
|
||||
|
||||
.. image:: taxes/toggle-button.png
|
||||
|
||||
.. _taxes/base-subsequent:
|
||||
|
||||
Affect Base of Subsequent Taxes
|
||||
Affect base of subsequent taxes
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
With this option, the total tax-included becomes the taxable basis for the other taxes applied to
|
||||
the same product.
|
||||
|
||||
You can configure a new :ref:`Group of Taxes <taxes/computation>` to include this tax, or add it
|
||||
You can configure a new :ref:`group of taxes <taxes/computation>` to include this tax or add it
|
||||
directly to a product line.
|
||||
|
||||
.. image:: taxes/subsequent-line.png
|
||||
@@ -293,9 +308,9 @@ directly to a product line.
|
||||
:alt: The taxes' sequence in Odoo determines which tax is applied first
|
||||
|
||||
.. seealso::
|
||||
|
||||
- :doc:`taxes/fiscal_positions`
|
||||
- :doc:`taxes/B2B_B2C`
|
||||
- :doc:`taxes/taxcloud`
|
||||
- :doc:`reporting/tax_returns`
|
||||
|
||||
.. toctree::
|
||||
|
||||
|
Before Width: | Height: | Size: 3.3 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 5.7 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 16 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 7.9 KiB After Width: | Height: | Size: 6.7 KiB |
|
Before Width: | Height: | Size: 10 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 2.7 KiB After Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 7.3 KiB After Width: | Height: | Size: 24 KiB |
@@ -2,69 +2,41 @@
|
||||
Withholding taxes
|
||||
=================
|
||||
|
||||
A withholding tax, also called a retention tax, is a government
|
||||
requirement for the payer of a customer invoice to withhold or deduct
|
||||
tax from the payment, and pay that tax to the government. In most
|
||||
jurisdictions, withholding tax applies to employment income.
|
||||
|
||||
With normal taxes, the tax is added to the subtotal to give you the
|
||||
total to pay. As opposed to normal taxes, withholding taxes are deducted
|
||||
from the amount to pay, as the tax will be paid by the customer.
|
||||
|
||||
As, an example, in Colombia you may have the following invoice:
|
||||
|
||||
.. image:: retention/retention03.png
|
||||
:align: center
|
||||
|
||||
In this example, the **company** who sent the invoice owes $20 of taxes to
|
||||
the **government** and the **customer** owes $10 of taxes to the **government**.
|
||||
A **withholding tax**, also known as retention tax, mandates the payer of a customer invoice to
|
||||
deduct a tax from the payment and remit it to the government. Typically, a tax is included in the
|
||||
subtotal to calculate the total amount paid, while withholding taxes are directly subtracted from
|
||||
the payment.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
In Odoo, a withholding tax is defined by creating a negative tax. For a
|
||||
retention of 10%, you would configure the following tax (accessible
|
||||
through :menuselection:`Configuration --> Taxes`):
|
||||
In Odoo, a withholding tax is defined by creating a negative tax. To create one, go
|
||||
to :menuselection:`Accounting --> Configuration --> Taxes` and, in the :guilabel:`Amount` field,
|
||||
enter a negative amount.
|
||||
|
||||
.. image:: retention/retention04.png
|
||||
:align: center
|
||||
.. image:: retention/negative-amount.png
|
||||
:alt: negative tax amount in field
|
||||
|
||||
In order to make it appear as a retention on the invoice, you should set
|
||||
a specific tax group **Retention** on your tax, in the **Advanced Options**
|
||||
tab.
|
||||
Then, go to the :menuselection:`Advanced Options` tab and create a retention :guilabel:`Tax Group`.
|
||||
|
||||
.. image:: retention/retention02.png
|
||||
:align: center
|
||||
|
||||
Once the tax is defined, you can use it in your products, sales order or
|
||||
invoices.
|
||||
.. image:: retention/tax-group.png
|
||||
:alt: tax group for retention tax.
|
||||
|
||||
.. tip::
|
||||
If the retention is a percentage of a regular tax, create a Tax with a
|
||||
**Tax Computation** as a **Tax Group** and set the two taxes in this group
|
||||
(normal tax and retention).
|
||||
If the retention is a percentage of a regular tax, create a :guilabel:`Tax` with a
|
||||
:guilabel:`Tax Computation` as a :guilabel:`Group of Taxes`. Then, set both the regular tax and
|
||||
the retention one in the :guilabel:`Definition` tab.
|
||||
|
||||
Applying retention taxes on invoices
|
||||
====================================
|
||||
Retention taxes on invoices
|
||||
===========================
|
||||
|
||||
Once your tax is created, you can use it on customer forms, sales order
|
||||
or customer invoices. You can apply several taxes on a single customer
|
||||
invoice line.
|
||||
Once the retention tax has been created, it can be used on customer forms, sales orders, and
|
||||
customer invoices.
|
||||
Several taxes can be applied on a single customer invoice line.
|
||||
|
||||
.. image:: retention/retention01.png
|
||||
:align: center
|
||||
|
||||
.. note::
|
||||
When you see the customer invoice on the screen, you get only a
|
||||
**Taxes line** summarizing all the taxes (normal taxes & retentions).
|
||||
But when you print or send the invoice, Odoo does the correct
|
||||
grouping amongst all the taxes.
|
||||
|
||||
The printed invoice will show the different amounts in each tax group.
|
||||
|
||||
.. image:: retention/retention03.png
|
||||
:align: center
|
||||
.. image:: retention/invoice-tax.png
|
||||
:alt: invoice lines with taxes
|
||||
|
||||
.. seealso::
|
||||
|
||||
* :doc:`../taxes`
|
||||
:doc:`../taxes`
|
||||
|
||||
|
After Width: | Height: | Size: 17 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 5.7 KiB After Width: | Height: | Size: 8.3 KiB |
@@ -3,9 +3,12 @@ TaxCloud integration
|
||||
====================
|
||||
|
||||
.. warning::
|
||||
The Odoo TaxCloud integration has begun its decommissioning, starting in Odoo 17. New
|
||||
installations are prohibited in Odoo 17, and in Odoo 18, the TaxCloud module(s) won't exist at
|
||||
all. Odoo recommends the use of the Avatax platform.
|
||||
The out-of-the-box Odoo TaxCloud integration has begun its decommissioning. Starting in Odoo 17,
|
||||
new installations are prohibited, and in Odoo 18 the TaxCloud module(s) won't exist at all. Odoo
|
||||
recommends the use of the Avatax platform.
|
||||
|
||||
If you are hosted on-premise or on Odoo.SH and you wish to use Taxcloud, you can contact them
|
||||
directly `here <https://taxcloud.com/blog/odoo-integration/>`_.
|
||||
|
||||
.. seealso::
|
||||
:doc:`avatax`
|
||||
|
||||
|
After Width: | Height: | Size: 7.9 KiB |
@@ -1,195 +1,176 @@
|
||||
=================================
|
||||
Deferred expenses and prepayments
|
||||
=================================
|
||||
=================
|
||||
Deferred expenses
|
||||
=================
|
||||
|
||||
**Deferred expenses** and **prepayments** (also known as **prepaid expense**), are both costs that
|
||||
have already occurred for unconsumed products or services yet to receive.
|
||||
**Deferred expenses** and **prepayments** (also known as **prepaid expenses**) are both costs that
|
||||
have already occurred for products or services yet to be received.
|
||||
|
||||
Such costs are **assets** for the company that pays them since it already paid for products and
|
||||
services still to receive or that are yet to be used. The company cannot report them on the current
|
||||
**Profit and Loss statement**, or *Income Statement*, since the payments will be effectively
|
||||
expensed in the future.
|
||||
services but has either not yet received them or not yet used them. The company cannot report them
|
||||
on the current **profit and loss statement**, or *income statement*, since the payments will be
|
||||
effectively expensed in the future.
|
||||
|
||||
These future expenses must be deferred on the company's balance sheet until the moment in time they
|
||||
can be **recognized**, at once or over a defined period, on the Profit and Loss statement.
|
||||
can be **recognized**, at once or over a defined period, on the profit and loss statement.
|
||||
|
||||
For example, let's say we pay $ 1200 at once for one year of insurance. We already pay the cost now
|
||||
For example, let's say we pay $1200 at once for one year of insurance. We already pay the cost now
|
||||
but haven't used the service yet. Therefore, we post this new expense in a *prepayment account* and
|
||||
decide to recognize it on a monthly basis. Each month, for the next 12 months, $ 100 will be
|
||||
decide to recognize it on a monthly basis. Each month, for the next 12 months, $100 will be
|
||||
recognized as an expense.
|
||||
|
||||
Odoo Accounting handles deferred expenses and prepayments by spreading them in multiple entries that
|
||||
are automatically created in *draft mode* and then posted periodically.
|
||||
Odoo Accounting handles deferred expenses by spreading them across multiple entries that are
|
||||
posted periodically.
|
||||
|
||||
.. note::
|
||||
The server checks once a day if an entry must be posted. It might then take up to 24 hours before
|
||||
you see a change from *draft* to *posted*.
|
||||
you see a change from :guilabel:`Draft` to :guilabel:`Posted`.
|
||||
|
||||
Prerequisites
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Such transactions must be posted on a **Deferred Expense Account** rather than on the default
|
||||
expense account.
|
||||
Make sure the default settings are correctly configured for your business. To do so, go to
|
||||
:menuselection:`Accounting --> Configuration --> Settings`. The following options are available:
|
||||
|
||||
Configure a Deferred Expense Account
|
||||
------------------------------------
|
||||
Journal
|
||||
The deferral entries are posted in this journal.
|
||||
Deferred Expense Account
|
||||
Expenses are deferred on this Current Asset account until they are recognized.
|
||||
Deferred Revenue Account
|
||||
Revenues are deferred on this Current Liability account until they are recognized.
|
||||
Generate Entries
|
||||
By default, Odoo :ref:`automatically generates <vendor_bills/deferred/generate_on_validation>`
|
||||
the deferral entries when you post a vendor bill. However, you can also choose to
|
||||
:ref:`generate them manually <vendor_bills/deferred/generate_manually>` by selecting the
|
||||
:guilabel:`Manually & Grouped` option instead.
|
||||
Amount Computation
|
||||
Suppose a bill of $1200 must be deferred over 12 months. The :guilabel:`Equal per month`
|
||||
computation recognizes $100 each month, while the :guilabel:`Based on days` computation recognizes
|
||||
different amounts depending on the number of days in each month.
|
||||
|
||||
To configure your account in the **Chart of Accounts**, go to :menuselection:`Accounting -->
|
||||
Configuration --> Chart of Accounts`, click on *Create*, and fill out the form.
|
||||
.. _vendor_bills/deferred/generate_on_validation:
|
||||
|
||||
.. image:: deferred_expenses/deferred_expenses01.png
|
||||
:align: center
|
||||
:alt: Configuration of a Deferred Expense Account in Odoo Accounting
|
||||
Generate deferral entries on validation
|
||||
=======================================
|
||||
|
||||
.. tip::
|
||||
Make sure the :guilabel:`Start Date` and :guilabel:`End Date` fields are visible in the
|
||||
:guilabel:`Invoice Lines` tab. In most cases, the :guilabel:`Start Date` should be in the same
|
||||
month as the :guilabel:`Bill Date`.
|
||||
|
||||
For each line of the bill that should be deferred, specify the start and end dates of the deferral
|
||||
period.
|
||||
|
||||
If the :guilabel:`Generate Entries` field is set to :guilabel:`On invoice/bill validation`, Odoo
|
||||
automatically generates the deferral entries when the bill is validated. Click on the
|
||||
:guilabel:`Deferred Entries` smart button to see them.
|
||||
|
||||
One entry, dated on the same day as the bill, moves the bill amounts from the expense account to
|
||||
the deferred account. The other entries are deferral entries which will, month after month, move the
|
||||
bill amounts from the deferred account to the expense account to recognize the expense.
|
||||
|
||||
.. example::
|
||||
You can defer a January bill of $1200 over 12 months by specifying a start date of 01/01/2023
|
||||
and an end date of 12/31/2023. At the end of August, $800 is recognized as an expense,
|
||||
whereas $400 remains on the deferred account.
|
||||
|
||||
Reporting
|
||||
=========
|
||||
|
||||
The deferred expense report computes an overview of the necessary deferral entries for each account.
|
||||
To access it, go to :menuselection:`Accounting --> Reporting --> Deferred Expense`.
|
||||
|
||||
To view the journal items of each account, click on the account name and then :guilabel:`Journal
|
||||
Items`.
|
||||
|
||||
.. image:: deferred_expenses/deferred_expense_report.png
|
||||
:alt: Deferred expense report
|
||||
|
||||
.. note::
|
||||
This account's type must be either *Current Assets* or *Prepayments*
|
||||
Only bills whose accounting date is before the end of the period of the report
|
||||
are taken into account.
|
||||
|
||||
Post an expense to the right account
|
||||
------------------------------------
|
||||
.. _vendor_bills/deferred/generate_manually:
|
||||
|
||||
Select the account on a draft bill
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Generate grouped deferral entries manually
|
||||
==========================================
|
||||
|
||||
On a draft bill, select the right account for all the products of which the expenses must be
|
||||
deferred.
|
||||
If you have a lot of deferred revenues and wish to reduce the number of journal entries created, you
|
||||
can generate deferral entries manually. To do so, set the :guilabel:`Generate Entries` field in the
|
||||
**Settings** to :guilabel:`Manually & Grouped`. Odoo then aggregates the deferred amounts in a
|
||||
single entry.
|
||||
|
||||
.. image:: deferred_expenses/deferred_expenses02.png
|
||||
:align: center
|
||||
:alt: Selection of a Deferred Expense Account on a draft bill in Odoo Accounting
|
||||
At the end of each month, go to the Deferred Expenses report and click the
|
||||
:guilabel:`Generate Entries` button. This generates two deferral entries:
|
||||
|
||||
Choose a different Expense Account for specific products
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
- One dated at the end of the month which aggregates, for each account, all the deferred amounts
|
||||
of that month. This means that at the end of that period, a part of the deferred expense is
|
||||
recognized.
|
||||
- The reversal of this created entry, dated on the following day (i.e., the first day of the
|
||||
next month) to cancel the previous entry.
|
||||
|
||||
Start editing the product, go to the *Accounting* tab, select the right **Expense Account**, and
|
||||
save.
|
||||
.. example::
|
||||
|
||||
.. image:: deferred_expenses/deferred_expenses03.png
|
||||
:align: center
|
||||
:alt: Change of the Expense Account for a product in Odoo
|
||||
There are two bills:
|
||||
|
||||
.. tip::
|
||||
It is possible to automate the creation of expense entries for these products (see:
|
||||
`Automate the Deferred Expenses`_).
|
||||
- Bill A: $1200 to be deferred from 01/01/2023 to 12/31/2023
|
||||
- Bill B: $600 to be deferred from 01/01/2023 to 12/31/2023
|
||||
|
||||
Change the account of a posted journal item
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
In January
|
||||
At the end of January, after clicking the :guilabel:`Generate Entries` button,
|
||||
there are the following entries:
|
||||
|
||||
To do so, open your Purchases Journal by going to :menuselection:`Accounting --> Accounting -->
|
||||
Purchases`, select the journal item you want to modify, click on the account, and select the right
|
||||
one.
|
||||
- Entry 1 dated on the 31st January:
|
||||
|
||||
.. image:: deferred_expenses/deferred_expenses04.png
|
||||
:align: center
|
||||
:alt: Modification of a posted journal item's account in Odoo Accounting
|
||||
- Line 1: Expense account -1200 -600 = **-1800** (cancelling the total of both bills)
|
||||
- Line 2: Expense account 100 + 50 = **150** (recognizing 1/12 of bill A and bill B)
|
||||
- Line 3: Deferred account 1800 - 150 = **1650** (amount that has yet to be deferred later
|
||||
on)
|
||||
|
||||
Deferred Expenses entries
|
||||
=========================
|
||||
- Entry 2 dated on the 1st February, the reversal of the previous entry:
|
||||
|
||||
Create a new entry
|
||||
------------------
|
||||
- Line 1: Expense account **1800**
|
||||
- Line 2: Deferred account **-150**
|
||||
- Line 3: Expense account **-1650**
|
||||
|
||||
A **Deferred Expense entry** automatically generates all journal entries in *draft mode*. They are
|
||||
then posted one by one at the right time until the full amount of the expense is recognized.
|
||||
In February
|
||||
At the end of February, after clicking the :guilabel:`Generate Entries` button,
|
||||
there are the following entries:
|
||||
|
||||
To create a new entry, go to :menuselection:`Accounting --> Accounting --> Deferred Expense`, click
|
||||
on *Create*, and fill out the form.
|
||||
- Entry 1 dated on the 28th February:
|
||||
|
||||
Click on **select related purchases** to link an existing journal item to this new entry. Some
|
||||
fields are then automatically filled out, and the journal item is now listed under the **Related
|
||||
Expenses** tab.
|
||||
- Line 1: Expense account -1200 -600 = **-1800** (cancelling the total of both bills)
|
||||
- Line 2: Expense account 200 + 100 = **300** (recognizing 2/12 of bill A and bill B)
|
||||
- Line 3: Deferred account 1800 - 300 = **1500** (amount that has yet to be deferred later
|
||||
on)
|
||||
|
||||
.. image:: deferred_expenses/deferred_expenses05.png
|
||||
:align: center
|
||||
:alt: Deferred Expense entry in Odoo Accounting
|
||||
- Entry 2 dated on the 1st March, the reversal of the previous entry.
|
||||
|
||||
Once done, you can click on *Compute Deferral* (next to the *Confirm* button) to generate all the
|
||||
values of the **Expense Board**. This board shows you all the entries that Odoo will post to
|
||||
recognize your expense, and at which date.
|
||||
From March to October
|
||||
The same computation is done for each month until October.
|
||||
|
||||
.. image:: deferred_expenses/deferred_expenses06.png
|
||||
:align: center
|
||||
:alt: Expense Board in Odoo Accounting
|
||||
In November
|
||||
At the end of November, after clicking the :guilabel:`Generate Entries` button,
|
||||
there are the following entries:
|
||||
|
||||
What does "Prorata Temporis" mean?
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
- Entry 1 dated on the 30th November:
|
||||
|
||||
The **Prorata Temporis** feature is useful to recognize your expense the most accurately possible.
|
||||
- Line 1: Expense account -1200 -600 = **-1800** (cancelling the total of both bills)
|
||||
- Line 2: Expense account 1100 + 550 = **1650** (recognizing 11/12 of bill A and bill B)
|
||||
- Line 3: Deferred account 1800 - 1650 = **150** (amount that has yet to be deferred later
|
||||
on)
|
||||
|
||||
With this feature, the first entry on the Expense Board is computed based on the time left between
|
||||
the *Prorata Date* and the *First Recognition Date* rather than the default amount of time between
|
||||
recognitions.
|
||||
- Entry 2 dated on the 1st December, the reversal of the previous entry.
|
||||
|
||||
For example, the Expense Board above has its first expense with an amount of $ 70.97 rather than
|
||||
$ 100.00. Consequently, the last entry is also lower and has an amount of $ 29.03.
|
||||
In December
|
||||
There is no need to generate entries in December. Indeed, if we do the computation for
|
||||
December, we will have an amount of 0 to be deferred.
|
||||
|
||||
Deferred Entry from the Purchases Journal
|
||||
-----------------------------------------
|
||||
In total
|
||||
If we aggregate everything, we would have:
|
||||
|
||||
You can create a deferred entry from a specific journal item in your **Purchases Journal**.
|
||||
- bill A and bill B
|
||||
- two entries (one for the deferral and one for the reversal) for each month from January to
|
||||
November
|
||||
|
||||
To do so, open your Purchases Journal by going to :menuselection:`Accounting --> Accounting -->
|
||||
Purchases`, and select the journal item you want to defer. Make sure that it is posted in the right
|
||||
account (see: `Change the account of a posted journal item`_).
|
||||
|
||||
Then, click on *Action*, select **Create Deferred Entry**, and fill out the form the same way you
|
||||
would do to `create a new entry`_.
|
||||
|
||||
.. image:: deferred_expenses/deferred_expenses07.png
|
||||
:align: center
|
||||
:alt: Create Deferred Entry from a journal item in Odoo Accounting
|
||||
|
||||
Deferred Expense Models
|
||||
=======================
|
||||
|
||||
You can create **Deferred Expense Models** to create your Deferred Expense entries faster.
|
||||
|
||||
To create a model, go to :menuselection:`Accounting --> Configuration --> Deferred Expense Models`,
|
||||
click on *Create*, and fill out the form the same way you would do to create a new entry.
|
||||
|
||||
.. tip::
|
||||
You can also convert a *confirmed Deferred Expense entry* into a model by opening it from
|
||||
:menuselection:`Accounting --> Accounting --> Deferred Expenses` and then, by clicking on the
|
||||
button *Save Model*.
|
||||
|
||||
Apply a Deferred Expense Model to a new entry
|
||||
---------------------------------------------
|
||||
|
||||
When you create a new Deferred Expense entry, fill out the **Deferred Expense Account** with the
|
||||
right recognition account.
|
||||
|
||||
New buttons with all the models linked to that account appear at the top of the form. Clicking on a
|
||||
model button fills out the form according to that model.
|
||||
|
||||
.. image:: deferred_expenses/deferred_expenses08.png
|
||||
:align: center
|
||||
:alt: Deferred Expense model button in Odoo Accounting
|
||||
|
||||
.. _deferred-expenses-automation:
|
||||
|
||||
Automate the Deferred Expenses
|
||||
==============================
|
||||
|
||||
When you create or edit an account of which the type is either *Current Assets* or *Prepayments*,
|
||||
you can configure it to defer the expenses that are credited on it automatically.
|
||||
|
||||
You have three choices for the **Automate Deferred Expense** field:
|
||||
|
||||
#. **No:** this is the default value. Nothing happens.
|
||||
#. **Create in draft:** whenever a transaction is posted on the account, a draft *Deferred Expenses
|
||||
entry* is created, but not validated. You must first fill out the form in
|
||||
:menuselection:`Accounting --> Accounting --> Deferred Expenses`.
|
||||
#. **Create and validate:** you must also select a Deferred Expense Model (see: `Deferred Expense
|
||||
Models`_). Whenever a transaction is posted on the account, a *Deferred Expenses entry* is
|
||||
created and immediately validated.
|
||||
|
||||
.. image:: deferred_expenses/deferred_expenses09.png
|
||||
:align: center
|
||||
:alt: Automate Deferred Expense on an account in Odoo Accounting
|
||||
|
||||
.. tip::
|
||||
You can, for example, select this account as the default **Expense Account** of a product to
|
||||
fully automate its purchase. (see: `Choose a different Expense Account for specific
|
||||
products`_).
|
||||
|
||||
.. seealso::
|
||||
* :doc:`../get_started/chart_of_accounts`
|
||||
Therefore, at the end of December, bills A and B are fully recognized as expense only once in
|
||||
spite of all the created entries thanks to the reversal mechanism.
|
||||
|
||||
|
After Width: | Height: | Size: 6.2 KiB |
|
Before Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 7.3 KiB |
|
Before Width: | Height: | Size: 9.4 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 34 KiB |
|
Before Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 5.6 KiB |
|
Before Width: | Height: | Size: 5.7 KiB |
@@ -40,9 +40,8 @@ drop-down menu (most products will be set to :guilabel:`Units`).
|
||||
The *Sales* app is where specification on the units of measure are created and edited (e.g.
|
||||
units, miles, nights, etc.). Go to :menuselection:`Sales app --> Configuration --> Settings` and
|
||||
ensure `Units of Measure` is enabled in the `Product Catalog` section. Click on the
|
||||
:guilabel:`Units of Measure` internal link to view, create, and edit the units of measure. Refer
|
||||
to :doc:`this document </applications/inventory_and_mrp/inventory/management/products/uom>` to
|
||||
learn more about units of measure and how to configure them.
|
||||
:guilabel:`Units of Measure` internal link to :doc:`view, create, and edit the units of measure
|
||||
<../inventory_and_mrp/inventory/product_management/product_replenishment/uom>`.
|
||||
|
||||
.. image:: expenses/new-expense-product.png
|
||||
:align: center
|
||||
|
||||
@@ -93,11 +93,12 @@ available on Odoo.
|
||||
- :doc:`Kenya - Accounting <fiscal_localizations/kenya>`
|
||||
- Lithuania - Accounting
|
||||
- :doc:`Luxembourg - Accounting <fiscal_localizations/luxembourg>`
|
||||
- :doc:`Malaysia - Accounting <fiscal_localizations/malaysia>`
|
||||
- Maroc - Accounting
|
||||
- :doc:`Mexico - Accounting <fiscal_localizations/mexico>`
|
||||
- Mongolia - Accounting
|
||||
- :doc:`Netherlands - Accounting <fiscal_localizations/netherlands>`
|
||||
- New Zealand - Accounting
|
||||
- :doc:`New Zealand - Accounting <fiscal_localizations/new_zealand>`
|
||||
- Norway - Accounting
|
||||
- OHADA - Accounting
|
||||
- Pakistan - Accounting
|
||||
@@ -146,8 +147,10 @@ available on Odoo.
|
||||
fiscal_localizations/italy
|
||||
fiscal_localizations/kenya
|
||||
fiscal_localizations/luxembourg
|
||||
fiscal_localizations/malaysia
|
||||
fiscal_localizations/mexico
|
||||
fiscal_localizations/netherlands
|
||||
fiscal_localizations/new_zealand
|
||||
fiscal_localizations/romania
|
||||
fiscal_localizations/peru
|
||||
fiscal_localizations/philippines
|
||||
@@ -159,3 +162,4 @@ available on Odoo.
|
||||
fiscal_localizations/vietnam
|
||||
fiscal_localizations/united_arab_emirates
|
||||
fiscal_localizations/united_kingdom
|
||||
fiscal_localizations/employment_hero
|
||||
|
||||
@@ -2,66 +2,868 @@
|
||||
Australia
|
||||
=========
|
||||
|
||||
.. _australia/employment-hero:
|
||||
.. _australia/configuration:
|
||||
|
||||
Employment Hero Australian Payroll
|
||||
==================================
|
||||
Configuration
|
||||
=============
|
||||
|
||||
The Employment Hero module synchronizes payslip accounting entries (e.g., expenses, social charges,
|
||||
liabilities, taxes) from Employment Hero to Odoo automatically. Payroll administration is still done
|
||||
in Employment Hero. We only record the journal entries in Odoo.
|
||||
.. list-table::
|
||||
:widths: 25 25 50
|
||||
:header-rows: 1
|
||||
|
||||
* - Module Name
|
||||
- Module Key
|
||||
- Description
|
||||
* - :guilabel:`Australia - Accounting`
|
||||
- `l10n_au`
|
||||
- Installed by default when the Accounting :guilabel:`Fiscal Localization` package is set to
|
||||
:guilabel:`Australia`. This module also installs the :guilabel:`ABA credit transfer` and the
|
||||
:guilabel:`Remittance Advice report` module.
|
||||
* - :guilabel:`Australian Reports - Accounting`
|
||||
- `l10n_au_reports`
|
||||
- Includes the :guilabel:`Taxable Payments Annual Reports (TPAR)` and the
|
||||
:guilabel:`BAS report`.
|
||||
* - :guilabel:`Australia - Payroll`
|
||||
- `l10n_au_hr_payroll`
|
||||
- Payroll localisation for Australia.
|
||||
* - :guilabel:`Australia - Payroll with Accounting`
|
||||
- `l10n_au_hr_payroll_account`
|
||||
- Installs the link between Australian payroll and accounting. The module also installs the
|
||||
modules: :guilabel:`Australian - Accounting`; :guilabel:`Australian Reports - Accounting`;
|
||||
and :guilabel:`Australia - Payroll`.
|
||||
* - :guilabel:`Accounting Customer Statements`
|
||||
- `l10n_account_customer_statements`
|
||||
- Allows the management and sending of monthly customer statements from the partner ledger and
|
||||
the contact form. Also used in New Zealand.
|
||||
|
||||
.. _australia/coa:
|
||||
|
||||
Chart of Accounts
|
||||
=================
|
||||
|
||||
The Australian chart of accounts is included in the **Australia - Accounting** module. Go to
|
||||
:menuselection:`Accounting --> Configuration --> Chart of Accounts` to access it.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../accounting/get_started/chart_of_accounts`
|
||||
|
||||
.. _australia/taxes:
|
||||
|
||||
Taxes and GST
|
||||
=============
|
||||
|
||||
The default Australian taxes impact the :ref:`BAS Report <australia/bas>`, which can be accessed
|
||||
through :menuselection:`Accounting --> Reporting --> BAS Report`.
|
||||
|
||||
In Australia, the standard **Goods and Services Tax** (GST) rate is 10%, but different rates and
|
||||
exemptions exist for specific categories of goods and services.
|
||||
|
||||
.. image:: australia/default-gst.png
|
||||
:alt: Default GST of Australia
|
||||
|
||||
Tax Mapping
|
||||
-----------
|
||||
|
||||
Within the Australian localisation package, tax names encompass the tax rate as an integral part of
|
||||
their naming convention.
|
||||
|
||||
Despite the high amount of taxes in Odoo, these taxes are pretty similar (mostly 0% and 10%), with
|
||||
different tax grid variations for:
|
||||
|
||||
- Goods
|
||||
- Services
|
||||
- TPAR
|
||||
- TPAR without ABN
|
||||
|
||||
.. seealso::
|
||||
:doc:`Taxes <../accounting/taxes>`
|
||||
|
||||
Taxes including a **TPAR** mention impact not only the **BAS** report but also the **TPAR** report.
|
||||
Businesses from certain industries need to report payments made to subcontractors from relevant
|
||||
services during the financial year. Odoo combines the use of taxes and fiscal positions to report
|
||||
these payments on the **TPAR** report. Taxes with the mention **TPAR without ABN** are used to
|
||||
record amounts withheld from subcontractors without an **ABN** for the **ATO**.
|
||||
|
||||
.. seealso::
|
||||
:ref:`TPAR <australia/tpar>`
|
||||
|
||||
Here are the taxes for Australia in Odoo 17.
|
||||
|
||||
.. list-table::
|
||||
:widths: 20 40 20 20
|
||||
:header-rows: 1
|
||||
|
||||
* - GST Name
|
||||
- Description
|
||||
- GST Scope
|
||||
- GST Type
|
||||
* - 10%
|
||||
- GST Purchases
|
||||
- -
|
||||
- Purchases
|
||||
* - 10% INC
|
||||
- GST Inclusive Purchases
|
||||
- -
|
||||
- Purchases
|
||||
* - 10% C
|
||||
- Capital Purchases
|
||||
- -
|
||||
- Purchases
|
||||
* - 0% C
|
||||
- Zero Rated Purch
|
||||
- -
|
||||
- Purchases
|
||||
* - 100% T EX
|
||||
- Purchase (Taxable Imports) - Tax Paid Separately
|
||||
- -
|
||||
- Purchases
|
||||
* - 10% I
|
||||
- Purchases for Input Taxed Sales
|
||||
- -
|
||||
- Purchases
|
||||
* - 10% P
|
||||
- Purchases for Private use or not deductible
|
||||
- -
|
||||
- Purchases
|
||||
* - 100% EX
|
||||
- GST Only on Imports
|
||||
- -
|
||||
- Purchases
|
||||
* - 10% Adj
|
||||
- Tax Adjustments (Purchases)
|
||||
- -
|
||||
- Purchases
|
||||
* - 10%
|
||||
- GST Sales
|
||||
- -
|
||||
- Sales
|
||||
* - 10% INC
|
||||
- GST Inclusive Sales
|
||||
- -
|
||||
- Sales
|
||||
* - 0% EX
|
||||
- Zero Rated (Export) Sales
|
||||
- -
|
||||
- Sales
|
||||
* - 0% EXEMPT
|
||||
- Exempt Sales
|
||||
- -
|
||||
- Sales
|
||||
* - 0% I
|
||||
- Input Taxed Sales
|
||||
- -
|
||||
- Sales
|
||||
* - 10% Adj
|
||||
- Tax Adjustments (Sales)
|
||||
- -
|
||||
- Sales
|
||||
* - 10% TPAR
|
||||
- GST Purchases
|
||||
- Services
|
||||
- Purchases
|
||||
* - 10% TPAR NO ABN
|
||||
- GST Purchases
|
||||
- Services
|
||||
- Purchases
|
||||
* - 10% INC TPAR
|
||||
- GST Inclusive Purchases
|
||||
- Services
|
||||
- Purchases
|
||||
* - 10% INC TPAR N ABN
|
||||
- GST Inclusive Purchases
|
||||
- Services
|
||||
- Purchases
|
||||
* - 10% C TPAR
|
||||
- Capital Purchases
|
||||
- Services
|
||||
- Purchases
|
||||
* - 10% C TPAR N ABN
|
||||
- Capital Purchases
|
||||
- Services
|
||||
- Purchases
|
||||
* - 0% C TPAR
|
||||
- Zero Rated Purch TPAR
|
||||
- Services
|
||||
- Purchases
|
||||
* - 0% C TPAR N ABN
|
||||
- Zero Rated Purch TPAR without ABN
|
||||
- Services
|
||||
- Purchases
|
||||
* - 100% T EX TPAR
|
||||
- Purchase (Taxable Imports) - Tax Paid Separately
|
||||
- Services
|
||||
- Purchases
|
||||
* - 100% T EX TPAR N ABN
|
||||
- Purchase (Taxable Imports) - Tax Paid Separately
|
||||
- Services
|
||||
- Purchases
|
||||
* - 10% I TPAR
|
||||
- Purchases for Input Taxed Sales
|
||||
- Services
|
||||
- Purchases
|
||||
* - 100% I TPAR N ABN
|
||||
- Purchases for Input Taxed Sales
|
||||
- Services
|
||||
- Purchases
|
||||
* - 10% P TPAR
|
||||
- Purchases for Private use or not deductible
|
||||
- Services
|
||||
- Purchases
|
||||
* - 10% P TPAR N ABN
|
||||
- Purchases for Private use or not deductible
|
||||
- Services
|
||||
- Purchases
|
||||
* - 100% EX TPAR
|
||||
- GST Only on Imports
|
||||
- Services
|
||||
- Purchases
|
||||
* - 100% EX TPAR N ABN
|
||||
- GST Only on Imports
|
||||
- Services
|
||||
- Purchases
|
||||
* - 10% Adj TPAR
|
||||
- Tax Adjustments (Purchases)
|
||||
- Services
|
||||
- Purchases
|
||||
* - 10% Adj TPAR N ABN
|
||||
- Tax Adjustments (Purchases)
|
||||
- Services
|
||||
- Purchases
|
||||
* - 47% WH
|
||||
- Tax Withheld for Partners without ABN
|
||||
- Services
|
||||
- Purchases
|
||||
|
||||
.. _australia/bas:
|
||||
|
||||
BAS report
|
||||
==========
|
||||
|
||||
The **Business Activity Statement (BAS)** report is a critical tax reporting requirement for
|
||||
businesses registered for **Goods and Services Tax (GST)** in Australia. The **BAS** is used to
|
||||
report and remit various taxes to the **Australian Taxation Office (ATO)**. With the Odoo **BAS**
|
||||
feature, businesses can report on the following:
|
||||
|
||||
- Goods and Services Tax (GST)
|
||||
- PAYG tax withheld
|
||||
|
||||
.. image:: australia/bas-report.png
|
||||
:alt: BAS report in Odoo
|
||||
|
||||
The taxes for GST are collected from the **tax grid**, which is pre-configured in the system. The
|
||||
**tax grid** can also be manually set up for any additional special GST. Once the tax for each
|
||||
account is set up, the system automatically slots journal items into the correct tax category. This
|
||||
ensures the **BAS** report is accurate and reflective of the business's financial activities.
|
||||
|
||||
.. image:: australia/gst-grids.png
|
||||
:alt: GST grids in Odoo
|
||||
|
||||
In addition, the **BAS** report includes the **PAYG** tax withheld components (**W1** to **W5**,
|
||||
then **summary, section 4**). This integration ensures that all payroll-related withholding taxes
|
||||
are accurately captured and reflected within the report.
|
||||
|
||||
.. image:: australia/payg.png
|
||||
:alt: PAYG Tax Withheld and Summary of BAS report in Odoo
|
||||
|
||||
The module incorporates built-in rules that facilitate the automatic calculation of taxes for types
|
||||
**W1** to **W5**. For a detailed walkthrough and more information on the calculation process for
|
||||
these taxes, please refer to the Payroll app documentation.
|
||||
|
||||
.. seealso::
|
||||
:ref:`Payroll <australia/payroll>`
|
||||
|
||||
Closing the BAS report
|
||||
----------------------
|
||||
|
||||
When it is time to file the tax return with the **ATO**, click :guilabel:`Closing entry`. The tax
|
||||
return period can be configured in :menuselection:`configuration --> Settings --> Tax Return
|
||||
Periodicity`. Also, the start date of the tax return period can be defined through the **period
|
||||
button** (marked by a calendar icon 📅).
|
||||
|
||||
.. seealso::
|
||||
:doc:`Year-end closing <../accounting/reporting/year_end>`
|
||||
|
||||
.. note::
|
||||
Odoo uses the *calendar quarter* rather than the Australian FY quarter, which means **July to
|
||||
September is Q3 in Odoo**.
|
||||
|
||||
Before closing the entry for the first time, the default **GST payable account** and **GST
|
||||
receivable account** need to be set. A notification pops up and redirects the user to tax group
|
||||
configurations.
|
||||
|
||||
Once the **GST payable** and **GST receivable** accounts are set up, the **BAS** report generates an
|
||||
accurate journal closing entry automatically, which balances out the GST balance with the GST
|
||||
clearing account.
|
||||
|
||||
.. image:: australia/bas-report-accounts.png
|
||||
:alt: GST accounts for the BAS report in Odoo.
|
||||
|
||||
The balance between **GST receivable** and **payable** is set against the tax clearing account
|
||||
defined on the tax group. The amount to be paid to or received from the **ATO** can be reconciled
|
||||
against a bank statement.
|
||||
|
||||
.. image:: australia/bas-taxes.png
|
||||
:alt: BAS tax payment.
|
||||
|
||||
.. important::
|
||||
KeyPay was rebranded as **Employment Hero** in March 2023.
|
||||
The **BAS** report is not directly submitted to the **ATO**. Odoo helps you automatically compute
|
||||
the necessary values in each section, with the possibility to audit them to better understand the
|
||||
history behind these numbers. Businesses can copy these values and enter them on the `ATO’s
|
||||
portal <https://www.ato.gov.au/newsrooms/small-business-newsroom/lodging-your-next-bas>`_.
|
||||
|
||||
.. _australia/tpar:
|
||||
|
||||
TPAR report
|
||||
===========
|
||||
|
||||
Odoo allows businesses to report payments made to contractors or subcontractors during the financial
|
||||
year. This is done by generating a :abbr:`TPAR (Taxable Payments Annual Report)`. If you are unsure
|
||||
your business needs this report, refer to the documentation provided by the `ATO <https://www.ato.gov.au/businesses-and-organisations/preparing-lodging-and-paying/reports-and-returns/taxable-payments-annual-report>`_.
|
||||
You can find this report in :menuselection:`Accounting --> Reporting --> Taxable Payments Annual
|
||||
Reports (TPAR)`.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
#. :ref:`Activate <general/install>` the :guilabel:`Employment Hero Australian Payroll` module
|
||||
(technical name: `l10n_au_keypay`).
|
||||
#. Configure the **Employment Hero API** by going to :menuselection:`Accounting --> Configuration -->
|
||||
Settings`. More fields become visible after clicking on :guilabel:`Enable Employment Hero
|
||||
Integration`.
|
||||
Under :menuselection:`Accounting --> Customers` or :menuselection:`Accounting --> Vendors`, select a
|
||||
your contractor and set a :guilabel:`Fiscal Position` under the :guilabel:`Sales & Purchase` tab.
|
||||
|
||||
.. image:: australia/employment-hero-integration.png
|
||||
:alt: Enabling Employment Hero Integration in Odoo Accounting displays new fields in the
|
||||
settings
|
||||
.. image:: australia/tpar.png
|
||||
:alt: TPAR fiscal position
|
||||
|
||||
- You can find the API Key in the :guilabel:`My Account` section of the Employment Hero platform.
|
||||
Upon billing a contact with a fiscal position set to :guilabel:`TPAR` or
|
||||
:guilabel:`TPAR without ABN`, the report is automatically generated in :menuselection:`Accounting
|
||||
--> Reporting --> Taxable Payments Annual Reports (TPAR)`.
|
||||
|
||||
.. image:: australia/employment-hero-myaccount.png
|
||||
:alt: "Account Details" section on the Employment Hero dashboard
|
||||
The report includes the **ABN**, **Total GST**, **Gross Paid**, and **Tax Withheld** from their
|
||||
**TPAR** subcontractors.
|
||||
|
||||
- The **Payroll URL** is pre-filled with `https://keypay.yourpayroll.com.au`. *Please do not
|
||||
change it.*
|
||||
- You can find the **Business ID** in the Employment Hero URL. (i.e., `189241`)
|
||||
- **Total GST**: the total tax paid
|
||||
- **Gross Paid amounts**: shows after registering a payment for those bills
|
||||
- **Tax Withheld**: shown if the subcontractor is registered with a fiscal position set to
|
||||
:guilabel:`TPAR without ABN`
|
||||
|
||||
.. image:: australia/employment-hero-business-id.png
|
||||
:alt: The Employment Hero "Business ID" number is in the URL
|
||||
The **TPAR** report can be exported to PDF, XLSX, and TPAR formats.
|
||||
|
||||
- You can choose any Odoo journal to post the payslip entries.
|
||||
.. _australia/customer-statement:
|
||||
|
||||
How does the API work?
|
||||
----------------------
|
||||
Customer statements
|
||||
===================
|
||||
|
||||
The API syncs the journal entries from Employment Hero to Odoo and leaves them in draft mode. The
|
||||
reference includes the Employment Hero payslip entry ID in brackets for the user to easily retrieve
|
||||
the same record in Employment Hero and Odoo.
|
||||
Customer statements allow customers to see their financial transactions with the company over a
|
||||
certain period, and overdue statement details. These statements can be sent out to customers
|
||||
by email.
|
||||
|
||||
.. image:: australia/employment-hero-journal-entry.png
|
||||
:alt: Example of a Employment Hero Journal Entry in Odoo Accounting (Australia)
|
||||
.. image:: australia/customer-statement.png
|
||||
:alt: Customer statement in Odoo.
|
||||
|
||||
By default, the synchronization happens once per week. You can fetch the records manually by going
|
||||
to :menuselection:`Accounting --> Configuration --> Settings` and, in the :guilabel:`Enable
|
||||
Employment Hero Integration` option, click on :guilabel:`Fetch Payruns Manually`.
|
||||
There are **two** ways for customers to download these statements.
|
||||
|
||||
Employment Hero payslip entries also work based on double-entry bookkeeping.
|
||||
#. **From the contact form:** Customer statements are under :menuselection:`Customers -->
|
||||
Customers`. Select a customer, click the **gear icon (⚙)**, and then
|
||||
:guilabel:`Print Customer Statements`. This prints out the statement from the beginning of the
|
||||
month to today's date.
|
||||
|
||||
The accounts used by Employment Hero are defined in the section :guilabel:`Payroll settings`.
|
||||
#. **From the partner ledger:** This option allows for more flexibility in selecting a statement's
|
||||
start and end date. You can access it by going to :menuselection:`Accounting --> Reporting -->
|
||||
Partner Ledger`. From here, specify a date range in the **calendar menu (📅)** for the statement,
|
||||
hover over a partner, and click the :guilabel:`Customer Statements` tab.
|
||||
|
||||
.. image:: australia/employment-hero-chart-of-accounts.png
|
||||
:alt: Chart of Accounts menu in Employment Hero
|
||||
.. image:: australia/partner-ledger-statements.png
|
||||
:alt: Customer statement from partner ledger report in Odoo.
|
||||
|
||||
For the API to work, you need to create the same accounts as the default accounts of your Employment
|
||||
Hero business (**same name and same code**) in Odoo. You also need to choose the correct account
|
||||
types in Odoo to generate accurate financial reports.
|
||||
.. _australia/remittance:
|
||||
|
||||
Remittance advice
|
||||
=================
|
||||
|
||||
A remittance advice is a document used as proof of payment to a business. In Odoo, it can be
|
||||
accessed by going to :menuselection:`Accounting ‣ Vendors ‣ Payments`, selecting the payment(s), and
|
||||
clicking :menuselection:`Print --> Payment Receipt`.
|
||||
|
||||
.. image:: australia/remitence.png
|
||||
:alt: Remittance advice in Odoo.
|
||||
|
||||
.. _australia/peppol:
|
||||
|
||||
E-Invoicing via Peppol
|
||||
======================
|
||||
|
||||
Odoo is compliant with Australia's and New Zealand's `PEPPOL requirements <https://peppol.org/learn-more/country-profiles/australia/>`_.
|
||||
You can find and set up **electronic invoicing** settings per partner under
|
||||
:menuselection:`Accounting --> Customers` or :menuselection:`Accounting --> Vendors`, select a
|
||||
partner, and click the :guilabel:`Accounting` tab.
|
||||
|
||||
.. image:: australia/peppol.png
|
||||
:alt: Peppol settings from a partner in Odoo.
|
||||
|
||||
.. important::
|
||||
Validating an invoice or credit note for a partner on the PEPPOL network will download a
|
||||
compliant XML file that can be manually uploaded to your PEPPOL network.
|
||||
|
||||
.. _australia/aba:
|
||||
|
||||
ABA files for batch payments
|
||||
============================
|
||||
|
||||
Introduction
|
||||
------------
|
||||
|
||||
An ABA file is a digital format developed by the `Australian Bankers' Association <https://www.ausbanking.org.au/>`_.
|
||||
It is designed for business customers to facilitate bulk payment processing by uploading a single
|
||||
file from their business management software.
|
||||
|
||||
The main advantage of using ABA files is to improve payment and matching efficiency. This is
|
||||
achieved by consolidating numerous payments into one file for batch processing, which can be
|
||||
submitted to all Australian banks.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
Settings
|
||||
~~~~~~~~
|
||||
|
||||
To enable **batch payments**, go to :menuselection:`Accounting --> Configuration --> Setting -->
|
||||
Batch Payment` and enable :guilabel:`Allow Batch Payments`.
|
||||
|
||||
Bank journal
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Then, go to :menuselection:`Accounting --> Configuration --> Journals` and select the
|
||||
:guilabel:`Bank` journal type. In the :guilabel:`Journal Entries` tab, enter the
|
||||
:guilabel:`Account Number` and click :guilabel:`Create and edit`. In the pop-up window, fill in the
|
||||
following fields:
|
||||
|
||||
- :guilabel:`Bank`
|
||||
- :guilabel:`Account Holder Name`
|
||||
- :guilabel:`BSB`
|
||||
- :guilabel:`Account Holder`
|
||||
|
||||
.. image:: australia/aba.png
|
||||
:alt: Account Number settings for ABA in Odoo.
|
||||
|
||||
.. important::
|
||||
The :guilabel:`Send Money` field must be **enabled**.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`Currency` field is optional.
|
||||
|
||||
Go back to the :guilabel:`Journal Entries` tab and fill in the following fields related to the ABA:
|
||||
|
||||
- :guilabel:`BSB`: This field is auto-formatted from the bank account
|
||||
- :guilabel:`Financial Institution Code`: The official 3-letter abbreviation of the financial
|
||||
institution (e.g., WBC for Westpac)
|
||||
- :guilabel:`Supplying User Name`: 6-digit number provided by your bank. Contact or check your bank
|
||||
website if you need to know.
|
||||
- :guilabel:`Include Self-Balancing Transactions`: Selecting this option adds an additional
|
||||
"self-balancing" transaction to the end of the ABA file, which some financial institutions
|
||||
require when generating ABA files. Check with your bank to see if you need this option.
|
||||
|
||||
Then, go to the :guilabel:`Outgoing Payments` tab on the same :guilabel:`Bank` type journal. Click
|
||||
:guilabel:`Add a line` and select :guilabel:`ABA Credit Transfer` as the **payment method**.
|
||||
|
||||
Partners’ bank accounts
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Go to :menuselection:`Accounting --> Customers --> Customers` or :menuselection:`Accounting -->
|
||||
Vendors --> Vendors` and select a partner for whom you want to add banking information. Once
|
||||
selected, click the :guilabel:`Accounting` tab, and under the :guilabel:`Bank Accounts` section,
|
||||
click :guilabel:`Add a line` to fill in:
|
||||
|
||||
- :guilabel:`Account Number` of that partner
|
||||
- :guilabel:`Bank`
|
||||
- :guilabel:`Account Holder Name`
|
||||
- :guilabel:`BSB`
|
||||
- :guilabel:`Accounter Holder`
|
||||
- :guilabel:`Send Money` defines the bank account as *trusted*, which is essential for ABA files and
|
||||
must be enabled if to be used.
|
||||
|
||||
Generate an ABA file
|
||||
--------------------
|
||||
|
||||
To generate an **ABA** file, :guilabel:`Create` a vendor bill (manually or from a purchase order).
|
||||
:guilabel:`Confirm` the bill and ensure the vendor’s banking information is set up correctly before
|
||||
registering a payment..
|
||||
|
||||
Next, click :guilabel:`Register Payment` in the pop-up window: select the :guilabel:`Bank` journal,
|
||||
select :guilabel:`ABA Credit Transfer` as :guilabel:`Payment Method`, and select the right
|
||||
:guilabel:`Recipient Bank Account`.
|
||||
|
||||
Once payments are confirmed, they appear in :menuselection:`Accounting --> Vendors --> Payments`.
|
||||
Tick the box of the payments to be included in the batch, then click :guilabel:`Create Batch`.
|
||||
Verify all information is correct and finally :guilabel:`Validate`. Once validated, the ABA file
|
||||
becomes available in the **chatter** on the right.
|
||||
|
||||
After uploading it to your bank’s portal, an ABA transaction line will appear in your bank feed at
|
||||
the following bank feed iteration. You will need to reconcile it against the **batch payment** made
|
||||
in Odoo.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Batch Payment <../accounting/payments/batch>`
|
||||
|
||||
.. _australia/buynow_paylater:
|
||||
|
||||
Buy Now, Pay Later solutions
|
||||
============================
|
||||
|
||||
Buy Now, Pay Later solutions are popular payment methods for eShops in Australia. Some of these
|
||||
solutions are available via the `Stripe <https://stripe.com/en-au/payments/payment-methods>`_ and
|
||||
`AsiaPay <https://www.asiapay.com.au/payment.html#option>`_ payment providers.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`AsiaPay Payment Provider <../payment_providers/asiapay>`
|
||||
- :doc:`Stripe Payment Provider <../payment_providers/stripe>`
|
||||
|
||||
POS terminals for Australia
|
||||
===========================
|
||||
|
||||
If you wish to have a direct connection between Odoo and your PoS terminal in Australia, you *must*
|
||||
have a **Stripe** terminal. Odoo supports the **EFTPOS** payment solution in Australia.
|
||||
|
||||
.. note::
|
||||
You do not need a Stripe payment terminal to use Odoo as your main PoS system. The only drawback
|
||||
of not using Stripe is that cashiers must manually enter the final payment amount on the
|
||||
terminal.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Stripe Odoo Payment Provider <../payment_providers/stripe>`
|
||||
- :doc:`Stripe Odoo Payment Terminal </applications/sales/point_of_sale/payment_methods/terminals/stripe>`
|
||||
- `Stripe Dashboard <https://dashboard.stripe.com/dashboard>`_
|
||||
- `Stripe Terminal <https://stripe.com/docs/terminal>`_
|
||||
|
||||
.. _australia/payroll:
|
||||
|
||||
Payroll
|
||||
=======
|
||||
|
||||
.. important::
|
||||
Odoo is currently not compliant with STP Phase 2.
|
||||
|
||||
Create your employees
|
||||
---------------------
|
||||
|
||||
To create an **employee form** and fill in mandatory information, go to the **Employees** app and
|
||||
click :guilabel:`Create`. In the :guilabel:`HR Settings` tab, you can input the mandatory
|
||||
information:
|
||||
|
||||
#. :guilabel:`TFN Status`: if the employee provides a TFN, make sure to add it to the “TFN” field
|
||||
#. :guilabel:`Non-resident`: if the employee is a foreign resident
|
||||
#. :guilabel:`Tax-free Threshold`: if the employee is below or above the threshold
|
||||
#. :guilabel:`HELP / STSL`: for all types of study and training support loans (e.g. HELP, VSL, SSL…)
|
||||
#. :guilabel:`Medicare levy Deduction`
|
||||
#. :guilabel:`Medicare levy Exemption`
|
||||
#. :guilabel:`Withholding for Extra Pay`
|
||||
#. ...
|
||||
|
||||
Manage Australian contracts
|
||||
---------------------------
|
||||
|
||||
Once the employee form has been created, ensure the contract is enabled by clicking the
|
||||
:guilabel:`Contracts` smart button or by going to :menuselection:`Employees --> Employees -->
|
||||
Contracts`.
|
||||
|
||||
.. note::
|
||||
Only one contract can be active simultaneously per employee, but an employee can be assigned
|
||||
consecutive contracts during their employment.
|
||||
|
||||
Contractual information related to Australia can be found in the following **three** places:
|
||||
|
||||
#. Before assigning a salary amount, pay frequency, and other important details to a contract,
|
||||
defining the **salary structure**, **start date**, and **work entry** source is important. In
|
||||
Australia, a "Salary Structure" is employed to specify the tax schedule applicable to that
|
||||
contract, as defined by the Australian Taxation Office (ATO). Most contracts will fall under the
|
||||
following **three structures**:
|
||||
|
||||
- **Regular (Schedule 1)**: the great majority of Australian employees will fall in this
|
||||
category; hence, this structure is assigned by default to all contracts.
|
||||
- **Working holiday makers (Schedule 15)**. When employing working holiday makers (WHMs), other
|
||||
taxes apply. For detailed information on these specific tax implications, refer to the
|
||||
documentation provided by the **ATO**.
|
||||
- **No TFN**. Choose this structure if the employee hasn’t provided a **TFN** for over **28**
|
||||
days.
|
||||
|
||||
.. image:: australia/employee.png
|
||||
:alt: Employees form in Odoo Payroll.
|
||||
|
||||
.. important::
|
||||
The structures **Horticulture/Shearing (Schedule 2)** and **Artists and Performers (Schedule 3)**
|
||||
are only partially complete, and proper tests should be performed before using them to pay
|
||||
employees in your production database. Send your feedback to au-feedback@mail.odoo.com.
|
||||
|
||||
The field :guilabel:`Work Entry Source` is also significant and defines how **working hours** and
|
||||
**days** are accounted for in the employee’s payslip.
|
||||
|
||||
- :guilabel:`Working Schedule`: work entries are automatically generated based on the employee’s
|
||||
working schedule, starting from the contract's start date.. For example, let’s assume that an
|
||||
employee works 38 hours a week, and their contract’s begins on January 1st. Today is January 16th,
|
||||
and the user generates a pay run from January 14th to 20th. The working hours on the payslip will
|
||||
be automatically calculated to be 38 hours (5 * 7.36 hours) if no leave is taken.
|
||||
- :guilabel:`Attendances`: The default working schedule is ignored, and work entries are only
|
||||
generated after clocking in and out of the attendance app.
|
||||
- :guilabel:`Planning`: The default working schedule is ignored, and work entries are generated from
|
||||
planning shifts only.
|
||||
|
||||
.. important::
|
||||
Additional configurations are necessary to ensure that Odoo’s payslips automatically compute
|
||||
various **penalty rates** as defined by an **award (overtime rate, public holiday rate, etc)**.
|
||||
To create these configurations, create new work-entry types for each penalty rate and then
|
||||
assign a penalty rate in % to each. Once this one-time configuration is done, work entries can
|
||||
be manually imported for each period, and Odoo will separate the pay items and rates on the
|
||||
employee’s payslip.
|
||||
|
||||
.. important::
|
||||
Timesheets do not impact work entries in Odoo.
|
||||
|
||||
- The :guilabel:`Salary Information` tab contains a few essential fields impacting the frequency of
|
||||
pay runs and the management of payslip rules in Odoo.
|
||||
|
||||
- :guilabel:`Wage Type`: Select the :guilabel:`Fixed Wage` pay type for full-time and part-time
|
||||
employees. For casual workers and other :guilabel:`Hourly Wage` type. For employees being paid
|
||||
hourly, make sure to define the correct **casual loading**.
|
||||
- :guilabel:`Schedule Pay`: In Australia, only the following pay run frequencies are accepted:
|
||||
**daily, weekly, bi-weekly (or fortnightly), monthly, and quarterly**.
|
||||
- :guilabel:`Wage` (/period): Assign a wage to the contract according to their pay frequency.
|
||||
On payslips, the corresponding annual and hourly rates will be automatically computed.
|
||||
|
||||
.. note::
|
||||
For hourly workers, please note that the hourly wage should exclude casual loading.
|
||||
|
||||
- The :guilabel:`Australia` tab. Most of the fields in this tab are used for **Single Touch
|
||||
Payroll** (or **STP**) reporting, which requires a thorough understanding of several details from
|
||||
an employee’s contract. Review the information on this tab before moving forward with pay runs.
|
||||
This includes the following **four** fields which impact payslip computations:
|
||||
|
||||
- :guilabel:`Withholding Variation`: use this field in case the employee’s withholding must be
|
||||
varied upward or downward according to their circumstances. E.g., if employee X benefits from a
|
||||
25% withholding variation, their percentage of tax withheld will vary from whatever amount
|
||||
they were supposed to pay according to their salary structure and situation to a fixed 25%.
|
||||
- :guilabel:`Leave Loading`: if the employee benefits from a regular leave loading, the value
|
||||
set in the field :guilabel:`Leave Loading Rate` (e.g., 17.5%) is added to any amount earned
|
||||
when taking annual or long service leaves.
|
||||
- :guilabel:`Salary Sacrifice Superannuation`: any amount added to this field is deducted, per
|
||||
pay frequency, from the employee’s basic salary before the computation of the gross salary.
|
||||
Then, this amount is added to the super guarantee line of their payslip. E.g., if employee Y
|
||||
earns 5,000 AUD per month and sacrifices 300 AUD to superannuation, their gross salary will be
|
||||
4,700 AUD, and 300 AUD will be added on top of their normal super contributions.
|
||||
- :guilabel:`Salary Sacrifice Other`: any amount added to this field is deducted, per pay
|
||||
frequency, from the employee’s basic salary before the computation of the gross salary.
|
||||
|
||||
Once all important information has been entered, ensure the transition of the contract's status from
|
||||
"New" to "Running" to facilitate its use in pay runs.
|
||||
|
||||
.. image:: australia/employee-au.png
|
||||
:alt: "Australia" payroll tab in Odoo.
|
||||
|
||||
Assign superannuation accounts
|
||||
------------------------------
|
||||
|
||||
Upon receipt of superannuation details from a new employee, ensure the creation of a new account in
|
||||
:menuselection:`Payroll --> Configuration --> Super Accounts` to link it to the employee. Input the
|
||||
:guilabel:`Super Fund`, :guilabel:`Member Since` date, and :guilabel:`TFN` number of the employee.
|
||||
|
||||
Suppose the employee uses a superannuation fund that does not exist in the database yet. In that
|
||||
case Odoo creates a new one and centralises basic information about this fund, such as its **ABN**,
|
||||
**address**, type (**APRA** or **SMSF**), **USI**, and **ESA**. Super funds can be created or
|
||||
imported in :menuselection:`Payroll --> Configuration --> Super Funds`.
|
||||
|
||||
.. important::
|
||||
Odoo is currently not **SuperStream-compliant**.
|
||||
|
||||
Create pay runs with payslips
|
||||
-----------------------------
|
||||
|
||||
Odoo can create pay runs in **two** ways: via **batch** or via **individual** payslips.
|
||||
|
||||
Create a batch of payslips
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
When preparing to generate employees’ draft payslips (e.g., at the end of every week, fortnight, or
|
||||
month), navigate to :menuselection:`Payroll --> Payslips --> Batches` and click :guilabel:`New`.
|
||||
Fill in the necessary info, click :guilabel:`Generate Payslips`, select the
|
||||
:guilabel:`Salary Structure`, :guilabel:`Department`, :guilabel:`Employees`, and
|
||||
:guilabel:`Generate`. This method allows the creation of multiple payslips corresponding to each
|
||||
employee in a single batch.
|
||||
|
||||
#. Give the batch a name. (E.g., `2024 – Weekly W1`)
|
||||
#. Choose the pay run's start and end date. (E.g., 01/01/2024 to 07/01/2024)
|
||||
#. Click on :guilabel:`Generate`. A pop-up window asks to confirm which employees should be included
|
||||
in the batch. By default, all active employees are included. You can leave
|
||||
:guilabel:`Salary Structure` field blank as Odoo automatically selects the structure linked to
|
||||
each employee’s contract.
|
||||
#. The batch creates as many payslips as there are employees. There is no limit to the number of
|
||||
payslips created in a batch.
|
||||
#. Verify important information on each payslip. After payslips from a batch have been generated,
|
||||
there is no need to manually compute payslip lines; Odoo does it for you.
|
||||
|
||||
Create an individual payslip
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
In cases where the pay run does not fall into the category of regular payslips, the option exists to
|
||||
create a pay run dedicated to a single employee. Go to :menuselection:`Payroll --> Payslips --> All
|
||||
Payslips` and click :guilabel:`New`. Employ this method when processing **one-time payments** for
|
||||
employees, including **return-to-work** payments (**ATO Schedule 4**), **employment termination**
|
||||
payments (**ATO Schedule 7 and 11**), and **commissions and bonuses** (**ATO Schedule 5**). When
|
||||
generating an individual payslip, make sure to proceed with the following steps:
|
||||
|
||||
#. Select an :guilabel:`Employee`; their :guilabel:`Contract` will be filled out automatically
|
||||
#. Add a pay :guilabel:`Period`
|
||||
#. Select a salary :guilabel:`Structure` (e.g., return-to-work payment)
|
||||
#. Unlike payslips generated from a batch, the payroll user must click the :guilabel:`Compute Sheet`
|
||||
button to generate payslip lines
|
||||
|
||||
.. image:: australia/worked-days-input.png
|
||||
:alt: One-time payments in Odoo Payroll.
|
||||
|
||||
Understand payslip features
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The same features apply no matter how payslips are created (individually or via batch).
|
||||
|
||||
Depending on how work entries are created, the :guilabel:`Worked Days & Inputs` table
|
||||
automatically shows the number of days and hours the employee worked during the payslip period next
|
||||
to the corresponding total gross amount.
|
||||
|
||||
.. note::
|
||||
There is one line per work entry type, meaning **paid** and **unpaid time-off**, in addition to
|
||||
custom **hourly penalty rates** (overtime, public holidays, etc.) which are automatically added
|
||||
to the table.
|
||||
|
||||
.. image:: australia/worked-days-compute.png
|
||||
:alt: Worked days and hours in Payroll
|
||||
|
||||
In the :guilabel:`Other Inputs` section, You can add entries such as **allowances** and **extra
|
||||
pay** items in the :guilabel:`Other Inputs` section.
|
||||
|
||||
- To incorporate various **allowances** into an employee's payslip, create **allowances** in
|
||||
:menuselection:`Payroll --> Configuration --> Other Input Types`. Once created, tick the
|
||||
:guilabel:`Is an Allowance` checkbox for the involved allowances.
|
||||
|
||||
.. important::
|
||||
Withholding for allowances is not computed automatically. The payroll user has to use the field
|
||||
:guilabel:`Withholding for allowance` under the other inputs table to manually add the total
|
||||
amount to be withheld across all allowances on that payslip.
|
||||
|
||||
- **Extra pay** items are other inputs added to the **payslip’s gross** and, as a result, to the
|
||||
**withholding amount**. An example lies in regular sales commissions, taxed at the same rate as
|
||||
the regular salary (unlike discretionary bonuses, which fall under the ATO’s Schedule 5 and its
|
||||
corresponding salary structure). To configure such a custom pay item, go to
|
||||
:menuselection:`Payroll --> Configuration --> Other Input Types` and create a new entry with the
|
||||
code **EXTRA**.
|
||||
|
||||
.. image:: australia/extra-pay-item.png
|
||||
:alt: Extra pay item input type
|
||||
|
||||
In the :guilabel:`Salary Computation` tab, the payroll user can verify whether all the pay rules
|
||||
have been computed correctly as per employee, contract and salary structure. Here are a few
|
||||
guidelines to better understand the data.
|
||||
|
||||
.. image:: australia/salary-computation.png
|
||||
:alt: Salary computation in Odoo Payroll.
|
||||
|
||||
#. **Basic salary:** amount from which tax-deductible lines can be subtracted
|
||||
#. **Gross salary:** amount subject to the taxes defined by the salary structure
|
||||
#. **Withholding:** tax amount to be paid to the **ATO**
|
||||
#. **Net salary:** amount to be paid to the employee’s bank account
|
||||
#. **Superannuation Guarantee:** amount to be provisioned for quarterly payments to the employee’s
|
||||
super account
|
||||
#. **Allowances & Extra pay items:** these lines will show if other inputs are added to the payslip.
|
||||
#. **Other lines:** depending on the employee and contract specifics (Medicare, child support,
|
||||
salary, sacrifice, etc.)
|
||||
|
||||
When satisfied with the payslip, click :guilabel:`Create Draft entry` to generate a draft accounting
|
||||
journal entry that the accountant can review. Note that in the case of a payslip batch, this
|
||||
accounting entry will sum up balances from all payslips.
|
||||
|
||||
Pay employees
|
||||
-------------
|
||||
|
||||
After a batch or a payslip’s journal entry has been posted, the company can pay their employees. The
|
||||
user can choose between **two** different **payment methods**.
|
||||
|
||||
- Pay the employee in batch via **ABA** files. This is **only** possible from the **payslip batch**
|
||||
level. Ensure the batch’s journal entry has been posted to generate the **ABA** file. From the
|
||||
batch form view, click :guilabel:`Create ABA File` and choose the desired bank journal. The newly
|
||||
generated **ABA** file becomes available for download in the field :guilabel:`ABA File`. It is
|
||||
possible to re-generate the ABA file after applying corrections to existing payslips.
|
||||
|
||||
.. note::
|
||||
It is always possible to include an individual payslip into an existing batch in an **ABA**
|
||||
file.
|
||||
|
||||
.. important::
|
||||
An ABA file can only be generated if both the company’s bank account and each employee’s bank
|
||||
account have been properly :ref:`configured <australia/aba>`.
|
||||
|
||||
- From the employee's payslip (:menuselection:`Payroll --> Payslips`), once the payslip's journal
|
||||
entry has been posted, click :guilabel:`Register Payment`. The process is the same as
|
||||
:doc:`paying vendor bills <../accounting/payments>`: select the desired bank journal and payment
|
||||
method, then later reconcile the payment with the corresponding bank statement.
|
||||
|
||||
One-time payments
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Certain payments, such as **Return-to-Work** payments and **Employment Termination Payments**
|
||||
**(ETP)**, are processed only once and require a slightly different approach.
|
||||
|
||||
Return-to-Work payments
|
||||
***********************
|
||||
|
||||
A **Return-to-Work** payment is a payment made to an employee to resume working. To process one,
|
||||
create an individual payslip, select the employee, and modify its **regular structure** to
|
||||
:guilabel:`Australia: Return to work`. Then, add the **gross amount** of that payment in the
|
||||
:guilabel:`Other Inputs` section and compute the payslip. Odoo automatically computes the **PAYG
|
||||
withholding**, the **net amount**, and the **super guarantee** corresponding to that payment.
|
||||
|
||||
.. image:: australia/return-to-work.png
|
||||
:alt: Return-to-work payment
|
||||
|
||||
Termination payments
|
||||
********************
|
||||
|
||||
Before proceeding with the employee’s ETP, make sure that a **Contract End Date** has been set on
|
||||
that employee’s contract so that Odoo can automatically compute the final prorated salary of that
|
||||
employee for the current month.
|
||||
|
||||
First, create the final salary for that employee this month. To do so, create an individual payslip.
|
||||
If the contract end date is set correctly, Odoo will automatically compute the prorated salary up to
|
||||
the final payslip date.
|
||||
|
||||
.. image:: australia/attendance.png
|
||||
:alt: Termination payment worked days computation in Odoo.
|
||||
|
||||
.. tip::
|
||||
We recommend creating a batch on the fly for that payslip, in which the ETP is added as a second
|
||||
payslip of that same batch.
|
||||
|
||||
Create a second individual payslip and include it in the same batch. Change the salary structure on
|
||||
that payslip to :guilabel:`Australia: Termination Payments`. Before computing the sheet, it is
|
||||
important to provide the payslip with termination details .
|
||||
|
||||
.. image:: australia/termination-payment.png
|
||||
:alt: Termination payment
|
||||
|
||||
- :guilabel:`Genuine` or :guilabel:`Non-Genuine Redundancy`. This choice impacts the amounts and
|
||||
caps defined per **ETP** type.
|
||||
- **ETP types**: see the full list of termination payment types in
|
||||
:guilabel:`Other Input Types` by filtering by `ETP Type is Set`.
|
||||
|
||||
.. image:: australia/payslip-other-inputs.png
|
||||
:alt: Payslip other inputs
|
||||
|
||||
Add the relevant **ETP type** in the :guilabel:`Other Inputs` table of the payslip, then compute the
|
||||
payslip. Odoo computes the **gross ETP**, the **withholding**, the **unused leaves**, and the **net
|
||||
salary** according to the rules defined on the **ETP**, the **employee**, and their **contract**.
|
||||
Once payment for both payslips is ready to be processed, an **ABA** file can be created directly
|
||||
from the batch.
|
||||
|
||||
.. _australia/employment-hero:
|
||||
|
||||
Employment Hero payroll
|
||||
=======================
|
||||
|
||||
If your business is already up and running with :doc:`Employment Hero <employment_hero>`, you can
|
||||
use our connector as an alternative payroll solution.
|
||||
|
||||
.. important::
|
||||
To :ref:`configure the Employment Hero API <employment_hero/configuration>` for **Australia**,
|
||||
use the following value as :guilabel:`Payroll URL`: `https://api.yourpayroll.com.au/`.
|
||||
|
||||
|
After Width: | Height: | Size: 9.3 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 34 KiB |
|
After Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
After Width: | Height: | Size: 4.4 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 14 KiB |