Compare commits
148 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1f529d0105 | |||
| 294c02bdb3 | |||
| e672f1e452 | |||
| 9ed8701cc7 | |||
| 3508459102 | |||
| 6e81573e1e | |||
| 2c909c93d1 | |||
| a762cabbb3 | |||
| 20a9faef80 | |||
| 92a39cff3a | |||
| 9c7ef9b2cf | |||
| 08d012ee46 | |||
| 8f1d5d428c | |||
| 39f78ec435 | |||
| 98b765babe | |||
| f1f547ca58 | |||
| f1030c6e9f | |||
| 4c1747369d | |||
| e8305bad12 | |||
| cdef3da925 | |||
| c5a866bd11 | |||
| 4b123b8464 | |||
| 26f226c51b | |||
| 24966a91c8 | |||
| b5d9d1afdb | |||
| 09427a0183 | |||
| 43e244edd6 | |||
| 8744243175 | |||
| 7af79e3189 | |||
| 4d5a4cb28d | |||
| 92b968d337 | |||
| ae9bdc5678 | |||
| 2159795dff | |||
| 7e50e9fe1c | |||
| ea9c8bd807 | |||
| db5abde8ee | |||
| eba8e6028e | |||
| 8bbbccdedc | |||
| fe9d186b54 | |||
| 2a28a68376 | |||
| 2628303bc4 | |||
| 37d9b31da5 | |||
| 22e428097a | |||
| 6852e4b980 | |||
| cb0cce2498 | |||
| ecb8630cc1 | |||
| 47fa6163a7 | |||
| 8df48eb03e | |||
| d5a2ace7b5 | |||
| 1aac8f8dc6 | |||
| 6bbf94d00a | |||
| c5c7fa6250 | |||
| 2b0f9c51a4 | |||
| de8f271f53 | |||
| 69e6279f65 | |||
| f3969af47e | |||
| aebefbf019 | |||
| 1a72b05e0a | |||
| 3561ca06df | |||
| 2f197b66ce | |||
| 82a45dbc50 | |||
| 795afbb728 | |||
| 81a7fcbb45 | |||
| 994c3530c4 | |||
| 447736ae08 | |||
| 10bc27946f | |||
| e62e798a8b | |||
| 6e9de168d9 | |||
| a113cc42f5 | |||
| 298871e43a | |||
| 507c408f01 | |||
| cb1f1e89d6 | |||
| 0bf6c3b44e | |||
| 4a7156d69e | |||
| c7b9e0e159 | |||
| 82378ce462 | |||
| fe917d862f | |||
| d77d3ace2a | |||
| b81d1a6d8a | |||
| 30d6e17cf9 | |||
| 2bfd2b64af | |||
| 47da91a9d6 | |||
| 41e40b46e2 | |||
| af1df4ae12 | |||
| 4590851acf | |||
| cdf833810f | |||
| db36928ff6 | |||
| e761d5d3a4 | |||
| fe75484a45 | |||
| 2b84a30f80 | |||
| f8683b6e74 | |||
| 79758ab9de | |||
| fd7a2f90d9 | |||
| 14b552a8a0 | |||
| 54359951db | |||
| ce1b4d7bc3 | |||
| 75af17192f | |||
| 331e39ac7b | |||
| afe998d6a0 | |||
| d683e94e85 | |||
| 204db28154 | |||
| 9da2958373 | |||
| ce55e4affb | |||
| 1b14a732b9 | |||
| c6a8619367 | |||
| 660f73e02c | |||
| 63be4d2d65 | |||
| 7e2d88cc02 | |||
| 229e633c9c | |||
| af29704626 | |||
| 4107fb03a5 | |||
| fa7713f31c | |||
| cfe4968bef | |||
| 96269013b5 | |||
| 9ba3a1bc10 | |||
| ff891f246e | |||
| 8bcf4cc29c | |||
| 5669d48cb9 | |||
| 42c4585cdd | |||
| 399b20d9c7 | |||
| 7f24a51d7d | |||
| 69477d78c7 | |||
| ef367bd442 | |||
| 711dbc5931 | |||
| e41e3c7ba0 | |||
| 34814984ec | |||
| 3337149a62 | |||
| 21cb6bb5cf | |||
| 1c5bf1337e | |||
| 6032be9d6f | |||
| 5aa4151638 | |||
| b10c2daf6b | |||
| 3b69030302 | |||
| 721c07d341 | |||
| d029bdac15 | |||
| c302c85fd4 | |||
| 380c4bc10f | |||
| 0aa1a671dd | |||
| 1e39d90420 | |||
| 14007868bb | |||
| 43d99f8070 | |||
| b9338949e9 | |||
| 7d075de97a | |||
| 85e04b2723 | |||
| 49561d4daf | |||
| c0340cf05a | |||
| 4cb7637a23 | |||
| bed0d86d1d |
@@ -231,18 +231,13 @@ sphinx.transforms.i18n.docname_to_domain = (
|
||||
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
|
||||
versions_names = {
|
||||
'master': "Master",
|
||||
'saas-18.1': "Odoo Online",
|
||||
'18.0': "Odoo 18",
|
||||
'saas-17.4': "Odoo Online",
|
||||
'saas-17.2': "Odoo Online",
|
||||
'saas-17.1': "Odoo Online",
|
||||
'17.0': "Odoo 17",
|
||||
'saas-16.4': "Odoo Online",
|
||||
'saas-16.3': "Odoo Online",
|
||||
'saas-16.2': "Odoo Online",
|
||||
'saas-16.1': "Odoo Online",
|
||||
'16.0': "Odoo 16",
|
||||
'saas-15.2': "Odoo Online",
|
||||
'15.0': "Odoo 15",
|
||||
'14.0': "Odoo 14",
|
||||
}
|
||||
|
||||
# The language names that should be shown in the language switcher, if the config option `languages`
|
||||
@@ -251,7 +246,9 @@ languages_names = {
|
||||
'de': 'DE',
|
||||
'en': 'EN',
|
||||
'es': 'ES',
|
||||
'es_419': 'ES (LATAM)',
|
||||
'fr': 'FR',
|
||||
'id': 'ID',
|
||||
'it': 'IT',
|
||||
'ja': 'JA',
|
||||
'ko': 'KR',
|
||||
@@ -261,6 +258,7 @@ languages_names = {
|
||||
'sv': 'SV',
|
||||
'th': 'TH',
|
||||
'uk': 'UA',
|
||||
'vi': 'VI',
|
||||
'zh_CN': 'ZH (CN)',
|
||||
'zh_TW': 'ZH (TW)'
|
||||
}
|
||||
|
||||
@@ -23,7 +23,7 @@ Edit Security Settings --> Delete Account`. It can also be accessed by going to
|
||||
Upon clicking the :guilabel:`Delete Account` button, a pop-up window appears, requesting
|
||||
confirmation for the account deletion.
|
||||
|
||||
.. image:: odoo_account/delete-account.png
|
||||
.. image:: odoo_accounts/delete-account.png
|
||||
:align: center
|
||||
:alt: Clicking on the Delete Account button will populate a window verifying the change.
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 18 KiB |
@@ -33,17 +33,17 @@ Manage the Github users who can access your project.
|
||||
.. image:: settings/interface-settings-collaborators.png
|
||||
:align: center
|
||||
|
||||
There are two levels of users:
|
||||
There are three levels of users:
|
||||
|
||||
* Admin: has access to all features of Odoo.sh.
|
||||
* User: does not have access to the project settings nor to the production and staging databases.
|
||||
- :guilabel:`Admin`: has access to all features of an Odoo.sh project.
|
||||
|
||||
The user group is meant for developers who can make modifications in your code but are not allowed
|
||||
to access the production data. Users of this group cannot connect to the production and staging
|
||||
databases using the *1-click connect* feature, but they can of course use their regular account on
|
||||
these databases if they have one, using their regular credentials.
|
||||
- :guilabel:`Tester`: has access to the *Staging* and *Development* databases and their tooling.
|
||||
This role is for users conducting User Acceptance Tests. Testers can work with copies of
|
||||
production data but cannot access the production database through the Odoo.sh tooling.
|
||||
|
||||
In addition, they cannot use the webshell nor have access to the server logs.
|
||||
- :guilabel:`Developer`: has access only to the *Development* databases and their tooling. This
|
||||
role is for developers who propose code modifications but are not allowed to access production
|
||||
and staging databases through the Odoo.sh tooling.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
@@ -51,83 +51,145 @@ In addition, they cannot use the webshell nor have access to the server logs.
|
||||
|
||||
* -
|
||||
-
|
||||
- User
|
||||
- Developer
|
||||
- Tester
|
||||
- Admin
|
||||
* - Development
|
||||
- History
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- 1-click connect
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- Logs
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- Shell/SSH
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- Mails
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- Upgrade
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- Settings
|
||||
- |green|
|
||||
- |green|
|
||||
* - Production & Staging
|
||||
- |green|
|
||||
* - Staging
|
||||
- History
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- 1-click connect
|
||||
-
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- Logs
|
||||
-
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- Shell/SSH
|
||||
-
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- Mails
|
||||
-
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- Monitoring
|
||||
-
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- Backups
|
||||
-
|
||||
-
|
||||
- |green|
|
||||
* -
|
||||
- Upgrade
|
||||
-
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- Settings
|
||||
- |green|\*
|
||||
-
|
||||
- |green|
|
||||
- |green|
|
||||
* - Production
|
||||
- History
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
* -
|
||||
- 1-click connect
|
||||
-
|
||||
-
|
||||
- |green|
|
||||
* -
|
||||
- Logs
|
||||
-
|
||||
-
|
||||
- |green|
|
||||
* -
|
||||
- Shell/SSH
|
||||
-
|
||||
-
|
||||
- |green|
|
||||
* -
|
||||
- Mails
|
||||
-
|
||||
-
|
||||
- |green|
|
||||
* -
|
||||
- Monitoring
|
||||
-
|
||||
-
|
||||
- |green|
|
||||
* -
|
||||
- Backups
|
||||
-
|
||||
-
|
||||
- |green|
|
||||
* -
|
||||
- Upgrade
|
||||
-
|
||||
-
|
||||
- |green|
|
||||
* -
|
||||
- Settings
|
||||
-
|
||||
-
|
||||
- |green|
|
||||
* - Status
|
||||
-
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
* - Settings
|
||||
-
|
||||
-
|
||||
-
|
||||
- |green|
|
||||
|
||||
.. note::
|
||||
\* Only in staging branches
|
||||
.. warning::
|
||||
Those roles only apply to the usage of Odoo.sh. It is important to reflect the user roles
|
||||
attribution within the repository on GitHub. Please refer to the GitHub documentation section on
|
||||
`Managing a branch protection rule <https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule>`_
|
||||
for detailed guidance.
|
||||
|
||||
.. |green| raw:: html
|
||||
|
||||
@@ -149,15 +211,32 @@ Allow public access to your development builds.
|
||||
.. image:: settings/interface-settings-public.png
|
||||
:align: center
|
||||
|
||||
If activated, this option exposes the Builds page publicly, allowing visitors to connect to your
|
||||
development builds.
|
||||
|
||||
In addition, visitors have access to the logs, shell and mails of your development builds.
|
||||
If activated, this option exposes the Builds page publicly, allowing visitors to view logs of development builds.
|
||||
|
||||
Production and staging builds are excluded, visitors can only see their status.
|
||||
|
||||
.. _odoosh-gettingstarted-settings-modules-installation:
|
||||
|
||||
GitHub commit statuses
|
||||
======================
|
||||
|
||||
This option enables Odoo.sh to push commit statuses to your GitHub repository when a build is
|
||||
created or updated. It requires a GitHub token with permissions to push commit statuses to the
|
||||
repository. Refer to `GitHub's documentation on personal access tokens <https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens>`_
|
||||
for instructions to create yours.
|
||||
|
||||
.. note::
|
||||
GitHub's **fine-grained personal tokens** have an expiration date and will be disabled if they
|
||||
fail to update the commit status. You can replace the token at any time on Odoo.sh.
|
||||
|
||||
The commit statuses pushed to GitHub can have the following contexts:
|
||||
|
||||
- :guilabel:`ci/odoo.sh (dev)`: status of a development build
|
||||
- :guilabel:`ci/odoo.sh (staging)`: status of a staging build
|
||||
- :guilabel:`ci/odoo.sh (production)`: status of a production build
|
||||
- :guilabel:`ci/odoo.sh (test_ci)`: testing the token from the Settings page will push a test
|
||||
status on the last commit of your repository
|
||||
|
||||
Custom domains
|
||||
==============
|
||||
|
||||
|
||||
@@ -61,8 +61,8 @@ To resolve the issue:
|
||||
your **network and firewall settings** allow the Odoo server to open outgoing connections
|
||||
towards:
|
||||
|
||||
- `services.odoo.com` on port `443` (or `80`)
|
||||
- for older deployments, `services.openerp.com` on port `443` (or `80`)
|
||||
- Odoo 18.0 and above: `services.odoo.com` on port `80`
|
||||
- Odoo 17.0 and below: `services.openerp.com` on port `80`
|
||||
|
||||
These ports must be kept open even after registering a database, as the update notification runs
|
||||
once a week.
|
||||
@@ -85,12 +85,6 @@ To resolve the issue, either:
|
||||
displayed in the message to validate the upsell quotation and pay for the extra users.
|
||||
- :ref:`Deactivate users <users/deactivate>` and **reject** the upsell quotation.
|
||||
|
||||
.. important::
|
||||
If you are on a monthly subscription plan, the database will automatically update to reflect the
|
||||
added user(s). If you are on a yearly or multi-year plan, an expiration banner will appear in the
|
||||
database. You can create the upsell quotation by clicking the banner to update the subscription
|
||||
or `send a support ticket <https://www.odoo.com/help>`_ to resolve the issue.
|
||||
|
||||
Once your database has the correct number of users, the expiration message disappears automatically
|
||||
after a few days, when the next verification occurs.
|
||||
|
||||
|
||||
@@ -132,7 +132,7 @@ be downloaded from the `Odoo download page <https://www.odoo.com/page/download>`
|
||||
.. group-tab:: Fedora
|
||||
|
||||
.. note::
|
||||
Odoo {CURRENT_MAJOR_VERSION} 'rpm' package supports Fedora 36.
|
||||
Odoo {CURRENT_MAJOR_VERSION} 'rpm' package supports Fedora 38.
|
||||
|
||||
Once downloaded, the package can be installed using the 'dnf' package manager:
|
||||
|
||||
|
||||
@@ -31,24 +31,30 @@ This matrix shows the support status of every version.
|
||||
- On-Premise
|
||||
- Release date
|
||||
- End of support
|
||||
* - Odoo saas~17.4
|
||||
* - Odoo SaaS 18.1
|
||||
- |green|
|
||||
- N/A
|
||||
- N/A
|
||||
- January 2025
|
||||
-
|
||||
* - **Odoo 18.0**
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
- October 2024
|
||||
- October 2027 (planned)
|
||||
* - Odoo SaaS 17.4
|
||||
- |red|
|
||||
- N/A
|
||||
- N/A
|
||||
- July 2024
|
||||
-
|
||||
* - Odoo saas~17.2
|
||||
- |green|
|
||||
- October 2024
|
||||
* - Odoo SaaS 17.2
|
||||
- |red|
|
||||
- N/A
|
||||
- N/A
|
||||
- April 2024
|
||||
-
|
||||
* - Odoo saas~17.1
|
||||
- |green|
|
||||
- N/A
|
||||
- N/A
|
||||
- January 2024
|
||||
-
|
||||
- October 2024
|
||||
* - **Odoo 17.0**
|
||||
- |green|
|
||||
- |green|
|
||||
@@ -60,31 +66,25 @@ This matrix shows the support status of every version.
|
||||
- |green|
|
||||
- |green|
|
||||
- October 2022
|
||||
- November 2025 (planned)
|
||||
- October 2025 (planned)
|
||||
* - **Odoo 15.0**
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
- |red|
|
||||
- |red|
|
||||
- |red|
|
||||
- October 2021
|
||||
- November 2024 (planned)
|
||||
- October 2024
|
||||
* - **Odoo 14.0**
|
||||
- |red|
|
||||
- |red|
|
||||
- |red|
|
||||
- October 2020
|
||||
- November 2023
|
||||
* - **Odoo 13.0**
|
||||
- |red|
|
||||
- |red|
|
||||
- |red|
|
||||
- October 2019
|
||||
- October 2022
|
||||
* - Older versions
|
||||
- |red|
|
||||
- |red|
|
||||
- |red|
|
||||
- Before 2019
|
||||
- Before 2022
|
||||
- Before 2020
|
||||
- Before 2023
|
||||
|
||||
.. admonition:: Legend
|
||||
|
||||
|
||||
@@ -3,7 +3,7 @@ Upgrade
|
||||
=======
|
||||
|
||||
An upgrade involves moving a database from an older version to a newer supported version (e.g., from
|
||||
Odoo 15.0 to Odoo 17.0). Regular upgrades are crucial as each version offers new features, bug
|
||||
Odoo 16.0 to Odoo 18.0). Regular upgrades are crucial as each version offers new features, bug
|
||||
fixes, and security patches. Using a :doc:`supported version <supported_versions>` is strongly
|
||||
recommended. Each major version is supported for three years.
|
||||
|
||||
@@ -13,11 +13,11 @@ Depending on the hosting type and Odoo version used, a database upgrade can be *
|
||||
|
||||
.. group-tab:: Odoo Online
|
||||
|
||||
- If a database is on a **major version** (e.g., 15.0, 16.0, 17.0), an upgrade is mandatory
|
||||
- If a database is on a **major version** (e.g., 16.0, 17.0, 18.0), an upgrade is mandatory
|
||||
every two years.
|
||||
- If a database is on a **minor version** (e.g., 17.1, 17.2, 17.4), an upgrade is mandatory
|
||||
a few weeks after the next version is released. Minor versions are usually released every
|
||||
three months.
|
||||
two months.
|
||||
|
||||
.. group-tab:: Odoo.sh
|
||||
|
||||
@@ -390,8 +390,8 @@ few exceptions.
|
||||
filestore before deploying the new version.
|
||||
|
||||
In case of an issue with your production database, you can request the assistance of Odoo by going
|
||||
to the `Support page and selecting "An issue related to my future upgrade (I am testing an upgrade)"
|
||||
<https://www.odoo.com/help?stage=migration>`_.
|
||||
to the `Support page and selecting "An issue related to my upgrade (production)"
|
||||
<https://www.odoo.com/help?stage=post_upgrade>`_.
|
||||
|
||||
.. _upgrade-sla:
|
||||
|
||||
@@ -430,10 +430,8 @@ Upgrade services not covered by the SLA
|
||||
The following upgrade-related services are **not** included:
|
||||
|
||||
- the **cleaning** of pre-existing data and configurations while upgrading;
|
||||
- the upgrade of **custom modules created in-house or by third parties**, including Odoo partners;
|
||||
- lines of **code added to standard modules**, i.e., customizations created outside the Studio app,
|
||||
code entered manually, and :ref:`automated actions using Python code
|
||||
<studio/automated-actions/action>`; and
|
||||
- the upgrade of **additional modules not covered by a maintenance contract** that are created
|
||||
in-house or by third parties, including Odoo partners; and
|
||||
- **training** on using the upgraded version's features and workflows.
|
||||
|
||||
.. seealso::
|
||||
|
||||
|
Before Width: | Height: | Size: 8.7 KiB |
|
Before Width: | Height: | Size: 3.4 KiB |
@@ -110,6 +110,8 @@ You can edit the currency used to enter the statements.
|
||||
.. seealso::
|
||||
:doc:`get_started/multi_currency`
|
||||
|
||||
.. _accounting/bank/account-number:
|
||||
|
||||
Account number
|
||||
--------------
|
||||
|
||||
|
||||
@@ -21,25 +21,23 @@ Import transactions
|
||||
|
||||
Odoo supports multiple file formats to import transactions:
|
||||
|
||||
- SEPA recommended Cash Management format (CAMT.053);
|
||||
- Comma-separated values (.CSV);
|
||||
- Open Financial Exchange (.OFX);
|
||||
- Quicken Interchange Format (.QIF);
|
||||
- Belgium: Coded Statement of Account (.CODA).
|
||||
- SEPA recommended Cash Management format (CAMT.053)
|
||||
- Comma-separated values (CSV)
|
||||
- Open Financial Exchange (OFX)
|
||||
- Quicken Interchange Format (QIF)
|
||||
- Belgium: Coded Statement of Account (CODA)
|
||||
|
||||
To import a file, go to the **Accounting Dashboard**, and in the :guilabel:`Bank` journal,
|
||||
To import a file, go to the :guilabel:`Accounting Dashboard`, and in the :guilabel:`Bank` journal,
|
||||
click on :guilabel:`Import File`.
|
||||
|
||||
.. tip::
|
||||
Alternatively, you can also:
|
||||
|
||||
- click :guilabel:`⋮` on the :guilabel:`Bank` journal and select :guilabel:`Import file`;
|
||||
- or access the transaction list by clicking :guilabel:`⋮` on the :guilabel:`Bank` journal and
|
||||
selecting :guilabel:`Transactions`, then click the gear icon :guilabel:`(⚙)` and select
|
||||
:guilabel:`Import records`.
|
||||
|
||||
.. image:: transactions/import-transactions.png
|
||||
:alt: Import bank transactions from the bank journal
|
||||
- click the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon on the :guilabel:`Bank`
|
||||
journal and select :guilabel:`Import file`;
|
||||
- or access the transaction list by clicking the :icon:`fa-ellipsis-v` :guilabel:`(ellipsis)`
|
||||
icon on the :guilabel:`Bank` journal and selecting :guilabel:`Transactions`, then click
|
||||
the :icon:`fa-cog` :guilabel:`(gear)` icon and select :guilabel:`Import records`.
|
||||
|
||||
Next, select the file and upload it.
|
||||
|
||||
@@ -75,22 +73,28 @@ on your business flow, you may want to record them for control purposes.
|
||||
account balance as of the date you begin synchronizing or importing transactions. This is
|
||||
necessary to ensure the accuracy of your accounting.
|
||||
|
||||
To access a list of statements, go to your :guilabel:`Accounting Dashboard`, click on the vertical
|
||||
ellipsis (:guilabel:`⋮`) button next to the bank or cash journal you want to check, then on
|
||||
:guilabel:`Statements`
|
||||
To access a list of existing statements, go to the :guilabel:`Accounting Dashboard`, click the
|
||||
:icon:`fa-ellipsis-v` :guilabel:`(ellipsis)` icon next to the bank or cash journal you want to
|
||||
check, then click :guilabel:`Statements`.
|
||||
|
||||
.. _transactions/statement-kanban:
|
||||
|
||||
Statement creation from the kanban view
|
||||
---------------------------------------
|
||||
|
||||
Open the bank reconciliation view by clicking on the name of the bank journal, and identify the
|
||||
transaction corresponding to the last transaction of your bank statement. Click on the
|
||||
:guilabel:`STATEMENT` button when hovering on the upper separator line.
|
||||
Open the bank reconciliation (kanban) view from the :guilabel:`Accounting Dashboard` by clicking on
|
||||
the name of the bank journal and identify the transaction corresponding to the last (most recent)
|
||||
transaction of your bank statement. Click on the :guilabel:`Statement` button when hovering on the
|
||||
upper separator line to create a statement from that transaction down to the oldest transaction that
|
||||
is not yet part of a statement.
|
||||
|
||||
.. image:: transactions/statements-kanban.png
|
||||
:alt: A "STATEMENT" button is visible when hovering on the line separating two transactions.
|
||||
:alt: A "Statement" button is visible when hovering on the line separating two transactions.
|
||||
|
||||
Fill out the statement's details and save. The newly created statement includes the previous
|
||||
transactions following the last statement.
|
||||
In the :guilabel:`Create Statement` window, fill out the statement's :guilabel:`Reference`, verify
|
||||
its :guilabel:`Starting Balance` and :guilabel:`Ending Balance`, and click :guilabel:`Save`.
|
||||
|
||||
.. _transactions/statement-list:
|
||||
|
||||
Statement creation from the list view
|
||||
-------------------------------------
|
||||
@@ -100,3 +104,35 @@ view. Select all the transactions corresponding to the bank statement, and, in t
|
||||
:guilabel:`Statement` column, select an existing statement or create a new one by typing its
|
||||
reference, clicking on :guilabel:`Create and edit...`, filling out the statement's details, and
|
||||
saving.
|
||||
|
||||
.. _transactions/view-edit-print:
|
||||
|
||||
Statement viewing, editing, and printing
|
||||
----------------------------------------
|
||||
|
||||
To view an existing statement, click on the statement amount in the reconciliation (kanban) view or
|
||||
click on the statement name in the bank transaction list view. From here, you can edit the
|
||||
:guilabel:`Reference`, :guilabel:`Starting Balance`, or :guilabel:`Ending Balance`.
|
||||
|
||||
.. note::
|
||||
Manually updating the :guilabel:`Starting Balance` automatically updates the :guilabel:`Ending
|
||||
Balance` based on the new value of the :guilabel:`Starting Balance` and the value of the
|
||||
statement's transactions.
|
||||
|
||||
.. warning::
|
||||
If the :guilabel:`Starting Balance` doesn't equal the previous statement's :guilabel:`Ending
|
||||
Balance`, or if the :guilabel:`Ending Balance` doesn't equal the running balance
|
||||
(:guilabel:`Starting Balance` plus the statement's transactions), a warning appears explaining
|
||||
the issue. To maintain flexibility, it is still possible to save without first resolving the
|
||||
issue.
|
||||
|
||||
To attach a digital copy (i.e., JPEG, PNG, or PDF) of the bank statement for enhanced recordkeeping,
|
||||
click the :icon:`fa-paperclip` :guilabel:`Attachments` button and select the file to attach.
|
||||
|
||||
To generate and print a PDF of the bank statement, click the :guilabel:`Print` button (if accessed
|
||||
via the reconciliation view) or click on the :icon:`fa-cog`:guilabel:`(gear)` icon and click
|
||||
:icon:`fa-print`:guilabel:`Statement` (if accessed via the list view).
|
||||
|
||||
.. note::
|
||||
When a bank statement is generated to be printed, it is automatically added to the
|
||||
:guilabel:`Attachments`.
|
||||
|
||||
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 23 KiB |
@@ -4,225 +4,251 @@
|
||||
Customer invoices
|
||||
=================
|
||||
|
||||
From Customer Invoice to Payments Collection
|
||||
============================================
|
||||
A customer invoice is a document issued by a company for products and/or services sold to a
|
||||
customer. It records receivables as they are sent to customers. Customer invoices can include
|
||||
amounts due for the goods and/or services provided, applicable sales taxes, shipping and handling
|
||||
fees, and other charges.
|
||||
Odoo supports multiple invoicing and payment workflows.
|
||||
|
||||
Odoo supports multiple invoicing and payment workflows, so you can
|
||||
choose and use the ones that match your business needs. Whether you want
|
||||
to accept a single payment for a single invoice, or process a payment
|
||||
spanning multiple invoices and taking discounts for early payments, you
|
||||
can do so efficiently and accurately.
|
||||
.. seealso::
|
||||
:doc:`/applications/finance/accounting/customer_invoices/overview`
|
||||
|
||||
From Draft Invoice to Profit and Loss
|
||||
-------------------------------------
|
||||
From draft invoice to profit and loss report, the process involves several steps once the goods (or
|
||||
services) have been ordered/shipped (or rendered) to a customer, depending on the invoicing policy:
|
||||
|
||||
If we pick up at the end of a typical 'order to cash' scenario, after
|
||||
the goods have been shipped, you will: issue an invoice; receive
|
||||
payment; deposit that payment at the bank; make sure the Customer
|
||||
Invoice is closed; follow up if Customers are late; and finally present
|
||||
your Income on the Profit and Loss report and show the decrease in
|
||||
Assets on the Balance Sheet report.
|
||||
- :ref:`accounting/invoice/creation`
|
||||
- :ref:`accounting/invoice/confirmation`
|
||||
- :ref:`accounting/invoice/sending`
|
||||
- :ref:`accounting/invoice/paymentandreconciliation`
|
||||
- :ref:`accounting/invoice/followup`
|
||||
- :ref:`accounting/invoice/reporting`
|
||||
|
||||
Invoicing in most countries occurs when a contractual obligation is met.
|
||||
If you ship a box to a customer, you have met the terms of the contract
|
||||
and can bill them. If your supplier sends you a shipment, they have met
|
||||
the terms of that contract and can bill you. Therefore, the terms of the
|
||||
contract is fulfilled when the box moves to or from the truck. At this
|
||||
point, Odoo supports the creation of what is called a Draft Invoice by
|
||||
Warehouse staff.
|
||||
.. _accounting/invoice/creation:
|
||||
|
||||
Invoice creation
|
||||
----------------
|
||||
================
|
||||
|
||||
Draft invoices can be manually generated from other documents such as
|
||||
Sales Orders, Purchase Orders,etc. Although you can create a draft
|
||||
invoice directly if you would like.
|
||||
Draft invoices can be created directly from documents like sales orders or purchase orders or
|
||||
manually from the :guilabel:`Customer Invoices` journal in the :guilabel:`Accounting Dashboard`.
|
||||
|
||||
An invoice must be provided to the customer with the necessary
|
||||
information in order for them to pay for the goods and services ordered
|
||||
and delivered. It must also include other information needed to pay the
|
||||
invoice in a timely and precise manner.
|
||||
An invoice must include the required information to enable the customer to pay promptly for their
|
||||
goods and services. Make sure the following fields are appropriately completed:
|
||||
|
||||
Draft invoices
|
||||
--------------
|
||||
- :guilabel:`Customer`: When a customer is selected, Odoo automatically pulls information from the
|
||||
customer record like the invoice address,
|
||||
:doc:`preferred payment terms <customer_invoices/payment_terms>`,
|
||||
:doc:`fiscal positions <taxes/fiscal_positions>`, receivable account, and more onto the invoice.
|
||||
To change these values for this specific invoice, edit them directly on the invoice. To change
|
||||
them for future invoices, change the values on the contact record.
|
||||
- :guilabel:`Invoice Date`: If not set manually, this field is automatically set as the current date
|
||||
upon confirmation.
|
||||
- :guilabel:`Due Date` or :doc:`payment terms <customer_invoices/payment_terms>`: To specify when
|
||||
the customer has to pay the invoice.
|
||||
- :guilabel:`Journal`: Is automatically set and can be changed if needed.
|
||||
- :doc:`Currency <get_started/multi_currency>`
|
||||
- :guilabel:`Product`: Click :guilabel:`Add a line` to add a product.
|
||||
- :guilabel:`Quantity`
|
||||
- :guilabel:`Price`
|
||||
- :doc:`Taxes <taxes>` (if applicable)
|
||||
|
||||
The system generates invoice which are initially set to the Draft state.
|
||||
While these invoices remain unvalidated, they have no accounting impact within the system.
|
||||
There is nothing to stop users from creating their own draft invoices.
|
||||
.. tip::
|
||||
To display the total amount of the invoice in words, go to :menuselection:`Accounting -->
|
||||
Configuration --> Settings` and activate the :guilabel:`Total amount of invoice in letters`
|
||||
option.
|
||||
|
||||
Let's create a customer invoice with following information:
|
||||
The :guilabel:`Journal Items` tab displays the accounting entries created.
|
||||
Additional invoice information such as the :guilabel:`Customer Reference`, :doc:`Fiscal Positions
|
||||
<taxes/fiscal_positions>`, :doc:`Incoterms <customer_invoices/incoterms>`, and more can be added or
|
||||
modified in the :guilabel:`Other Info` tab.
|
||||
|
||||
- Customer: Agrolait
|
||||
- Product: iMac
|
||||
- Quantity: 1
|
||||
- Unit Price: 100
|
||||
- Taxes: Tax 15%
|
||||
.. note::
|
||||
Odoo initially creates invoices in :guilabel:`Draft` status. Draft invoices have no accounting
|
||||
impact until they are :ref:`confirmed <accounting/invoice/confirmation>`.
|
||||
|
||||
.. image:: customer_invoices/invoice01.png
|
||||
.. seealso::
|
||||
:doc:`/applications/sales/sales/invoicing/proforma`
|
||||
|
||||
.. image:: customer_invoices/invoice02.png
|
||||
.. _accounting/invoice/confirmation:
|
||||
|
||||
The document is composed of three parts:
|
||||
Invoice confirmation
|
||||
====================
|
||||
|
||||
- the top of the invoice, with customer information,
|
||||
- the main body of the invoice, with detailed invoice lines,
|
||||
- the bottom of the page, with detail about the taxes, and the totals.
|
||||
Click :guilabel:`Confirm` when the document is completed. The document's status changes to
|
||||
:guilabel:`Posted`, and a journal entry is generated based on the invoice configuration. On
|
||||
confirmation, Odoo assigns each document a unique number from a defined
|
||||
:ref:`sequence <accounting/invoice/sequence>`.
|
||||
|
||||
Open or Pro-forma invoices
|
||||
--------------------------
|
||||
.. note::
|
||||
- Once confirmed, an invoice can no longer be updated. Click :guilabel:`Reset to draft` if
|
||||
changes are needed.
|
||||
- If required, invoices and other journal entries can be locked once posted
|
||||
using the :ref:`Lock posted entries with hash <data-inalterability/lock>` feature.
|
||||
|
||||
An invoice will usually include the quantity and the price of goods
|
||||
and/or services, the date, any parties involved, the unique invoice
|
||||
number, and any tax information.
|
||||
.. _accounting/invoice/sending:
|
||||
|
||||
"Validate" the invoice when you are ready to approve it. The invoice
|
||||
then moves from the Draft state to the Open state.
|
||||
Invoice sending
|
||||
===============
|
||||
|
||||
When you have validated an invoice, Odoo gives it a unique number from a
|
||||
defined, and modifiable, sequence.
|
||||
To send the invoice to the customer, click :guilabel:`Send & Print`. A :guilabel:`Configure your
|
||||
document layout` pop-up window will appear if a :ref:`default invoice layout
|
||||
<studio/pdf-reports/default-layout>` hasn't been customized. Then, select how to send this invoice
|
||||
to the customer in the :guilabel:`Send` window.
|
||||
|
||||
.. image:: customer_invoices/invoice03.png
|
||||
To send and print multiple invoices, go to :menuselection:`Accounting --> Customers --> Invoices`
|
||||
and select them. Then click the :icon:`fa-cog` :guilabel:`Actions` menu and select
|
||||
:guilabel:`Send & Print`. A banner will appear on the selected invoices to indicate they are part of
|
||||
an ongoing send and print batch. This helps prevent the process from being triggered manually again,
|
||||
as it may take some time to complete for exceptionally large batches.
|
||||
|
||||
Accounting entries corresponding to this invoice are automatically
|
||||
generated when you validate the invoice. You can see the details by
|
||||
clicking on the entry in the Journal Entry field in the "Other Info"
|
||||
tab.
|
||||
.. _accounting/invoice/paymentandreconciliation:
|
||||
|
||||
.. image:: customer_invoices/invoice04.png
|
||||
Payment and reconciliation
|
||||
==========================
|
||||
|
||||
Send the invoice to customer
|
||||
----------------------------
|
||||
In Odoo, an invoice is considered :guilabel:`Paid` when the associated accounting entry has been
|
||||
reconciled with a corresponding bank transaction.
|
||||
|
||||
After validating the customer invoice, you can directly send it to the
|
||||
customer via the 'Send by email' functionality.
|
||||
.. seealso::
|
||||
- :doc:`payments`
|
||||
- :doc:`bank/reconciliation`
|
||||
|
||||
.. image:: customer_invoices/invoice05.png
|
||||
.. _accounting/invoice/followup:
|
||||
|
||||
A typical journal entry generated from a validated invoice will look
|
||||
like as follows:
|
||||
Payment follow-up
|
||||
=================
|
||||
|
||||
+-----------------------+---------------+----------------+-------------+--------------+
|
||||
| **Account** | **Partner** | **Due date** | **Debit** | **Credit** |
|
||||
+=======================+===============+================+=============+==============+
|
||||
| Accounts Receivable | Agrolait | 01/07/2015 | 115 | |
|
||||
+-----------------------+---------------+----------------+-------------+--------------+
|
||||
| Taxes | Agrolait | | | 15 |
|
||||
+-----------------------+---------------+----------------+-------------+--------------+
|
||||
| Sales | | | | 100 |
|
||||
+-----------------------+---------------+----------------+-------------+--------------+
|
||||
Odoo's :doc:`follow-up actions <payments/follow_up>` help companies follow up on customer invoices.
|
||||
Different actions can be set up to remind customers to pay their outstanding invoices, depending on
|
||||
how much the customer is overdue. These actions are bundled into follow-up levels that trigger when
|
||||
an invoice is overdue by a certain number of days. If there are multiple overdue invoices for the
|
||||
same customer, the actions are performed on the most overdue invoice.
|
||||
|
||||
Payment
|
||||
-------
|
||||
.. _accounting/invoice/sequence:
|
||||
|
||||
In Odoo, an invoice is considered to be paid when the associated
|
||||
accounting entry has been reconciled with the payment entries. If there
|
||||
has not been a reconciliation, the invoice will remain in the Open state
|
||||
until you have entered the payment.
|
||||
Sequence
|
||||
========
|
||||
|
||||
A typical journal entry generated from a payment will look like as
|
||||
follows:
|
||||
The sequence that Odoo assigns to each document is a unique number made up of a prefix and a number.
|
||||
The prefix combines the journal code and the entry date and is used to group entries by period. The
|
||||
number is unique for each period and is used to identify the entry. The default sequence on customer
|
||||
invoices is INV/YYYY/number. In some specific cases,
|
||||
:ref:`resequencing <accounting/invoice/resequencing>` invoices might be necessary.
|
||||
|
||||
+-----------------------+---------------+----------------+-------------+--------------+
|
||||
| **Account** | **Partner** | **Due date** | **Debit** | **Credit** |
|
||||
+=======================+===============+================+=============+==============+
|
||||
| Bank | Agrolait | | 115 | |
|
||||
+-----------------------+---------------+----------------+-------------+--------------+
|
||||
| Accounts Receivable | Agrolait | | | 115 |
|
||||
+-----------------------+---------------+----------------+-------------+--------------+
|
||||
.. _accounting/invoice/resequencing:
|
||||
|
||||
Receive a partial payment through the bank statement
|
||||
----------------------------------------------------
|
||||
Resequencing
|
||||
------------
|
||||
|
||||
You can manually enter your bank statements in Odoo, or you can import
|
||||
them in from a csv file or from several other predefined formats
|
||||
according to your accounting localisation.
|
||||
Resequencing is not possible:
|
||||
|
||||
Create a bank statement from the accounting dashboard with the related
|
||||
journal and enter an amount of $100 .
|
||||
- When entries are before a lock date.
|
||||
- When the sequence leads to a duplicate.
|
||||
- When the :guilabel:`Invoice Date` doesn't match the date contained in the new sequence number,
|
||||
e.g., if the sequence is changed to INV/2023/XXXXX for a document with an :guilabel:`Invoice Date`
|
||||
of 2024.
|
||||
|
||||
.. image:: customer_invoices/invoice06.png
|
||||
To change the invoice sequence with the structure INV/YYYY/MM/number, add `/MM` with the number of
|
||||
the month of the :guilabel:`Invoice date`. Odoo will recognize the "/" term as a month and update
|
||||
the future invoice sequence appropriately with the month of the :guilabel:`Invoice date`. For
|
||||
example, if the invoice date is January, change the sequence to `INV/2024/01/XXXXX`.
|
||||
|
||||
Reconcile
|
||||
---------
|
||||
In this case, if the :guilabel:`Invoice date` isn't aligned with the sequence number, a
|
||||
:guilabel:`Validation Error` message appears.
|
||||
|
||||
Now let's reconcile!
|
||||
.. note::
|
||||
|
||||
.. image:: customer_invoices/invoice07.png
|
||||
- All sequence changes are logged in the chatter to keep the information.
|
||||
- Sequence changes also affect the format of future invoices' sequences.
|
||||
|
||||
You can now go through every transaction and reconcile them or you can mass reconcile with instructions at the bottom.
|
||||
.. _accounting/invoice/resequencing-one-invoice:
|
||||
|
||||
After reconciling the items in the sheet, the related invoice will now
|
||||
display "You have outstanding payments for this customer. You can
|
||||
reconcile them to pay this invoice. "
|
||||
Resequencing a single invoice
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. image:: customer_invoices/invoice08.png
|
||||
To resequence the last confirmed invoice, click :guilabel:`Reset to Draft`, then change the
|
||||
sequence. The invoice now appears in red on the :guilabel:`Customer Invoices` list.
|
||||
|
||||
.. image:: customer_invoices/invoice09.png
|
||||
.. _accounting/invoice/mass-resequencing:
|
||||
|
||||
Apply the payment. Below, you can see that the payment has been added to
|
||||
the invoice.
|
||||
Mass-resequencing invoices
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. image:: customer_invoices/invoice10.png
|
||||
It can be helpful to resequence multiple invoice numbers. For example, when importing invoices from
|
||||
another invoicing or accounting system and the reference originates from the previous software,
|
||||
continuity for the current year must be maintained without restarting from the beginning.
|
||||
|
||||
Payment Followup
|
||||
----------------
|
||||
.. note::
|
||||
This feature is only available to users with administrator or advisor access.
|
||||
|
||||
There's a growing trend of customers paying bills later and later.
|
||||
Therefore, collectors must make every effort to collect money and
|
||||
collect it faster.
|
||||
Follow these steps to resequence invoice numbers:
|
||||
|
||||
Odoo will help you define your follow-up strategy. To remind customers
|
||||
to pay their outstanding invoices, you can define different actions
|
||||
depending on how severely overdue the customer is. These actions are
|
||||
bundled into follow-up levels that are triggered when the due date of an
|
||||
invoice has passed a certain number of days. If there are other overdue
|
||||
invoices for the same customer, the actions of the most overdue invoice
|
||||
will be executed.
|
||||
#. Activate the :ref:`developer mode <developer-mode>`.
|
||||
#. From the :guilabel:`Accounting Dashboard`, open the :guilabel:`Customer Invoices` journal.
|
||||
#. Select the invoices that need a new sequence.
|
||||
#. Click the :icon:`fa-cog` :guilabel:`Actions` menu and select :guilabel:`Resequence`.
|
||||
#. In the :guilabel:`Ordering` field, choose to
|
||||
|
||||
By going to the customer record and diving into the "Overdue Payments"
|
||||
you will see the follow-up message and all overdue invoices.
|
||||
- :guilabel:`Keep current order`: The order of the numbers remains the same.
|
||||
- :guilabel:`Reorder by accounting date`: The number is reordered by accounting date.
|
||||
#. Set the :guilabel:`First New Sequence`.
|
||||
#. :guilabel:`Preview Modifications` and click :guilabel:`Confirm`.
|
||||
|
||||
.. image:: customer_invoices/invoice11.png
|
||||
The first invoice using the new sequence appears in red in the :guilabel:`Customer Invoices` list.
|
||||
|
||||
.. image:: customer_invoices/invoice12.png
|
||||
.. image:: customer_invoices/invoice-sequencing.png
|
||||
:alt: Resequence options window
|
||||
|
||||
.. _customer-invoices/aging-report:
|
||||
.. _accounting/invoice/reporting:
|
||||
|
||||
Customer aging report:
|
||||
~~~~~~~~~~~~~~~~~~~~~~
|
||||
Reporting
|
||||
=========
|
||||
|
||||
The customer aging report will be an additional key tool for the
|
||||
collector to understand the customer credit issues, and to prioritize
|
||||
their work.
|
||||
.. _accounting/invoice/partner-reports:
|
||||
|
||||
Use the aging report to determine which customers are overdue and begin
|
||||
your collection efforts.
|
||||
|
||||
.. image:: customer_invoices/invoice13.png
|
||||
|
||||
Profit and loss
|
||||
Partner reports
|
||||
---------------
|
||||
|
||||
The Profit and Loss statement displays your revenue and expense details.
|
||||
Ultimately, this gives you a clear image of your Net Profit and Loss. It
|
||||
is sometimes referred to as the "Income Statement" or "Statement of
|
||||
Revenues and Expenses."
|
||||
.. _accounting/invoices/partner-ledger:
|
||||
|
||||
.. image:: customer_invoices/invoice14.png
|
||||
Partner Ledger
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
The :guilabel:`Partner Ledger` report shows the balance of customers and suppliers. To access it,
|
||||
go to :menuselection:`Accounting --> Reporting --> Partner Ledger`.
|
||||
|
||||
.. _accounting/invoices/aging-report:
|
||||
|
||||
Aged Receivable
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
To review outstanding customer invoices and their related due dates, use the
|
||||
:ref:`Aged Receivable <accounting/reporting/aged-receivable>` report. To access it, go to
|
||||
:menuselection:`Accounting --> Reporting --> Aged Receivable`.
|
||||
|
||||
.. _accounting/invoices/aged-payable:
|
||||
|
||||
Aged Payable
|
||||
~~~~~~~~~~~~
|
||||
|
||||
To review outstanding vendor bills and their related due dates, use the
|
||||
:ref:`Aged Payable <accounting/reporting/aged-payable>` report. To access it, go to
|
||||
:menuselection:`Accounting --> Reporting --> Aged Payable`.
|
||||
|
||||
.. _accounting/invoices/profit-and-loss:
|
||||
|
||||
Profit and Loss
|
||||
---------------
|
||||
|
||||
The :ref:`Profit and Loss <accounting/reporting/profit-and-loss>` statement shows details of income
|
||||
and expenses.
|
||||
|
||||
.. _accounting/invoices/balance-sheet:
|
||||
|
||||
Balance sheet
|
||||
-------------
|
||||
|
||||
The balance sheet summarizes your company's liabilities,
|
||||
assets and equity at a specific moment in time.
|
||||
|
||||
.. image:: customer_invoices/invoice15.png
|
||||
|
||||
.. image:: customer_invoices/invoice16.png
|
||||
|
||||
For example, if you manage your inventory using the perpetual accounting
|
||||
method, you should expect a decrease in account "Current Assets" once
|
||||
the material has been shipped to the customer.
|
||||
The :ref:`Balance Sheet <accounting/reporting/balance-sheet>` summarizes the company's assets,
|
||||
liabilities, and equity at a specific time.
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
@@ -43,9 +43,20 @@ Generate Entries
|
||||
: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.
|
||||
Suppose an invoice of $1200 must be deferred over 12 months.
|
||||
|
||||
- The :guilabel:`Months` option accounts for $100 each month prorated to the number of days in
|
||||
that month (e.g., $50 for the first month if the :guilabel:`Start Date` is set to the 15th of
|
||||
the month).
|
||||
|
||||
- The :guilabel:`Full Months` option considers each month started to be full (e.g., $100 for the
|
||||
first month even if the :guilabel:`Start Date` is set to the 15th of the month); this means that
|
||||
with the :guilabel:`Full Months` option, a full $100 is recognized in the first partial month,
|
||||
eliminating the need for a 13th month to recognize any remainder as would be the case when using
|
||||
the :guilabel:`Months` option.
|
||||
|
||||
- The :guilabel:`Days` option accounts for different amounts depending on the number of days in
|
||||
each month (e.g., ~$102 for January and ~$92 for February).
|
||||
|
||||
.. _customer_invoices/deferred/generate_on_validation:
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 23 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 7.9 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 15 KiB |
@@ -116,7 +116,7 @@ for every computed *due date*.
|
||||
This makes for easier :doc:`follow-ups </applications/finance/accounting/payments/follow_up>` and
|
||||
:doc:`reconciliation </applications/finance/accounting/bank/reconciliation>` since Odoo takes each
|
||||
due date into account, rather than just the balance due date. It also helps to get an accurate
|
||||
:ref:`aged receivable report <customer-invoices/aging-report>`.
|
||||
:ref:`aged receivable report <accounting/invoices/aging-report>`.
|
||||
|
||||
.. example::
|
||||
.. image:: payment_terms/journal-entry.png
|
||||
|
||||
@@ -69,8 +69,9 @@ When new products arrive, the new average cost for each product is recomputed us
|
||||
- **Incoming Qty**: count of products arriving in the new shipment;
|
||||
- **Purchase Price**: estimated price of products at the reception of products (since vendor bills
|
||||
may arrive later). The amount includes not only the price for the products, but also added costs,
|
||||
such as shipping, taxes, and :ref:`landed costs <inventory/reporting/landed_costs>`. At reception
|
||||
of the vendor bill, this price is adjusted;
|
||||
such as shipping, taxes, and :doc:`landed costs
|
||||
<../../../inventory_and_mrp/inventory/product_management/inventory_valuation/landed_costs>`. At
|
||||
reception of the vendor bill, this price is adjusted;
|
||||
- **Final Qty**: quantity of on-hand stock after the stock move.
|
||||
|
||||
.. _inventory/avg_cost/definite_rule:
|
||||
|
||||
|
Before Width: | Height: | Size: 3.0 KiB |
|
Before Width: | Height: | Size: 4.2 KiB |
|
Before Width: | Height: | Size: 3.1 KiB |
@@ -7,33 +7,35 @@ Payments
|
||||
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/settles 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 on the
|
||||
invoice. Multiple payments on the same invoice are possible.
|
||||
|
||||
- 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.
|
||||
the company, or the company has an outstanding debit with a vendor. Those outstanding amounts
|
||||
reduce/settle unpaid invoices/bills.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Internal transfers <payments/internal_transfers>`
|
||||
- :doc:`bank/reconciliation`
|
||||
- `Odoo Tutorials: Bank Configuration
|
||||
<https://www.odoo.com/slides/slide/bank-configuration-1880>`_
|
||||
<https://www.odoo.com/slides/slide/bank-configuration-6832>`_
|
||||
|
||||
.. _payments/register:
|
||||
.. _accounting/payments/from-invoice-bill:
|
||||
|
||||
Registering payment from an invoice or bill
|
||||
===========================================
|
||||
|
||||
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.
|
||||
Clicking :guilabel:`Register payment` in a customer invoice or vendor bill generates a new journal
|
||||
entry and sets 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` or :ref:`Partially paid
|
||||
<accounting/payments/partial-payment>`. Then, when the outstanding account is reconciled with a bank
|
||||
transaction, 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 :guilabel:`View`.
|
||||
To open the :guilabel:`Journal Entry Info` window and display more information about the payment,
|
||||
click the :icon:`fa-info-circle` :guilabel:`(information)` icon in the footer of the
|
||||
:guilabel:`Invoice Lines` tab. To access additional information, such as the related journal entry,
|
||||
click :guilabel:`View`.
|
||||
|
||||
.. image:: payments/information-icon.png
|
||||
:alt: See detailed information of a payment.
|
||||
@@ -41,105 +43,155 @@ access additional information, such as the related journal, by clicking :guilabe
|
||||
.. note::
|
||||
- The customer invoice or vendor bill must be in the :guilabel:`Posted` status to register the
|
||||
payment.
|
||||
- If you unreconcile a payment, it still appears in your books but is no longer linked to the
|
||||
- If a payment is unreconciled, it still appears in the books but is no longer linked to the
|
||||
invoice.
|
||||
- If you (un)reconcile a payment in a different currency, a journal entry is automatically
|
||||
- If a payment is (un)reconciled 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.
|
||||
- If a payment is (un)reconciled on an invoice with cash-basis taxes, a journal entry is
|
||||
automatically created to post the cash-basis tax (reversal) amount.
|
||||
|
||||
.. 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`.
|
||||
If the main bank account is set as the :ref:`outstanding account <bank/outstanding-accounts>` on
|
||||
the bank journal's payment method, registering the full payment on an invoice or bill moves the
|
||||
invoice/bill directly to the :guilabel:`Paid` status without requiring bank reconciliation.
|
||||
|
||||
.. _accounting/payments/not-tied:
|
||||
|
||||
Registering payments not tied to an 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
|
||||
When a new payment is registered via :menuselection:`Customers / Vendors --> Payments`, 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.
|
||||
bill. Then, :doc:`reconciling <bank/reconciliation>` the payment with the bank transaction completes
|
||||
the payment workflow.
|
||||
|
||||
Matching invoices and bills with payments
|
||||
-----------------------------------------
|
||||
.. _accounting/payments/payments-matching:
|
||||
|
||||
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`.
|
||||
Payments matching
|
||||
-----------------
|
||||
|
||||
.. note::
|
||||
During the :doc:`bank reconciliation <bank/reconciliation>` process, a remaining balance is
|
||||
identified if the total debits and credits do not match when records are compared with bank
|
||||
transactions. This balance must either be reconciled later or written off immediately.
|
||||
|
||||
.. _accounting/payments/matching-invoices-bills:
|
||||
|
||||
For a single invoice or bill
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
A blue banner appears when validating a new invoice/bill and an **outstanding payment** exists for
|
||||
this specific customer or vendor. To match it with the invoice or bill, click :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 its
|
||||
corresponding bank statement.
|
||||
The invoice or bill is then marked as :guilabel:`In payment` until the payment is :doc:`reconciled
|
||||
<bank/reconciliation>` with its corresponding :doc:`bank transaction(s) <bank/transactions>`.
|
||||
|
||||
.. _payments/batch-payments:
|
||||
.. _accounting/payments/auto-reconcile-tool:
|
||||
|
||||
Batch payment
|
||||
-------------
|
||||
Matching payments
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
Batch payments allow you to group different payments to ease :doc:`reconciliation
|
||||
<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`.
|
||||
The :guilabel:`Payments matching` or :guilabel:`Auto-reconcile` tool allows reconciling journal
|
||||
items with each other (i.e., payments with customer invoices or vendor bills) either individually or
|
||||
in batches. Access the :guilabel:`Accounting Dashboard`, click the :icon:`fa-ellipsis-v`
|
||||
(:guilabel:`dropdown menu`) button from the :guilabel:`Customer Invoices` or :guilabel:`Vendor
|
||||
Bills` journals, and select :guilabel:`Payments Matching`. Alternatively, go to
|
||||
:menuselection:`Accounting --> Accounting --> Reconcile`.
|
||||
|
||||
To manually :guilabel:`Reconcile` journal items, select the individual items from the list view and
|
||||
click :guilabel:`Reconcile`.
|
||||
|
||||
Auto-Reconcile Feature
|
||||
**********************
|
||||
|
||||
To use the :guilabel:`Auto-Reconcile` feature, follow these steps:
|
||||
|
||||
#. In the :guilabel:`Journal Items to reconcile` list view, click :guilabel:`Auto-Reconcile` next to
|
||||
the receivable or payable account (or a specific contact's journal item in that account).
|
||||
#. In the :guilabel:`Find Entries to Reconcile Automatically` window, set the :guilabel:`Reconcile`
|
||||
field depending on how you want to match journal items:
|
||||
|
||||
- :guilabel:`Opposite balances one by one`: Each debit journal item will be matched with the
|
||||
corresponding credit journal item of the same value.
|
||||
- :guilabel:`Accounts with zero balances`: All reconciled journal items will have the same
|
||||
matching number.
|
||||
|
||||
#. Click :guilabel:`Launch`.
|
||||
|
||||
Invoices and bills are automatically matched to their corresponding payments and marked as
|
||||
:guilabel:`In payment` until they are :doc:`reconciled <bank/reconciliation>` with their
|
||||
corresponding :doc:`bank transactions <bank/transactions>`.
|
||||
|
||||
.. _accounting/payments/group-payments:
|
||||
|
||||
Registering payments on multiple invoices or bills (group payments)
|
||||
===================================================================
|
||||
|
||||
To register payments on multiple invoices/bills, follow these steps:
|
||||
|
||||
#. Go to :menuselection:`Accounting --> Customers --> Invoices/Credit Notes` or
|
||||
:menuselection:`Accounting --> Vendors --> Bills/Refunds`.
|
||||
#. In the list view, select the relevant invoices/credit notes or bills/refunds.
|
||||
#. Click :icon:`fa-cog` :guilabel:`Actions` and select :guilabel:`Register Payment`.
|
||||
#. In the :guilabel:`Register Payment` window, select the :guilabel:`Journal`, the
|
||||
:guilabel:`Payment Method`, and the :guilabel:`Payment Date`.
|
||||
#. To combine all payments from the same contact into a single payment, enable the :guilabel:`Group
|
||||
Payments` option, or leave it unchecked to create separate payments.
|
||||
#. Click :guilabel:`Create payment`.
|
||||
|
||||
The invoices or bills are then marked as :guilabel:`In payment` until the bank transactions are
|
||||
:doc:`reconciled <bank/reconciliation>` with the payments.
|
||||
|
||||
.. _accounting/payments/batch-payments:
|
||||
|
||||
Registering a single payment for multiple customers or vendors (batch payments)
|
||||
===============================================================================
|
||||
|
||||
Batch payments allow grouping payments from multiple contacts to ease
|
||||
:doc:`reconciliation <bank/reconciliation>`. They are also useful when depositing :doc:`checks
|
||||
<payments/checks>` to the bank or for generating bank payment files such as :doc:`SEPA
|
||||
<payments/pay_sepa>` or :ref:`NACHA <l10n_us/nacha>`. To do so, go to :menuselection:`Accounting -->
|
||||
Customers --> Payments` or :menuselection:`Accounting --> Vendors --> Payments`. In the payments
|
||||
list view, select the payments to be grouped in a batch, click :icon:`fa-cog` :guilabel:`Actions`,
|
||||
and select :guilabel:`Create Batch Payment`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`payments/batch`
|
||||
- :doc:`payments/batch_sdd`
|
||||
|
||||
.. _payments/matching:
|
||||
|
||||
Payments matching
|
||||
-----------------
|
||||
|
||||
The :guilabel:`Payments matching` tool opens all unreconciled customer invoices or vendor bills and
|
||||
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.
|
||||
|
||||
Batch payments matching
|
||||
-----------------------
|
||||
|
||||
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: The batch payment reconcile option.
|
||||
.. _accounting/payments/partial-payment:
|
||||
|
||||
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.
|
||||
To register a partial payment, click on :guilabel:`Register Payment` from the related invoice or
|
||||
bill. In the case of a partial payment (when the :guilabel:`Amount` paid is less than the total
|
||||
remaining amount on the invoice or the bill), the :guilabel:`Payment Difference` field displays the
|
||||
outstanding balance. There are two options:
|
||||
|
||||
.. image:: payments/payment-difference.png
|
||||
:alt: Partial payment of an invoice or bill.
|
||||
- :guilabel:`Keep open`: Keep the invoice or the bill open and mark it with a :guilabel:`Partial`
|
||||
banner;
|
||||
- :guilabel:`Mark as fully paid`: Select an account in the :guilabel:`Post Difference In` field and
|
||||
change the :guilabel:`Label` if needed. A journal entry will be created to balance the accounts
|
||||
payable or receivable with the selected account.
|
||||
|
||||
Reconciling payments with bank statements
|
||||
=========================================
|
||||
.. image:: payments/partial-payment.png
|
||||
:alt: register a partial payment
|
||||
|
||||
.. _accounting/payments/reconciling-payments:
|
||||
|
||||
Reconciling payments with bank transactions
|
||||
===========================================
|
||||
|
||||
Once a payment has been registered, the status of the invoice or bill is :guilabel:`In payment`. The
|
||||
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`.
|
||||
next step is :doc:`reconciling <bank/reconciliation>` the payment with the related :doc:`bank
|
||||
transaction <bank/transactions>` line to finalize the payment workflow and mark the invoice or bill
|
||||
as :guilabel:`Paid`.
|
||||
|
||||
.. toctree::
|
||||
:titlesonly:
|
||||
|
||||
|
Before Width: | Height: | Size: 6.3 KiB After Width: | Height: | Size: 4.7 KiB |
|
Before Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 9.2 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 9.0 KiB |
|
Before Width: | Height: | Size: 32 KiB |
@@ -24,8 +24,9 @@ the details.
|
||||
.. image:: reporting/reporting-annotate.png
|
||||
:alt: Annotate reports.
|
||||
|
||||
To export reports in PDF or XLSX format, click :guilabel:`PDF` or :guilabel:`XLSX` at the top of the
|
||||
page.
|
||||
To export reports in PDF or XLSX format, click :guilabel:`PDF` at the top or click the
|
||||
:icon:`fa-caret-down` (:guilabel:`down arrow`) icon next to the :guilabel:`PDF` button and
|
||||
select :guilabel:`XLSX`.
|
||||
|
||||
To compare values across periods, click the :guilabel:`Comparison` menu and select the periods you
|
||||
want to compare.
|
||||
|
||||
@@ -101,14 +101,17 @@ Tax Report
|
||||
----------
|
||||
|
||||
Once all the transactions involving taxes have been posted for the period you want to report, open
|
||||
your :guilabel:`Tax Report` by going to :menuselection:`Accounting --> Reporting -->
|
||||
Audit Reports: Tax Report`. Make sure to select the right period you want to declare by using the
|
||||
date filter, this way you can have an overview of your tax report. From this view, you can easily
|
||||
access different formats of your tax report, such as `PDF` and XLSX. These include all the values to
|
||||
report to the tax authorities, along with the amount you have to pay or be refunded.
|
||||
the :guilabel:`Tax Report` by going to :menuselection:`Accounting --> Reporting --> Tax Report`.
|
||||
Select the period you want to declare using the date filter to have an overview of the tax report.
|
||||
From the report, click :guilabel:`PDF` or :guilabel:`XLSX` to download the desired format of the tax
|
||||
report. To save the report to the Documents app, click the :icon:`fa-caret-down` (:guilabel:`down
|
||||
arrow`) icon, then click :guilabel:`Save`. Select the format to :guilabel:`Export to`, the
|
||||
:guilabel:`Documents Name`, the :guilabel:`Folder` to store it in, and add any :guilabel:`Tags`.
|
||||
|
||||
The report includes all the values to report to the tax authorities, along with the amount to be
|
||||
paid or refunded.
|
||||
|
||||
.. image:: tax_returns/tax_return_report.png
|
||||
:align: center
|
||||
:alt: download the PDF with your Tax Report in Odoo Accounting
|
||||
|
||||
.. note::
|
||||
|
||||
@@ -62,10 +62,10 @@ Then, to close the fiscal year:
|
||||
<accounting/reporting/aged-payable>` reports.
|
||||
- Audit all accounts, being sure to fully understand all transactions and their nature, making
|
||||
sure to include loans and fixed assets.
|
||||
- Optionally, run :ref:`payments matching <payments/matching>` to validate any open vendor bills
|
||||
and customer invoices with their payments. While this step is optional, it could assist the
|
||||
year-end closing process if all outstanding payments and invoices are reconciled, potentially
|
||||
finding errors or mistakes in the system.
|
||||
- Optionally, :ref:`match payments <accounting/payments/auto-reconcile-tool>` to validate any open
|
||||
vendor bills and customer invoices with their payments. While this step is optional, it could
|
||||
assist the year-end closing process if all outstanding payments and invoices are reconciled,
|
||||
potentially finding errors or mistakes in the system.
|
||||
|
||||
Next, the accountant likely verifies balance sheet items and book entries for:
|
||||
|
||||
|
||||
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 9.9 KiB |
|
Before Width: | Height: | Size: 11 KiB |
@@ -37,7 +37,7 @@ appropriately completed:
|
||||
- :guilabel:`Vendor`: Odoo automatically fills some information based on the vendor's registered
|
||||
information, previous purchase orders, or bills.
|
||||
- :guilabel:`Bill Reference`: add the sales order reference provided by the vendor and is used to do
|
||||
the :ref:`matching <payments/matching>` when you receive the products.
|
||||
the :ref:`matching <accounting/payments/payments-matching>` when you receive the products.
|
||||
- :guilabel:`Auto-Complete`: select a past bill/purchase order to automatically complete the
|
||||
document. The :guilabel:`Vendor` field should be completed prior to completing this field.
|
||||
- :guilabel:`Bill Date`: is the issuance date of the document.
|
||||
|
||||
@@ -43,9 +43,20 @@ Generate Entries
|
||||
: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.
|
||||
Suppose a bill of $1200 must be deferred over 12 months.
|
||||
|
||||
- The :guilabel:`Months` option accounts for $100 each month prorated to the number of days in
|
||||
that month (e.g., $50 for the first month if the :guilabel:`Start Date` is set to the 15th of
|
||||
the month).
|
||||
|
||||
- The :guilabel:`Full Months` option considers each month started to be full (e.g., $100 for the
|
||||
first month even if the :guilabel:`Start Date` is set to the 15th of the month); this means that
|
||||
with the :guilabel:`Full Months` option, a full $100 is recognized in the first partial month,
|
||||
eliminating the need for a 13th month to recognize any remainder as would be the case when using
|
||||
the :guilabel:`Months` option.
|
||||
|
||||
- The :guilabel:`Days` option accounts for different amounts depending on the number of days in
|
||||
each month (e.g., ~$102 for January and ~$92 for February).
|
||||
|
||||
.. _vendor_bills/deferred/generate_on_validation:
|
||||
|
||||
|
||||
@@ -11,8 +11,8 @@ created and populated based on the scanned invoices.
|
||||
|
||||
.. seealso::
|
||||
- `Test Odoo's invoice digitization <https://www.odoo.com/app/invoice-automation>`_
|
||||
- `Odoo Tutorials: Invoice Digitization with OCR
|
||||
<https://www.odoo.com/slides/slide/digitize-bills-with-ocr-1712>`_
|
||||
- `Odoo Tutorials: Vendor Bill Digitization
|
||||
<https://www.odoo.com/slides/slide/vendor-bill-digitization-7065>`_
|
||||
|
||||
Configuration
|
||||
=============
|
||||
@@ -91,9 +91,10 @@ To buy credits, go to :menuselection:`Accounting --> Configuration --> Settings
|
||||
and click on :guilabel:`Buy credits`, or go to :menuselection:`Settings --> Odoo IAP` and click on
|
||||
:guilabel:`View My Services`.
|
||||
|
||||
.. important::
|
||||
If you are on Odoo Online and have the Enterprise version, you benefit from free trial credits to
|
||||
test the feature.
|
||||
.. note::
|
||||
Enterprise Odoo users with a valid subscription get free credits to test IAP features before
|
||||
deciding to purchase more credits for the database. This includes demo/training databases,
|
||||
educational databases, and one-app-free databases.
|
||||
|
||||
.. seealso::
|
||||
- `Our Privacy Policy <https://iap.odoo.com/privacy#header_6>`_
|
||||
|
||||
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 48 KiB |
@@ -93,6 +93,7 @@ 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
|
||||
@@ -147,6 +148,7 @@ available on Odoo.
|
||||
fiscal_localizations/italy
|
||||
fiscal_localizations/kenya
|
||||
fiscal_localizations/luxembourg
|
||||
fiscal_localizations/malaysia
|
||||
fiscal_localizations/mexico
|
||||
fiscal_localizations/netherlands
|
||||
fiscal_localizations/romania
|
||||
|
||||
@@ -619,9 +619,9 @@ document, an automatic validation can be set in :menuselection:`Accounting --> S
|
||||
Argentinean Localization --> Validate document in the AFIP`, considering the following levels:
|
||||
|
||||
- :guilabel:`Not available:` the verification is not done (this is the default value);
|
||||
- :guilabel:`Available:` the verification is done. In case the number is not valid it, only displays
|
||||
- :guilabel:`Available:` the verification is done. In case the number is not valid, it only displays
|
||||
a warning but still allows the vendor bill to be posted;
|
||||
- :guilabel:`Required:` the verification is done and it does not allow the user to post the vendor
|
||||
- :guilabel:`Required:` the verification is done, and it does not allow the user to post the vendor
|
||||
bill if the document number is not valid.
|
||||
|
||||
.. image:: argentina/verify-vendor-bills.png
|
||||
|
||||
@@ -450,8 +450,9 @@ This government-certified system entails the use of a :ref:`certified POS system
|
||||
Certified POS system
|
||||
--------------------
|
||||
|
||||
The Odoo POS system is certified for the major versions of databases hosted on **Odoo Online** and
|
||||
**Odoo.sh**. Please refer to the following table to ensure that your POS system is certified.
|
||||
The Odoo POS system is certified for the major versions of databases hosted on **Odoo Online**,
|
||||
**Odoo.sh**, and **On-Premise**. Please refer to the following table to ensure that your POS system
|
||||
is certified.
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
@@ -461,22 +462,26 @@ The Odoo POS system is certified for the major versions of databases hosted on *
|
||||
- Odoo Online
|
||||
- Odoo.sh
|
||||
- On-Premise
|
||||
* - Odoo 18.0
|
||||
- Certified
|
||||
- Certified
|
||||
- Certified
|
||||
* - Odoo 17.0
|
||||
- Certified
|
||||
- Certified
|
||||
- Certified
|
||||
* - Odoo 16.0
|
||||
- Certified
|
||||
- Certified
|
||||
- Not certified
|
||||
* - Odoo 15.2
|
||||
- Not certified
|
||||
- Not certified
|
||||
- Not certified
|
||||
- Certified
|
||||
* - Odoo 15.0
|
||||
- Certified
|
||||
- Certified
|
||||
- Not certified
|
||||
- Certified
|
||||
* - Odoo 14.0
|
||||
- Certified
|
||||
- Certified
|
||||
- Not certified
|
||||
- Certified
|
||||
|
||||
.. seealso::
|
||||
:doc:`/administration/supported_versions`
|
||||
@@ -580,8 +585,8 @@ provide the following information:
|
||||
- your company's name, address, and legal structure; and
|
||||
- the Mac address of your IoT Box.
|
||||
|
||||
Once your IoT box is certified, :doc:`connect <../../general/iot/config/connect>` it to your
|
||||
database. To verify that the IoT Box recognizes the FDM, go to the IoT homepage and scroll down the
|
||||
Once your IoT box is certified, :doc:`connect <../../general/iot/connect>` it to your database. To
|
||||
verify that the IoT Box recognizes the FDM, go to the IoT homepage and scroll down the
|
||||
:guilabel:`IOT Device` section, which should display the FDM.
|
||||
|
||||
.. image:: belgium/iot-devices.png
|
||||
|
||||
|
Before Width: | Height: | Size: 31 KiB |
@@ -24,6 +24,17 @@ with AvaTax.
|
||||
The localization also includes taxes and a chart of accounts template that can be modified if
|
||||
needed.
|
||||
|
||||
.. seealso::
|
||||
Links to helpful resources for the Brazilian localization, including onboarding materials and
|
||||
videos:
|
||||
|
||||
- `Onboarding checklist for new users
|
||||
<https://docs.google.com/document/d/e/2PACX-1vSNYTYVnR_BzvQKL3kn5YdVzPjjHc-WHw_U3udk5tz_dJXo69woj9QrTMinH_siyOX2rLGjvspvc8AF/pub>`_.
|
||||
- `YouTube playlist - Brazil (Localization)
|
||||
<https://youtube.com/playlist?list=PL1-aSABtP6ADqexw4YNCbKPmpFggajxlX&si=RgmZR3Jco3223Np4>`_.
|
||||
- `YouTube playlist - Tutoriais Odoo em Português
|
||||
<https://youtube.com/playlist?list=PL1-aSABtP6ACGOW2UREePGjHQ2Bgdy-UZ&si=j6tiI36eB7BoKVQB>`_.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
@@ -136,6 +147,7 @@ Correction letter, Invalidate invoice number range), an API call is made using c
|
||||
.. note::
|
||||
- Odoo is a certified partner of Avalara Brazil.
|
||||
- You can `buy IAP credit on odoo.com <https://iap.odoo.com/iap/in-app-services/819>`_.
|
||||
- On creation, new databases receive 500 free credits.
|
||||
|
||||
Credential configuration
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|
Before Width: | Height: | Size: 24 KiB |
@@ -139,7 +139,7 @@ Positions`.
|
||||
The following fiscal positions are available by default:
|
||||
|
||||
- :guilabel:`Alberta (AB)`
|
||||
- :guilabel:`British Colombia (BC)`
|
||||
- :guilabel:`British Columbia (BC)`
|
||||
- :guilabel:`Manitoba (MB)`
|
||||
- :guilabel:`New Brunswick (NB)`
|
||||
- :guilabel:`Newfoundland and Labrador (NL)`
|
||||
|
||||
@@ -205,11 +205,11 @@ An Odoo local server works as a bridge between your computer and your Odoo datab
|
||||
Download the Odoo Community installer from the page https://www.odoo.com/page/download and start the
|
||||
installation on your computer.
|
||||
|
||||
Select :guilabel:`Local Proxy Mode` as the type of install.
|
||||
Select :guilabel:`Odoo IoT` as the type of install.
|
||||
|
||||
.. image:: egypt/install-odoo-local-proxy.png
|
||||
:align: center
|
||||
:alt: Selection of "Local Proxy Mode" during the installation of Odoo Community.
|
||||
:alt: Selection of "Odoo IoT" during the installation of Odoo Community.
|
||||
|
||||
.. note::
|
||||
This installation of Odoo only works as a server and does not install any Odoo apps on your
|
||||
|
||||
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 10 KiB |
@@ -170,9 +170,8 @@ triggered and is being processed. You have to click on *Refresh State* to check
|
||||
German Tax Accounting Standards: Odoo's guide to GoBD Compliance
|
||||
================================================================
|
||||
|
||||
**GoBD** stands for `Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern,
|
||||
Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff
|
||||
<https://ao.bundesfinanzministerium.de/ao/2021/Anhaenge/BMF-Schreiben-und-gleichlautende-Laendererlasse/Anhang-64/anhang-64.html>`_.
|
||||
**GoBD** stands for *Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern,
|
||||
Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff*.
|
||||
In short, it is a **guideline for the proper management and storage of books, records, and documents
|
||||
in electronic form, as well as for data access**, that is relevant for the German tax authority, tax
|
||||
declaration, and balance sheet.
|
||||
@@ -191,7 +190,7 @@ What do you need to know about GoBD when relying on accounting software?
|
||||
|
||||
.. note::
|
||||
If you can, the best way to understand GoBD is to Read the `Official GoBD text
|
||||
<https://www.bundesfinanzministerium.de/Content/DE/Downloads/BMF_Schreiben/Weitere_Steuerthemen/Abgabenordnung/2019-11-28-GoBD.pdf>`_.
|
||||
<https://ao.bundesfinanzministerium.de/ao/2021/Anhaenge/BMF-Schreiben-und-gleichlautende-Laendererlasse/Anhang-64/anhang-64.html>`_.
|
||||
It is a bit long but quite readable for non-experts. But in short, here is what to expect:
|
||||
|
||||
The **GoBD is binding for companies that have to present accounts, which includes SMEs, freelancers,
|
||||
@@ -312,7 +311,7 @@ offer our customer any legal certainty.
|
||||
|
||||
.. important::
|
||||
The BMF actually states the following in the `Official GoBD text
|
||||
<https://www.bundesfinanzministerium.de/Content/DE/Downloads/BMF_Schreiben/Weitere_Steuerthemen/Abgabenordnung/2019-11-28-GoBD.pdf>`_:
|
||||
<https://ao.bundesfinanzministerium.de/ao/2021/Anhaenge/BMF-Schreiben-und-gleichlautende-Laendererlasse/Anhang-64/anhang-64.html>`_:
|
||||
|
||||
- 180. Positive attestations on the correctness of the bookkeeping - and thus on the correctness
|
||||
of IT-based bookkeeping systems - are not issued either in the context of a tax field audit or
|
||||
|
||||
@@ -244,9 +244,8 @@ Workflow
|
||||
Send an E-Way bill
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
You can manually send an E-Way bill by clicking :guilabel:`Send E-Way bill`. To send the E-Way bill
|
||||
automatically when an invoice or a bill is confirmed, enable :guilabel:`E-Way bill (IN)` in your
|
||||
:ref:`Sales or Purchase journal <india/e-invoicing-journals>`.
|
||||
To send an E-Way bill, confirm the customer invoice/vendor bill and click :guilabel:`Send E-Way
|
||||
bill`.
|
||||
|
||||
.. image:: india/e-waybill-send-button.png
|
||||
:alt: Send E-waybill button on invoices
|
||||
@@ -256,8 +255,8 @@ automatically when an invoice or a bill is confirmed, enable :guilabel:`E-Way bi
|
||||
Invoice validation
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Once an invoice has been issued and sent via :guilabel:`Send E-Way bill`, a confirmation message is
|
||||
displayed.
|
||||
Once an invoice/bill has been issued and sent via :guilabel:`Send E-Way bill`, a confirmation
|
||||
message is displayed.
|
||||
|
||||
.. image:: india/e-waybill-process.png
|
||||
:alt: Indian e-Way bill confirmation message
|
||||
@@ -265,7 +264,7 @@ displayed.
|
||||
.. note::
|
||||
- You can find the JSON-signed file in the attached files in the chatter.
|
||||
- Odoo automatically uploads the JSON-signed file to the government portal after some time. Click
|
||||
:guilabel:`Process now` if you want to process the invoice immediately.
|
||||
:guilabel:`Process now` if you want to process the invoice/bill immediately.
|
||||
|
||||
Invoice PDF report
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
@@ -281,9 +280,9 @@ You can print the invoice PDF report once you have submitted the E-Way bill. The
|
||||
E-Way bill cancellation
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If you want to cancel an E-Way bill, go to the :guilabel:`E-Way bill` tab of the related invoice and
|
||||
fill out the :guilabel:`Cancel reason` and :guilabel:`Cancel remarks` fields. Then, click
|
||||
:guilabel:`Request EDI Cancellation`.
|
||||
If you want to cancel an E-Way bill, go to the :guilabel:`E-Way bill` tab of the related
|
||||
invoice/bill and fill out the :guilabel:`Cancel reason` and :guilabel:`Cancel remarks` fields. Then,
|
||||
click :guilabel:`Request EDI Cancellation`.
|
||||
|
||||
.. important::
|
||||
Doing so cancels both the :ref:`e-Invoice <india/e-invoicing>` (if applicable) and the
|
||||
|
||||
@@ -510,7 +510,7 @@ the invoice type: `TD01`, `TD04`, `TD05`, `TD24`, `TD25`. Additional requirement
|
||||
by Odoo. However, the user is requested by the **State** to:
|
||||
|
||||
- Select a tax with the :guilabel:`Tax Exemption Kind` set to `N3.3`;
|
||||
- Use the generic :abbr:`SdI (Sistema di Interscambio)` :guilabel:`Destination Code` `2R4GT08`.
|
||||
- Use the generic :abbr:`SdI (Sistema di Interscambio)` :guilabel:`Destination Code` `2R4GTO8`.
|
||||
|
||||
The invoice is then routed by a dedicated office in San Marino to the correct business.
|
||||
|
||||
@@ -628,3 +628,60 @@ If the :abbr:`PA (Public Administration)` business doesn't reply within 15 days,
|
||||
the :abbr:`PA (Public Administration)` business directly, sending them both the invoice and the
|
||||
received deadline notification by email. You can make an arrangement with them and manually set the
|
||||
correct :guilabel:`SdI State` on your invoice.
|
||||
|
||||
Ri.Ba. (Ricevuta Bancaria)
|
||||
==========================
|
||||
|
||||
:abbr:`Ri.Ba. (Ricevuta Bancaria)` is a payment method widely used in Italy where vendors request
|
||||
payments through their bank, which forwards the request to the customer's own bank and takes
|
||||
responsibility for the collection. This enables payment automation and reduces risks for the vendor.
|
||||
|
||||
The vendor generally uploads a fixed-format text file with the list of payments to the bank's web
|
||||
portal.
|
||||
|
||||
.. note::
|
||||
- Ri.Ba. are exclusively for **domestic payments** in Italy. For recurring international
|
||||
payments, please use `SEPA Direct Debt (SDD) <../accounting/payments/batch_sdd>`_
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
#. Check that the `l10n_it_riba` module is :ref:`installed <general/install>`.
|
||||
#. Go to :menuselection:`Settings --> Users & Companies --> Companies` and select the company that
|
||||
will use Ri.Ba.
|
||||
#. Fill out the required :guilabel:`SIA Code`.
|
||||
|
||||
.. image:: italy/sia-code.png
|
||||
:alt: The company's SIA code
|
||||
|
||||
.. note::
|
||||
The :guilabel:`SIA Code` identifies businesses within the Italian banking network and is used
|
||||
to receive money through specific payment methods. It consists of one letter and four digits
|
||||
(e.g., T1234) and can usually be found on the bank's portal or obtained by contacting the bank.
|
||||
|
||||
#. Ensure the Company's bank account has an Italian IBAN.
|
||||
|
||||
.. seealso::
|
||||
How to configure :doc:`Bank Accounts <../accounting/bank>`
|
||||
|
||||
Accept Ri.Ba. for your invoices
|
||||
-------------------------------
|
||||
|
||||
Payments of type :abbr:`Ri.Ba. (Ricevuta Bancaria)` can be registered from the :guilabel:`Invoices`
|
||||
(:menuselection:`Accounting --> Customers --> Invoices`).
|
||||
|
||||
.. important::
|
||||
Make sure that your invoice involves a Partner that has a bank account with an Italian IBAN.
|
||||
|
||||
Then, all Payments must be grouped in a **Batch Payment**.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Batch Payments <../accounting/payments>`
|
||||
- :doc:`Create a Batch Payment <../accounting/payments/batch>`
|
||||
|
||||
Once you press the :guilabel:`Validate` button for the Batch Payment, the :abbr:`Ri.Ba. (Ricevuta
|
||||
Bancaria)` file is generated and attached to the Batch Payment, so you can download it and upload it
|
||||
through your bank's web portal.
|
||||
|
||||
.. image:: italy/riba-attachment.png
|
||||
:alt: The Ri.Ba. file attached
|
||||
|
||||
|
After Width: | Height: | Size: 40 KiB |
|
After Width: | Height: | Size: 14 KiB |
@@ -0,0 +1,220 @@
|
||||
========
|
||||
Malaysia
|
||||
========
|
||||
|
||||
.. _MyTax: https://mytax.hasil.gov.my
|
||||
|
||||
.. _malaysia/configuration:
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
.. _malaysia/configuration/modules:
|
||||
|
||||
Modules installation
|
||||
--------------------
|
||||
|
||||
:ref:`Install <general/install>` the following modules to get all the features of the Malaysian
|
||||
localization:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Technical name
|
||||
- Description
|
||||
* - :guilabel:`Malaysia - Accounting`
|
||||
- `l10n_my`
|
||||
- This module includes the default
|
||||
:ref:`fiscal localization package <fiscal_localizations/packages>`.
|
||||
* - :guilabel:`Malaysia - Accounting Reports`
|
||||
- `l10n_my_reports`
|
||||
- This module includes the accounting reports for Malaysia.
|
||||
* - :guilabel:`Malaysia - UBL PINT`
|
||||
- `l10n_my_ubl_pint`
|
||||
- This module includes the features required to export invoices in PINT format.
|
||||
* - :guilabel:`Malaysia - E-invoicing`
|
||||
- `l10n_my_edi`
|
||||
- This module includes the features required for integration with MyInvois under IRBM.
|
||||
|
||||
.. _malaysia/configuration/company:
|
||||
|
||||
Company information
|
||||
-------------------
|
||||
|
||||
To configure your company information, go to the :guilabel:`Contacts` app, search for your company,
|
||||
and select it. Then configure the following fields:
|
||||
|
||||
- :guilabel:`Name`
|
||||
- :guilabel:`Address`, including the :guilabel:`City`, :guilabel:`State`, :guilabel:`Zip Code`,
|
||||
and :guilabel:`Country`.
|
||||
|
||||
- In the :guilabel:`Street` field, enter the street name, number, and any additional address
|
||||
information.
|
||||
- In the :guilabel:`Street 2` field, enter the neighborhood.
|
||||
|
||||
- :guilabel:`Tax ID`: Tax identification number
|
||||
- :guilabel:`SST`: Malaysian Sales and Service Tax Number, if applicable
|
||||
- :guilabel:`TTx`: Malaysian Tourism Tax Number, if applicable
|
||||
- :guilabel:`Phone`
|
||||
|
||||
.. _malaysia/myinvois:
|
||||
|
||||
E-invoicing integration with MyInvois
|
||||
=====================================
|
||||
|
||||
The MyInvois Portal is a platform provided by the :abbr:`IRBM (Inland Revenue Board of Malaysia)`
|
||||
that facilitates the implementation of e-invoices for Malaysian taxpayers.
|
||||
Odoo supports integration with MyInvois to submit the invoices generated in Odoo.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`Malaysia - E-invoicing module` must be installed to submit invoices to MyInvois.
|
||||
|
||||
.. _malaysia/myinvois/setup:
|
||||
|
||||
Set-up
|
||||
------
|
||||
|
||||
.. _malaysia/myinvois/setup/registration:
|
||||
|
||||
MyInvois registration
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To send electronic invoices to MyInvois, you first need to register and log in to the MyInvois
|
||||
portal to grant Odoo the **right to invoice** as an intermediary for your company.
|
||||
|
||||
.. note::
|
||||
If this is the first time you log into the MyInvois portal, click :guilabel:`User Manual` on
|
||||
MyTax_ to learn more about the registration process. Both the **pre-production** (:dfn:`testing
|
||||
environment to try the functions before using the actual (production) environment`) and
|
||||
**production** (:dfn:`actual environment to submit e-invoices with accurate information`)
|
||||
environments are supported.
|
||||
|
||||
#. Log into MyTax_. Choose the :guilabel:`ID Type` and the corresponding
|
||||
:guilabel:`identification number` used to register for the digital certificate.
|
||||
#. From the dashboard, click the :icon:`fa-angle-down` :guilabel:`(angle-down)` icon in the
|
||||
top-right corner and select :guilabel:`View Taxpayer Profile`.
|
||||
#. In the :guilabel:`Representatives` section, click :guilabel:`Add Intermediary` in the top-right
|
||||
corner.
|
||||
|
||||
.. image:: malaysia/myinvois-add-intermediary.png
|
||||
:alt: MyInvois add intermediary
|
||||
|
||||
#. Add `ODOO S.A.` as an intermediary using the following information:
|
||||
|
||||
- :guilabel:`TIN`: `C57800417080`
|
||||
- :guilabel:`BRN`: `BE0477472701`
|
||||
- :guilabel:`Name`:
|
||||
|
||||
- :guilabel:`Production`: `ODOO S.A.`
|
||||
- :guilabel:`Pre-production`: `OXXX_XXXXO S.A.`
|
||||
|
||||
#. Grant the following permissions by clicking the :icon:`fa-toggle-on` :guilabel:`(toggle-on)`
|
||||
icon:
|
||||
|
||||
- :guilabel:`Representation From`
|
||||
- :guilabel:`Document - Submit`
|
||||
- :guilabel:`Document - Cancel`
|
||||
- :guilabel:`Document - Request Rejection`
|
||||
|
||||
.. note::
|
||||
- Access can be revoked in the future if needed.
|
||||
- Odoo, as an intermediary, does not store invoices sent on behalf of the client on the proxy
|
||||
server.
|
||||
|
||||
#. Click :guilabel:`Save`. The status for `ODOO S.A.` is then :guilabel:`Active`.
|
||||
|
||||
.. image:: malaysia/myinvois-intermediary-active.png
|
||||
:alt: MyInvois status active
|
||||
|
||||
.. _malaysia/myinvois/setup/odoo:
|
||||
|
||||
Configuration in Odoo
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. _malaysia/myinvois/setup/odoo/einvoicing:
|
||||
|
||||
Electronic invoicing
|
||||
********************
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings`. In the
|
||||
:guilabel:`Malaysian Electronic Invoicing` section, choose the relevant :guilabel:`MyInvois mode`
|
||||
based on the environment you used to register on MyInvois.
|
||||
|
||||
Make sure to allow Odoo to process e-invoices by checking the box, then click :guilabel:`Register`.
|
||||
|
||||
.. note::
|
||||
To change the TIN reference, click :guilabel:`Unregister`, change the company's information and
|
||||
make sure the number registered on MyInvois matches, then :guilabel:`Register` again.
|
||||
|
||||
.. _malaysia/myinvois/setup/odoo/company:
|
||||
|
||||
Company
|
||||
*******
|
||||
|
||||
Open the Settings app, and in the :guilabel:`Companies` section, click :guilabel:`Update Info`. Then,
|
||||
in the :guilabel:`E-invoicing` section, fill in the following fields:
|
||||
|
||||
- :guilabel:`Identification`: The :guilabel:`ID Type` and associated :guilabel:`Identification
|
||||
number` used to register for the digital certificate.
|
||||
- :guilabel:`Ind. Classification`: The 5-digit numeric code that represents the nature and
|
||||
activity of the business.
|
||||
|
||||
Contacts
|
||||
********
|
||||
|
||||
Access the contact's form and fill in the following fields:
|
||||
|
||||
- :guilabel:`Country`
|
||||
- :guilabel:`State`
|
||||
- :guilabel:`Phone`
|
||||
- :guilabel:`Tax ID`
|
||||
- :guilabel:`Identification`: the :guilabel:`ID Type` and the corresponding
|
||||
:guilabel:`Identification number` of the contact registered on MyTax.
|
||||
|
||||
.. _malaysia/myinvois/setup/odoo/product:
|
||||
|
||||
Products
|
||||
********
|
||||
|
||||
All products to be included in e-invoices require a Malaysian classification code. To add it,
|
||||
access the :guilabel:`Product` form and in the :guilabel:`General Information` tab, fill in the
|
||||
:guilabel:`Malaysian classification code` field.
|
||||
|
||||
.. _malaysia/myinvois/workflow:
|
||||
|
||||
Workflow
|
||||
--------
|
||||
|
||||
.. _malaysia/myinvois/workflow/sending:
|
||||
|
||||
Send invoices to MyInvois
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Invoices can be sent to MyInvois once they have been confirmed. To do so, follow the
|
||||
:ref:`invoice sending <accounting/invoice/sending>` steps, and in the :guilabel:`Send` window,
|
||||
enable the :guilabel:`Send to MyInvois` option and click :guilabel:`Send & Print`.
|
||||
|
||||
.. _malaysia/myinvois/workflow/sending/status:
|
||||
|
||||
MyInvois status
|
||||
***************
|
||||
|
||||
In the :guilabel:`MyInvois` tab of the invoice, the :guilabel:`MyInvois State` is updated to
|
||||
:guilabel:`Valid` when the submission to MyInvois is successful. The :guilabel:`Submission UID`,
|
||||
:guilabel:`MyInvois` and :guilabel:`Validation Time` are also updated.
|
||||
The same information is available on MyInvois.
|
||||
|
||||
.. note::
|
||||
If no information is received from the MyInvois portal, the :guilabel:`MyInvois State` is
|
||||
:guilabel:`In Progress`. In this case, Odoo automatically checks and updates the status.
|
||||
|
||||
.. _malaysia/myinvois/workflow/cancellation:
|
||||
|
||||
Invoice cancellation
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Sent invoices can be canceled within 72 hours from :guilabel:`Validation time`. In this case, open
|
||||
the invoice and click :guilabel:`Request Cancel`. In the :guilabel:`Cancel document` window, include
|
||||
the cancellation :guilabel:`Reason`, then click :guilabel:`Update Invoice`. The
|
||||
:guilabel:`MyInvois State` is updated to :guilabel:`cancelled`.
|
||||
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 35 KiB |
@@ -369,7 +369,7 @@ the SAT documentation, there are two types of payments:
|
||||
- `PPD` (Pago en Parcialidades o Diferido/Payment in Installements or Deferred)
|
||||
|
||||
.. seealso::
|
||||
:doc:`../../inventory_and_mrp/inventory/product_management/inventory_valuation/integrating_landed_costs`
|
||||
:doc:`../../inventory_and_mrp/inventory/product_management/inventory_valuation/landed_costs`
|
||||
|
||||
The difference lies in the *Due Date* or *Payment Terms* of the invoice.
|
||||
|
||||
@@ -883,8 +883,8 @@ Configuration
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
In order to track the correct customs number for a specific invoice, Odoo uses :doc:`landed costs
|
||||
<../../inventory_and_mrp/inventory/product_management/inventory_valuation/integrating_landed_costs>`.
|
||||
Go to :menuselection:`Inventory --> Configuration --> Settings --> Valuation`. Make sure that
|
||||
<../../inventory_and_mrp/inventory/product_management/inventory_valuation/landed_costs>`. Go to
|
||||
:menuselection:`Inventory --> Configuration --> Settings --> Valuation`. Make sure that
|
||||
:guilabel:`Landed Costs` is activated.
|
||||
|
||||
Begin by creating a *service*-type product called, `Pedimento`. In the :guilabel:`Purchase` tab,
|
||||
|
||||
@@ -2,33 +2,85 @@
|
||||
Peru
|
||||
====
|
||||
|
||||
.. |SUNAT| replace:: :abbr:`SUNAT (Superintendencia Nacional de Aduanas y de Administración Tributaria)`
|
||||
.. |SUNAT| replace:: :abbr:`SUNAT (Superintendencia Nacional de Aduanas y de Administración
|
||||
Tributaria)`
|
||||
.. |GRE| replace:: :abbr:`GRE (Guía de Remisión Electrónica)`
|
||||
.. |RUS| replace:: :abbr:`RUS (Régimen Único Simplificado)`
|
||||
.. |EDI| replace:: :abbr:`EDI (Electronic Data Interchange)`
|
||||
.. |PLE| replace:: :abbr:`PLE (Programa de Libros Electrónico)`
|
||||
|
||||
Introduction
|
||||
============
|
||||
Modules
|
||||
=======
|
||||
|
||||
The Peruvian localization has been improved and extended, in this version the next modules are
|
||||
available:
|
||||
:ref:`Install <general/install>` the following modules to utilize all the current features of the
|
||||
Peruvian localization.
|
||||
|
||||
- **l10n_pe**: Adds accounting features for the Peruvian localization, which represent the minimal
|
||||
configuration required for a company to operate in Peru and under the SUNAT regulations and
|
||||
guidelines. The main elements included in this module are: Chart of account, taxes,
|
||||
document types.
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
- **l10n_pe_edi**: includes all technical and functional requirements to generate and validate
|
||||
Electronic Invoice, based on the SUNAT specification to create and process valid electronic
|
||||
documents, for more technical detail you can access the
|
||||
`SUNAT EDI specifications <https://cpe.sunat.gob.pe/node/88/>`_,
|
||||
that keeps track of new changes and updates.
|
||||
The features of this module are based on the resolutions published on the
|
||||
`SUNAT Legislation <https://www.sunat.gob.pe/legislacion/general/index.html/>`_.
|
||||
* - Name
|
||||
- Technical name
|
||||
- Description
|
||||
* - :guilabel:`Peru - Accounting`
|
||||
- `l10n_pe`
|
||||
- Adds accounting features for the Peruvian localization, which represent the minimal
|
||||
configuration required for a company to operate in Peru and under the SUNAT regulations and
|
||||
guidelines. The main elements included in this module are the chart of accounts, taxes,
|
||||
document types.
|
||||
* - :guilabel:`Peru - E-invoicing`
|
||||
- `l10n_pe_edi`
|
||||
- Includes all technical and functional requirements to generate and receive electronic
|
||||
invoices online based on the SUNAT regulations.
|
||||
* - :guilabel:`Peru - Accounting Reports`
|
||||
- `l10n_pe_reports`
|
||||
- Includes the following financial reports:
|
||||
|
||||
- 1st set of main financial reports:
|
||||
|
||||
- Registro de Ventas e Ingresos (RVIE) - 14.4
|
||||
- Registro de Compras Electrónico (RCE) - 8.4
|
||||
- Registro de Compras Electrónico - Información de Operaciones con Sujetos no Domiciliados
|
||||
(RCE) - 8.5
|
||||
|
||||
- 2nd set of financial reports:
|
||||
|
||||
- PLE 5.1 General Journal
|
||||
- PLE 5.3 Chart of Accounts
|
||||
- PLE 6.1 General Ledger
|
||||
|
||||
- 3rd set of financial reports:
|
||||
|
||||
- PLE 1.1 Libro de Caja
|
||||
- PLE 1.2 Libro de Bancos
|
||||
|
||||
* - :guilabel:`Peruvian - Electronic Delivery Note`
|
||||
- `l10n_pe_edi_stock`
|
||||
- Adds the delivery guide (Guía de Remisión), which is needed as proof that you are sending
|
||||
goods between A and B. It is only when a delivery order is validated that the delivery guide
|
||||
can be created.
|
||||
* - :guilabel:`Peru - Stock Reports`
|
||||
- `l10n_pe_reports_stock`
|
||||
- Enables the :ref:`PLE reports <peru/reports-ple>` for permanent inventory record in physical
|
||||
units and permanent valued inventory records.
|
||||
* - :guilabel:`Peruvian eCommerce`
|
||||
- `l10n_pe_website_sale`
|
||||
- Enables the identification type in eCommerce checkout forms and the ability to generate
|
||||
electronic invoices.
|
||||
* - :guilabel:`Peruvian - Point of Sale with PE Doc`
|
||||
- `l10n_pe_pos`
|
||||
- Enables contact fiscal information to be editable from a PoS Session to generate electronic
|
||||
invoices and refunds.
|
||||
|
||||
.. note::
|
||||
- Odoo automatically installs the appropriate package for the company according to the country
|
||||
selected at the creation of the database.
|
||||
- The *Peruvian - Electronic Delivery Guide* module depends on the *Inventory* application to be
|
||||
installed.
|
||||
|
||||
.. seealso::
|
||||
- `App Tour - Localización de Peru <https://youtu.be/Ic3mGovkf8Y>`_
|
||||
- `Smart Tutorial - Localización de Peru <https://www.odoo.com/slides/smart-tutorial-localizacion-de-peru-133>`_
|
||||
- `Smart Tutorial - Localización de Peru (videos for workflows and configurations)
|
||||
<https://www.odoo.com/slides/smart-tutorial-localizacion-de-peru-133>`_
|
||||
|
||||
Configuration
|
||||
=============
|
||||
@@ -41,7 +93,6 @@ dependency with *Peru - Accounting*. In case this last one is not installed, Odo
|
||||
automatically within EDI.
|
||||
|
||||
.. image:: peru/peru-modules.png
|
||||
:align: center
|
||||
:alt: The "Module" filter is set on "Peru"
|
||||
|
||||
.. note::
|
||||
@@ -57,9 +108,7 @@ the establishment code assigned by the SUNAT when companies register their RUC (
|
||||
Registration):
|
||||
|
||||
.. image:: peru/peru-company.png
|
||||
:align: center
|
||||
:alt: Company data for Peru including RUC and Address type code
|
||||
|
||||
:alt: Company data for Peru including RUC and Address type code.
|
||||
|
||||
.. tip::
|
||||
In case the Address type code is unknown, you can set it as the default value: 0000. Be aware
|
||||
@@ -68,7 +117,6 @@ Registration):
|
||||
.. note::
|
||||
The NIF should be set following the RUC format.
|
||||
|
||||
|
||||
Chart of Account
|
||||
~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -105,7 +153,6 @@ Here are some terms that are essential on the Peruvian localization:
|
||||
- **SOL Credentials**: Sunat Operaciones en Línea. User and password are provided by the SUNAT and
|
||||
grant access to Online Operations systems.
|
||||
|
||||
|
||||
Signature Provider
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
@@ -126,8 +173,7 @@ This is the default and the suggested option, considering the digital ceritifica
|
||||
part of the service.
|
||||
|
||||
.. image:: peru/peru-IAP.png
|
||||
:align: center
|
||||
:alt: IAP option as signature providers
|
||||
:alt: IAP option as signature providers.
|
||||
|
||||
What is the IAP?
|
||||
^^^^^^^^^^^^^^^^
|
||||
@@ -190,8 +236,7 @@ document validation directly to Digiflow. In this case you need to consider:
|
||||
- Provide your SOL credentials.
|
||||
|
||||
.. image:: peru/peru-Digiflow.png
|
||||
:align: center
|
||||
:alt: Digiflow
|
||||
:alt: Digiflow.
|
||||
|
||||
SUNAT
|
||||
*****
|
||||
@@ -230,18 +275,16 @@ certificate with the extension ``.pfx`` is required. Proceed to this section and
|
||||
password.
|
||||
|
||||
.. image:: peru/peru-Certificate.png
|
||||
:align: center
|
||||
:alt: EDI Certificate wizard
|
||||
:alt: EDI Certificate wizard.
|
||||
|
||||
Multicurrency
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
The official currency exchange rate in Peru is provided by the Bank of Peru. Odoo can connect
|
||||
directly to its services and get the currency rate either automatically or manually.
|
||||
The official currency exchange rate in Peru is provided by the SUNAT. Odoo can connect directly to
|
||||
its services and get the currency rate either automatically or manually.
|
||||
|
||||
.. image:: peru/peru-multicurrency.png
|
||||
:align: center
|
||||
:alt: Bank of Peru is displayed in Multicurrency Service option
|
||||
.. image:: peru/l10n-pe-banksync-sunat.png
|
||||
:alt: SUNAT displayed in Multicurrency Service option.
|
||||
|
||||
Please refer to the next section in our documentation for more information about
|
||||
:doc:`multicurrencies <../accounting/get_started/multi_currency>`.
|
||||
@@ -258,8 +301,7 @@ As part of the localization module the taxes are created automatically with thei
|
||||
financial account and electronic invoice configuration.
|
||||
|
||||
.. image:: peru/peru-taxes.png
|
||||
:align: center
|
||||
:alt: List of default taxes
|
||||
:alt: List of default taxes.
|
||||
|
||||
EDI Configuration
|
||||
*****************
|
||||
@@ -269,9 +311,7 @@ the taxes created by default have this data included, but in case you create new
|
||||
sure you fill in the fields:
|
||||
|
||||
.. image:: peru/peru-taxes-edi.png
|
||||
:align: center
|
||||
:alt: Taxes EDI data for Peru
|
||||
|
||||
:alt: Taxes EDI data for Peru.
|
||||
|
||||
Fiscal Positions
|
||||
~~~~~~~~~~~~~~~~
|
||||
@@ -297,8 +337,7 @@ The information required for the document types is included by default so the us
|
||||
to fill anything on this view:
|
||||
|
||||
.. image:: peru/peru-document-type.png
|
||||
:align: center
|
||||
:alt: Document Type list
|
||||
:alt: Document Type list.
|
||||
|
||||
.. warning::
|
||||
Currently the documents supported on customer invoices are: Invoice, Boleta, Debit Note and
|
||||
@@ -324,8 +363,7 @@ This section indicates which EDI workflow is used in the invoice, for Peru we mu
|
||||
“Peru UBL 2.1”.
|
||||
|
||||
.. image:: peru/peru-journal-edi.png
|
||||
:align: center
|
||||
:alt: Journal EDI field
|
||||
:alt: Journal EDI field.
|
||||
|
||||
.. warning::
|
||||
By default, the value Factur-X (FR) is always displayed, make sure you can uncheck it manually.
|
||||
@@ -341,9 +379,7 @@ available on the Partner form, this information is essential for most transactio
|
||||
the sender company and in the customer, make sure you fill in this information in your records.
|
||||
|
||||
.. image:: peru/peru-id-type.png
|
||||
:align: center
|
||||
:alt: Partner identification type
|
||||
|
||||
:alt: Partner identification type.
|
||||
|
||||
Product
|
||||
~~~~~~~
|
||||
@@ -352,9 +388,7 @@ Additional to the basic information in your products, for the Peruvian localizat
|
||||
Code on the product is a required value to be configured.
|
||||
|
||||
.. image:: peru/peru-unspc-code.png
|
||||
:align: center
|
||||
:alt: UNSPC Code on products
|
||||
|
||||
:alt: UNSPC Code on products.
|
||||
|
||||
Usage and testing
|
||||
=================
|
||||
@@ -374,16 +408,14 @@ fields required as part of the Peru EDI:
|
||||
document type if needed and select Boleta for example.
|
||||
|
||||
.. image:: peru/peru-invoice-document-type.png
|
||||
:align: center
|
||||
:alt: Invoice document type field on invoices
|
||||
:alt: Invoice document type field on invoices.
|
||||
|
||||
- **Operation type**: This value is required for Electronic Invoice and indicates the transaction
|
||||
type, the default value is “Internal Sale” but another value can be selected manually when needed,
|
||||
for example Export of Goods.
|
||||
|
||||
.. image:: peru/peru-operation-type.png
|
||||
:align: center
|
||||
:alt: Invoice operation type field on invoices
|
||||
:alt: Invoice operation type field on invoices.
|
||||
|
||||
- **EDI Affectation Reason**: In the invoice lines, additional to the Tax there is a field “EDI
|
||||
Affectation Reason” that determines the tax scope based on the SUNAT list that is displayed.
|
||||
@@ -391,8 +423,7 @@ fields required as part of the Peru EDI:
|
||||
you can manually select another one when creating the invoice.
|
||||
|
||||
.. image:: peru/peru-tax-affectation-reason.png
|
||||
:align: center
|
||||
:alt: Tax affectation reason in invoice line
|
||||
:alt: Tax affectation reason in invoice line.
|
||||
|
||||
Invoice validation
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
@@ -402,8 +433,7 @@ action registers the account move and triggers the Electronic invoice workflow t
|
||||
OSE and the SUNAT. The following message is displayed at the top of the invoice:
|
||||
|
||||
.. image:: peru/peru-posted-invoice.png
|
||||
:align: center
|
||||
:alt: Sending of EDI Invoice in blue
|
||||
:alt: Sending of EDI Invoice in blue.
|
||||
|
||||
Asynchronous means that the document is not sent automatically after the invoice has been posted.
|
||||
|
||||
@@ -417,16 +447,14 @@ done either automatically by Odoo with a *cron* that runs every hour, or the use
|
||||
immediately by clicking on the button “Sent now”.
|
||||
|
||||
.. image:: peru/peru-sent-manual.png
|
||||
:align: center
|
||||
:alt: Send EDI manually
|
||||
:alt: Send EDI manually.
|
||||
|
||||
**Sent**: Indicates the document was sent to the OSE and was successfully validated. As part of
|
||||
the validation a ZIP file is downloaded and a message is logged in the chatter indicating the
|
||||
correct Government validation.
|
||||
|
||||
.. image:: peru/peru-invoice-sent.png
|
||||
:align: center
|
||||
:alt: Message on chatter when the invoice is valid
|
||||
:alt: Message on chatter when the invoice is valid.
|
||||
|
||||
In case there is a validation error the Electronic Invoice status remains in “To be sent” so the
|
||||
corrections can be made and the invoice can be sent again.
|
||||
@@ -453,8 +481,7 @@ If a validation error is received, you have two options:
|
||||
changes, and then send the invoice again to the SUNAT for another validation.
|
||||
|
||||
.. image:: peru/peru-errors.png
|
||||
:align: center
|
||||
:alt: List of common errors on invoices
|
||||
:alt: List of common errors on invoices.
|
||||
|
||||
For more detail please refert to `Common errors in SUNAT
|
||||
<https://www.nubefact.com/codigos-error-sunat/>`_.
|
||||
@@ -466,8 +493,7 @@ After the invoice is accepted and validated by the SUNAT, the invoice PDF report
|
||||
The report includes a QR code, indicating the invoice is a valid fiscal document.
|
||||
|
||||
.. image:: peru/peru-PDF.png
|
||||
:align: center
|
||||
:alt: Invoice PDF report
|
||||
:alt: Invoice PDF report.
|
||||
|
||||
IAP Credits
|
||||
~~~~~~~~~~~
|
||||
@@ -480,8 +506,7 @@ additional credits are required, you can easily buy them by accessing the link p
|
||||
the message.
|
||||
|
||||
.. image:: peru/peru-credits-IAP.png
|
||||
:align: center
|
||||
:alt: Buying credits in the IAP
|
||||
:alt: Buying credits in the IAP.
|
||||
|
||||
In the IAP service includes packages with different pricing based on the number of credits.
|
||||
The price list in the IAP is always displayed in EUR.
|
||||
@@ -497,8 +522,7 @@ If the invoice was already sent and validated by the SUNAT, the correct way to p
|
||||
clicking on the button Request Cancellation:
|
||||
|
||||
.. image:: peru/peru-cancellation.png
|
||||
:align: center
|
||||
:alt: Request invoice cancellation button
|
||||
:alt: Request invoice cancellation button.
|
||||
|
||||
In order to cancel an invoice, please provide a cancellation Reason.
|
||||
|
||||
@@ -511,22 +535,20 @@ immediately by clicking on the button “Send now”. Once it is sent, a cancell
|
||||
created, as a result the next message and CDR File are logged in the chatter:
|
||||
|
||||
.. image:: peru/peru-cancellation-cdr.png
|
||||
:align: center
|
||||
:alt: Cancellation CDR sent by the SUNAT
|
||||
:alt: Cancellation CDR sent by the SUNAT.
|
||||
|
||||
**Cancelled**: Indicates the cancellation request was sent to the OSE and was successfully
|
||||
validated. As part of the validation a ZIP file is downloaded and a message is logged in the
|
||||
chatter indicating the correct Government validation.
|
||||
|
||||
.. image:: peru/peru-cancelled.png
|
||||
:align: center
|
||||
:alt: nvoice after cancellation
|
||||
:alt: Invoice after cancellation.
|
||||
|
||||
.. warning::
|
||||
One credit is consumed on each cancellation request.
|
||||
|
||||
Cancellation process
|
||||
********************
|
||||
Export invoices
|
||||
***************
|
||||
|
||||
When creating exportation invoices, take into account the next considerations:
|
||||
|
||||
@@ -535,8 +557,7 @@ When creating exportation invoices, take into account the next considerations:
|
||||
- The taxes included in the invoice lines should be EXP taxes.
|
||||
|
||||
.. image:: peru/peru-exp-invoice.png
|
||||
:align: center
|
||||
:alt: Exportation invoices main data
|
||||
:alt: Exportation invoices main data.
|
||||
|
||||
Advance Payments
|
||||
****************
|
||||
@@ -555,13 +576,11 @@ When creating invoices that is subject to Detractions, take into account the nex
|
||||
#. All the products included in the invoice must have these fields configured:
|
||||
|
||||
.. image:: peru/peru-detraction.png
|
||||
:align: center
|
||||
:alt: Detraction fields on products
|
||||
:alt: Detraction fields on products.
|
||||
|
||||
#. Operation type in your invoice must be ``1001``
|
||||
|
||||
.. image:: peru/peru-detraction-invoice.png
|
||||
:align: center
|
||||
:alt: Detraction code on invoices.
|
||||
|
||||
Credit Notes
|
||||
@@ -572,8 +591,7 @@ for this just click on the button “Add Credit Note”, a part of the Peruvian
|
||||
to prove a Credit Reason selecting one of the options in the list.
|
||||
|
||||
.. image:: peru/peru-credit-note.png
|
||||
:align: center
|
||||
:alt: Add Credit Note from invoice
|
||||
:alt: Add Credit Note from invoice.
|
||||
|
||||
.. tip::
|
||||
When creating your first credit Note, select the Credit Method: Partial Refund, this allows you
|
||||
@@ -582,8 +600,7 @@ to prove a Credit Reason selecting one of the options in the list.
|
||||
By default the Credit Note is set in the document type:
|
||||
|
||||
.. image:: peru/peru-credit-note-document.png
|
||||
:align: center
|
||||
:alt: Credit Note document type
|
||||
:alt: Credit Note document type.
|
||||
|
||||
To finish the workflow please follow the instructions on :doc:`our page about Credit Notes
|
||||
<../accounting/customer_invoices/credit_notes>`.
|
||||
@@ -712,14 +729,22 @@ and the :ref:`master data <peru-master_data>`, :ref:`install <general/install>`
|
||||
|
||||
Next, you need to retrieve the *client ID* and *client secret* from |SUNAT|. To do so, follow the
|
||||
`manual de servicios web plataforma nueva GRE
|
||||
<https://cpe.sunat.gob.pe/sites/default/files/inline-files/Manual_Servicios_GRE.pdf>`_.
|
||||
<https://cpe.sunat.gob.pe/sites/default/files/inline-files/Manual_Servicios_GRE%20%281%29.pdf>`_.
|
||||
|
||||
.. note::
|
||||
In the |SUNAT| portal, it is important to have the correct access rights enabled, as they may
|
||||
differ from the user set for electronic invoicing.
|
||||
|
||||
These credentials should be used to configure the delivery guide general settings from
|
||||
:menuselection:`Accounting --> Configuration --> Settings --> Peruvian Electronic Invoicing`.
|
||||
:menuselection:`Inventory --> Configuration --> Settings`, and scroll down to the :guilabel:`Peru
|
||||
Delivery Guide` section.
|
||||
|
||||
Configure the following :guilabel:`Sunat Delivery Guide API` fields:
|
||||
|
||||
- :guilabel:`Guide Client ID`: the unique API *client ID* generated in the |SUNAT| portal
|
||||
- :guilabel:`Guide Client Secret`: the unique API *client secret* generated in the |SUNAT| portal
|
||||
- :guilabel:`Guide SOL User`: the RUC Number + SOL username
|
||||
- :guilabel:`Guide SOL Password`: the SOL user password
|
||||
|
||||
.. image:: peru/gre-fields-example.png
|
||||
:alt: Example for the SUNAT Delivery Guide API section configuration.
|
||||
@@ -928,5 +953,100 @@ based on their tax ID (RUC/DNI). The invoice must then :ref:`be sent to the OSE
|
||||
<peru-electronic-invoice-status>`. By default, all published invoices are sent once a day through
|
||||
a scheduled action, but you can also send each invoice manually if needed.
|
||||
|
||||
Once the invoice is validated with |SUNAT|, customers can download the :file:`.zip` with the CDR,
|
||||
XML, and PDF files directly from the customer portal by clicking the :guilabel:`Download` button.
|
||||
Once the invoice is validated with |SUNAT|, customers can download the .zip file with the CDR, XML,
|
||||
and PDF files directly from the customer portal by clicking the :guilabel:`Download` button.
|
||||
|
||||
Reports
|
||||
=======
|
||||
|
||||
.. _peru/reports-ple:
|
||||
|
||||
Permanent inventory reports: |PLE| 12.1 and |PLE| 13.1
|
||||
------------------------------------------------------
|
||||
|
||||
Odoo can produce two permanent inventory reports as `.txt` files for Peruvian accounting: |PLE| 12.1
|
||||
and |PLE| 13.1. All inventory transactions made need to be reported.
|
||||
|
||||
- |PLE| 12.1 **only tracks inventory in physical units**, focusing on the inflow and outflow of
|
||||
goods for effective management and planning.
|
||||
|
||||
- |PLE| 13.1 tracks **both physical quantities and monetary values of inventory**, providing a
|
||||
comprehensive view for tax and management purposes.
|
||||
|
||||
Both reports must be maintained semi-annually (January-June and July-December), with monthly
|
||||
transaction details reported within these periods. The submission deadlines are October 1st for the
|
||||
first semester and April 1st for the second semester, in accordance with the *Resolución de
|
||||
Superintendencia N° 169-2015*.
|
||||
|
||||
Configuration
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Before generating the |PLE| 12.1 or |PLE| 13.1 reports, make sure the :guilabel:`Peru - Stock
|
||||
Reports` (`l10n_pe_reports_stock`) module is installed, then update the fields for:
|
||||
|
||||
- :ref:`Products <peru/reports-ple-products>`
|
||||
- :ref:`Warehouses <peru/reports-ple-warehouses>`
|
||||
- :ref:`Inventory transfers <peru/reports-ple-transfers>`
|
||||
|
||||
.. _peru/reports-ple-products:
|
||||
|
||||
Products
|
||||
********
|
||||
|
||||
Several configurations related to the product or product category are necessary for |PLE| reporting:
|
||||
|
||||
- **Type of existence**: For all products needing |PLE| reporting, go to the product record's
|
||||
:guilabel:`Accounting` tab and select the :guilabel:`Type of Existence` according to |SUNAT|'s
|
||||
table 5 for inventory reporting.
|
||||
|
||||
- **Automatic inventory valuation**: For storable goods (:dfn:`products with tracked inventory`),
|
||||
use :doc:`automatic inventory valuation
|
||||
<../../inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config>`.
|
||||
Once automatic inventory valuation is enabled, this valuation method can be enabled for
|
||||
a product's :ref:`product category <inventory/warehouses_storage/valuation-on-product-category>`.
|
||||
|
||||
- **Costing method:** Storable goods must use a :doc:`costing method
|
||||
<../../inventory_and_mrp/inventory/product_management/inventory_valuation/inventory_valuation_config>`
|
||||
**other** than :guilabel:`Standard Price`, as the journal entries generated from stock moves are
|
||||
used to populate the |PLE| reports.
|
||||
|
||||
.. _peru/reports-ple-warehouses:
|
||||
|
||||
Warehouses
|
||||
**********
|
||||
|
||||
When :doc:`setting up a warehouse
|
||||
<../../inventory_and_mrp/inventory/warehouses_storage/inventory_management/warehouses>`, the
|
||||
:guilabel:`Annex Establishment Code` field must be filled. This code acts as a unique ID for each
|
||||
warehouse and should only be a numeric combination, containing between 4 to 7 digits.
|
||||
|
||||
.. _peru/reports-ple-transfers:
|
||||
|
||||
Inventory transfers
|
||||
*******************
|
||||
|
||||
Transferring inventory is a key process captured in the |PLE| 12.1 and |PLE| 13.1 reports.
|
||||
:doc:`Inventory transfers <../../inventory_and_mrp/inventory/shipping_receiving/daily_operations>`
|
||||
include both incoming and outgoing shipments.
|
||||
|
||||
When validating an inventory transfer (either on a warehouse receipt or delivery order), select the
|
||||
:guilabel:`Type of Operation (PE)` performed according to |SUNAT|'s table 12 for permanent inventory
|
||||
reporting.
|
||||
|
||||
Generate a .txt file for permanent inventory Kardex reports
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
|PLE| 12.1 and 13.1 come as two separate books. The books need to be downloaded in `.txt` file
|
||||
format from Odoo, and then they should be submitted to the |SUNAT| |PLE| software.
|
||||
|
||||
On the :ref:`Inventory Valuation Report <inventory/management/reporting/valuation-report>`, click
|
||||
the :guilabel:`PLE Reports` button. Then, select the :guilabel:`Period` and choose a report to
|
||||
export: either the :guilabel:`PLE 12.1` or :guilabel:`PLE 13.1`. Odoo generates a `.txt` file
|
||||
for the chosen report.
|
||||
|
||||
.. image:: peru/l10n-ple-export-button.png
|
||||
:alt: Export Buttons selection
|
||||
|
||||
.. note::
|
||||
Only a download of the report in `.txt` format is available. There is no preview or visualization
|
||||
available within Odoo.
|
||||
|
||||
|
Before Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 28 KiB |
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 30 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 73 KiB |
@@ -705,7 +705,7 @@ Create batch payment
|
||||
Now, record each payment in Odoo using the |NACHA| payment method.
|
||||
|
||||
.. seealso::
|
||||
:ref:`Register Payments in Odoo <payments/register>`
|
||||
:ref:`Register Payments in Odoo <accounting/payments/from-invoice-bill>`
|
||||
|
||||
.. important::
|
||||
Be aware of the cut-off time for same-day payments. Either the file needs to have a future date
|
||||
|
||||
@@ -105,39 +105,61 @@ search for your company to verify the following:
|
||||
Set up a Uruware account
|
||||
------------------------
|
||||
|
||||
To set up a Uruware account, first be sure to have a valid Odoo subscription. Then follow the
|
||||
proceeding steps.
|
||||
To set up a Uruware account, follow these steps:
|
||||
|
||||
Locate the Uruware credentials settings by navigating to the :menuselection:`Accounting -->
|
||||
Configuration --> Settings`. Scroll down to the :guilabel:`Uruguayan Localization` section and click
|
||||
on :guilabel:`Create Uruware Account`.
|
||||
#. Verify that you have a valid Odoo subscription.
|
||||
#. Locate the Uruware credentials settings by navigating to the :menuselection:`Accounting -->
|
||||
Configuration --> Settings`.
|
||||
#. Scroll down to the :guilabel:`Uruguayan Localization` section and select the environment
|
||||
(:guilabel:`Production` or :guilabel:`Testing`).
|
||||
#. Click on :guilabel:`Create Uruware Account`.
|
||||
|
||||
Upon doing so, an email is sent to the address associated with your Odoo subscription with the
|
||||
username and password to enter Uruware's portal and set up your account.
|
||||
password to enter Uruware's portal and set up your account.
|
||||
|
||||
.. tip::
|
||||
Your :guilabel:`Tax ID` needs to be setup to be able to create your account.
|
||||
- The email with the credentials is not immediate; it might take up to 48 hours for the account to
|
||||
be created.
|
||||
- The company's :guilabel:`Tax ID` needs to be set up to be able to create an Uruware account.
|
||||
- The password sent expires after 24 hours. In this case, reset it by using the *Forgot Password*
|
||||
link in Uruware's portal.
|
||||
|
||||
.. note::
|
||||
This action will create an account with Uruware with the following information:
|
||||
|
||||
- Legal name (razón social)
|
||||
- RUT from the company
|
||||
- User name (RUT.odoo)
|
||||
- Username (the Odoo subscription email or `RUT`.odoo. For example: `213344556677.odoo`)
|
||||
- Odoo database link
|
||||
|
||||
To ensure your account is created correctly, please add any missing information from above.
|
||||
|
||||
Once the account is created, a confirmation email is sent to the email linked to your subscription
|
||||
in Odoo, containing the credentials to configure the account directly in the Uruware
|
||||
`testing portal <https://odootest.ucfe.com.uy/Gestion/>`_ or
|
||||
Once the account is created and you have received the email containing the credentials, configure
|
||||
your accounts directly in the Uruware `testing portal <https://odootest.ucfe.com.uy/Gestion/>`_ or
|
||||
`production portal <https://prod6109.ucfe.com.uy/Gestion/>`_:
|
||||
|
||||
Use the account credentials in the email to log in to the portal.
|
||||
Use the account credentials in the email to log in to the to the corresponding (`test
|
||||
<https://odootest.ucfe.com.uy/Gestion/>`_ or `production <https://prod6109.ucfe.com.uy/Gestion/>`_)
|
||||
portal.
|
||||
|
||||
In Uruware's portal, the following steps are needed to be able to issue invoices from Odoo:
|
||||
|
||||
#. Complete and correct the company's information.
|
||||
#. Add your digital certificate.
|
||||
#. Add your :abbr:`CAEs (Constancia de Autorización para Emisión)` for each document-type you plan
|
||||
to issue.
|
||||
#. Configure the format of the PDF to be printed and sent to your customers.
|
||||
|
||||
.. important::
|
||||
Be sure to configure two accounts, one for testing and one for production. The email address can
|
||||
be changed in Uruware and the same can be used in both environments.
|
||||
Be sure to configure two accounts, one for testing and one for production. The certificate is
|
||||
needed in both environments, but :abbr:`CAEs (Constancia de Autorización para Emisión)` are only
|
||||
needed in production.
|
||||
|
||||
.. seealso::
|
||||
- `Odoo Tutorials: Uruguay Localization
|
||||
<https://www.odoo.com/slides/smart-tutorial-localizacion-de-uruguay-432>`_
|
||||
- `Odoo Help Forum: Uruguay
|
||||
<https://www.odoo.com/forum/help-1?search=l10n_uy>`_
|
||||
|
||||
Electronic invoice data
|
||||
-----------------------
|
||||
@@ -156,6 +178,9 @@ First, select the :guilabel:`UCFE Web Services` environment:
|
||||
to the |DGI|. For this reason, rejection errors will not appear in this mode. Every internal
|
||||
validation can be tested in demo mode. Avoid selecting this option in a production database.
|
||||
|
||||
.. note::
|
||||
Using :guilabel:`Demo` mode does not require a Uruware account.
|
||||
|
||||
Then, enter the :guilabel:`Uruware Data`:
|
||||
|
||||
- :guilabel:`Uruware WS Password`
|
||||
@@ -166,9 +191,16 @@ Then, enter the :guilabel:`Uruware Data`:
|
||||
:alt: Required information for electronic invoice.
|
||||
|
||||
.. note::
|
||||
This data can be obtained from the Uruware portal, after configuring the :ref:`Uruware account
|
||||
<l10n_uy/uruware-account>`. The :guilabel:`Uruware WS Password` differs from the password you use
|
||||
to enter your Uruware account.
|
||||
This data can be obtained from the Uruware portal after configuring the :ref:`Uruware account
|
||||
<l10n_uy/uruware-account>`.
|
||||
|
||||
To get the :guilabel:`Uruware WS Password`, go to :menuselection:`Configuration --> Company -->
|
||||
Edit` and look for the :guilabel:`Validators and Additional Information` tab to find
|
||||
:guilabel:`WS Password`.
|
||||
|
||||
To get the :guilabel:`Commerce Code`, go to :menuselection:`Configuration --> Branches`.
|
||||
|
||||
To get the :guilabel:`Terminal Code`, go to :menuselection:`Configuration --> Issuing Points`.
|
||||
|
||||
Master data
|
||||
-----------
|
||||
|
||||
@@ -2,55 +2,271 @@
|
||||
Vietnam
|
||||
=======
|
||||
|
||||
Add Vietnamese QR banking codes to invoices
|
||||
===========================================
|
||||
.. _SInvoice: https://www.sinvoice.vn/
|
||||
|
||||
.. _localizations/vietnam/modules:
|
||||
|
||||
Modules
|
||||
=======
|
||||
|
||||
The following modules are installed automatically with the Vietnamese localization:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
|
||||
* - Name
|
||||
- Technical name
|
||||
- Description
|
||||
* - :guilabel:`Vietnam - Accounting`
|
||||
- `l10n_vn`
|
||||
- This module includes the default
|
||||
:ref:`fiscal localization package <fiscal_localizations/packages>`.
|
||||
* - :guilabel:`Vietnam - E-invoicing`
|
||||
- `l10n_vn_edi_viettel`
|
||||
- This module includes the features required for integration with :ref:`SInvoice
|
||||
<localizations/vietnam/sinvoice>`.
|
||||
|
||||
.. note::
|
||||
In some cases, such as when upgrading to a version with additional modules, it is possible that
|
||||
modules may not be installed automatically. Any missing modules can be manually :ref:`installed
|
||||
<general/install>`.
|
||||
|
||||
.. _localizations/vietnam/company:
|
||||
|
||||
Company
|
||||
=======
|
||||
|
||||
To use all the features of this fiscal localization, the following fields are required on the
|
||||
:doc:`company record </applications/general/companies>`:
|
||||
|
||||
- :guilabel:`Name`
|
||||
- :guilabel:`Address`, including the :guilabel:`City`, :guilabel:`State`, :guilabel:`Zip Code`,
|
||||
and :guilabel:`Country`.
|
||||
|
||||
- In the :guilabel:`Street` field, enter the street name, number, and any additional address
|
||||
information.
|
||||
- In the :guilabel:`Street 2` field, enter the neighborhood.
|
||||
|
||||
- :guilabel:`Tax ID`: tax identification number.
|
||||
|
||||
.. _localizations/vietnam/sinvoice:
|
||||
|
||||
E-invoicing with SInvoice
|
||||
=========================
|
||||
|
||||
SInvoice_ is an e-invoice service platform provided by Viettel, one of the biggest e-invoice service
|
||||
providers in Vietnam. Odoo supports integration with SInvoice to submit invoices generated in Odoo.
|
||||
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
SInvoice platform
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
To send electronic invoices to SInvoice, the following must be created on SInvoice_:
|
||||
|
||||
- :ref:`SInvoice account <localizations/vietname/sinvoice-registration>`
|
||||
- :ref:`Invoice template <localizations/vietname/sinvoice-template>`
|
||||
- :ref:`Invoice symbol <localizations/vietname/sinvoice-symbol>`
|
||||
- :ref:`Invoice issuance notice <localizations/vietname/sinvoice-notice>`
|
||||
|
||||
.. _localizations/vietname/sinvoice-registration:
|
||||
|
||||
SInvoice registration
|
||||
*********************
|
||||
|
||||
To create an account, go to SInvoice_ and register for the desired plan. Fill in the form that
|
||||
opens to be contacted by SInvoice_ to create an account.
|
||||
|
||||
Once you have an account, log into SInvoice_ using your :guilabel:`Username` and
|
||||
:guilabel:`Password`.
|
||||
|
||||
.. _localizations/vietname/sinvoice-template:
|
||||
|
||||
Invoice template creation
|
||||
*************************
|
||||
|
||||
#. On the left side of the overview page, in the :guilabel:`Release management` menu, click
|
||||
:guilabel:`Create business information`.
|
||||
#. In the :guilabel:`Update key information` step, fill in the following fields and other optional
|
||||
information if needed: :guilabel:`Unit name`, :guilabel:`Address`, :guilabel:`Contact person`,
|
||||
:guilabel:`Type of representative documents`.
|
||||
#. Click :guilabel:`Update`.
|
||||
#. In the :guilabel:`Look up digital certificate` step, click :guilabel:`Add new` to add a digital
|
||||
certificate.
|
||||
#. Select the :guilabel:`Branch/Enterprise` and the :guilabel:`Type of digital certificate`, then
|
||||
fill in the required fields for each type:
|
||||
|
||||
- :guilabel:`Supplier`: CloudCA
|
||||
- :guilabel:`Signer ID`: CloudCA
|
||||
- :guilabel:`Digital Certificate`: CloudCA
|
||||
- :guilabel:`How to download file`: HSM
|
||||
- :guilabel:`File Upload`: HSM, USB-TOKEN
|
||||
|
||||
#. Click :guilabel:`Generate key pair` to generate encryption keys for authentication, and
|
||||
:guilabel:`Save`.
|
||||
#. In the :guilabel:`Manage invoice templates` step, add a new :guilabel:`Invoice template`.
|
||||
#. Select the :guilabel:`Invoice type` and fill in the :guilabel:`Invoice template code`,
|
||||
:guilabel:`Invoice template name`, and other optional information if needed.
|
||||
#. Click :guilabel:`Update`.
|
||||
|
||||
.. seealso::
|
||||
`SInvoice documentation on electronic invoice template creation
|
||||
<https://www.sinvoice.vn/2021/02/hdsd-tai-lieu-nghiep-vu-tao-mau-hoa-don-dien-tu.html?debug=1>`_
|
||||
|
||||
.. _localizations/vietname/sinvoice-symbol:
|
||||
|
||||
Invoice symbol creation
|
||||
***********************
|
||||
|
||||
On the left side of the main screen, in the :guilabel:`Release management` menu, click
|
||||
:guilabel:`Invoice symbol` and follow these steps:
|
||||
|
||||
#. Click :guilabel:`Add new` and select the :guilabel:`Invoice template`.
|
||||
#. Set the :guilabel:`Status` to :guilabel:`Active` to activate the symbol and fill in the
|
||||
:guilabel:`Invoice symbol`.
|
||||
#. Enable :guilabel:`Stop automatic sending to tax authorities` and :guilabel:`Default for built-in
|
||||
API` based on preference.
|
||||
#. Click :guilabel:`Save`.
|
||||
|
||||
.. _localizations/vietname/sinvoice-notice:
|
||||
|
||||
Invoice issuance notice
|
||||
***********************
|
||||
|
||||
On the left side of the main screen, in the :guilabel:`Release management` menu, click
|
||||
:guilabel:`Create issuance notice` and follow these steps:
|
||||
|
||||
#. Click :guilabel:`Add new`, select the :guilabel:`Name of the business unit to issue an e-invoice`
|
||||
and the :guilabel:`Tax agency name`. Based on the business unit and tax agency selected, the
|
||||
:guilabel:`Tax code`, :guilabel:`Address`, :guilabel:`Phone number`, and :guilabel:`Separator
|
||||
used` are automatically filled and uneditable.
|
||||
#. Click :guilabel:`Select the invoice type for issuance`, and then select and fill in the
|
||||
following information :
|
||||
|
||||
- :guilabel:`Invoice type`: The invoice type on which to declare an issuance notice.
|
||||
- :guilabel:`Invoice template`: Select from the list of templates available based on the invoice
|
||||
type.
|
||||
- :guilabel:`Symbol`: Select from the list of symbols available based on the invoice type.
|
||||
- :guilabel:`Quantity`: Total number of invoices to issue for the selected type. Based on the
|
||||
type and template selected, this field is filled in automatically. It can be changed if needed.
|
||||
- :guilabel:`Start date of use`: The date from which the invoice template, range, and quantity
|
||||
are used for the issuance notice.
|
||||
|
||||
#. Click :guilabel:`Save` and select more invoice types if necessary by repeating the steps above.
|
||||
Click :guilabel:`Save` to finish drafting the notice.
|
||||
#. Click :guilabel:`Send to tax authorities` for approval. Once approved, the notice's
|
||||
:guilabel:`Status` is changed to :guilabel:`Active`.
|
||||
|
||||
.. _localizations/vietnam/sinvoice-odoo:
|
||||
|
||||
Odoo database
|
||||
~~~~~~~~~~~~~
|
||||
|
||||
Link Odoo to SInvoice
|
||||
*********************
|
||||
|
||||
To connect Odoo with SInvoice, go to :menuselection:`Accounting --> Configuration --> Settings`.
|
||||
In the :guilabel:`Vietnamese Integration` section, fill in your SInvoice :guilabel:`Username` and
|
||||
:guilabel:`Password`. Add a :guilabel:`Default symbol` to generate a prefix for the invoice number
|
||||
managed in SInvoice if needed.
|
||||
|
||||
Invoice template
|
||||
****************
|
||||
|
||||
To create SInvoice templates, go to :menuselection:`Accounting --> Configuration --> Templates`.
|
||||
Click :guilabel:`New` and add a :guilabel:`Template code` and a :guilabel:`Template Invoice Type`.
|
||||
The :guilabel:`Template code` is the initial sequence of digits in the name assigned by SInvoice.
|
||||
For example, if the invoice template is `1/001 - Hóa đơn GTGT - ND123`, the :guilabel:`Template
|
||||
code` is `1/001`. The SInvoice templates in Odoo must match the ones in SInvoice.
|
||||
|
||||
To add :guilabel:`Invoice Symbols`, click :guilabel:`Add a new line`.
|
||||
|
||||
Sending invoices to SInvoice
|
||||
----------------------------
|
||||
|
||||
Invoices can be sent to SInvoice once they have been confirmed. To do so, follow the
|
||||
:ref:`invoice sending <accounting/invoice/sending>` steps. In the :guilabel:`Send` popup, enable
|
||||
:guilabel:`Send to SInvoice` and click :guilabel:`Send & Print`.
|
||||
|
||||
Once the invoice has been successfully submitted to SInvoice, the :guilabel:`SInvoice Status` field
|
||||
in the :guilabel:`SInvoice` tab of the invoice is updated to :guilabel:`Sent`. The
|
||||
:guilabel:`SInvoice Number`, :guilabel:`Issue Date`, :guilabel:`Secret Code` and :guilabel:`eInvoice
|
||||
Number` fields are also updated. The same information is available on SInvoice.
|
||||
|
||||
Replacement or adjustment invoices
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
A replacement invoice is issued to correct an invoice that has **yet to be tax declared**, whereas
|
||||
an adjustment invoice is issued to correct one that has **already been tax declared**. Follow these
|
||||
steps to issue a replacement or adjustment invoice:
|
||||
|
||||
#. Open the invoice and click :guilabel:`Credit Note`.
|
||||
#. In the :guilabel:`Credit Note` popup, fill in the following fields:
|
||||
|
||||
- :guilabel:`Reason displayed on Credit Note`
|
||||
- :guilabel:`Adjustment type`
|
||||
- :guilabel:`Agreement Name`
|
||||
- :guilabel:`Agreement Date`
|
||||
- :guilabel:`Journal`
|
||||
- :guilabel:`Reversal date`
|
||||
|
||||
#. Click :guilabel:`Reverse and Create Invoice` to issue a replacement invoice, or
|
||||
:guilabel:`Reverse` to issue an adjustment invoice.
|
||||
|
||||
The :guilabel:`SInvoice Status` in the :guilabel:`SInvoice` invoice tab is updated to
|
||||
:guilabel:`Replaced` for a replacement invoice or :guilabel:`Adjusted` for an adjustment invoice.
|
||||
|
||||
Invoice cancellation
|
||||
~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If an invoice needs to be canceled, open the invoice and click :guilabel:`Request Cancel`. In the
|
||||
:guilabel:`Invoice Cancellation` popup, enter the cancellation :guilabel:`Reason`,
|
||||
:guilabel:`Agreement Name`, and :guilabel:`Agreement Date`, and click :guilabel:`Request
|
||||
Cancellation`.
|
||||
|
||||
The :guilabel:`SInvoice Status` in the :guilabel:`SInvoice` invoice tab is updated to
|
||||
:guilabel:`Canceled`.
|
||||
|
||||
.. _localizations/vietnam/qrcode:
|
||||
|
||||
QR banking codes
|
||||
================
|
||||
|
||||
Vietnamese QR banking is a payment service platform that allows customers to make instant domestic
|
||||
payments to individuals and merchants in Vietnamese dong via online and mobile banking.
|
||||
|
||||
Activate QR codes
|
||||
-----------------
|
||||
Configuration
|
||||
-------------
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings`. Under the :guilabel:`Customer
|
||||
Payments` section, activate the :guilabel:`QR Codes` feature.
|
||||
To activate QR banking codes, go to :menuselection:`Accounting --> Configuration --> Settings` and
|
||||
enable :guilabel:`QR Codes` in the :guilabel:`Customer Payments` section.
|
||||
|
||||
Vietnamese QR banking bank account configuration
|
||||
------------------------------------------------
|
||||
Bank account
|
||||
~~~~~~~~~~~~
|
||||
|
||||
Go to :menuselection:`Contacts --> Configuration --> Bank Accounts` and select the bank account for
|
||||
which you want to activate Vietnamese QR banking. Set the :guilabel:`Bank Identifier Code` on the
|
||||
bank. Then set the :guilabel:`Proxy Type` and fill in the :guilabel:`Proxy Value` field depending on
|
||||
the type you chose.
|
||||
To activate QR banking for a bank account, go to :menuselection:`Contacts --> Configuration -->
|
||||
Bank Accounts` and select the bank account. Fill in the :guilabel:`Bank Identifier Code`,
|
||||
:guilabel:`Proxy Type` (based on the information used to identify the :guilabel:`Merchant Account`,
|
||||
such as the card number and bank account numbers), and :guilabel:`Proxy Value` fields.
|
||||
|
||||
Enable :guilabel:`Include Reference` to include the invoice number in the QR code.
|
||||
|
||||
.. important::
|
||||
- The account holder's country must be set to `Vietnam` on its contact form.
|
||||
- The account holder's city is mandatory.
|
||||
- You could also include the invoice number in the QR code by checking the :guilabel:`Include
|
||||
Reference` checkbox.
|
||||
|
||||
.. image:: vietnam/vn-paynow-bank-setting.png
|
||||
:alt: Vietnamese QR banking bank account configuration
|
||||
- The account holder's country must be set to `Vietnam`, and their city must be specified on the
|
||||
contact form.
|
||||
- The :ref:`account number <accounting/bank/account-number>` and bank must be set on the
|
||||
:guilabel:`Bank` journal.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../accounting/bank`
|
||||
|
||||
Bank journal configuration
|
||||
--------------------------
|
||||
Generating QR codes on invoices
|
||||
-------------------------------
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Journals`, open the bank journal, then fill
|
||||
out the :guilabel:`Account Number` and :guilabel:`Bank` under the :guilabel:`Journal Entries` tab.
|
||||
When creating a new invoice, open the :guilabel:`Other Info` tab and select :guilabel:`EMV
|
||||
Merchant-Presented QR-code` in the :guilabel:`Payment QR-code` field.
|
||||
|
||||
.. image:: vietnam/vn-bank-account-journal-setting.png
|
||||
:alt: Bank Account's journal configuration
|
||||
|
||||
Issue invoices with Vietnamese QR banking QR codes
|
||||
--------------------------------------------------
|
||||
|
||||
When creating a new invoice, open the :guilabel:`Other Info` tab and set the :guilabel:`Payment
|
||||
QR-code` option to *EMV Merchant-Presented QR-code*.
|
||||
|
||||
.. image:: vietnam/vn-qr-code-invoice-setting.png
|
||||
:alt: Select EMV Merchant-Presented QR-code option
|
||||
|
||||
Ensure that the :guilabel:`Recipient Bank` is the one you configured, as Odoo uses this field to
|
||||
generate the Vietnamese QR banking QR code.
|
||||
.. note::
|
||||
Ensure the :guilabel:`Recipient Bank` is configured, as Odoo uses this field to generate QR
|
||||
codes.
|
||||
|
||||
|
Before Width: | Height: | Size: 4.3 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 2.8 KiB |
@@ -74,16 +74,14 @@ When ready, change the provider's :guilabel:`State` to :guilabel:`Enabled` for a
|
||||
Import an Authorize.Net statement
|
||||
=================================
|
||||
|
||||
.. _authorize-import-template:
|
||||
|
||||
Export from Authorize.Net
|
||||
-------------------------
|
||||
|
||||
.. _authorize-import-template:
|
||||
|
||||
.. admonition:: Template
|
||||
|
||||
`Download the Excel import template <https://docs.google.com/spreadsheets/d/1CMVtBWLLVIrUpYA92paw-cL7-WdKLbaa/edit?usp=share_link&ouid=105295722917050444558&rtpof=true&sd=true>`_
|
||||
|
||||
To export a statement:
|
||||
:download:`Download the Excel import template. <authorize/authorize-net-magic-sheet.xlsx>`
|
||||
|
||||
- Log in to Authorize.Net.
|
||||
- Go to :menuselection:`Account --> Statements --> eCheck.Net Settlement Statement`.
|
||||
|
||||
@@ -141,7 +141,7 @@ SPF, DKIM and DMARC documentation of common providers
|
||||
- `GoDaddy CNAME record <https://www.godaddy.com/help/add-a-cname-record-19236>`_
|
||||
- `NameCheap <https://www.namecheap.com/support/knowledgebase/article.aspx/317/2237/how-do-i-add-txtspfdkimdmarc-records-for-my-domain/>`_
|
||||
- `CloudFlare DNS <https://support.cloudflare.com/hc/en-us/articles/360019093151>`_
|
||||
- `Google Domains <https://support.google.com/domains/answer/3290350?hl=en>`_
|
||||
- `Squarespace DNS records <https://support.squarespace.com/hc/en-us/articles/360002101888-Adding-custom-DNS-records-to-your-Squarespace-managed-domain>`_
|
||||
- `Azure DNS <https://docs.microsoft.com/en-us/azure/dns/dns-getstarted-portal>`_
|
||||
|
||||
To fully test the configuration, use the `Mail-Tester <https://www.mail-tester.com/>`_ tool, which
|
||||
|
||||
@@ -317,3 +317,43 @@ To change the default behavior, enable :ref:`developer-mode`, then go to :menuse
|
||||
.. important::
|
||||
These parameters are only used to prevent the creation of new records. They **do not prevent
|
||||
replies** from being added to the chatter.
|
||||
|
||||
Allow alias domain system parameter
|
||||
===================================
|
||||
|
||||
Incoming aliases are set in the Odoo database to create records by receiving incoming emails. To
|
||||
view aliases set in the Odoo database, first activate the :ref:`developer mode <developer-mode>`.
|
||||
Then, go to :menuselection:`Settings app --> Technical --> Aliases`.
|
||||
|
||||
The following system parameter, `mail.catchall.domain.allowed`, set with allowed alias domain
|
||||
values, separated by commas, filters out correctly addressed emails to aliases. Setting the domains
|
||||
for which the alias can create a ticket, lead, opportunity, etc., eliminates false positives where
|
||||
email addresses with only the prefix alias, not the domain, are present.
|
||||
|
||||
In some instances, matches have been made in the Odoo database when an email is received with the
|
||||
same alias prefix and a different domain on the incoming email address. This is true in the sender,
|
||||
recipient, and :abbr:`CC (Carbon Copy)` email addresses of an incoming email.
|
||||
|
||||
.. example::
|
||||
When Odoo receives emails with the `commercial` prefix alias in the sender, recipient, or
|
||||
:abbr:`CC (Carbon Copy)` email addresses (e.g. commercial\@example.com), the database falsely
|
||||
treats the email as the full `commercial` alias, with a different domain, and therefore, creates
|
||||
a ticket/lead/opportunity/etc.
|
||||
|
||||
To add the `mail.catchall.domain.allowed` system parameter, first, activate the :ref:`developer mode
|
||||
<developer-mode>`. Then, go to :menuselection:`Settings app --> Technical --> System Parameters`.
|
||||
Click :guilabel:`New`. Then, type in `mail.catchall.domain.allowed` for the :guilabel:`Key` field.
|
||||
|
||||
Next, for the :guilabel:`Value` field, add the domains separated by commas. Manually
|
||||
:icon:`fa-cloud-upload` :guilabel:`(Save)`, and the system parameter takes immediate effect.
|
||||
|
||||
.. image:: email_servers_inbound/allowed-domain.png
|
||||
:alt: mail.catchall.domain.allowed system parameter set.
|
||||
|
||||
Local-part based incoming detection
|
||||
===================================
|
||||
|
||||
When creating a new alias, there is an option to enable :guilabel:`Local-part based incoming
|
||||
detection`. If enabled, Odoo only requires the local-part to match for routing an incoming email. If
|
||||
this feature is turned off, Odoo requires the whole email address to match for routing an incoming
|
||||
email.
|
||||
|
||||
|
After Width: | Height: | Size: 7.1 KiB |
@@ -18,7 +18,6 @@ page. Next, navigate to the :guilabel:`Senders & Domains` section and click on :
|
||||
SEND API Settings`.
|
||||
|
||||
.. image:: mailjet_api/api-settings.png
|
||||
:align: center
|
||||
:alt: SMTP and Send API Settings link in the Senders & Domains section of Mailjet.
|
||||
|
||||
Then, copy the :abbr:`SMTP (Simple Mail Transfer Protocol)` configuration settings onto a notepad.
|
||||
@@ -37,7 +36,6 @@ port number. The settings are needed to configure Mailjet in Odoo, which is cove
|
||||
databases.
|
||||
|
||||
.. image:: mailjet_api/smtp-config.png
|
||||
:align: center
|
||||
:alt: SMTP configuration from Mailjet.
|
||||
|
||||
Next, click on the button labeled :guilabel:`Retrieve your API credentials` to retrieve the Mailjet
|
||||
@@ -57,7 +55,6 @@ email address or domain is approved to send emails using Mailjet's servers. Firs
|
||||
:guilabel:`Add a Sender Domain or Address` link under the :guilabel:`Senders & Domains` section.
|
||||
|
||||
.. image:: mailjet_api/add-domain-email.png
|
||||
:align: center
|
||||
:alt: Add a sender domain or address in the Mailjet interface.
|
||||
|
||||
Determine if a sender's email address or the entire domain needs to be added to the Mailjet
|
||||
@@ -125,7 +122,6 @@ Copy the TXT record information to a notepad and then navigate to the domain's :
|
||||
Name System)` provider to complete validation.
|
||||
|
||||
.. image:: mailjet_api/host-value-dns.png
|
||||
:align: center
|
||||
:alt: The TXT record information to input on the domain's DNS.
|
||||
|
||||
Setup in the domain's DNS
|
||||
@@ -151,7 +147,6 @@ Next, click :guilabel:`Check Now` to validate the TXT record that was added on t
|
||||
success screen will appear if the domain is configured correctly.
|
||||
|
||||
.. image:: mailjet_api/check-dns.png
|
||||
:align: center
|
||||
:alt: Check DNS record in Mailjet.
|
||||
|
||||
After successfully setting up the domain, there is an option to :guilabel:`Authenticate this domain
|
||||
@@ -163,7 +158,6 @@ Identified Mail) records to input into the :abbr:`DNS (Domain Name System)` prov
|
||||
360042412734-Authenticating-Domains-with-SPF-DKIM>`_
|
||||
|
||||
.. image:: mailjet_api/authenticate.png
|
||||
:align: center
|
||||
:alt: Authenticate the domain with SPF/DKIM records in Mailjet.
|
||||
|
||||
.. _maintain/mailjet-api/odoo-setup:
|
||||
@@ -187,30 +181,8 @@ settings can be found on :menuselection:`Mailjet --> Account Settings --> SMTP
|
||||
Settings`.
|
||||
|
||||
Then, if the Mailjet server is used for mass emailing, set the :guilabel:`Priority` value higher
|
||||
than that of any transactional email server(s). Finally, save the settings and :guilabel:`Test the Connection`.
|
||||
than that of any transactional email server(s). Finally, save the settings and :guilabel:`Test the
|
||||
Connection`.
|
||||
|
||||
.. image:: mailjet_api/server-settings.png
|
||||
:align: center
|
||||
:alt: Odoo outgoing email server settings.
|
||||
|
||||
.. important::
|
||||
In order for the notifications feature to work using Mailjet, there are three settings that need
|
||||
to be set in Odoo.
|
||||
|
||||
#. The :guilabel:`From Filter` needs to be set on the server configuration. It is recommended
|
||||
to set it as a domain and not a full email address. It should match the domain in the two
|
||||
proceeding steps. For more information, check out the :ref:`FROM filtering documentation
|
||||
<email-outbound-different-servers-personalized-from-filtering>`.
|
||||
#. The :guilabel:`mail.default.from` system parameter must have the value
|
||||
`notifications\@yourdomain.com`.
|
||||
#. The :guilabel:`mail.default.from_filter` system parameter must have the value
|
||||
`yourdomain.com`. Replace `yourdomain` with the custom domain for the Odoo database. If there
|
||||
isn't one, then use the :guilabel:`mail.catchall.domain` system parameter.
|
||||
|
||||
For more information, check out the :ref:`"Using a unique email address" documentation
|
||||
<email-outbound-unique-address>`.
|
||||
|
||||
The :guilabel:`System Parameters` can be accessed by activating the :ref:`developer-mode`.
|
||||
|
||||
Once the setup is complete, the Odoo database is ready to use the Mailjet email server for mass
|
||||
mailing or transactional emails.
|
||||
|
||||
|
Before Width: | Height: | Size: 12 KiB |