Compare commits
87 Commits
fhe-odoo-p
...
fhe-odoo-p
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
9d28b185c3 | ||
|
|
81418fa957 | ||
|
|
68b0777e42 | ||
|
|
4615ad3796 | ||
|
|
f83496a9bd | ||
|
|
1a6794ddab | ||
|
|
9ed7717c03 | ||
|
|
a412e1dc8a | ||
|
|
abeb26d0b6 | ||
|
|
cd2fb55041 | ||
|
|
169e17b87c | ||
|
|
e4004619d4 | ||
|
|
2a0260cb63 | ||
|
|
746d14ac84 | ||
|
|
1fadcf5046 | ||
|
|
dfeff11d9c | ||
|
|
ef7efd613d | ||
|
|
0ead9fe115 | ||
|
|
762dd095f9 | ||
|
|
b22d59fc53 | ||
|
|
14e6ed5b34 | ||
|
|
bbba075c02 | ||
|
|
795044f807 | ||
|
|
8d3efe6654 | ||
|
|
b206e4e3da | ||
|
|
d1bca2ba27 | ||
|
|
c51d0b8597 | ||
|
|
62a77f5c3f | ||
|
|
2b4e7dc608 | ||
|
|
5ccbd972ae | ||
|
|
ce24ce46bf | ||
|
|
50c2e15ea1 | ||
|
|
c05dad60ac | ||
|
|
9027ca34c4 | ||
|
|
2b47e906a9 | ||
|
|
ce4c123474 | ||
|
|
7161d016e9 | ||
|
|
8a35cc4b99 | ||
|
|
056497e051 | ||
|
|
56e7746f10 | ||
|
|
63b9bfda8b | ||
|
|
e93b732d3c | ||
|
|
0e7650bf88 | ||
|
|
a109d4c754 | ||
|
|
4b4fc7fad7 | ||
|
|
0bf7fb49f8 | ||
|
|
cb7e15e94b | ||
|
|
164b40c60f | ||
|
|
d1e02b7f54 | ||
|
|
c65b0d769f | ||
|
|
7b237096b0 | ||
|
|
884313c1bc | ||
|
|
18e8581d58 | ||
|
|
ec7913246b | ||
|
|
9a15bdaff5 | ||
|
|
2adf5c1923 | ||
|
|
6673db6162 | ||
|
|
ba1dbefdc1 | ||
|
|
076776df76 | ||
|
|
0e96a8ce26 | ||
|
|
0ca9c66d81 | ||
|
|
e40d5d6048 | ||
|
|
e4fe95545c | ||
|
|
3a49470838 | ||
|
|
612e1ac13a | ||
|
|
06a66ccd56 | ||
|
|
36f7ce1797 | ||
|
|
9a06e69204 | ||
|
|
6622e600db | ||
|
|
a4b32b7372 | ||
|
|
d7a6a7a675 | ||
|
|
7762a884eb | ||
|
|
c3f552ba26 | ||
|
|
775dbc2f4d | ||
|
|
b9ad2184be | ||
|
|
90627a9175 | ||
|
|
daa92467b9 | ||
|
|
3b6a135dc8 | ||
|
|
f296bb12a6 | ||
|
|
4d374037ff | ||
|
|
d536328c4e | ||
|
|
6a6e1fcaf0 | ||
|
|
ae3a1157bf | ||
|
|
9ada4fbcd7 | ||
|
|
192de032eb | ||
|
|
4a6016a116 | ||
|
|
6703f19312 |
1
.gitignore
vendored
@@ -2,6 +2,7 @@
|
||||
*.mo
|
||||
.*
|
||||
!.gitattributes
|
||||
!.weblate.json
|
||||
|
||||
# Sphinx build files
|
||||
_build/
|
||||
|
||||
152
.tx/config
@@ -1,152 +0,0 @@
|
||||
[main]
|
||||
host = https://www.transifex.com
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:administration]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/administration.po
|
||||
source_file = locale/sources/administration.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = administration
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:applications]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/applications.po
|
||||
source_file = locale/sources/applications.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = applications
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:essentials]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/essentials.po
|
||||
source_file = locale/sources/essentials.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = essentials
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:finance]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/finance.po
|
||||
source_file = locale/sources/finance.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = finance
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:general]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/general.po
|
||||
source_file = locale/sources/general.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = general
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:hr]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/hr.po
|
||||
source_file = locale/sources/hr.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = hr
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:index]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/index.po
|
||||
source_file = locale/sources/index.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = index
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:inventory_and_mrp]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/inventory_and_mrp.po
|
||||
source_file = locale/sources/inventory_and_mrp.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = inventory_and_mrp
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:marketing]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/marketing.po
|
||||
source_file = locale/sources/marketing.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = marketing
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:productivity]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/productivity.po
|
||||
source_file = locale/sources/productivity.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = productivity
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:sales]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/sales.po
|
||||
source_file = locale/sources/sales.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = sales
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:services]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/services.po
|
||||
source_file = locale/sources/services.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = services
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:user_settings]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/settings.po
|
||||
source_file = locale/sources/settings.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = settings
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:studio]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/studio.po
|
||||
source_file = locale/sources/studio.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = studio
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
|
||||
[o:odoo:p:odoo-18-doc:r:websites]
|
||||
file_filter = locale/<lang>/LC_MESSAGES/websites.po
|
||||
source_file = locale/sources/websites.pot
|
||||
type = POT
|
||||
minimum_perc = 0
|
||||
resource_name = websites
|
||||
replace_edited_strings = false
|
||||
keep_translations = false
|
||||
source_lang = en
|
||||
81
.weblate.json
Normal file
@@ -0,0 +1,81 @@
|
||||
{
|
||||
"projects": {
|
||||
"odoo-19-doc": [
|
||||
{
|
||||
"name": "administration",
|
||||
"filemask": "locale/*/LC_MESSAGES/administration.po",
|
||||
"new_base": "locale/sources/administration.pot"
|
||||
},
|
||||
{
|
||||
"name": "applications",
|
||||
"filemask": "locale/*/LC_MESSAGES/applications.po",
|
||||
"new_base": "locale/sources/applications.pot"
|
||||
},
|
||||
{
|
||||
"name": "essentials",
|
||||
"filemask": "locale/*/LC_MESSAGES/essentials.po",
|
||||
"new_base": "locale/sources/essentials.pot"
|
||||
},
|
||||
{
|
||||
"name": "finance",
|
||||
"filemask": "locale/*/LC_MESSAGES/finance.po",
|
||||
"new_base": "locale/sources/finance.pot"
|
||||
},
|
||||
{
|
||||
"name": "general",
|
||||
"filemask": "locale/*/LC_MESSAGES/general.po",
|
||||
"new_base": "locale/sources/general.pot"
|
||||
},
|
||||
{
|
||||
"name": "hr",
|
||||
"filemask": "locale/*/LC_MESSAGES/hr.po",
|
||||
"new_base": "locale/sources/hr.pot"
|
||||
},
|
||||
{
|
||||
"name": "index",
|
||||
"filemask": "locale/*/LC_MESSAGES/index.po",
|
||||
"new_base": "locale/sources/index.pot"
|
||||
},
|
||||
{
|
||||
"name": "inventory_and_mrp",
|
||||
"filemask": "locale/*/LC_MESSAGES/inventory_and_mrp.po",
|
||||
"new_base": "locale/sources/inventory_and_mrp.pot"
|
||||
},
|
||||
{
|
||||
"name": "marketing",
|
||||
"filemask": "locale/*/LC_MESSAGES/marketing.po",
|
||||
"new_base": "locale/sources/marketing.pot"
|
||||
},
|
||||
{
|
||||
"name": "productivity",
|
||||
"filemask": "locale/*/LC_MESSAGES/productivity.po",
|
||||
"new_base": "locale/sources/productivity.pot"
|
||||
},
|
||||
{
|
||||
"name": "sales",
|
||||
"filemask": "locale/*/LC_MESSAGES/sales.po",
|
||||
"new_base": "locale/sources/sales.pot"
|
||||
},
|
||||
{
|
||||
"name": "services",
|
||||
"filemask": "locale/*/LC_MESSAGES/services.po",
|
||||
"new_base": "locale/sources/services.pot"
|
||||
},
|
||||
{
|
||||
"name": "studio",
|
||||
"filemask": "locale/*/LC_MESSAGES/studio.po",
|
||||
"new_base": "locale/sources/studio.pot"
|
||||
},
|
||||
{
|
||||
"name": "user_settings",
|
||||
"filemask": "locale/*/LC_MESSAGES/settings.po",
|
||||
"new_base": "locale/sources/settings.pot"
|
||||
},
|
||||
{
|
||||
"name": "websites",
|
||||
"filemask": "locale/*/LC_MESSAGES/websites.po",
|
||||
"new_base": "locale/sources/websites.pot"
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
3
conf.py
@@ -232,12 +232,11 @@ sphinx.transforms.i18n.docname_to_domain = (
|
||||
# option. If a provided version has no label, the version string is used as label.
|
||||
versions_names = {
|
||||
'master': "Master",
|
||||
'19.0': "Odoo 19",
|
||||
'saas-18.4': "Odoo 18.4",
|
||||
'saas-18.3': "Odoo 18.3",
|
||||
'saas-18.2': "Odoo 18.2",
|
||||
'saas-18.1': "Odoo 18.1",
|
||||
'18.0': "Odoo 18",
|
||||
'saas-17.4': "Odoo 17.4",
|
||||
'17.0': "Odoo 17",
|
||||
'16.0': "Odoo 16",
|
||||
}
|
||||
|
||||
@@ -160,49 +160,21 @@ Web Services
|
||||
============
|
||||
|
||||
In order to programmatically retrieve the list of the databases displayed in the
|
||||
`database manager <https://www.odoo.com/my/databases>`_, call the method `list` of the model
|
||||
`odoo.database` via a :doc:`Web Service </developer/howtos/web_services>` call.
|
||||
`database manager <https://www.odoo.com/my/databases>`_, call the method ``list`` of the model
|
||||
``odoo.database`` via an :doc:`external JSON-2 API </developer/reference/external_api>` call.
|
||||
|
||||
Inspired from the examples provided in the :doc:`Web Services </developer/howtos/web_services>`
|
||||
section, this is how to retrieve this list with the library ``xmlrpc.client``::
|
||||
.. example::
|
||||
.. code:: python
|
||||
|
||||
import xmlrpc.client
|
||||
import requests
|
||||
|
||||
USER = 'user@domain.tld'
|
||||
APIKEY = 'your_apikey'
|
||||
APIKEY = "your_apikey"
|
||||
|
||||
root = 'https://www.odoo.com/xmlrpc/'
|
||||
uid = xmlrpc.client.ServerProxy(root + 'common').login('openerp', USER, APIKEY)
|
||||
sock = xmlrpc.client.ServerProxy(root + 'object')
|
||||
databases_list = sock.execute('openerp', uid, APIKEY, 'odoo.database', 'list')
|
||||
|
||||
And here is the equivalent example with JSON-RPC::
|
||||
|
||||
import json
|
||||
import random
|
||||
import urllib.request
|
||||
|
||||
USER = 'user@domain.tld'
|
||||
APIKEY = 'your_apikey'
|
||||
|
||||
def json_rpc(url, method, params):
|
||||
data = {
|
||||
'jsonrpc': '2.0',
|
||||
'method': method,
|
||||
'params': params,
|
||||
'id': random.randint(0, 1000000000),
|
||||
}
|
||||
req = urllib.request.Request(url=url, data=json.dumps(data).encode(), headers={
|
||||
"Content-Type": "application/json",
|
||||
})
|
||||
reply = json.loads(urllib.request.urlopen(req).read().decode('UTF-8'))
|
||||
if reply.get('error'):
|
||||
raise Exception(reply['error'])
|
||||
return reply['result']
|
||||
|
||||
def call(url, service, method, *args):
|
||||
return json_rpc(url, 'call', {'service': service, 'method': method, 'args': args})
|
||||
|
||||
url = 'https://www.odoo.com/jsonrpc'
|
||||
uid = call(url, 'common', 'login', 'openerp', USER, APIKEY)
|
||||
databases_list = call(url, 'object', 'execute', 'openerp', uid, APIKEY, 'odoo.database', 'list')
|
||||
requests.post(
|
||||
"https://www.odoo.com/json/2/odoo.database/list",
|
||||
headers={
|
||||
"Authorization": f"bearer {APIKEY}",
|
||||
"X-Odoo-Database": "openerp",
|
||||
}
|
||||
json={},
|
||||
)
|
||||
|
||||
@@ -31,60 +31,48 @@ This matrix shows the support status of every version.
|
||||
- On-Premise
|
||||
- Release date
|
||||
- End of support
|
||||
* - Odoo SaaS 18.4
|
||||
* - **Odoo 19.0**
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
- September 2025
|
||||
- September 2028 (planned)
|
||||
* - Odoo SaaS 18.4
|
||||
- |red|
|
||||
- N/A
|
||||
- N/A
|
||||
- July 2025
|
||||
-
|
||||
* - Odoo SaaS 18.3
|
||||
- |green|
|
||||
- |red|
|
||||
- N/A
|
||||
- N/A
|
||||
- May 2025
|
||||
-
|
||||
* - Odoo SaaS 18.2
|
||||
- |green|
|
||||
- |red|
|
||||
- N/A
|
||||
- N/A
|
||||
- March 2025
|
||||
-
|
||||
* - 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
|
||||
- October 2024
|
||||
* - Odoo SaaS 17.2
|
||||
- |red|
|
||||
- N/A
|
||||
- N/A
|
||||
- April 2024
|
||||
- October 2024
|
||||
- September 2027 (planned)
|
||||
* - **Odoo 17.0**
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
- November 2023
|
||||
- October 2026 (planned)
|
||||
- September 2026 (planned)
|
||||
* - **Odoo 16.0**
|
||||
- |green|
|
||||
- |green|
|
||||
- |green|
|
||||
- |red|
|
||||
- |red|
|
||||
- |red|
|
||||
- October 2022
|
||||
- October 2025 (planned)
|
||||
- September 2025
|
||||
* - **Odoo 15.0**
|
||||
- |red|
|
||||
- |red|
|
||||
|
||||
@@ -15,7 +15,7 @@ The icon used to display activities varies, depending on the :ref:`activity type
|
||||
- :icon:`fa-phone` :guilabel:`(phone)` icon: a phone call is scheduled.
|
||||
- :icon:`fa-envelope` :guilabel:`(envelope)` icon: an email is scheduled.
|
||||
- :icon:`fa-check` :guilabel:`(check)` icon: a "to-do" is scheduled.
|
||||
- :icon:`fa-users` :guilabel:`(people)` icon: a meeting is scheduled.
|
||||
- :icon:`fa-users` :guilabel:`(users)` icon: a meeting is scheduled.
|
||||
- :icon:`fa-upload` :guilabel:`(upload)` icon: a document is scheduled to be uploaded.
|
||||
- :icon:`fa-pencil-square-o` :guilabel:`(request signature)` icon: a signature request is scheduled.
|
||||
|
||||
@@ -33,13 +33,12 @@ Chatter
|
||||
|
||||
Activities can be created from the chatter on any record.
|
||||
|
||||
To schedule a new activity, click the :guilabel:`Activities` button, located at the top of the
|
||||
To schedule a new activity, click the :guilabel:`Activity` button, located at the top of the
|
||||
chatter. In the :guilabel:`Schedule Activity` pop-up window that appears, :ref:`fill out the
|
||||
Schedule Activity form <activities/form>`.
|
||||
|
||||
.. image:: activities/chatter.png
|
||||
:align: center
|
||||
:alt: New activity type form.
|
||||
:alt: Activity button in chatter field.
|
||||
|
||||
.. _activities/kanban:
|
||||
|
||||
@@ -54,7 +53,6 @@ Click :guilabel:`+ Schedule An Activity`, then proceed to :ref:`fill out the Sch
|
||||
<activities/form>`.
|
||||
|
||||
.. image:: activities/schedule-kanban-activity.png
|
||||
:align: center
|
||||
:alt: Kanban view of the CRM pipeline and the option to schedule an activity.
|
||||
|
||||
.. note::
|
||||
@@ -80,7 +78,6 @@ appears.
|
||||
the existing scheduled activity. Click on the activity type's icon to schedule another activity.
|
||||
|
||||
.. image:: activities/schedule-list-activity.png
|
||||
:align: center
|
||||
:alt: List view of the CRM pipeline and the option to schedule an activity.
|
||||
|
||||
.. _activities/activity:
|
||||
@@ -94,7 +91,6 @@ the top-right corner of the main menu bar, amongst the other view option icons.
|
||||
To open the activity view, click the |clock|.
|
||||
|
||||
.. image:: activities/activities.png
|
||||
:align: center
|
||||
:alt: Top-right menu with the Activities icon called out.
|
||||
|
||||
In this view, all the available activities are listed in the columns, while the horizontal entries
|
||||
@@ -103,7 +99,7 @@ represent all the individual records.
|
||||
Activities that appear green have a due date in the future, activities that appear orange are due
|
||||
today, while activities appearing red are overdue.
|
||||
|
||||
Color bars in each column represent records for specific activity types, and display a number
|
||||
Colored bars in each column represent records for specific activity types, and display a number
|
||||
indicating how many activities are scheduled for that type.
|
||||
|
||||
If multiple activity types are scheduled for a record, a number appears in the box, indicating the
|
||||
@@ -114,11 +110,10 @@ total number of scheduled activities.
|
||||
regardless of the activity type, or the view.
|
||||
|
||||
To schedule an activity for a record, hover over the corresponding field. Click the :icon:`fa-plus`
|
||||
:guilabel:`(plus)` icon that appears, and then :ref:`fill out the Schedule Activity form
|
||||
:guilabel:`(plus)` icon, and then :ref:`fill out the Schedule Activity form
|
||||
<activities/form>`.
|
||||
|
||||
.. image:: activities/activity-view.png
|
||||
:align: center
|
||||
:alt: Activity view of the CRM pipeline and the option to schedule an activity.
|
||||
|
||||
.. _activities/form:
|
||||
@@ -131,47 +126,47 @@ Activities can be scheduled from many different places, such as from the :ref:`c
|
||||
the :ref:`Kanban view <activities/kanban>`, :ref:`list view <activities/list>`, or :ref:`activity
|
||||
view <activities/activity>`.
|
||||
|
||||
Enter the following information on the form:
|
||||
First, select an activity type:
|
||||
|
||||
- :guilabel:`Activity Type`: select the type of activity from the drop-down menu. The default
|
||||
options are: :guilabel:`Email`, :guilabel:`Call`, :guilabel:`Meeting`, or :guilabel:`To-Do`.
|
||||
Depending on what other applications are installed, additional options may be available.
|
||||
- :guilabel:`Summary`: enter a short title for the activity, such as `Discuss Proposal`.
|
||||
- :icon:`fa-check` :guilabel:`To-Do`
|
||||
- :icon:`fa-envelope` :guilabel:`Email`
|
||||
- :icon:`fa-phone` :guilabel:`Call`
|
||||
- :icon:`fa-users` :guilabel:`Meeting`
|
||||
- :guilabel:`Do Stuff`
|
||||
- :icon:`fa-upload` :guilabel:`Document`
|
||||
- :icon:`fa-pencil-square-o` :guilabel:`Signature`
|
||||
- :icon:`fa-check` :guilabel:`Grant Approval`
|
||||
|
||||
Then, enter the following information:
|
||||
|
||||
- **Summary**: enter a short title for the activity, such as `Discuss Proposal`.
|
||||
- :guilabel:`Due Date`: using the calendar popover, select the activity's deadline.
|
||||
- :guilabel:`Assigned to`: by default, the current user populates this field. To assign a different
|
||||
user to the activity, select them from the drop-down menu.
|
||||
- :guilabel:`Notes`: add any additional information for the activity in this field.
|
||||
|
||||
When the :guilabel:`Schedule Activity` pop-up window is completed, click one of the following
|
||||
buttons:
|
||||
|
||||
- :guilabel:`Open Calendar`: opens the user's calendar to add and schedule the activity.
|
||||
|
||||
Click on the desired date and time for the activity, and a :guilabel:`New Event` pop-up window
|
||||
appears. The summary from the *Schedule Activity* pop-up window populates the :guilabel:`Title`
|
||||
field.
|
||||
|
||||
Enter the information in the :guilabel:`New Event` pop-up window, then click :guilabel:`Save &
|
||||
Close` to schedule it. Once scheduled, the activity is added to the chatter under the
|
||||
:guilabel:`Planned Activities` section.
|
||||
|
||||
.. important::
|
||||
The :guilabel:`Open Calendar` button **only** appears if the :guilabel:`Activity Type` is set
|
||||
to either :guilabel:`Call` or :guilabel:`Meeting`.
|
||||
|
||||
- :guilabel:`Schedule`: schedules the activity, and adds the activity to the chatter under
|
||||
:guilabel:`Planned Activities`.
|
||||
- :guilabel:`Schedule & Mark as Done`: adds the details of the activity to the chatter under
|
||||
:guilabel:`Today`. The activity is not scheduled, and is automatically marked as done.
|
||||
- :guilabel:`Done & Schedule Next`: adds the details of the activity to the chatter under
|
||||
:guilabel:`Today`. The activity is not scheduled, is automatically marked as done, and a new
|
||||
:guilabel:`Schedule Activity` pop-up window appears.
|
||||
- :guilabel:`Cancel`: discards any changes made on the :guilabel:`Schedule Activity` pop-up window.
|
||||
- :guilabel:`Log a note`: add any additional information for the activity in this field.
|
||||
|
||||
.. image:: activities/schedule-pop-up.png
|
||||
:align: center
|
||||
:alt: View of CRM leads and the option to schedule an activity.
|
||||
|
||||
Click :guilabel:`Save` to schedule the activity, and add the activity to the chatter under
|
||||
:guilabel:`Planned Activities`. Click :guilabel:`Mark Done` to add the details of the activity to
|
||||
the chatter under :guilabel:`Today`.
|
||||
|
||||
Schedule a meeting
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
If :icon:`fa-users` :guilabel:`Meeting` is selected as the activity type, enter the information as
|
||||
instructed above, then click :guilabel:`Schedule`. This opens the user's calendar to add and
|
||||
schedule the activity.
|
||||
|
||||
Click on the desired date and time for the activity, and a :guilabel:`New Event` pop-up window
|
||||
appears. The summary from the *Schedule Activity* pop-up window populates the :guilabel:`Title`
|
||||
field.
|
||||
|
||||
Enter the information in the :guilabel:`New Event` pop-up window, then click :guilabel:`Save &
|
||||
Close` to schedule it. Once scheduled, the activity is added to the chatter under the
|
||||
:guilabel:`Planned Activities` section.
|
||||
|
||||
.. _activities/all:
|
||||
|
||||
All scheduled activities
|
||||
@@ -180,7 +175,7 @@ All scheduled activities
|
||||
To view a consolidated list of activities, organized by application, click the |clock| in the header
|
||||
menu, located in the top-right corner.
|
||||
|
||||
If any activities are scheduled, the number of activities appear in a red bubble on the
|
||||
If any activities are scheduled, the number of activities appears in a red bubble on the
|
||||
|clock|.
|
||||
|
||||
All activities for each application are further divided into subsections, indicating where in the
|
||||
@@ -189,16 +184,14 @@ activities that are :guilabel:`Late`, due :guilabel:`Today`, and scheduled in th
|
||||
:guilabel:`Future`.
|
||||
|
||||
.. example::
|
||||
In the *Time Off* application, one activity is scheduled to be done in the *All Time Off*
|
||||
In the **Time Off** application, one activity is scheduled to be done in the *All Time Off*
|
||||
requests dashboard, and six activities are scheduled to be done in the *Allocations* dashboard.
|
||||
|
||||
These requests appear in two separate lists in the all activities drop-down menu: one labeled
|
||||
`Time Off` and one labeled `Time Off Allocation`.
|
||||
|
||||
.. image:: activities/activities-menu.png
|
||||
:align: center
|
||||
:alt: The list of activities that is accessed from the main menu bar. Two entries for the Time
|
||||
Off application are highlighted.
|
||||
:alt: The list of activities that is accessed from the main menu bar.
|
||||
|
||||
.. tip::
|
||||
The option to :ref:`Request a Document <documents/request>` is available at the bottom of the
|
||||
@@ -213,18 +206,16 @@ To view the currently configured types of activities in the database, navigate t
|
||||
:menuselection:`Settings app --> Discuss section --> Activities setting --> Activity Types`.
|
||||
|
||||
.. image:: activities/settings-activities-types.png
|
||||
:align: center
|
||||
:alt: Activity Types button in the Settings application under the Discuss section.
|
||||
|
||||
Doing so reveals the :guilabel:`Activity Types` page, where the existing activity types are found.
|
||||
|
||||
.. tip::
|
||||
Individual applications have a list of *Activity Types* dedicated to that application. For
|
||||
example, to view and edit the activities available for the *CRM* application, go to
|
||||
example, to view and edit the activities available for the **CRM** application, go to
|
||||
:menuselection:`CRM app --> Configuration --> Activity Types`.
|
||||
|
||||
.. image:: activities/activity-list.png
|
||||
:align: center
|
||||
:alt: The list of activity types already configured and available.
|
||||
|
||||
Edit activity types
|
||||
@@ -241,10 +232,8 @@ Create new activity types
|
||||
-------------------------
|
||||
|
||||
To create a new :ref:`activity type <activities/types>`, click :guilabel:`New` from the
|
||||
:guilabel:`Activity Types` page, and a blank activity type form loads.
|
||||
|
||||
Enter a :guilabel:`Name` for the activity type at the top of the form, then enter the following
|
||||
information on the form.
|
||||
:guilabel:`Activity Types` page, and a blank activity type form loads. Enter a :guilabel:`Name` for
|
||||
the activity type at the top of the form, then enter the following information on the form.
|
||||
|
||||
Activity Settings section
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
@@ -257,7 +246,7 @@ Activity Settings section
|
||||
- :guilabel:`Call` or :guilabel:`Meeting`: If selected, users have the option to open their
|
||||
calendar to select a date and time for the activity.
|
||||
- :guilabel:`Request Signature`: If selected, a link to open a signature request pop-up window is
|
||||
automatically added to the planned activity in the chatter. This requires the Odoo *Sign*
|
||||
automatically added to the planned activity in the chatter. This requires the Odoo **Sign**
|
||||
application to be installed.
|
||||
|
||||
.. note::
|
||||
@@ -309,7 +298,6 @@ It is possible to have another activity either suggested or triggered. To do so,
|
||||
:guilabel:`after previous activity deadline` or :guilabel:`after completion date`.
|
||||
|
||||
.. image:: activities/new-activity.png
|
||||
:align: center
|
||||
:alt: A new Activity form with all the fields filled out.
|
||||
|
||||
.. seealso::
|
||||
|
||||
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 6.0 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 24 KiB |
|
Before Width: | Height: | Size: 32 KiB After Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 22 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 12 KiB |
@@ -197,8 +197,8 @@ Previous Period` and :guilabel:`(Time Filter): Previous Year`.
|
||||
|
||||
.. important::
|
||||
For some reports, the :guilabel:`Comparison` section **only** appears in the search bar drop-down
|
||||
menu if one (or more) time periods have been selected in the :guilabel:`Filters` column. This is
|
||||
because there is nothing to compare if no time period is specified.
|
||||
menu if one (or more) time periods have been selected in the :guilabel:`Filters` column. This is
|
||||
because there is nothing to compare if no time period is specified.
|
||||
|
||||
Additionally, some reports only allow use of the :guilabel:`Comparison` feature when the
|
||||
:icon:`fa-pie-chart` :guilabel:`(Pie Chart)` graph type or the :icon:`oi-view-pivot`
|
||||
@@ -260,19 +260,47 @@ following options:
|
||||
|
||||
- :guilabel:`Filter name`: Name of the favorited search.
|
||||
- :guilabel:`Default filter`: Sets the favorited search as the default filter for the view.
|
||||
- :guilabel:`Shared`: Makes the favorited search available to all users. Otherwise, by default, the
|
||||
favorited search is only available to the user who created it.
|
||||
|
||||
Once the options are set, click :guilabel:`Save` to save the favorited search.
|
||||
|
||||
.. image:: search/favorites.png
|
||||
:alt: Saving a favorite search on the Sales Analysis report.
|
||||
:scale: 80%
|
||||
|
||||
Saved favorites can be accessed by clicking the :icon:`fa-trash` :guilabel:`(delete)` icon in the
|
||||
search bar, then selecting the saved filter in the :guilabel:`Favorites` drop-down menu. To remove a
|
||||
saved favorite, click the :icon:`fa-trash` :guilabel:`(delete)` icon next to the favorited search.
|
||||
Favorited searches are accessed by clicking the :icon:`fa-caret-down` :guilabel:`(dropdown)` icon
|
||||
in the search bar, and are shown under :icon:`fa-star` :guilabel:`Favorites`. Searches that are only
|
||||
visible to the current user, i.e., that are not shared, are shown first, while any :ref:`shared
|
||||
favorites <search/favorites-share>`, whether created by the current user or another user, are shown
|
||||
in a second section.
|
||||
|
||||
To edit, archive, or remove a favorited search, hover over the search name in the list of favorites
|
||||
and click :icon:`fa-pencil` :guilabel:`(Edit favorite)`. The following fields can be modified:
|
||||
:guilabel:`Filter Name`, :ref:`Shared with <search/favorites-share>`, :guilabel:`Default Filter`,
|
||||
:guilabel:`Domain`. To archive or remove the favorite, click :icon:`fa-cog` :guilabel:`(Actions)`
|
||||
then :icon:`oi-archive` :guilabel:`Archive` or :icon:`fa-trash` :guilabel:`Delete`, as appropriate.
|
||||
|
||||
.. tip::
|
||||
To view *all* favorited searches, first activate :ref:`developer-mode`, and navigate to
|
||||
:menuselection:`Settings app --> Technical --> User Interface: User-defined Filters`. From here,
|
||||
all favorited searches can be viewed, edited, archived, or deleted.
|
||||
- When a favorited search is in use, additional filters or groups can be used to further refine
|
||||
the search. The conditions applied by the favorited search can also be modified by hovering
|
||||
over the :icon:`fa-star` :guilabel:`(star)` beside the search name then clicking the
|
||||
:icon:`fa-cog` :guilabel:`(cog)` icon. These changes only affect the current search.
|
||||
- To edit the grouping or sorting of a favorited search, :ref:`activate developer mode
|
||||
<developer-mode>` when editing the search, then modify the :guilabel:`Context` or
|
||||
:guilabel:`Sort` fields as needed.
|
||||
- To view *all* favorited searches, with developer mode activated, navigate to
|
||||
:menuselection:`Settings app --> Technical --> User-defined Filters`. From here, all favorited
|
||||
searches can be viewed, edited, archived, or deleted.
|
||||
|
||||
.. _search/favorites-share:
|
||||
|
||||
Share a favorited search
|
||||
------------------------
|
||||
|
||||
By default, a favorited search is only available to the user who created it. To share a favorited
|
||||
search with other users, click :guilabel:`Edit` when creating the favorite, or, for an existing
|
||||
favorite, click :icon:`fa-pencil` :guilabel:`(Edit favorite)` after hovering over the search name in
|
||||
the list of favorites.
|
||||
|
||||
In the :guilabel:`Shared with` field, select the relevant users from the drop-down menu, then click
|
||||
:icon:`fa-cloud-upload` :guilabel:`(Save manually)`. The favorite is now visible for all selected
|
||||
users under :icon:`fa-star` :guilabel:`Favorites`.
|
||||
|
||||
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 52 KiB |
@@ -30,7 +30,7 @@ Connect a bank for automatic synchronization
|
||||
--------------------------------------------
|
||||
|
||||
To connect your bank account to your database, go to :menuselection:`Accounting --> Configuration
|
||||
--> Add a Bank Account`, select your bank in the list, click on :guilabel:`Connect`, and follow the
|
||||
--> Add a Bank Account`, select your bank in the list, click :guilabel:`Connect`, and follow the
|
||||
instructions.
|
||||
|
||||
.. seealso::
|
||||
@@ -45,7 +45,7 @@ If your banking institution is not available in Odoo, or if you don't want to co
|
||||
account to your database, you can configure your bank account manually.
|
||||
|
||||
To manually add a bank account, go to :menuselection:`Accounting --> Configuration --> Add a Bank
|
||||
Account`, click on :guilabel:`Record transactions manually` (at the bottom right), fill out the bank
|
||||
Account`, click :guilabel:`Record transactions manually` (at the bottom right), fill out the bank
|
||||
information, and click :guilabel:`Create`.
|
||||
|
||||
.. note::
|
||||
@@ -59,7 +59,7 @@ Create a cash journal
|
||||
---------------------
|
||||
|
||||
To create a new cash journal, go to :menuselection:`Accounting --> Configuration --> Accounting:
|
||||
Journals`, click on :guilabel:`Create` and select :guilabel:`Cash` in the :guilabel:`Type` field.
|
||||
Journals`, click :guilabel:`Create` and select :guilabel:`Cash` in the :guilabel:`Type` field.
|
||||
|
||||
For more information on the accounting information fields, read the
|
||||
:ref:`accounting/bank/configuration` section of this page.
|
||||
@@ -125,8 +125,8 @@ You can edit the currency used to enter the transactions.
|
||||
Account number
|
||||
--------------
|
||||
|
||||
If you need to **edit your bank account details**, click on the external link arrow next to your
|
||||
:guilabel:`Account Number`. On the account page, click on the external link arrow next to your
|
||||
If you need to **edit your bank account details**, click the external link arrow next to your
|
||||
:guilabel:`Account Number`. On the account page, click the external link arrow next to your
|
||||
:guilabel:`Bank` and update your bank information accordingly. These details are used when
|
||||
registering payments.
|
||||
|
||||
|
||||
@@ -26,7 +26,7 @@ select the :guilabel:`Internal Transfers` :doc:`reconciliation model <reconcilia
|
||||
button. This reconciliation model button writes the transaction off to the :guilabel:`Internal
|
||||
Transfer` account.
|
||||
|
||||
.. tip::
|
||||
.. important::
|
||||
Remember to reconcile the transaction for both the outgoing transaction on the journal that sends
|
||||
the payment and the incoming transaction on the journal that receives the payment.
|
||||
|
||||
|
||||
@@ -2,18 +2,22 @@
|
||||
Bank reconciliation
|
||||
===================
|
||||
|
||||
**Bank reconciliation** is the process of matching your :doc:`bank transactions <transactions>` with
|
||||
your business records, such as :doc:`customer invoices <../customer_invoices>`, :doc:`vendor bills
|
||||
<../vendor_bills>`, and :doc:`payments <../payments>`. Not only is this compulsory for most
|
||||
businesses, but it also offers several benefits, such as reduced risk of errors in financial
|
||||
reports, detection of fraudulent activities, and improved cash flow management.
|
||||
**Bank reconciliation** is the process of validating :doc:`bank transactions <transactions>`. Many
|
||||
of these transactions are matched with counterpart items related to business records such as
|
||||
:doc:`customer invoices <../customer_invoices>`, :doc:`vendor bills <../vendor_bills>`, and
|
||||
:doc:`payments <../payments>`, while others that may not have a matching counterpart item (such as
|
||||
bank fees) can be written off :ref:`manually <accounting/reconciliation/set-account>` or with
|
||||
:ref:`reconciliation models <accounting/reconciliation/model>`. Not only is bank reconciliation
|
||||
compulsory for most businesses, but it also offers several benefits, such as reduced risk of errors
|
||||
in financial reports, detection of fraudulent activities, and improved cash flow management.
|
||||
|
||||
Thanks to the bank :doc:`reconciliation models <reconciliation_models>`, Odoo pre-selects the
|
||||
matching entries automatically.
|
||||
Thanks to the :ref:`default matching rules <accounting/reconciliation/reconcile>` and customizable
|
||||
bank :doc:`reconciliation models <reconciliation_models>`, Odoo selects the matching items
|
||||
automatically when possible.
|
||||
|
||||
.. seealso::
|
||||
- `Odoo Tutorials: Bank reconciliation
|
||||
<https://www.odoo.com/slides/slide/bank-reconciliation-2724>`_
|
||||
<https://www.odoo.com/slides/slide/bank-reconciliation-6562>`_
|
||||
- :doc:`bank_synchronization`
|
||||
- :doc:`transactions`
|
||||
|
||||
@@ -22,123 +26,273 @@ matching entries automatically.
|
||||
Bank reconciliation view
|
||||
========================
|
||||
|
||||
To access a bank journal's **reconciliation view**, go to your :guilabel:`Accounting Dashboard` and
|
||||
To access a journal's :guilabel:`Bank Matching` view, go to the :guilabel:`Accounting Dashboard` and
|
||||
either:
|
||||
|
||||
- click the journal name (e.g., :guilabel:`Bank`) to display all transactions, including those
|
||||
previously reconciled or
|
||||
- click the :guilabel:`Reconcile items` button to display all transactions Odoo pre-selected for
|
||||
reconciliation. You can remove the :guilabel:`Not Matched` filter from the search bar to include
|
||||
previously reconciled transactions.
|
||||
- click the journal name (e.g., :guilabel:`Bank`) or its :guilabel:`Transactions` button to display
|
||||
all transactions, including those previously reconciled, or
|
||||
- click the :guilabel:`x to reconcile` button to display only unreconciled transactions. To include
|
||||
previously reconciled transactions, remove the :guilabel:`Not Matched` filter from the search bar.
|
||||
|
||||
.. image:: reconciliation/bank-card.png
|
||||
:alt: Reaching the bank reconciliation tool from your accounting dashboard
|
||||
:alt: Reaching the bank reconciliation tool from the accounting dashboard
|
||||
|
||||
The bank reconciliation view is structured into three distinct sections: transactions, counterpart
|
||||
entries, and resulting entry.
|
||||
The :guilabel:`Bank Matching` view is composed of lines for each transaction of the journal with the
|
||||
newest displayed first. Each transaction has a date, a label, a partner (if set), :ref:`action
|
||||
buttons <accounting/reconciliation/action-buttons>`, and the transaction amount. Each line can be
|
||||
expanded to show additional information and buttons.
|
||||
|
||||
.. image:: reconciliation/user-interface.png
|
||||
:alt: The user interface of the reconciliation view of a bank journal.
|
||||
:alt: The user interface of the bank matching view of a bank journal.
|
||||
|
||||
.. note::
|
||||
Once a :doc:`transaction <transactions>` is reconciled, the suggested action button(s) is
|
||||
replaced with the counterpart entry/entries it was matched with or the account(s) it was written
|
||||
off to.
|
||||
|
||||
.. _accounting/reconciliation/transactions:
|
||||
|
||||
Transactions
|
||||
The transactions section on the left shows all bank transactions, with the newest displayed
|
||||
first. Click a transaction to select it.
|
||||
------------
|
||||
|
||||
Counterpart entries
|
||||
The counterpart entries section on the bottom right displays the options to match the selected
|
||||
bank transaction. Multiple tabs are available, including
|
||||
:ref:`reconciliation/existing-entries`, :ref:`reconciliation/batch-payments`,
|
||||
:ref:`reconciliation/manual-operations`, and :guilabel:`Discuss`, which contains the chatter for
|
||||
the selected bank transaction.
|
||||
Every :doc:`transaction <transactions>` is linked to a journal entry that debits/credits the
|
||||
journal's main account and its :ref:`suspense account <accounting/bank/suspense>` until it is fully
|
||||
reconciled. At that point, the suspense account is replaced with the account of the counterpart item
|
||||
or, in the case of :ref:`manual matching <accounting/reconciliation/set-account>`, the selected
|
||||
account.
|
||||
|
||||
Resulting entry
|
||||
The resulting entry section on the top right displays the selected bank transaction matched with
|
||||
the counterpart entries and includes any remaining debits or credits. In this section, you can
|
||||
validate the reconciliation or mark it as :guilabel:`To Check`. Any :ref:`reconciliation model
|
||||
buttons <reconciliation/button>` are also available in the resulting entry section.
|
||||
.. _accounting/reconciliation/action-buttons:
|
||||
|
||||
Possible action buttons
|
||||
~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Up to two suggested action buttons are available as primary buttons, but all available action
|
||||
buttons are displayed when the transaction is expanded. The following action buttons are available
|
||||
depending on the details of the transaction:
|
||||
|
||||
- :guilabel:`Set Partner`: Open a search view to add a partner to the transaction.
|
||||
- :guilabel:`Set Account`: Open a search view to manually select an account to write off the full
|
||||
amount of the transaction with this account. If necessary, :ref:`edit the line
|
||||
<accounting/reconciliation/edit>` to change the amount.
|
||||
- :guilabel:`Receivable`: Write off the transaction to the receivable account of the partner.
|
||||
- :guilabel:`Sales`: Open a list view of sales orders belonging to the transaction's
|
||||
:guilabel:`Partner` (or proceed directly to the form view if only one relevant sales order
|
||||
exists). Select the relevant sales order(s) and click :guilabel:`Create Invoices`, then return to
|
||||
the :guilabel:`Bank Matching` view and match the invoice(s) using the :guilabel:`Reconcile` action
|
||||
button.
|
||||
- :guilabel:`Payable`: Write off the transaction to the payable account of the partner.
|
||||
- :guilabel:`Reconcile`: Open a search view of existing items from records such as customer
|
||||
invoices, vendor bills, and payments. Select one or multiple items to add counterpart items with
|
||||
the corresponding accounts of those items.
|
||||
- :guilabel:`Batches`: Open a short list of :doc:`batch payments <../payments/batch>`. To view all
|
||||
batch payments, click :guilabel:`Search More ...`. Select a batch payment to add a counterpart
|
||||
item for each payment of the batch with the corresponding account of each payment.
|
||||
- :doc:`reconciliation_models`: Each manual reconciliation model that could apply to the transaction
|
||||
is displayed. Click the reconciliation model's action button to generate the counterpart items
|
||||
defined on the reconciliation model.
|
||||
|
||||
.. note::
|
||||
To remove the partner from a transaction, click the :icon:`fa-times` :guilabel:`(close)` icon
|
||||
next to the partner's name.
|
||||
|
||||
Click the :icon:`fa-chevron-down` :guilabel:`(chevron down)` button next to the possible action
|
||||
buttons of an expanded line to display any of the above action buttons that are hidden due to space
|
||||
limitations, as well as the following:
|
||||
|
||||
- :guilabel:`Upload bills`: Upload one or more bills to be :doc:`digitized
|
||||
<../vendor_bills/invoice_digitization>`. After digitization, the bills are available for matching
|
||||
via the :guilabel:`Reconcile` action button.
|
||||
- :guilabel:`Manage Models`: Open the list view of :doc:`reconciliation_models`.
|
||||
- :guilabel:`Open Journal Entry`: Open the journal entry of this transaction.
|
||||
- :guilabel:`Delete Transaction`: Delete this transaction.
|
||||
|
||||
.. note::
|
||||
Uploading bills from the :guilabel:`Bank Matching` view does not automatically reconcile them
|
||||
with the active transaction.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../../../essentials/in_app_purchase`
|
||||
|
||||
.. _accounting/reconciliation/reconcile:
|
||||
|
||||
Reconcile transactions
|
||||
======================
|
||||
|
||||
Transactions can be matched automatically with the use of :doc:`reconciliation models
|
||||
<reconciliation_models>`, or they can be matched with :ref:`existing entries
|
||||
<reconciliation/existing-entries>`, :ref:`batch payments <reconciliation/batch-payments>`,
|
||||
:ref:`manual operations <reconciliation/manual-operations>`, and :ref:`reconciliation model buttons
|
||||
<reconciliation/button>`.
|
||||
When possible, Odoo automatically reconciles transactions based on their fields.
|
||||
|
||||
#. Select a transaction among unmatched bank transactions.
|
||||
If no partner is set on the transaction, the transaction's :guilabel:`Label` is compared with the
|
||||
:guilabel:`Number`, :guilabel:`Customer Reference`, :guilabel:`Bill Reference`, and
|
||||
:guilabel:`Payment Reference` of existing invoices, bills, and payments.
|
||||
|
||||
If a partner is set on the transaction, the transaction is instead matched with invoices, bills, and
|
||||
payments of the partner based on the :guilabel:`Amount`. The following rules are used in a
|
||||
sequential order to identify and apply a match:
|
||||
|
||||
- Exact match
|
||||
- Discounted match: for payment terms with discounts for early payments
|
||||
- Tolerance match: within 3% to account for merchant fees, rounding differences, and user errors
|
||||
- Currency match: when the transaction is in a different currency than the invoice, bill, or
|
||||
payment (with a 3% tolerance for exchange rate differences)
|
||||
- Amount in label: if the invoice :guilabel:`Amount` is found in the transaction's
|
||||
:guilabel:`Label`
|
||||
|
||||
In addition to using these fixed matching rules, transactions can be matched automatically with the
|
||||
use of :doc:`reconciliation models <reconciliation_models>`. Otherwise, reconcile transactions
|
||||
manually by following these steps:
|
||||
|
||||
#. Expand the desired line among unmatched bank transactions to display all available action
|
||||
buttons.
|
||||
#. Define the counterpart. There are several options for defining a counterpart, including
|
||||
:ref:`matching existing entries <reconciliation/existing-entries>`, :ref:`manual operations
|
||||
<reconciliation/manual-operations>`, :ref:`batch payments <reconciliation/batch-payments>`, and
|
||||
:ref:`reconciliation model buttons <reconciliation/button>`.
|
||||
#. If the resulting entry is not fully balanced, balance it by adding another existing counterpart
|
||||
entry or writing it off with a :ref:`manual operation <reconciliation/manual-operations>`.
|
||||
#. Click the :guilabel:`Validate` button to confirm the reconciliation and move to the next
|
||||
transaction.
|
||||
:ref:`matching existing items <accounting/reconciliation/existing-items>`, :ref:`manually setting
|
||||
the account <accounting/reconciliation/set-account>`, matching with :doc:`batch payments
|
||||
<../payments/batch>`, and using :ref:`reconciliation model buttons
|
||||
<accounting/reconciliation/model>`.
|
||||
#. If the resulting entry is not fully balanced, add another existing counterpart item or write it
|
||||
off by :ref:`setting the account <accounting/reconciliation/set-account>` of the remaining
|
||||
amount.
|
||||
|
||||
.. tip::
|
||||
If you are not sure how to reconcile a particular transaction and would like to deal with it
|
||||
later, use the :guilabel:`To Check` button instead. All transactions marked as :guilabel:`To
|
||||
Check` can be displayed using the :guilabel:`To Check` filter.
|
||||
.. _accounting/reconciliation/existing-items:
|
||||
|
||||
.. note::
|
||||
Bank transactions are posted on the **journal's suspense account** until reconciliation. At this
|
||||
point, reconciliation modifies the transaction journal entry by replacing the bank suspense
|
||||
account with the corresponding receivable, payable, or outstanding account.
|
||||
|
||||
.. _reconciliation/existing-entries:
|
||||
|
||||
Match existing entries
|
||||
----------------------
|
||||
|
||||
This tab contains matching entries Odoo automatically pre-selects according to the reconciliation
|
||||
models. The entry order is based on :doc:`reconciliation models <reconciliation_models>`, with
|
||||
suggested entries appearing first.
|
||||
|
||||
.. tip::
|
||||
The search bar within the :guilabel:`Match Existing Entries` tab allows you to search for
|
||||
specific journal items.
|
||||
|
||||
.. _reconciliation/batch-payments:
|
||||
|
||||
Batch payments
|
||||
Existing items
|
||||
--------------
|
||||
|
||||
:doc:`Batch payments <../payments/batch>` allow you to group different payments to ease
|
||||
reconciliation. Use the :guilabel:`Batch Payments` tab to find batch payments for customers and
|
||||
vendors. Similarly to the :guilabel:`Match Existing Entries` tab, the :guilabel:`Batch Payments` tab
|
||||
has a search bar that allows you to search for specific batch payments.
|
||||
|
||||
.. _reconciliation/manual-operations:
|
||||
|
||||
Manual operations
|
||||
-----------------
|
||||
|
||||
If there is not an existing entry to match the selected transaction, you may instead wish to
|
||||
reconcile the transaction manually by choosing the correct account and amount. Then, complete any
|
||||
of the relevant optional fields.
|
||||
|
||||
.. tip::
|
||||
You can use the :guilabel:`fully paid` option to reconcile a payment, even in cases where only a
|
||||
partial payment is received. A new line appears in the resulting entry section to reflect the
|
||||
open balance registered on the Account Receivable by default. You can choose another
|
||||
account by clicking on the new line in the resulting entry section and selecting the
|
||||
:guilabel:`Account` to record the open balance.
|
||||
To reconcile transactions with existing items related to records such as customer invoices, vendor
|
||||
bills, and payments, click the :guilabel:`Reconcile` action button, select the matching journal
|
||||
item(s) in the list, and click :guilabel:`Select`.
|
||||
|
||||
.. note::
|
||||
Lines are silently reconciled unless a write-off entry is required, which launches a
|
||||
reconciliation wizard.
|
||||
If the :guilabel:`Partner` is set, this list is automatically filtered to only include items
|
||||
related to that partner.
|
||||
|
||||
.. image:: reconciliation/fully-paid.png
|
||||
:alt: Click on fully paid to manually set an invoice as entirely paid.
|
||||
.. tip::
|
||||
Use the search bar within the :guilabel:`Search: Journal Items to Match` window to search for
|
||||
specific journal items.
|
||||
|
||||
.. _reconciliation/button:
|
||||
If a transaction amount is lower than the invoice or bill it is reconciled with, the transaction is
|
||||
fully reconciled, but the difference remains open on the counterpart item. The remaining amount can
|
||||
be left open to be reconciled later or the invoice or bill can be marked as fully paid. To mark the
|
||||
invoice or bill as fully paid, :ref:`edit <accounting/reconciliation/edit>` the line, click
|
||||
:guilabel:`fully paid`, and :guilabel:`Save`. To reverse this, :ref:`edit
|
||||
<accounting/reconciliation/edit>` the line again, click :guilabel:`partial payment`, and
|
||||
:guilabel:`Save`.
|
||||
|
||||
Reconciliation model buttons
|
||||
----------------------------
|
||||
If a transaction amount is greater than the invoice or bill it is reconciled with, the transaction
|
||||
is only partially reconciled. The remaining balance can be reconciled as any other transaction
|
||||
amount.
|
||||
|
||||
Use a :doc:`reconciliation model <reconciliation_models>` button for manual operations that are
|
||||
frequently used. These custom buttons allow you to quickly reconcile bank transactions manually and
|
||||
can also be used in combination with existing entries.
|
||||
.. note::
|
||||
Existing items of draft entries can be matched. Eventual automatic moves (like currency exchange
|
||||
or cash basis moves) are created in draft simultaneously with the reconciliation. Posting the
|
||||
original entry also posts the automatic move.
|
||||
|
||||
.. _accounting/reconciliation/set-account:
|
||||
|
||||
Set account
|
||||
-----------
|
||||
|
||||
If no existing item matches the selected transaction, you can still write off the transaction
|
||||
manually: Click :guilabel:`Set Account`, then choose the appropriate account. To write off only part
|
||||
of the transaction, :ref:`edit the line <accounting/reconciliation/edit>` to reflect the correct
|
||||
value and reconcile the remaining amount as desired.
|
||||
|
||||
.. tip::
|
||||
If the partner is set, write the amount off to their receivable or payable account directly by
|
||||
clicking the :guilabel:`Receivable` or :guilabel:`Payable` :ref:`action button
|
||||
<accounting/reconciliation/action-buttons>`.
|
||||
|
||||
.. _accounting/reconciliation/model:
|
||||
|
||||
Reconciliation models
|
||||
---------------------
|
||||
|
||||
Use :doc:`reconciliation models <reconciliation_models>` to create custom rules that can be applied
|
||||
automatically or manually via custom buttons for operations that are frequently repeated. These
|
||||
custom buttons allow you to quickly reconcile bank transactions manually and can also be combined
|
||||
with other reconciliation models and with counterpart items when reconciling transactions.
|
||||
|
||||
.. example::
|
||||
An outgoing bank transaction for $103 is partially matched with a vendor bill for $100, leaving
|
||||
$3 of the transaction still unreconciled. Use the :guilabel:`Bank Fees` reconciliation model to
|
||||
create a new counterpart item for $3 and reconcile it with the remaining $3 of the bank
|
||||
transaction.
|
||||
|
||||
.. _accounting/reconciliation/edit:
|
||||
|
||||
Edit lines and unreconcile transactions
|
||||
=======================================
|
||||
|
||||
To edit a counterpart item, expand the line, click the :icon:`fa-pencil` :guilabel:`(pencil)` icon,
|
||||
and edit the necessary fields in :guilabel:`Edit Line` window.
|
||||
|
||||
.. note::
|
||||
When the counterpart item is an existing journal item, some fields are read-only.
|
||||
|
||||
If a transaction is partially matched with a counterpart item, use the link to mark the invoice as
|
||||
:guilabel:`fully paid` or to switch back to a :guilabel:`partial payment`.
|
||||
|
||||
To unreconcile a transaction, delete all counterpart items associated with the transaction by
|
||||
clicking on the :icon:`fa-trash` :guilabel:`(trash)` icon.
|
||||
|
||||
.. _accounting/reconciliation/netting:
|
||||
|
||||
Netting
|
||||
=======
|
||||
|
||||
Netting (also known as AP/AR offsetting) is the process of balancing incoming debts from and
|
||||
outgoing debts to the same partner. Reconciling the incoming and outgoing debts creates a new
|
||||
journal entry that balances the debts. Two main scenarios exist:
|
||||
|
||||
- :ref:`A bank transaction balances <accounting/reconciliation/net-transaction>` (either fully or
|
||||
partially) the incoming and outgoing debts.
|
||||
- :ref:`No bank transaction balances <accounting/reconciliation/net-no-transaction>` the incoming
|
||||
and outgoing debts. This situation can occur either when the debts balance each other completely
|
||||
or when the debts remain unbalanced.
|
||||
|
||||
.. _accounting/reconciliation/net-transaction:
|
||||
|
||||
Netting with bank transactions
|
||||
------------------------------
|
||||
|
||||
When a bank transaction balances (either fully or partially) the incoming and outgoing debts,
|
||||
reconcile the bank transaction from the :guilabel:`Bank Matching` view like any other :ref:`existing
|
||||
items <accounting/reconciliation/existing-items>`:
|
||||
|
||||
#. Click :guilabel:`Reconcile` on the transaction.
|
||||
#. Select all the relevant counterpart items on both the payable and receivable side.
|
||||
#. Click :guilabel:`Select`.
|
||||
#. If a balance remains, depending on the details, the following situations are possible:
|
||||
|
||||
- An invoice, bill, or other item is not fully reconciled, and the remaining balance can be
|
||||
:ref:`reconciled <accounting/reconciliation/reconcile>` with other bank transactions.
|
||||
- The bank transaction itself is not fully reconciled, and the remaining balance can be
|
||||
:ref:`reconciled <accounting/reconciliation/reconcile>` as in any other situation.
|
||||
|
||||
.. _accounting/reconciliation/net-no-transaction:
|
||||
|
||||
Netting without bank transactions
|
||||
---------------------------------
|
||||
|
||||
When no bank transaction balances the incoming and outgoing debts, there is nothing to reconcile
|
||||
from the :guilabel:`Bank Matching` view. However, the debt amount is visible in both the account
|
||||
receivable and the account payable. To balance these debts so that they no longer appear on the
|
||||
partner ledger, follow these steps:
|
||||
|
||||
#. Go to :menuselection:`Accounting --> Accounting --> Reconcile`.
|
||||
#. Select the journal items that debit or credit the account receivable and account payable and
|
||||
represent the debts to be netted.
|
||||
#. Click :guilabel:`Reconcile`.
|
||||
#. If the debts don't balance each other perfectly, a :guilabel:`Write-Off Entry` popup window
|
||||
appears, allowing you to decide how to resolve the remaining balance:
|
||||
|
||||
- Select :guilabel:`Allow partials` to only partially reconcile the account receivable and
|
||||
account payable and leave the remaining balance open.
|
||||
- Use a :doc:`reconciliation model button <reconciliation_models>` to write off the balance.
|
||||
- Manually choose an :guilabel:`Account`, and optionally adjust the :guilabel:`Tax`,
|
||||
:guilabel:`Journal`, :guilabel:`Label`, :guilabel:`Date`, and :guilabel:`To Check` fields.
|
||||
|
||||
The items are then matched, and their balance is removed from the partner ledger, representing that
|
||||
no payment is due for these debts.
|
||||
|
||||
.. note::
|
||||
The workflow is the same whether there are only two equal debts in the receivable and payable
|
||||
accounts or multiple debts in each account.
|
||||
|
||||
|
Before Width: | Height: | Size: 7.6 KiB After Width: | Height: | Size: 6.9 KiB |
|
Before Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 67 KiB After Width: | Height: | Size: 44 KiB |
@@ -2,111 +2,158 @@
|
||||
Reconciliation models
|
||||
=====================
|
||||
|
||||
Reconciliation models are used to automate the :doc:`bank reconciliation <reconciliation>` process,
|
||||
which is especially handy when dealing with recurring entries like bank fees. Reconciliation models
|
||||
can also be helpful in handling :doc:`cash discounts <../customer_invoices/cash_discounts>`.
|
||||
|
||||
Each model is created based on a :ref:`model type <models/type>` and :guilabel:`bank transaction
|
||||
conditions`.
|
||||
Reconciliation models are custom rules that complement the :ref:`default set of matching rules
|
||||
<accounting/reconciliation/reconcile>` and enable more advanced automation of the :doc:`bank
|
||||
reconciliation <reconciliation>` process. These models are especially useful when dealing with
|
||||
recurring flows like writing off bank fees or :doc:`cash discounts
|
||||
<../customer_invoices/cash_discounts>`.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`bank_synchronization`
|
||||
- `Odoo Tutorials: Reconciliation models <https://www.odoo.com/slides/slide/reconciliation-models-6858>`_
|
||||
`Odoo Tutorials: Reconciliation models <https://www.odoo.com/slides/slide/reconciliation-models-6858>`_
|
||||
|
||||
.. _models/type:
|
||||
.. _accounting/rec-models/config:
|
||||
|
||||
Reconciliation model types
|
||||
==========================
|
||||
Configuration
|
||||
=============
|
||||
|
||||
To access reconciliation models, go to the :guilabel:`Accounting Dashboard`, click on the
|
||||
:icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` menu on the bank journal and select
|
||||
:guilabel:`Models` under the :guilabel:`Reconciliation` section. For each reconciliation model, a
|
||||
:guilabel:`Type` must be set. Three types of models exist:
|
||||
To access reconciliation models, go to the :guilabel:`Accounting Dashboard`, click the
|
||||
:icon:`fa-ellipsis-v` :guilabel:`(dropdown menu)` menu on the bank journal, and select
|
||||
:guilabel:`Models` under the :guilabel:`Reconciliation` section.
|
||||
|
||||
- :guilabel:`Button to generate counterpart entry`: a button is created in the resulting entry
|
||||
section of the bank reconciliation view. If clicked, this button generates a counterpart entry to
|
||||
reconcile with the active transaction based on the rules set in the model. The rules specified in
|
||||
the model determine the counterpart entry's account(s), amount(s), label(s), and analytic
|
||||
distribution;
|
||||
- :guilabel:`Rule to suggest counterpart entry`: used for recurring transactions to match the
|
||||
transaction to a new entry based on conditions that must match the information on the transaction;
|
||||
- :guilabel:`Rule to match invoices/bills`: used for recurring transactions to match the transaction
|
||||
to existing invoices, bills, or payments based on conditions that must match the information on
|
||||
the transaction.
|
||||
To create a new reconciliation model, click :guilabel:`New`.
|
||||
|
||||
Default reconciliation models
|
||||
=============================
|
||||
Reconciliation models can be either :guilabel:`Manual` or :guilabel:`Automated`. Manual
|
||||
reconciliation models appear as :ref:`possible action buttons
|
||||
<accounting/reconciliation/action-buttons>` when :doc:`reconciling <reconciliation>`. Automatic
|
||||
reconciliation models apply automatically to transactions that meet the reconciliation model's
|
||||
:ref:`matching conditions <accounting/rec-models/conditions>`.
|
||||
|
||||
In Odoo, different models are available by default depending on the company's fiscal localization.
|
||||
These can be updated if needed. Users can also create their own reconciliation models by clicking
|
||||
:guilabel:`New`.
|
||||
Each reconciliation model is configured with :ref:`matching conditions
|
||||
<accounting/rec-models/conditions>` to identify the relevant bank transactions and :ref:`Counterpart
|
||||
Items <accounting/rec-models/counterpart>` to be generated during reconciliation.
|
||||
|
||||
.. tip::
|
||||
To create an activity on the transaction, select which type of activity to create in the
|
||||
:guilabel:`Next Activity` field.
|
||||
|
||||
.. important::
|
||||
If a record matches with several reconciliation models, the first one in the *sequence* of models
|
||||
is applied. You can rearrange the order by dragging and dropping the handle next to the name.
|
||||
is applied. Rearrange the order by dragging and dropping the handle next to the name.
|
||||
|
||||
.. image:: reconciliation_models/list-view.png
|
||||
:alt: Rearrange the sequence of models in the list view.
|
||||
|
||||
Invoices/Bills perfect match
|
||||
----------------------------
|
||||
.. _accounting/rec-models/conditions:
|
||||
|
||||
This model should be at the top of the *sequence* of models, as it enables Odoo to suggest matching
|
||||
existing invoices or bills with a bank transaction based on set conditions.
|
||||
Matching conditions
|
||||
-------------------
|
||||
|
||||
.. image:: reconciliation_models/invoices-bills-perfect-match.png
|
||||
:alt: Set rules to trigger the reconciliation.
|
||||
A reconciliation model's matching conditions determine to which transactions it applies.
|
||||
|
||||
Odoo automatically reconciles the payment when the :guilabel:`Auto-validate` option is selected, and
|
||||
the model conditions are perfectly met. In this case, it expects to find on the bank statement's
|
||||
line the invoice/payment's reference (as :guilabel:`Label` is selected) and the partner's name
|
||||
(as :guilabel:`Partner is set` is selected) to suggest the correct counterpart entry and reconcile
|
||||
the payment automatically.
|
||||
The following fields can be used to restrict the reconciliation model's availability to transactions
|
||||
that meet the conditions:
|
||||
|
||||
Invoices/Bills partial match if underpaid
|
||||
-----------------------------------------
|
||||
- :guilabel:`Journals`
|
||||
- :guilabel:`Partners`
|
||||
- :guilabel:`Amount`: Select :guilabel:`Is lower than or equal to`, :guilabel:`Is greater than or
|
||||
equal to`, or :guilabel:`Is between` and enter the amount(s).
|
||||
- :guilabel:`Label`: Select :guilabel:`Contains`, :guilabel:`Not Contains`, or :guilabel:`Match
|
||||
Regex` and enter the transaction label's matching condition.
|
||||
|
||||
This model suggests a customer invoice or vendor bill that partially matches the payment when the
|
||||
amount received is slightly lower than the invoice amount, for example in the case of
|
||||
**cash discounts**. The difference is reconciled with the account indicated in the
|
||||
:guilabel:`counterpart entries` tab.
|
||||
.. tip::
|
||||
`Regular expressions <https://regexone.com/>`_, often abbreviated as **regex**, can be used in
|
||||
Odoo in various ways to search, validate, and manipulate data. Regex can be powerful but also
|
||||
complex, so it's essential to use it judiciously.
|
||||
|
||||
The reconciliation model :guilabel:`Type` is :guilabel:`Rule to match invoices/bills`, and the
|
||||
:guilabel:`Payment tolerance` should be set.
|
||||
|
||||
.. image:: reconciliation_models/partial-match.png
|
||||
:alt: Set rules to trigger the reconciliation.
|
||||
To use regular expressions in a reconciliation model, set the :guilabel:`Label` to
|
||||
:guilabel:`Match Regex` and add an expression. Odoo automatically retrieves the transactions
|
||||
that match the regex expression and the conditions specified in the reconciliation model.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`Payment tolerance` is only applicable to lower payments. It is disregarded when an
|
||||
overpayment is received.
|
||||
A transaction must meet all conditions for the reconciliation model to be available for it. If no
|
||||
condition is defined (i.e., if all fields are left blank), the reconciliation model will be
|
||||
available for all transactions.
|
||||
|
||||
.. _accounting/rec-models/counterpart:
|
||||
|
||||
Counterpart items
|
||||
-----------------
|
||||
|
||||
Each line in the :guilabel:`Counterpart items` tab creates a journal item with the specified
|
||||
details:
|
||||
|
||||
- :guilabel:`Partner`: Select the partner, if any, to set on the journal item.
|
||||
- :guilabel:`Account`: Select the account, if any, to set on the journal item.
|
||||
- :guilabel:`Amount Type`: Select how the amount of the journal item should be calculated:
|
||||
|
||||
- :guilabel:`Fixed`: Use a fixed amount.
|
||||
- :guilabel:`Percentage of balance`: Use a percentage of the remaining balance of the
|
||||
transaction, regardless of the transaction total.
|
||||
- :guilabel:`Percentage of statement line`: Use a percentage of the transaction total, regardless
|
||||
of the remaining balance of the transaction.
|
||||
- :guilabel:`From label`: Use a percentage from the transaction's label using regex.
|
||||
|
||||
- :guilabel:`Amount`: Enter the amount to be used on the journal item. This field will be either a
|
||||
fixed amount, percentage amount, or regex depending on the :guilabel:`Account Type`.
|
||||
- :guilabel:`Taxes`: Select a tax, if any, to set on the journal item. This field is hidden behind
|
||||
the :icon:`oi-settings-adjust` :guilabel:`(settings adjust)` icon by default.
|
||||
- :guilabel:`Analytic`: Select an analytic distribution, if any, to set on the journal item.
|
||||
- :guilabel:`Label`: Enter a label, if any, to set on the journal item.
|
||||
|
||||
.. note::
|
||||
- While neither the :guilabel:`Partner` nor :guilabel:`Account` fields are mandatory, at least
|
||||
one of the two must be set for the reconciliation model to work correctly.
|
||||
- The reconciliation model can be used for :ref:`partner mapping <accounting/rec-models/partner>`
|
||||
if the :guilabel:`Counterpart Items` include a :guilabel:`Partner` but no :guilabel:`Account`.
|
||||
|
||||
.. _accounting/rec-models/defaults:
|
||||
|
||||
Default reconciliation models
|
||||
=============================
|
||||
|
||||
In Odoo, different models are available by default depending on the company's :doc:`fiscal
|
||||
localization <../../fiscal_localizations>`. These can be updated if needed. The following
|
||||
reconciliation models exist across most fiscal localizations.
|
||||
|
||||
Internal Transfers
|
||||
------------------
|
||||
|
||||
The :guilabel:`Internal Transfers` reconciliation model is used for making :doc:`internal transfers
|
||||
<internal_transfers>` from one bank or cash account to another by moving the entire transaction's
|
||||
balance to a liquidity or internal transfer account. To fully transfer the amount from one account
|
||||
to another, this reconciliation model must be used on both the incoming journal's transaction and
|
||||
the outgoing journal's transaction.
|
||||
|
||||
.. seealso::
|
||||
:doc:`internal_transfers`
|
||||
|
||||
Bank Fees
|
||||
---------
|
||||
|
||||
The :guilabel:`Bank Fees` reconciliation model generates a counterpart item that moves the remaining
|
||||
balance of a transaction to a bank fees account (that varies by :doc:`fiscal localization
|
||||
<../../fiscal_localizations>`) and includes "Bank Fees" in the :guilabel:`Label` of the new item
|
||||
that it creates. This reconciliation model is only applicable to transactions whose label contains
|
||||
"Bank Fees" due to its :ref:`matching conditions <accounting/rec-models/conditions>`.
|
||||
|
||||
.. example::
|
||||
An outgoing bank transaction for $103 is partially matched with a vendor bill for $100, leaving
|
||||
$3 of the transaction still unreconciled. Use the :guilabel:`Bank Fees` reconciliation model to
|
||||
create a new counterpart item for $3 and reconcile it with the remaining $3 of the bank
|
||||
transaction.
|
||||
|
||||
Cash Discount
|
||||
-------------
|
||||
|
||||
The :guilabel:`Cash Discount` reconciliation model generates a counterpart item that moves the
|
||||
remaining balance of a transaction to a cash discount account (that varies by :doc:`fiscal
|
||||
localization <../../fiscal_localizations>`) and includes "Cash Discount" in the :guilabel:`Label` of
|
||||
the new item that it creates.
|
||||
|
||||
.. seealso::
|
||||
:doc:`../customer_invoices/cash_discounts`
|
||||
|
||||
Line with bank fees
|
||||
-------------------
|
||||
|
||||
This model suggests a counterpart entry according to the rules set in the model. In this case, the
|
||||
reconciliation model :guilabel:`Type` is :guilabel:`Rule to suggest counterpart entry`, and the
|
||||
:guilabel:`Label` can be used for example, to identify the information referring to the
|
||||
:guilabel:`Bank fees` in the label of the transaction.
|
||||
|
||||
.. image:: reconciliation_models/bank-fees.png
|
||||
:alt: Set rules to trigger the reconciliation.
|
||||
|
||||
.. note::
|
||||
`Regular expressions <https://regexone.com/>`_, often abbreviated as **Regex**, can be used in
|
||||
Odoo in various ways to search, validate, and manipulate data within the system. Regex can be
|
||||
powerful but also complex, so it's essential to use it judiciously and with a good understanding
|
||||
of the patterns you're working with.
|
||||
|
||||
To use regular expressions in your reconciliation models, set the :guilabel:`Transaction Type`
|
||||
to :guilabel:`Match Regex` and add your expression. Odoo automatically retrieves the
|
||||
transactions that match your Regex expression and the conditions specified in your model.
|
||||
|
||||
.. image:: reconciliation_models/regex.png
|
||||
:alt: Using Regex in Odoo
|
||||
.. _accounting/rec-models/partner:
|
||||
|
||||
Partner mapping
|
||||
===============
|
||||
@@ -117,8 +164,8 @@ reconciliation. For example, you can create a partner mapping rule for incoming
|
||||
specific reference numbers or keywords in the transaction description. When an incoming payment
|
||||
meets these criteria, Odoo automatically maps it to the corresponding customer's account.
|
||||
|
||||
To create a partner mapping rule, go to the :guilabel:`Partner Mapping` tab and enter the
|
||||
:guilabel:`Find Text in Label`, :guilabel:`Find Text in Notes`, and :guilabel:`Partner`.
|
||||
|
||||
.. image:: reconciliation_models/partner-mapping.png
|
||||
:alt: defining partner mapping
|
||||
To create a partner mapping rule, configure any :ref:`matching conditions
|
||||
<accounting/rec-models/conditions>`, such as a specific transaction label, and then configure the
|
||||
:guilabel:`Partner` and any other relevant fields in the :ref:`Counterpart Items
|
||||
<accounting/rec-models/counterpart>` tab. Setting an :guilabel:`Account` is not mandatory for
|
||||
partner mapping.
|
||||
|
||||
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 5.6 KiB After Width: | Height: | Size: 5.1 KiB |
|
Before Width: | Height: | Size: 26 KiB |
|
Before Width: | Height: | Size: 7.1 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
@@ -8,13 +8,76 @@ and reconciling them with the ones recorded in your accounting.
|
||||
:doc:`Bank synchronization <bank_synchronization>` automates the process. However, if you do not
|
||||
want to use it or if your bank is not yet supported, other options exist:
|
||||
|
||||
- :ref:`Import bank transactions <transactions/import>` delivered by your bank;
|
||||
- :ref:`Register bank transactions <transactions/register>` manually.
|
||||
- :ref:`Import bank transactions <accounting/transactions/import>` delivered by your bank;
|
||||
- :ref:`Register bank transactions <accounting/transactions/register>` manually.
|
||||
|
||||
.. note::
|
||||
:ref:`Grouping transactions by statement <transactions/statements>` is optional.
|
||||
:ref:`Grouping transactions by statement <accounting/transactions/statements>` is optional.
|
||||
|
||||
.. _transactions/import:
|
||||
.. _accounting/transactions/view:
|
||||
|
||||
Transaction view
|
||||
================
|
||||
|
||||
The list of transactions for the bank journal is displayed in the :guilabel:`Bank Matching` view. To
|
||||
access it, go to the :guilabel:`Accounting Dashboard`, then either:
|
||||
|
||||
- click the journal name (e.g., :guilabel:`Bank`) or its :guilabel:`Transactions` button to display
|
||||
all transactions, including those previously reconciled, or
|
||||
- click the :guilabel:`x to reconcile` button to display only unreconciled transactions. To include
|
||||
previously reconciled transactions, remove the :guilabel:`Not Matched` filter from the search bar.
|
||||
|
||||
Unreconciled transactions display the following information while collapsed:
|
||||
|
||||
- The date of the transaction
|
||||
- A button linked to the chatter. The icon of this button can vary:
|
||||
|
||||
- The :icon:`fa-comments-o` :guilabel:`(comments)` icon displays only on hover and indicates that
|
||||
there are no attachments or activities for the transaction.
|
||||
- The :icon:`fa-paperclip` :guilabel:`(attachments)` icon indicates that there is an attachment on
|
||||
the journal entry.
|
||||
- The :icon:`fa-clock-o` :guilabel:`(activities)` icon indicates that there is an activity
|
||||
scheduled on the journal entry.
|
||||
|
||||
- The label of the transaction
|
||||
- The partner of the transaction (if one is set)
|
||||
- Up to two :ref:`action buttons <accounting/reconciliation/action-buttons>`, depending on the
|
||||
details of the transaction
|
||||
- The balance of the transaction
|
||||
|
||||
.. note::
|
||||
- When the chatter of a transaction is open, a blue tag highlights the related transaction.
|
||||
- The chatter can be opened and closed by clicking the :icon:`fa-comments-o`
|
||||
:guilabel:`(comments)` icon and the :icon:`fa-times` :guilabel:`(close)` icon in the top right
|
||||
of the view.
|
||||
- Once a transaction is :doc:`reconciled <reconciliation>`, its action buttons are replaced with
|
||||
the labels of the item(s) it was reconciled with or the account if it was reconciled with the
|
||||
:guilabel:`Set Account` action button.
|
||||
|
||||
.. _accounting/transactions/duplicate:
|
||||
|
||||
Duplicate transactions
|
||||
======================
|
||||
|
||||
Duplicate transactions occur when either by human error or :doc:`bank sync <bank_synchronization>`
|
||||
error, the same transaction is created multiple times. The duplicate transaction view identifies
|
||||
potential duplicate transactions so they can be selected and deleted. To access the duplicate
|
||||
transaction view, first access the :guilabel:`Bank Matching` view by going to the
|
||||
:guilabel:`Accounting Dashboard` and clicking the bank journal's name, then open the :icon:`fa-cog`
|
||||
:guilabel:`Actions` menu and click :guilabel:`Find Duplicate Transactions`.
|
||||
|
||||
Potential duplicate transactions are identified based on their amount, date, and account number, or
|
||||
(if the transaction is created via :doc:`bank sync <bank_synchronization>`) the transaction ID.
|
||||
|
||||
Select a :guilabel:`Starting Date` to view the corresponding potential duplicate transactions, then
|
||||
select the transactions to delete and click :icon:`fa-trash` :guilabel:`Delete Selected`.
|
||||
|
||||
.. note::
|
||||
Any transactions created by :doc:`bank sync <bank_synchronization>` that the bank sync provider
|
||||
determines to be potential duplicates are displayed in the :guilabel:`Provider Duplicates` tab.
|
||||
This tab is only visible if there are any potential duplicates according to the provider.
|
||||
|
||||
.. _accounting/transactions/import:
|
||||
|
||||
Import transactions
|
||||
===================
|
||||
@@ -23,40 +86,39 @@ Odoo supports multiple file formats to import transactions:
|
||||
|
||||
- SEPA recommended Cash Management format (CAMT.053)
|
||||
- Comma-separated values (CSV)
|
||||
- Excel (XLSX)
|
||||
- Open Financial Exchange (OFX)
|
||||
- Quicken Interchange Format (QIF)
|
||||
- Belgium: Coded Statement of Account (CODA)
|
||||
|
||||
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 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`.
|
||||
|
||||
To import a file, go to the :guilabel:`Accounting Dashboard`, click the :icon:`fa-ellipsis-v`
|
||||
:guilabel:`(ellipsis)` icon on the :guilabel:`Bank` journal, and select :guilabel:`Import file`.
|
||||
Next, select the file and upload it.
|
||||
|
||||
After setting the necessary formatting options and mapping the file columns with their related Odoo
|
||||
fields, you can run a :guilabel:`Test` and :guilabel:`Import` your bank transactions.
|
||||
.. tip::
|
||||
Alternatively, access the transaction list by:
|
||||
- clicking on the :guilabel:`Bank` journal's name, then clicking :guilabel:`Upload`
|
||||
- dragging and dropping a file on the bank journal on the :guilabel:`Accounting Dashboard`
|
||||
- dragging and dropping a file on the :guilabel:`Bank Matching` view
|
||||
|
||||
Certain file types such as CSV and XLSX, then require setting the necessary formatting options and
|
||||
mapping the file columns with their related Odoo fields, after which you can run a :guilabel:`Test`
|
||||
and :guilabel:`Import` your bank transactions. Other file types are mapped automatically.
|
||||
|
||||
.. seealso::
|
||||
:doc:`/applications/essentials/export_import_data`
|
||||
|
||||
.. _transactions/register:
|
||||
.. _accounting/transactions/register:
|
||||
|
||||
Register bank transactions manually
|
||||
===================================
|
||||
|
||||
You can also record your bank transactions manually. To do so, go to :guilabel:`Accounting
|
||||
Dashboard`, click on the :guilabel:`Bank` journal, and then on :guilabel:`New`. Make sure to fill
|
||||
out the :guilabel:`Partner` and :guilabel:`Label` fields to ease the reconciliation process.
|
||||
You can also record your bank transactions manually. To do so, go to the :guilabel:`Accounting
|
||||
Dashboard`, click the :guilabel:`Bank` journal's name, and then on :guilabel:`New`. The
|
||||
:guilabel:`Partner` field is optional to ease the reconciliation process, but the :guilabel:`Label`
|
||||
and :guilabel:`Date` fields are mandatory.
|
||||
|
||||
.. _transactions/statements:
|
||||
.. _accounting/transactions/statements:
|
||||
|
||||
Statements
|
||||
==========
|
||||
@@ -65,74 +127,71 @@ A **bank statement** is a document provided by a bank or financial institution t
|
||||
transactions that have occurred in a particular bank account over a specified period of time.
|
||||
|
||||
In Odoo Accounting, it is optional to group transactions by their related statement, but depending
|
||||
on your business flow, you may want to record them for control purposes.
|
||||
on your business flow, you may want to record them for record-keeping and organizational purposes.
|
||||
|
||||
To access a list of existing statements, go to the :guilabel:`Accounting Dashboard`, click the
|
||||
:icon:`fa-ellipsis-v` :guilabel:`(dropdown menu)` icon next to the bank or cash journal you want to
|
||||
check, then click :guilabel:`Statements`.
|
||||
|
||||
.. important::
|
||||
If you want to compare the ending balances of your bank statements with the ending balances of
|
||||
your financial records, *don't forget to create an opening transaction* to record the bank
|
||||
To ensure the ending balances of your bank statements in Odoo align with the ending balances of
|
||||
the statements that are provided by your bank, create an opening transaction to record the bank
|
||||
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 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`.
|
||||
.. tip::
|
||||
To access a statement's transactions, click :guilabel:`Transactions` directly from the
|
||||
:guilabel:`Bank Statements` list view or open a statement and click the :guilabel:`Statement
|
||||
lines` smart button.
|
||||
|
||||
.. _transactions/statement-kanban:
|
||||
.. _accounting/transactions/statement-kanban:
|
||||
|
||||
Statement creation from the kanban view
|
||||
---------------------------------------
|
||||
Statement creation
|
||||
------------------
|
||||
|
||||
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.
|
||||
The :guilabel:`Bank Matching` view displays transactions from most recent to oldest and groups them
|
||||
by statement, with any recent transactions that do not belong to a statement at the top. To add
|
||||
transactions to a statement, hover on the most recent transaction that should be included in the
|
||||
statement, and click the :guilabel:`Statement` button that appears on the upper separator line.
|
||||
Doing so creates 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 a transaction.
|
||||
|
||||
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`.
|
||||
its :guilabel:`Starting Balance` and :guilabel:`Ending Balance`, add an attachment such as a PDF
|
||||
of the statement if desired, and click :guilabel:`Save`.
|
||||
|
||||
.. _transactions/statement-list:
|
||||
.. tip::
|
||||
Transactions can also be added to statements from the list view. Select all the transactions
|
||||
corresponding to the bank statement, and, in the :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.
|
||||
|
||||
Statement creation from the list view
|
||||
-------------------------------------
|
||||
|
||||
Open the list of transactions by clicking on the name of the bank journal and switching to the list
|
||||
view. Select all the transactions corresponding to the bank statement, and, in the
|
||||
: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:
|
||||
.. _accounting/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`.
|
||||
To view an existing statement, click the statement amount in the :guilabel:`Bank Matching` view
|
||||
or click the statement name and then the :icon:`fa-arrow-right` :guilabel:`(Internal link)` icon in
|
||||
the :guilabel:`Bank Matching` list view. From here, you can edit the :guilabel:`Reference`,
|
||||
:guilabel:`Starting Balance`, :guilabel:`Ending Balance`, and :guilabel:`Attachments`.
|
||||
|
||||
.. 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.
|
||||
- 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.
|
||||
- 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.
|
||||
|
||||
.. 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).
|
||||
To generate and print a PDF of the bank statement, click the :icon:`fa-cog` :guilabel:`(gear)` icon
|
||||
and click :icon:`fa-print` :guilabel:`Statement`.
|
||||
|
||||
.. note::
|
||||
When a bank statement is generated to be printed, it is automatically added to the
|
||||
:guilabel:`Attachments`.
|
||||
:guilabel:`Attachments` if no file was attached when creating the statement.
|
||||
|
||||
|
Before Width: | Height: | Size: 23 KiB After Width: | Height: | Size: 29 KiB |
@@ -4,16 +4,235 @@ Electronic invoicing (:abbr:`EDI (electronic data interchange)`)
|
||||
|
||||
EDI, or electronic data interchange, is the inter-company communication of business documents, such
|
||||
as purchase orders and invoices, in a standard format. Sending documents according to an EDI
|
||||
standard ensures that the machine receiving the message can interpret the information correctly.
|
||||
Various EDI file formats exist and are available depending on your company's country.
|
||||
standard ensures that the system receiving the message can interpret the information correctly.
|
||||
Various EDI file formats are available depending on your company's country.
|
||||
|
||||
EDI feature enables automating the administration between companies and might also be required by
|
||||
some governments for fiscal control or to facilitate the administration.
|
||||
The EDI feature allows companies to automate administrative processes. It may also be required by
|
||||
some governments for fiscal control or to support administrative procedures. Electronic sending of
|
||||
documents such as customer invoices, credit notes, or vendor bills is one application of EDI.
|
||||
|
||||
Electronic invoicing of your documents such as customer invoices, credit notes or vendor bills is
|
||||
one of the application of EDI.
|
||||
Odoo supports e-invoicing in many countries. Refer to the :ref:`country's page
|
||||
<accounting/e-invoicing/peppol-country-specific>` for more details.
|
||||
|
||||
Odoo supports e-invoicing in many countries. Refer to the country's page for more details:
|
||||
.. seealso::
|
||||
:doc:`Fiscal localizations documentation <../../fiscal_localizations>`
|
||||
|
||||
.. _accounting/e-invoicing/configuration:
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
By default, the format available in the :ref:`send window <accounting/e-invoicing/generation>`
|
||||
depends on the customer's country.
|
||||
|
||||
To define a specific e-invoicing format for a customer, go to :menuselection:`Accounting -->
|
||||
Customers --> Customers`, access the customer form, go to the :guilabel:`Accounting` tab, and select
|
||||
the appropriate :guilabel:`Format` in the :guilabel:`Customer invoices` section.
|
||||
|
||||
.. _accounting/e-invoicing/generation:
|
||||
|
||||
E-invoice generation
|
||||
====================
|
||||
|
||||
From a confirmed invoice, click :guilabel:`Send`. In the :guilabel:`Print & Send` window, enable the
|
||||
relevant e-invoicing format option (e.g., :guilabel:`by Peppol`), then click :guilabel:`Send` to
|
||||
generate and attach the corresponding e-invoicing XML file.
|
||||
|
||||
.. _accounting/e-invoicing/peppol:
|
||||
|
||||
Peppol
|
||||
======
|
||||
|
||||
The `Peppol <https://peppol.org/about/>`_ network ensures the exchange of documents and information
|
||||
between companies and governmental authorities. It is primarily used for electronic invoicing, and
|
||||
its access points (connectors to the Peppol network) allow companies to send electronic documents
|
||||
such as customer invoices and credit notes and receive documents like vendor bills and refunds.
|
||||
|
||||
In this case, Odoo acts as both an **access point** and an :abbr:`SMP (Service Metadata Publisher)`
|
||||
and enables electronic invoicing transactions without the need to send invoices or bills by email or
|
||||
post.
|
||||
|
||||
.. note::
|
||||
- Peppol registration is **free** and available in Odoo Community.
|
||||
- Supported formats for sending documents include **BIS Billing 3.0, XRechnung CIUS, and
|
||||
NLCIUS**.
|
||||
- | The following **countries** are eligible for **Peppol registration in Odoo**:
|
||||
| Andorra, Albania, Austria, Bosnia and Herzegovina, Belgium, Bulgaria, Switzerland, Cyprus,
|
||||
Czech Republic, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece,
|
||||
Croatia, Hungary, Ireland, Iceland, Italy, Liechtenstein, Lithuania, Luxembourg, Latvia,
|
||||
Monaco, Montenegro, North Macedonia, Malta, Netherlands, Norway, Poland, Portugal, Romania,
|
||||
Serbia, Sweden, Slovenia, Slovakia, San Marino, Turkey, Holy See (Vatican City State).
|
||||
|
||||
.. _accounting/e-invoicing/peppol-registration:
|
||||
|
||||
Registration
|
||||
------------
|
||||
|
||||
To register on Peppol, go to :menuselection:`Accounting --> Configuration --> Settings` and scroll
|
||||
to the :guilabel:`PEPPOL Electronic Invoicing` section. Then, follow these steps:
|
||||
|
||||
#. Click :guilabel:`Activate Electronic Invoicing` and fill in the following fields:
|
||||
|
||||
- Using the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon, make sure the relevant
|
||||
country-specific Peppol endpoint identifier is selected in the dropdown list, then enter your
|
||||
Peppol endpoint (usually a Company Registry or VAT number).
|
||||
- :guilabel:`Email`
|
||||
- :guilabel:`Phone`, including the country code (e.g., `+32` in Belgium)
|
||||
|
||||
#. Click :guilabel:`Activate Peppol`. The registration is then pending activation and should be
|
||||
automatically activated within a day.
|
||||
|
||||
.. seealso::
|
||||
`Peppol endpoint - OpenPeppol eDEC Code Lists <https://docs.peppol.eu/edelivery/codelists/>`_
|
||||
(open the "Participant Identifier Schemes" as HTML page)
|
||||
|
||||
#. Define where documents should be received:
|
||||
|
||||
- :guilabel:`Receive in Journal`: If necessary, select another purchase journal in the
|
||||
:guilabel:`Incoming Invoices Journal` field.
|
||||
- :doc:`Receive in Documents <../../../productivity/documents>`: Select a folder in the
|
||||
:guilabel:`Document Workspace` field if multiple purchase journals are used.
|
||||
|
||||
#. Click :guilabel:`Save`.
|
||||
|
||||
All invoices and vendor bills can then be sent/received directly using Peppol.
|
||||
|
||||
.. note::
|
||||
- To update the :guilabel:`Primary contact email`, click :icon:`oi-arrow-right`
|
||||
:guilabel:`Advanced Configuration`, modify it, and click :guilabel:`Save`.
|
||||
- If you are using an access point from a previous provider, make sure to deregister from it
|
||||
first, then register with your new access point, unless it's Hermes (BOSA). If using Hermes
|
||||
(BOSA), no action is needed; the migration is handled automatically.
|
||||
|
||||
.. tip::
|
||||
- To manually trigger the scheduled action used to check the Peppol registration status, enable
|
||||
:ref:`developer mode <developer-mode>`, open the Settings app, go to :menuselection:`Settings
|
||||
--> Technical --> Scheduled actions`, and search for :guilabel:`Peppol: update participant
|
||||
status`. Open the scheduled action, then click :guilabel:`Run Manually`.
|
||||
- To try Peppol without sending real data, enable demo mode by selecting :guilabel:`Odoo Demo
|
||||
ID` as the Peppol endpoint identifier. To switch back to production mode, :ref:`deregister from
|
||||
the demo mode <accounting/e-invoicing/peppol-deregister>` and :ref:`register
|
||||
<accounting/e-invoicing/peppol-registration>` in production.
|
||||
|
||||
.. _accounting/e-invoicing/contact-verification:
|
||||
|
||||
Contact verification
|
||||
--------------------
|
||||
|
||||
Before sending an invoice to a contact using Peppol, make sure the contact is registered as a Peppol
|
||||
participant. To do so, follow these steps:
|
||||
|
||||
#. Go to :menuselection:`Accounting --> Customers --> Customers` and access the customer's form.
|
||||
#. In the :guilabel:`Accounting tab`, check the following information in the :guilabel:`Customer
|
||||
invoices` section:
|
||||
|
||||
- :guilabel:`eInvoice format`: Select the relevant format.
|
||||
- Using the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon, make sure the relevant
|
||||
country-specific Peppol endpoint identifier is selected in the dropdown list, then enter the
|
||||
customer's endpoint identifier, usually a Company Registry or VAT number.
|
||||
|
||||
#. To verify the contact, enable :ref:`developer mode <developer-mode>` and click
|
||||
:guilabel:`Verify`. Its :guilabel:`Peppol endpoint verification` is marked as :guilabel:`Valid`
|
||||
if the contact is found on the Peppol network.
|
||||
|
||||
.. image:: electronic_invoicing/customer-form.png
|
||||
:alt: verify contact registration
|
||||
|
||||
.. important::
|
||||
While Odoo prefills the endpoint number based on the information available for a contact,
|
||||
verifying these details with the contact is recommended.
|
||||
|
||||
.. _accounting/e-invoicing/send-invoices:
|
||||
|
||||
Send invoices
|
||||
-------------
|
||||
|
||||
All posted invoices that are ready to be sent via Peppol can be viewed in the :guilabel:`Invoices`
|
||||
list view in the following ways:
|
||||
|
||||
- Use the :icon:`oi-settings-adjust` (:guilabel:`adjust settings`) button to add the
|
||||
:guilabel:`Peppol status` column.
|
||||
- Apply the :guilabel:`Peppol Ready` filter in the search bar.
|
||||
|
||||
To send the invoice to the customer via Peppol, click :guilabel:`Send` on the confirmed invoice
|
||||
form. In the :guilabel:`Send` window, enable the :guilabel:`by Peppol` option and click
|
||||
:guilabel:`Send`.
|
||||
|
||||
.. tip::
|
||||
- :ref:`Multiple invoices <accounting/invoice/sending-multiple-invoices>` can also be sent in
|
||||
batches via Peppol.
|
||||
- Set the preferred :ref:`Invoice sending <accounting/invoice/sending>` method for a customer to
|
||||
:guilabel:`by Peppol` in the :guilabel:`Customer Invoices` section of the customer form's
|
||||
:guilabel:`Accounting` tab.
|
||||
|
||||
The status is updated to :guilabel:`Done` once the invoices have been successfully delivered to the
|
||||
contact's access point.
|
||||
|
||||
.. _accounting/e-invoicing/receive-vendor-bills:
|
||||
|
||||
Receive vendor bills
|
||||
--------------------
|
||||
|
||||
New documents received via Peppol are checked multiple times a day. Depending on the
|
||||
:ref:`registration settings <accounting/e-invoicing/peppol-registration>`, received documents
|
||||
are automatically:
|
||||
|
||||
- either imported into the purchase journal set in the :guilabel:`PEPPOL Electronic Invoicing`
|
||||
section, and corresponding vendor bills are created as drafts;
|
||||
- or received via the :ref:`Documents app
|
||||
<accounting/e-invoicing/receive-vendor-bills-documents-app>`.
|
||||
|
||||
.. tip::
|
||||
To manually trigger the scheduled action used to retrieve incoming Peppol documents, enable
|
||||
:ref:`developer mode <developer-mode>`, open the Settings app, go to :menuselection:`Settings -->
|
||||
Technical --> Scheduled actions`, and search for :guilabel:`Peppol: retrieve new documents`. Open
|
||||
the scheduled action, then click :guilabel:`Run Manually`.
|
||||
|
||||
.. _accounting/e-invoicing/receive-vendor-bills-documents-app:
|
||||
|
||||
Vendor bills reception in Documents
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. note::
|
||||
Make sure the :guilabel:`Documents - Import from Peppol` (`documents_account_peppol`) module is
|
||||
:ref:`installed <general/install>`.
|
||||
|
||||
To receive vendor bills via the :doc:`Documents app <../../../productivity/documents>`, follow these
|
||||
steps:
|
||||
|
||||
#. In the Documents app, create a specific :ref:`folder <documents/folders>` or enable :ref:`file
|
||||
centralization <documents/file-centralization>` for :guilabel:`Accounting` documents.
|
||||
#. Open the Accounting app, go to :menuselection:`Accounting --> Configuration --> Settings`, and
|
||||
scroll to the :guilabel:`PEPPOL Electronic Invoicing` section.
|
||||
#. In the :guilabel:`Document Workspace` field, choose the relevant folder.
|
||||
#. Use the :guilabel:`Document Tags` field to add tags to incoming Peppol documents for easy
|
||||
identification.
|
||||
#. Click :guilabel:`Save`.
|
||||
|
||||
Then, open the Document app, navigate to the appropriate folder, select the relevant vendor bills,
|
||||
and click :guilabel:`Create Vendor Bill`. The corresponding vendor bill is then created.
|
||||
|
||||
.. _accounting/e-invoicing/peppol-deregister:
|
||||
|
||||
Peppol deregistration from Odoo
|
||||
-------------------------------
|
||||
|
||||
Only one Peppol receiver registration can be active for each Peppol endpoint identifier at a time.
|
||||
To stop using Odoo as the Peppol access point, e.g., to switch to another provider or reconfigure
|
||||
the registration for a new database, you must first deregister from Peppol. To do so, go to
|
||||
:menuselection:`Accounting --> Configuration --> Settings`, scroll down to the :guilabel:`PEPPOL
|
||||
Electronic Invoicing` section, and click :icon:`oi-arrow-right` :guilabel:`Advanced Configuration`.
|
||||
Then click :guilabel:`Remove from Peppol` and confirm.
|
||||
|
||||
Once removed, the Peppol registration is deleted from the database, and documents can no longer be
|
||||
sent or received via Peppol in Odoo.
|
||||
|
||||
.. _accounting/e-invoicing/peppol-country-specific:
|
||||
|
||||
Country-specific e-invoicing details
|
||||
====================================
|
||||
|
||||
Refer to the following pages for detailed, country-specific information:
|
||||
|
||||
- :doc:`Argentina <electronic_invoicing/argentina>`
|
||||
- :doc:`Austria <electronic_invoicing/austria>`
|
||||
@@ -25,6 +244,7 @@ Odoo supports e-invoicing in many countries. Refer to the country's page for mor
|
||||
- :doc:`Ecuador <electronic_invoicing/ecuador>`
|
||||
- :doc:`Estonia <electronic_invoicing/estonia>`
|
||||
- :doc:`Finland <electronic_invoicing/finland>`
|
||||
- :doc:`Guatemala <electronic_invoicing/guatemala>`
|
||||
- :doc:`Hungary <electronic_invoicing/hungary>`
|
||||
- :doc:`Ireland <electronic_invoicing/ireland>`
|
||||
- :doc:`Italy <electronic_invoicing/italy>`
|
||||
@@ -39,261 +259,3 @@ Odoo supports e-invoicing in many countries. Refer to the country's page for mor
|
||||
- :doc:`Spain <electronic_invoicing/spain>`
|
||||
- :doc:`Spain - Basque Country <electronic_invoicing/basque_country>`
|
||||
- :doc:`Uruguay <electronic_invoicing/uruguay>`
|
||||
|
||||
.. seealso::
|
||||
- :doc:`Fiscal localizations documentation <../../fiscal_localizations>`
|
||||
- `Magic Sheet - E-invoicing in Odoo [PDF]
|
||||
<https://drive.google.com/drive/folders/1NGC_bVygboE0A7ge-O69TX7JwFPNBhhu>`_
|
||||
|
||||
.. _e-invoicing/configuration:
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
By default, the format available in the :ref:`send window <e-invoicing/generation>` depends on your
|
||||
customer's country.
|
||||
|
||||
You can define a specific e-invoicing format for each customer. To do so, go to
|
||||
:menuselection:`Accounting --> Customers --> Customers`, open the customer form, go to the
|
||||
:guilabel:`Accounting` tab and select the appropriate format.
|
||||
|
||||
.. image:: electronic_invoicing/customer-form.png
|
||||
:alt: Select an EDI format for a specific customer
|
||||
|
||||
National electronic invoicing
|
||||
-----------------------------
|
||||
|
||||
Depending on your company's country (e.g., :doc:`Italy <../../fiscal_localizations/italy>`,
|
||||
:doc:`Spain <../../fiscal_localizations/spain>`, :doc:`Mexico
|
||||
<../../fiscal_localizations/mexico>`, etc.), you may be required to issue e-invoicing documents in
|
||||
a specific format for all your invoices. In this case, you can define a default e-invoicing format
|
||||
for your sales journal.
|
||||
|
||||
To do so, go to :menuselection:`Accounting --> Configuration --> Journals`, open your sales journal,
|
||||
go to the :guilabel:`Advanced Settings` tab, and enable the formats you need for this journal.
|
||||
|
||||
.. _e-invoicing/generation:
|
||||
|
||||
E-invoices generation
|
||||
=====================
|
||||
|
||||
From a confirmed invoice, click :guilabel:`Send & Print` to open the send window. Check the
|
||||
e-invoicing option to generate and attach the e-invoice file.
|
||||
|
||||
.. image:: electronic_invoicing/send-window.png
|
||||
:alt: The Peppol option is checked and an e-invoicing XML file is attached to the email.
|
||||
|
||||
.. _e-invoicing/peppol:
|
||||
|
||||
Peppol
|
||||
======
|
||||
|
||||
The `Peppol <https://peppol.org/about/>`_ network ensures the exchange of documents and information
|
||||
between enterprises and governmental authorities. It is primarily used for electronic invoicing, and
|
||||
its access points (connectors to the Peppol network) allow enterprises to exchange electronic
|
||||
documents.
|
||||
|
||||
Odoo is an **access point** and an :abbr:`SMP (Service Metadata Publisher)`, enabling electronic
|
||||
invoicing transactions without the need to send invoices and bills by email or post.
|
||||
|
||||
If not done yet, :ref:`install <general/install>` the :guilabel:`Peppol` module (`account_peppol`).
|
||||
|
||||
.. important::
|
||||
- Peppol registration is **free** and available in Odoo Community
|
||||
- You can send **Customer Invoices** and **Credit Notes** and receive **Vendor Bills** and
|
||||
**Refunds** via Peppol.
|
||||
- You can send and receive in one of the following supported document formats:
|
||||
**BIS Billing 3.0, XRechnung CIUS, NLCIUS**.
|
||||
- | The following **countries** are eligible for **Peppol registration in Odoo**:
|
||||
| Andorra, Albania, Austria, Bosnia and Herzegovina, Belgium, Bulgaria, Switzerland, Cyprus,
|
||||
Czech Republic, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece,
|
||||
Croatia, Hungary, Ireland, Iceland, Italy, Liechtenstein, Lithuania, Luxembourg, Latvia,
|
||||
Monaco, Montenegro, North Macedonia, Malta, Netherlands, Norway, Poland, Portugal, Romania,
|
||||
Serbia, Sweden, Slovenia, Slovakia, San Marino, Turkey, Holy See (Vatican City State)
|
||||
|
||||
.. _e-invoicing/peppol-registration:
|
||||
|
||||
Registration
|
||||
------------
|
||||
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings`. If you do not have the
|
||||
Peppol module installed, first tick the :guilabel:`Enable PEPPOL` checkbox and then **manually
|
||||
save**. Click :guilabel:`Start sending via Peppol` to open the registration form.
|
||||
|
||||
.. note::
|
||||
This registration form also pops up if you choose to :guilabel:`Send & Print` an
|
||||
invoice via Peppol without completing the registration process.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-registration-settings.png
|
||||
:alt: Peppol registration button
|
||||
|
||||
You can register either as a sender or a receiver. A sender can only send invoices and credit notes
|
||||
on Odoo via Peppol, without ever registering as a Peppol participant on Odoo SMP. If you have an
|
||||
existing Peppol registration elsewhere that you want to keep, but want to send invoices from your
|
||||
Odoo database and receive other documents in another software, register as a **sender**.
|
||||
|
||||
.. tip::
|
||||
- You can always register as a sender first and register to receive documents later.
|
||||
- When registering, you can specify if you would also like to receive documents.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-registration-wizard.png
|
||||
:alt: Peppol registration form
|
||||
|
||||
Fill in the following information:
|
||||
|
||||
- Check the receiver box if you want to register on Odoo SMP. If you are migrating from another
|
||||
service provider, insert the :guilabel:`Migration key` from the previous provider (the field
|
||||
becomes visible after you tick the checkbox).
|
||||
- :guilabel:`E-Address Scheme`: the Peppol Electronic Address Scheme usually depends on your
|
||||
company's country. Odoo often prefills this with the most commonly used EAS code in your country.
|
||||
For example, the preferred EAS code for most companies in Belgium is `0208`.
|
||||
- :guilabel:`Endpoint`: this is usually a Company Registry number or a VAT number.
|
||||
- :guilabel:`Phone`: phone number including the country code (e.g., `+32` in Belgium).
|
||||
- :guilabel:`Email`: this is the email Odoo can use to contact you regarding your Peppol
|
||||
registration.
|
||||
|
||||
If you want to explore or demo Peppol, you can choose to register in :guilabel:`Demo` mode.
|
||||
Otherwise, select :guilabel:`Live`.
|
||||
|
||||
.. tip::
|
||||
- Selecting :guilabel:`Demo` simulates everything in Odoo. There is no sending, receiving, or
|
||||
partner verification.
|
||||
- For **advanced users only**, it is possible to run tests on Peppol's test network. The server
|
||||
allows to register on Peppol and send/receive test invoices to/from other participants.
|
||||
To do so, enable the :ref:`developer-mode`, open the **Settings** app, go to
|
||||
:menuselection:`Technical --> System Parameters`, and search for `account_peppol.edi.mode`.
|
||||
Click the parameter and change the :guilabel:`Value` to `test`. Go back to the Peppol setup
|
||||
menu in the **Settings** app. The option :guilabel:`Test` is now available.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-system-parameter.png
|
||||
:alt: Peppol test mode parameter
|
||||
|
||||
.. seealso::
|
||||
- `Peppol EAS - European Commision <https://ec.europa.eu/digital-building-blocks/wikis/display/DIGITAL/Code+lists/>`_
|
||||
- `Peppol Endpoint - OpenPeppol eDEC Code Lists <https://docs.peppol.eu/edelivery/codelists/>`_
|
||||
(open the "Participant Identifier Schemes" as HTML page)
|
||||
|
||||
When set up, request a verification code to be sent to you by clicking :guilabel:`Send a
|
||||
registration code by SMS`. A text message containing a code is sent to the phone number provided to
|
||||
finalize the verification process.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-phone-verification.png
|
||||
:alt: phone validation
|
||||
|
||||
Once you enter the code and click :guilabel:`Register`, your Peppol participant status is updated.
|
||||
If you chose to only send documents, then the status changes to :guilabel:`Can send but
|
||||
not receive`.
|
||||
If you opted to receive documents as well, the status changes to :guilabel:`Can send, pending
|
||||
registration to receive`. In that case, it should be automatically activated within a day.
|
||||
|
||||
Then, set the default journal for receiving vendor bills in the :guilabel:`Incoming Invoices
|
||||
Journal`.
|
||||
|
||||
.. tip::
|
||||
To manually trigger the cron that checks the registration status, enable the
|
||||
:ref:`developer-mode`, then go to :menuselection:`Settings --> Technical --> Scheduled Actions`,
|
||||
and search for the :guilabel:`PEPPOL: update participant status` action.
|
||||
|
||||
Your receiver application status should be updated soon after you are registered on the Peppol
|
||||
network.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-receiver.png
|
||||
:alt: receiver application
|
||||
|
||||
All invoices and vendor bills can now be sent directly using the Peppol network.
|
||||
|
||||
.. important::
|
||||
To update the email that Odoo can use to contact you, modify the email and click
|
||||
:guilabel:`Update contact details`.
|
||||
|
||||
Configure Peppol services
|
||||
-------------------------
|
||||
|
||||
Once you are registered on Odoo SMP, the :guilabel:`Configure Peppol Services` button
|
||||
becomes visible to allow you to enable or disable document formats that other participants
|
||||
can send you via Peppol. By default, all document formats supported by Odoo are enabled (depending
|
||||
on the installed modules).
|
||||
|
||||
Contact verification
|
||||
--------------------
|
||||
|
||||
Before sending an invoice to a contact using the Peppol network, it is necessary to verify that they
|
||||
are also registered as a Peppol participant.
|
||||
|
||||
To do so, go to :menuselection:`Accounting --> Customers --> Customers` and open the customer's
|
||||
form. Then go to :menuselection:`Accounting tab --> Electronic Invoicing`, select the correct
|
||||
format, and make sure their :guilabel:`Peppol EAS code` and the :guilabel:`Endpoint` are filled in.
|
||||
Then, click :guilabel:`Verify`. If the contact exists on the network, their Peppol endpoint validity
|
||||
is set to Valid.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-contact-verify.png
|
||||
:alt: verify contact registration
|
||||
|
||||
.. important::
|
||||
While Odoo prefills both the EAS code and the Endpoint number based on the information available
|
||||
for a contact, it is better to confirm these details directly with the contact.
|
||||
|
||||
It is possible to verify the Peppol participant status of several customers at once.
|
||||
To do so, go to :menuselection:`Accounting --> Customers --> Customers` and switch to the list view.
|
||||
Select the customers you want to verify and then click :menuselection:`Actions --> Verify Peppol`.
|
||||
|
||||
If the participant is registered on the Peppol network but cannot receive the format you selected
|
||||
for them, the :guilabel:`Peppol endpoint validity` label changes to :guilabel:`Cannot
|
||||
receive this format`.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-participant-format.png
|
||||
:alt: verify contact ubl format
|
||||
|
||||
Send invoices
|
||||
-------------
|
||||
|
||||
Once ready to send an invoice via the Peppol network, simply click :guilabel:`Send & Print` on the
|
||||
invoice form. To queue multiple invoices, select them in the list view and click
|
||||
:menuselection:`Actions --> Send & Print`; they will be sent in a batch later on. Both
|
||||
:guilabel:`BIS Billing 3.0` and :guilabel:`Send via PEPPOL` checkboxes need to be ticked.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-send-print.png
|
||||
:alt: Send peppol invoice
|
||||
|
||||
Posted invoices that can be sent via Peppol are marked as :guilabel:`Peppol Ready`.
|
||||
To display them, use the :guilabel:`Peppol Ready` filter or access the Accounting dashboard and
|
||||
click :guilabel:`Peppol ready invoices` on the corresponding sales journal.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-ready-invoices.png
|
||||
:alt: Filter Peppol ready invoices
|
||||
|
||||
Once the invoices are sent via Peppol, the status is changed to :guilabel:`Processing`. The
|
||||
status is changed to `Done` after they have been successfully delivered to the contact's Access
|
||||
Point.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-message-processing.png
|
||||
:alt: Peppol message status
|
||||
|
||||
.. tip::
|
||||
By default, the Peppol status column is hidden on the Invoices list view. You can choose to have
|
||||
it displayed by selecting it from the optional columns, accessible from the top right corner of
|
||||
the Invoices list view.
|
||||
|
||||
A cron runs regularly to check the status of these invoices. It is possible to check the status
|
||||
before the cron runs by clicking :guilabel:`Fetch Peppol invoice status` in the corresponding
|
||||
sales journal on the Accounting dashboard.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-fetch-message-status.png
|
||||
:alt: Fetch invoice Peppol status
|
||||
|
||||
Receive vendor bills
|
||||
--------------------
|
||||
|
||||
Once a day, a cron checks whether any new documents have been sent to you via the Peppol network.
|
||||
These documents are imported, and the corresponding vendor bills are created automatically as
|
||||
drafts.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-receive-bills.png
|
||||
:alt: peppol receive bills
|
||||
|
||||
If you want to retrieve incoming Peppol documents before the cron runs, you can do so from the
|
||||
Accounting dashboard on the main Peppol purchase journal that you set up in the settings. Just click
|
||||
:guilabel:`Fetch from Peppol`.
|
||||
|
||||
.. image:: electronic_invoicing/peppol-fetch-bills.png
|
||||
:alt: Fetch bills from Peppol
|
||||
|
||||
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 8.4 KiB |
@@ -27,10 +27,10 @@ Compliance with Finnish e-invoicing regulations
|
||||
Odoo invoicing module makes it easy for businesses to adhere to Finland's e-invoicing regulations.
|
||||
Here is how Odoo ensures compliance:
|
||||
|
||||
- **Supported formats**: Odoo supports the e-invoicing formats widely used in Finland, including
|
||||
TEAPPSXML, Finvoice, and the standardized XML in :abbr:`UBL (Universal Business Language)` format
|
||||
required for Peppol compliance. This ensures compatibility with Finnish platforms such as Handi
|
||||
for public sector invoicing and eKuitti for enhanced receipt management and e-invoicing.
|
||||
- **Supported formats**: Odoo supports the standardized XML in :abbr:`UBL (Universal Business
|
||||
Language)` format required for Peppol compliance. This ensures compatibility with regulations for
|
||||
sending invoices to the Finnish government, as well as sending invoices to customers and receiving
|
||||
invoices from vendors.
|
||||
- **Secure storage and retrieval**: In accordance with Finnish regulations requiring businesses to
|
||||
store invoices for a minimum of seven years, Odoo securely archives all invoices in a tamper-proof
|
||||
system, allowing for easy retrieval during audits.
|
||||
|
||||
@@ -0,0 +1,56 @@
|
||||
:orphan:
|
||||
|
||||
======================================
|
||||
Odoo electronic invoicing in Guatemala
|
||||
======================================
|
||||
|
||||
The Odoo **Invoicing** and **Accounting** applications offer legally compliant e-invoicing solutions
|
||||
tailored to meet Guatemala's regulatory requirements, including those established by the
|
||||
`Superintendencia de Administración Tributaria (SAT) <https://portal.sat.gob.gt/>`_.
|
||||
|
||||
Legal framework for e-invoicing in Guatemala
|
||||
============================================
|
||||
|
||||
Guatemala has mandated electronic invoicing under the :abbr:`FEL (Factura Electrónica en Línea)`
|
||||
system, which applies to most businesses to enhance fiscal control and modernize tax administration.
|
||||
Key elements include:
|
||||
|
||||
- **Factura Electrónica en Línea (FEL)**: A mandatory e-invoicing system required for B2B, B2C, and
|
||||
:abbr:`B2G (business-to-government)` transactions, regulated by the :abbr:`SAT (Superintendencia
|
||||
de Administración Tributaria)`. Each authorized document must be digitally signed and contain a
|
||||
unique certification code.
|
||||
- **Integration with SAT**: All electronic documents must be issued through a certified certifier
|
||||
`(Proveedor de Certificación)` and validated by the :abbr:`SAT (Superintendencia de Administración
|
||||
Tributaria)` before being delivered to the customer. Once validated, the document receives a
|
||||
certification date and unique UUID.
|
||||
- **XML Format**: Guatemala mandates the use of XML for electronic documents, following SAT's
|
||||
official XSD schema to ensure interoperability and traceability.
|
||||
- **Adoption Timeline**: The transition to FEL has been implemented gradually by economic activity
|
||||
and taxpayer profile, but it is now mandatory for most business sectors in the country.
|
||||
|
||||
Compliance with Guatemalan e-invoicing regulations
|
||||
==================================================
|
||||
|
||||
Odoo Invoicing simplifies compliance with Guatemala's e-invoicing requirements by offering native
|
||||
FEL integration and automation features:
|
||||
|
||||
- **Supported formats**: Odoo supports most mandatory FEL document types in SAT-compliant XML,
|
||||
including invoices (:abbr:`FACT`), credit notes (:abbr:`NCRE`), and debit notes (:abbr:`NDEB`).
|
||||
Each document is automatically submitted to a certified certifier (Infile), digitally signed, and
|
||||
validated by the SAT in real time.
|
||||
- **Secure storage and retrieval**: In accordance with Guatemalan regulations, Odoo provides
|
||||
centralized and secure storage of certified documents, including their XML and PDF graphical
|
||||
representations, with full access for audits and control processes.
|
||||
- **Automatic tax calculation and reporting**: Odoo automates VAT (IVA) and applicable tax
|
||||
computations, ensuring compliance with local tax rates, exemption rules, and reporting structures
|
||||
as defined by the SAT.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Guatemalan fiscal localization documentation <../../../fiscal_localizations/guatemala>`
|
||||
|
||||
.. admonition:: Disclaimer
|
||||
|
||||
This page provides a general overview of Guatemalan e-invoicing regulations and how Odoo supports
|
||||
compliance with SAT requirements. It is not intended as legal or tax advice. We recommend
|
||||
consulting with a tax advisor or legal professional familiar with Guatemala's e-invoicing
|
||||
regulations to ensure full compliance tailored to your specific business requirements.
|
||||
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 6.1 KiB |
|
Before Width: | Height: | Size: 6.6 KiB |
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 9.1 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
Before Width: | Height: | Size: 6.8 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 5.4 KiB |
|
Before Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 16 KiB |
@@ -15,6 +15,8 @@ create draft invoices:
|
||||
Sales
|
||||
=====
|
||||
|
||||
.. _accounting/inv-process/so:
|
||||
|
||||
Sales Order ‣ Invoice
|
||||
---------------------
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@ Bank reconciliation
|
||||
-------------------
|
||||
|
||||
Once the bank transactions :doc:`have been created <../bank/transactions>` in your database, you can
|
||||
:ref:`reconcile them with the batch payment <reconciliation/batch-payments>`.
|
||||
:ref:`reconcile <accounting/reconciliation/reconcile>` them with the batch payment.
|
||||
|
||||
.. seealso::
|
||||
- :doc:`../payments`
|
||||
|
||||
@@ -89,6 +89,8 @@ Once an |sdd| mandate is active, subsequent |sdd| payments can be generated via
|
||||
active |sdd| mandate can also use this payment method for :doc:`online purchases
|
||||
<../../payment_providers/sdd>`.
|
||||
|
||||
.. _accounting/batch_sdd/close-revoke-mandate:
|
||||
|
||||
Closing or revoking a mandate
|
||||
-----------------------------
|
||||
|
||||
@@ -104,7 +106,8 @@ date. However, payments that have already been registered are still included in
|
||||
XML file <accounting/batch_sdd/XML>`.
|
||||
|
||||
.. warning::
|
||||
Closed or revoked mandates cannot be reactivated.
|
||||
- Mandates are automatically closed 36 months after the date of the last collection.
|
||||
- Closed or revoked mandates cannot be reactivated.
|
||||
|
||||
.. _accounting/batch_sdd/XML:
|
||||
|
||||
|
||||
@@ -4,10 +4,6 @@
|
||||
Online payments
|
||||
===============
|
||||
|
||||
.. toctree::
|
||||
|
||||
online/install_portal_patch
|
||||
|
||||
To make it more convenient for your customers to pay the invoices you issue, you can activate the
|
||||
**Invoice Online Payment** feature, which adds a *Pay Now* button on their **Customer Portal**. This
|
||||
allows your customers to see their invoices online and pay directly with their favorite payment
|
||||
|
||||
@@ -1,57 +0,0 @@
|
||||
===================================================
|
||||
Install the patch to disable online invoice payment
|
||||
===================================================
|
||||
|
||||
Following recent changes in Odoo 16, you might be warned that disabling the :guilabel:`Invoice
|
||||
Online Payment` setting will uninstall modules. If you want to disable the feature without
|
||||
uninstalling modules, follow the steps below to install the module **Payment - Account / Invoice
|
||||
Online Payment Patch**.
|
||||
|
||||
.. note::
|
||||
| If your Odoo database is created after the module **Payment - Account / Invoice Online Payment
|
||||
Patch** was released, you don't have anything to do.
|
||||
| To check if the module is already installed, go to :guilabel:`Apps`, remove the `Apps` filter,
|
||||
and search for `account_payment`. If the module **Payment - Account / Invoice Online Payment
|
||||
Patch** is present and marked as installed, your Odoo database is already up-to-date and you
|
||||
are able to disable the feature without side-effect.
|
||||
|
||||
Update Odoo to the latest release
|
||||
=================================
|
||||
|
||||
The possibility to disable the :guilabel:`Invoice Online Payment` setting without side-effect is
|
||||
made available through a new Odoo module; to be able to install it, you must make sure that your
|
||||
Odoo source code is up-to-date.
|
||||
|
||||
If you use Odoo on Odoo.com or Odoo.sh platform, your code is already up-to-date and you can proceed
|
||||
to the next step.
|
||||
|
||||
If you use Odoo with an on-premise setup or through a partner, you must update your installation as
|
||||
detailed in :doc:`this documentation page </administration/on_premise/update>`, or by contacting
|
||||
your integrating partner.
|
||||
|
||||
Update the list of available modules
|
||||
====================================
|
||||
|
||||
New modules must be *discovered* by your Odoo instance to be available in the **Apps** menu.
|
||||
|
||||
To do so, activate the :ref:`developer mode <developer-mode>`, and go to :menuselection:`Apps -->
|
||||
Update Apps List`. A wizard will ask for confirmation.
|
||||
|
||||
Install the module Invoice Online Payment Patch
|
||||
===============================================
|
||||
|
||||
.. warning::
|
||||
You should never install new modules in your production database without first testing them in a
|
||||
duplicate or staging environment. For Odoo.com customers, a duplicate database can be created
|
||||
from the database management page. For Odoo.sh users, you should use a staging or duplicate
|
||||
database. For on-premise users, you should use a staging environment---contact your integrating
|
||||
partner for more information regarding how to test a new module in your particular setup.
|
||||
|
||||
The module should now be available in your :guilabel:`Apps` menu. Remove the ``Apps`` filter and
|
||||
search for ``account_payment``; the module :guilabel:`Payment - Account / Invoice Online Payment Patch`
|
||||
should be available for installation. If you cannot find the module after having updated the list
|
||||
of available modules, it means your Odoo source code is not up-to-date; refer to step one of this
|
||||
page.
|
||||
|
||||
Once the module is installed, disabling the feature will work as intended and will not ask you to
|
||||
uninstall installed applications or modules.
|
||||
@@ -34,8 +34,8 @@ tax, and click on :guilabel:`Save`.
|
||||
|
||||
.. _taxes/list_activation:
|
||||
|
||||
Activate sales taxes from the list view
|
||||
=======================================
|
||||
Activate taxes from the list view
|
||||
=================================
|
||||
|
||||
As part of your :ref:`fiscal localization package <fiscal_localizations/packages>`, most of your
|
||||
country's sales taxes are already preconfigured on your database. However, only a few taxes are
|
||||
|
||||
@@ -38,18 +38,17 @@ click :guilabel:`New`.
|
||||
Automatically
|
||||
-------------
|
||||
|
||||
Vendor bills can be automatically created through various methods:
|
||||
|
||||
- Emailing to an :ref:`email alias <invoice-digitization/email-alias>` associated with the purchase
|
||||
journal. If the email does not contain a valid file, an automatic response notifies the sender
|
||||
that no document was received.
|
||||
- Uploading a PDF: To upload a bill, go to :menuselection:`Accounting --> Vendors --> Bills`, then
|
||||
click :guilabel:`Upload`.
|
||||
Vendor bills can be automatically created by sending an email to an :ref:`email alias
|
||||
<accounting/bill-digitization/email-alias>` associated with the purchase journal, or by
|
||||
:ref:`uploading a PDF <accounting/bill-digitization/manual-upload>`.
|
||||
|
||||
.. note::
|
||||
- Once the bill is uploaded, the PDF document appears on the right side of the screen, making it
|
||||
easy to fill in the bill information.
|
||||
- Bills can be :doc:`digitized <vendor_bills/invoice_digitization>` for automatic completion.
|
||||
- Bills can be :doc:`digitized <vendor_bills/invoice_digitization>` for automatic
|
||||
completion and :ref:`matched with purchase orders
|
||||
<accounting/bill-digitization/vendor-bills-matching-po>` to replace OCR-detected data with the
|
||||
existing purchase order's details.
|
||||
- Services such as digitizing scanned or PDF vendor bills in Odoo require :doc:`In-App
|
||||
Purchase (IAP) </applications/essentials/in_app_purchase>` credits.
|
||||
|
||||
@@ -62,6 +61,10 @@ options:
|
||||
- :guilabel:`Ask after 3 validations without edits`
|
||||
- :guilabel:`Never`
|
||||
|
||||
.. seealso::
|
||||
:ref:`Vendor bills matching with purchase orders
|
||||
<accounting/bill-digitization/vendor-bills-matching-po>`
|
||||
|
||||
.. _accounting/vendor_bills/bill-completion:
|
||||
|
||||
Bill completion
|
||||
|
||||
@@ -1,101 +1,217 @@
|
||||
================================
|
||||
AI-powered document digitization
|
||||
================================
|
||||
=====================
|
||||
Document digitization
|
||||
=====================
|
||||
|
||||
**Invoice digitization** is the process of converting paper documents into vendor bill and customer
|
||||
invoice forms in your accounting.
|
||||
Document digitization refers to the process of converting paper or digital documents into records
|
||||
in a database. Using :abbr:`OCR (optical character recognition)` and artificial intelligence
|
||||
technologies, Odoo reads the content and automatically creates and fills in the record's details.
|
||||
This process is mainly used for vendor bills (or refunds).
|
||||
|
||||
Odoo uses :abbr:`OCR (optical character recognition)` and artificial intelligence technologies to
|
||||
recognize the content of the documents. Vendor bill and customer invoice forms are automatically
|
||||
created and populated based on the scanned invoices.
|
||||
.. note::
|
||||
Although less common, this digitization process can also be applied to customer invoices and
|
||||
credit notes. The :ref:`settings <accounting/bill-digitization/configuration>` need to be
|
||||
adjusted accordingly.
|
||||
|
||||
.. seealso::
|
||||
- `Test Odoo's invoice digitization <https://www.odoo.com/app/invoice-automation>`_
|
||||
- `Odoo Tutorials: Vendor Bill Digitization
|
||||
<https://www.odoo.com/slides/slide/vendor-bill-digitization-7065>`_
|
||||
- :doc:`/applications/essentials/in_app_purchase`
|
||||
|
||||
.. _accounting/bill-digitization/configuration:
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
In :menuselection:`Accounting --> Configuration --> Settings --> Digitization`, check the box
|
||||
:guilabel:`Document Digitization` and choose whether :guilabel:`Vendor Bills` and
|
||||
:guilabel:`Customer Invoices` (this includes customer credit notes) should be processed
|
||||
automatically or on demand.
|
||||
|
||||
If you enable the :guilabel:`Single Invoice Line Per Tax` option, only one line is created per tax
|
||||
in the new bill, regardless of the number of lines on the invoice.
|
||||
|
||||
Invoice upload
|
||||
==============
|
||||
|
||||
Upload invoices manually
|
||||
------------------------
|
||||
|
||||
From the :guilabel:`Accounting Dashboard`, click on the :guilabel:`Upload` button of your vendor
|
||||
bills journal.
|
||||
Alternatively, go to :menuselection:`Accounting --> Customers --> Invoices` or
|
||||
:menuselection:`Accounting --> Vendors --> Bills` and select :guilabel:`Upload`.
|
||||
|
||||
.. _invoice-digitization/email-alias:
|
||||
|
||||
Upload invoices using an email alias
|
||||
------------------------------------
|
||||
|
||||
You can configure your connected scanner to send scanned documents to an email alias. Emails sent to
|
||||
these aliases are converted into new draft customer invoices or vendor bills.
|
||||
|
||||
You can modify the email alias of a journal. To do so, go to the :guilabel:`Settings` app. Under
|
||||
:guilabel:`General Settings: Discuss`, enable :guilabel:`Custom Email Servers`, add an
|
||||
:guilabel:`Alias Domain`, and :guilabel:`Save`.
|
||||
|
||||
The email alias is now available in the :guilabel:`Advanced Settings` tab of the journal. Emails
|
||||
sent to this address will be converted automatically into new invoices or bills.
|
||||
Go to :menuselection:`Accounting --> Configuration --> Settings` and navigate to the
|
||||
:guilabel:`Digitization` section. Enable the :guilabel:`Document Digitization` option and choose
|
||||
whether :guilabel:`Vendor Bills` should be processed automatically or on demand.
|
||||
|
||||
.. note::
|
||||
If you use the :doc:`Documents </applications/productivity/documents>` app, you can automatically
|
||||
send your scanned invoices to the :guilabel:`Finance` workspace (e.g.,
|
||||
`inbox-financial@example.odoo.com`).
|
||||
If the :guilabel:`Single Invoice Line Per Tax` option is enabled, only one line is created per
|
||||
tax in the new vendor bill, regardless of the number of lines on it.
|
||||
|
||||
The default email aliases `vendor-bills@` and `customer-invoices@` followed by the
|
||||
:guilabel:`Alias Domain` you set are automatically created for the :guilabel:`Vendor Bills` and
|
||||
:guilabel:`Customer Invoices` journals, respectively. Emails sent to these addresses are converted
|
||||
automatically into new invoices or bills.
|
||||
.. _accounting/bill-digitization/vendor-bills-upload:
|
||||
|
||||
To change a default email alias, go to
|
||||
:menuselection:`Accounting --> Configuration --> Accounting: Journals`. Select the journal you want
|
||||
to edit, click on the :guilabel:`Advanced Settings` tab, and edit the `Email Alias`.
|
||||
Vendor bills upload
|
||||
===================
|
||||
|
||||
Invoice digitization
|
||||
====================
|
||||
Vendor bills are :ref:`uploaded manually <accounting/bill-digitization/manual-upload>` or sent to a
|
||||
:ref:`designated email alias <accounting/bill-digitization/email-alias>` to be digitized. They can
|
||||
also be :ref:`automatically posted <accounting/bill-digitization/auto-post-bills>` for selected
|
||||
vendors.
|
||||
|
||||
According to your settings, the document is either processed automatically, or you need to click on
|
||||
:guilabel:`Send for digitization` to do it manually.
|
||||
.. note::
|
||||
Once the bill is uploaded, the document preview appears on the right side of the screen.
|
||||
|
||||
Once the data is extracted from the PDF, you can correct it if necessary by clicking on the
|
||||
respective tags (available in :guilabel:`Edit` mode) and selecting the proper information instead.
|
||||
.. seealso::
|
||||
:doc:`Vendor bills <../vendor_bills>`
|
||||
|
||||
Data recognition with AI
|
||||
========================
|
||||
.. _accounting/bill-digitization/manual-upload:
|
||||
|
||||
It is essential to review and correct (if needed) the information uploaded during digitization.
|
||||
Then, you have to post the document by clicking on :guilabel:`Confirm`. In this manner, the AI
|
||||
learns, and the system identifies the correct data for future digitizations.
|
||||
Manual upload
|
||||
-------------
|
||||
|
||||
In the Accounting dashboard, drag and drop vendor bills into the desired purchase journal or click
|
||||
:guilabel:`Upload` on the purchase journal.
|
||||
|
||||
.. _accounting/bill-digitization/email-alias:
|
||||
|
||||
Upload via email alias
|
||||
----------------------
|
||||
|
||||
Vendor bills can be uploaded via an email alias associated with the relevant journal in two ways:
|
||||
|
||||
- scanned from a connected scanner configured to send email to an email alias;
|
||||
- sent directly to an email alias.
|
||||
|
||||
Each PDF attached to the email is automatically converted into a new draft vendor bill.
|
||||
|
||||
.. note::
|
||||
- Only PDF and XML formats are processed via an email alias associated with a journal.
|
||||
- JPEG files must be processed via :ref:`email alias in the Documents app
|
||||
<documents/email-aliases>`.
|
||||
|
||||
To add an email alias to a journal, follow these steps:
|
||||
|
||||
#. Make sure an :doc:`alias domain <../../../websites/website/configuration/domain_names>` has been
|
||||
configured.
|
||||
#. The default email alias `vendor-bills@` followed by the alias domain is automatically created
|
||||
and available in the :guilabel:`Advanced Settings` tab of the :guilabel:`Vendor Bills` journal.
|
||||
#. To change a default email alias, go to :menuselection:`Accounting --> Configuration -->
|
||||
Journals`, select the corresponding journal, and edit the :guilabel:`Email Alias` in the
|
||||
:guilabel:`Advanced Settings` tab.
|
||||
#. Configure the connected scanner to send scanned documents to the email alias, if needed.
|
||||
|
||||
.. note::
|
||||
Alternatively, an :ref:`email alias in the Documents app <documents/email-aliases>` can be used
|
||||
to automatically send vendor bills to the :guilabel:`Finance` :ref:`folder
|
||||
<documents/folders>` (e.g., `inbox-financial@example.odoo.com`).
|
||||
|
||||
.. _accounting/bill-digitization/auto-post-bills:
|
||||
|
||||
Automatic vendor bill posting
|
||||
-----------------------------
|
||||
|
||||
.. note::
|
||||
To use the :guilabel:`Auto-post bills` option, the :guilabel:`Digitize automatically` setting in
|
||||
the :ref:`Document Digitization <accounting/bill-digitization/configuration>` section must be
|
||||
enabled for vendor bills.
|
||||
|
||||
To automatically post digitized vendor bills for specific vendors, go to :menuselection:`Accounting
|
||||
--> Vendors --> Vendors` and click the desired vendor. In the :guilabel:`Accounting` tab of the
|
||||
contact form, select an :guilabel:`Auto-post bills` option in the :guilabel:`Automation` section:
|
||||
|
||||
- :guilabel:`Always`
|
||||
- :guilabel:`Ask after 3 validations without edits`: When the third uploaded bill is confirmed
|
||||
without any edits, an :guilabel:`Autopost Bills` window appears. The following options can be
|
||||
chosen: :guilabel:`Activate auto-validation`, :guilabel:`Ask me later`, or :guilabel:`Never for
|
||||
this vendor`.
|
||||
- :guilabel:`Never`
|
||||
|
||||
.. note::
|
||||
Since automation is triggered after three validated bills without edits, the contact name must
|
||||
already exist in the database, and each uploaded vendor bill must include a bill date.
|
||||
|
||||
.. _accounting/bill-digitization/digitization:
|
||||
|
||||
Digitization and data recognition with AI
|
||||
=========================================
|
||||
|
||||
Depending on the :ref:`settings <accounting/bill-digitization/configuration>`, documents are either
|
||||
automatically digitized or require manual processing if digitization is set to on-demand only.
|
||||
|
||||
To manually digitize an :ref:`uploaded document
|
||||
<accounting/bill-digitization/vendor-bills-upload>`, click :guilabel:`Digitize document`.
|
||||
|
||||
Once the document has been digitized, a blue banner appears; click :icon:`oi-arrow-right`
|
||||
:guilabel:`Refresh`. Review and correct any information uploaded during digitization: click on the
|
||||
related field(s) to edit them, or click :guilabel:`Reload AI data` to refresh the data.
|
||||
|
||||
Then, click :guilabel:`Confirm` to post the document.
|
||||
|
||||
.. tip::
|
||||
Once a document has been digitized, the :guilabel:`Vendor` field remains empty if the vendor
|
||||
doesn't exist in the database. To add it, click the :icon:`fa-caret-down` :guilabel:`(down arrow)`
|
||||
in the :guilabel:`Vendor` field; the vendor name appears highlighted in the document preview on
|
||||
the right. Click it to open a new vendor form with the name pre-filled.
|
||||
|
||||
.. note::
|
||||
The following vendor bill fields are recognized by OCR:
|
||||
|
||||
- :guilabel:`Vendor`, :guilabel:`Bill Reference`, :guilabel:`Bill Date`, :guilabel:`Payment
|
||||
Reference` (only in the Belgian +++xxx/xxxx/xxxxx+++ format), :guilabel:`Recipient Bank`,
|
||||
:guilabel:`Due Date`, and the currency (in a :doc:`multi-currency
|
||||
<../get_started/multi_currency>` environment and if the currency is activated).
|
||||
- From the :guilabel:`Invoices Lines` tab: :guilabel:`Product` description/label,
|
||||
:guilabel:`Quantity`, unit :guilabel:`Price`, :guilabel:`Taxes` (if the :ref:`tax is activated
|
||||
<taxes/list_activation>`; this field is not recognized by OCR for the :doc:`Indian
|
||||
localization <../../fiscal_localizations/india>`), :guilabel:`Untaxed Amount`, and
|
||||
:guilabel:`Total`.
|
||||
|
||||
.. _accounting/bill-digitization/vendor-bills-matching-po:
|
||||
|
||||
Purchase order matching
|
||||
=======================
|
||||
|
||||
When a digitized vendor bill is recognized by :abbr:`OCR (optical character recognition)`, Odoo
|
||||
searches the database for a matching purchase order. If found, the vendor bill can be manually
|
||||
matched with the existing open purchase order lines.
|
||||
|
||||
Once a vendor bill has been :ref:`uploaded <accounting/bill-digitization/vendor-bills-upload>` and
|
||||
:ref:`digitized <accounting/bill-digitization/digitization>`, click the :guilabel:`Purchase
|
||||
matching` smart button to access the :guilabel:`Purchase matching` list view, displaying all
|
||||
purchase order lines linked to the vendor assigned to the vendor bill. Then, select the relevant
|
||||
purchase order lines and the draft vendor bill (shown in grey), and click :guilabel:`Match`.
|
||||
|
||||
.. tip::
|
||||
In the :guilabel:`Purchase Matching` list view, update the :guilabel:`Quantity` and
|
||||
:guilabel:`Price` in the purchase order lines, if necessary.
|
||||
|
||||
If there is no existing purchase order related to the vendor of the uploaded vendor bill, a new
|
||||
purchase order can be directly created from the vendor bill lines. To do so, follow these steps:
|
||||
|
||||
#. Once the vendor bill is uploaded, make sure the :guilabel:`Vendor` field is filled in with the
|
||||
correct vendor.
|
||||
#. Click the :guilabel:`Purchase matching` smart button, select the draft vendor bill in the list
|
||||
(shown in grey), and click :guilabel:`Add to PO`.
|
||||
#. In the :guilabel:`Add to Purchase Order` window, start typing in the :guilabel:`Purchase Order`
|
||||
field and select :guilabel:`Create and edit`.
|
||||
#. In the :guilabel:`Create Purchase Order` window, select the vendor assigned to the vendor bill,
|
||||
then complete all :ref:`required fields <purchase/manage_deals/create-new-rfq>` and click
|
||||
:guilabel:`Confirm`.
|
||||
#. In the :guilabel:`Purchase Matching` list view, select the relevant purchase order lines and the
|
||||
draft vendor bill (shown in grey), and click :guilabel:`Match`.
|
||||
|
||||
.. Note::
|
||||
If any information required for the purchase order fields is missing, click :guilabel:`Save and
|
||||
Close` in the :guilabel:`Create Purchase Order` window. Then, open the Purchase app to fill in
|
||||
the fields and :ref:`confirm the purchase order <purchase/manage_deals/confirm-order>`.
|
||||
|
||||
.. tip::
|
||||
- Electronic vendor bills with embedded XML ensure more accurate and efficient processing.
|
||||
- Alternatively, the :ref:`Auto-complete <accounting/vendor_bills/bill-completion>` feature
|
||||
can transfer information from the purchase order to the vendor bill, without requiring OCR.
|
||||
|
||||
.. _accounting/bill-digitization/pricing:
|
||||
|
||||
Pricing
|
||||
=======
|
||||
|
||||
The **invoice digitization** is an In-App Purchase (IAP) service that requires prepaid credits to
|
||||
work. Digitizing one document consumes one credit.
|
||||
The document digitization feature is an In-App Purchase (IAP) service requiring prepaid credits.
|
||||
Digitizing one document uses one credit.
|
||||
|
||||
To buy credits, go to :menuselection:`Accounting --> Configuration --> Settings --> Digitization`
|
||||
and click on :guilabel:`Buy credits`, or go to :menuselection:`Settings --> Odoo IAP` and click on
|
||||
:guilabel:`View My Services`.
|
||||
To buy credits, :ref:`go to the Settings app <iap/buying_credits>` or :menuselection:`Accounting -->
|
||||
Configuration --> Settings`, navigate to the :guilabel:`Digitization` section, and click
|
||||
:guilabel:`Buy credits`.
|
||||
|
||||
.. 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.
|
||||
- Odoo Enterprise users with a valid subscription get free credits to test IAP features before
|
||||
purchasing more credits for the database. This includes demo/training databases, educational
|
||||
databases, and one-app-free databases.
|
||||
- XML files don't require OCR credits because they contain structured data that can be processed
|
||||
directly, without OCR.
|
||||
|
||||
.. seealso::
|
||||
- `Our Privacy Policy <https://iap.odoo.com/privacy#header_6>`_
|
||||
- `Odoo In-App Purchase Privacy Policy <https://iap.odoo.com/privacy#header_6>`_
|
||||
- :doc:`/applications/essentials/in_app_purchase`
|
||||
|
||||
@@ -84,7 +84,7 @@ Fiscal localization modules are available for the countries listed below.
|
||||
- :doc:`Germany <fiscal_localizations/germany>`
|
||||
- Guinea
|
||||
- Greece
|
||||
- Guatemala
|
||||
- :doc:`Guatemala <fiscal_localizations/guatemala>`
|
||||
- Guinea-Bissau
|
||||
- Honduras
|
||||
- :doc:`Hong Kong <fiscal_localizations/hong_kong>`
|
||||
@@ -164,6 +164,7 @@ Fiscal localization modules are available for the countries listed below.
|
||||
fiscal_localizations/egypt
|
||||
fiscal_localizations/france
|
||||
fiscal_localizations/germany
|
||||
fiscal_localizations/guatemala
|
||||
fiscal_localizations/hong_kong
|
||||
fiscal_localizations/india
|
||||
fiscal_localizations/indonesia
|
||||
|
||||
@@ -224,7 +224,7 @@ your :guilabel:`Bank` journal on your dashboard.
|
||||
:alt: Import CODA files
|
||||
|
||||
.. seealso::
|
||||
:ref:`Import bank files <transactions/import>`
|
||||
:ref:`Import bank files <accounting/transactions/import>`
|
||||
|
||||
.. _belgium/soda:
|
||||
|
||||
@@ -576,8 +576,8 @@ IoT box, you must contact us through our `support contact form <https://www.odoo
|
||||
provide the following information:
|
||||
|
||||
- your VAT number;
|
||||
- your company's name, address, and legal structure; and
|
||||
- the Mac address of your IoT Box.
|
||||
- your company's name, address, and legal structure;
|
||||
- the identifier of your IoT Box.
|
||||
|
||||
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
|
||||
|
||||
@@ -101,8 +101,8 @@ To send invoices to Chorus Pro, the following configuration is required:
|
||||
|
||||
#. :doc:`Install </applications/general/apps_modules>` the :guilabel:`France - Factur-X integration
|
||||
with Chorus Pro` (`l10n_fr_facturx_chorus_pro`) module.
|
||||
#. :ref:`Register <e-invoicing/peppol-registration>` with Peppol, as invoices are sent from Odoo to
|
||||
Chorus Pro via the :ref:`Peppol <e-invoicing/peppol>` network.
|
||||
#. :ref:`Register <accounting/e-invoicing/peppol-registration>` with Peppol, as invoices are sent
|
||||
from Odoo to Chorus Pro via the :ref:`Peppol <accounting/e-invoicing/peppol>` network.
|
||||
#. If you don’t already have a Chorus Pro account, go to the `Chorus Pro
|
||||
<https://portail.chorus-pro.gouv.fr/aife_csm>`_ page, click :guilabel:`Créer un compte`, and
|
||||
create one.
|
||||
@@ -150,7 +150,7 @@ To send invoices to Chorus Pro, follow these steps:
|
||||
Once the invoice is sent, the Peppol status of the invoice is updated to :guilabel:`Done`.
|
||||
|
||||
.. seealso::
|
||||
:ref:`Peppol <e-invoicing/peppol>`
|
||||
:ref:`Peppol <accounting/e-invoicing/peppol>`
|
||||
|
||||
.. _localizations/france/fec:
|
||||
|
||||
|
||||
291
content/applications/finance/fiscal_localizations/guatemala.rst
Normal file
@@ -0,0 +1,291 @@
|
||||
=========
|
||||
Guatemala
|
||||
=========
|
||||
|
||||
.. |SAT| replace:: :abbr:`SAT (Superintendencia de Administración Tributaria)`
|
||||
.. |EDI| replace:: :abbr:`EDI (Electronic Data Interchange)`
|
||||
.. |UUID| replace:: :abbr:`UUID (Universally Unique Identifier)`
|
||||
|
||||
.. _guatemala/intro:
|
||||
|
||||
Introduction
|
||||
============
|
||||
|
||||
With the Guatemalan localization, you can connect to the tax authority Superintendencia de
|
||||
Administración Tributaria (SAT) to generate electronic documents with its XML, fiscal folio, and
|
||||
electronic signature.
|
||||
|
||||
The supported documents are:
|
||||
|
||||
- :guilabel:`FACT-Factura`,
|
||||
- :guilabel:`FCAM-Factura Cambiaria`,
|
||||
- :guilabel:`FPEQ-Factura de Pequeño Contribuyente`,
|
||||
- :guilabel:`NCRE-Credit Note`,
|
||||
- :guilabel:`NDEB-Debit Note`,
|
||||
- :guilabel:`NABN-Nota de Abono`,
|
||||
- :guilabel:`FCAP-Factura Cambiaria Pequeño Contribuyente`,
|
||||
- :guilabel:`FACT-Factura with Export Complement`.
|
||||
|
||||
The localization requires an `Infile <https://infile.com.gt/>`_ account, which enables users to
|
||||
generate electronic documents within Odoo.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Documentation on e-invoicing's legality and compliance in Guatemala
|
||||
<../accounting/customer_invoices/electronic_invoicing/guatemala>`
|
||||
|
||||
Glossary
|
||||
--------
|
||||
|
||||
The following terms are used throughout the Guatemalan localization:
|
||||
|
||||
- **SAT**: *Superintendencia de Administración Tributaria* is the government entity responsible for
|
||||
enforcing tax payments in Guatemala.
|
||||
- **FEL**: *Factura Electrónica en Línea* is the electronic invoicing system mandated by the SAT in
|
||||
Guatemala, which requires businesses to issue and manage electronic documents in compliance with
|
||||
local regulations.
|
||||
- **EDI**: *Electronic Data Interchange* refers to the sending of electronic documents.
|
||||
- **Infile**: is the third-party organization that facilitates the interchange of electronic
|
||||
documents between companies and the Guatemalan government.
|
||||
- **UUID**: *Universally Unique Identifier* is a unique alphanumeric code assigned by the SAT to
|
||||
each certified electronic document in the FEL system, used for traceability and official
|
||||
validation.
|
||||
- **Phrases**: Type of Phrases with specific Scenario Codes are used in the Guatemalan localization
|
||||
to comply with the requirements of the SAT. They should be added depending on the issuer regime,
|
||||
receiver, and operation type. These phrases are used in the XML and PDF documents.
|
||||
- **Establishment Code**: A unique identifier assigned by the SAT to each business establishment,
|
||||
which is required for electronic invoicing.
|
||||
- **Quetzal**: The official currency of Guatemala, represented by the symbol GTQ. This is the base
|
||||
currency for all financial transactions in the Guatemalan localization.
|
||||
|
||||
Configuration
|
||||
=============
|
||||
|
||||
Modules installation
|
||||
--------------------
|
||||
|
||||
:ref:`Install <general/install>` the following modules to get all the features of the Guatemalan
|
||||
localization:
|
||||
|
||||
.. list-table::
|
||||
:header-rows: 1
|
||||
:widths: 25 25 50
|
||||
|
||||
* - Name
|
||||
- Technical name
|
||||
- Description
|
||||
* - :guilabel:`Guatemala - Accounting`
|
||||
- `l10n_gt`
|
||||
- The default :doc:`fiscal localization package <../fiscal_localizations>`. It adds accounting
|
||||
characteristics for the Guatemalan localization, which represent the minimum configuration
|
||||
required for a company to operate in Guatemala according to the guidelines set by the |SAT|.
|
||||
The module's installation automatically loads the chart of accounts and taxes.
|
||||
* - :guilabel:`Guatemala Accounting EDI`
|
||||
- `l10n_gt_edi`
|
||||
- Includes all the technical and functional requirements to generate and validate
|
||||
:doc:`Electronics Documents <../accounting/customer_invoices/electronic_invoicing>`, based on
|
||||
the technical documentation published by the |SAT|. The authorized documents are :ref:`listed
|
||||
above <guatemala/intro>`.
|
||||
|
||||
.. note::
|
||||
Odoo automatically installs the base module **Guatemala - Accounting** when a database is
|
||||
installed with `Guatemala` selected as the country. However, to enable electronic invoicing, the
|
||||
**Guatemala Accounting EDI** (`l10n_gt_edi`) module needs to be manually :ref:`installed
|
||||
<general/install>`.
|
||||
|
||||
Company
|
||||
-------
|
||||
|
||||
To configure your company information, open the **Settings** app, scroll down to the
|
||||
:guilabel:`Companies` section, click :guilabel:`Update Info`, and configure the following:
|
||||
|
||||
- :guilabel:`Company Name`
|
||||
- :guilabel:`Address`, including the :guilabel:`Street`, :guilabel:`City`, :guilabel:`State`,
|
||||
:guilabel:`ZIP`, and :guilabel:`Country`
|
||||
- :guilabel:`Tax ID`: Enter the identification number for the selected taxpayer type.
|
||||
- :guilabel:`VAT Affiliation`: Select the VAT affiliation for the company, which is the type of
|
||||
Regime the company belongs to.
|
||||
- :guilabel:`Legal Name`: The legal name of the company, which is used in the XML and PDF documents.
|
||||
- :guilabel:`Establishment Code`: A necessary part of the XML when creating an electronic document.
|
||||
If this field is not set, all electronic documents will be rejected.
|
||||
|
||||
To locate the :guilabel:`Establishment Code` in your `SAT account <https://portal.sat.gob.gt/>`_,
|
||||
go to :menuselection:`FEL --> Administración de Establecimientos`. The list of registered
|
||||
establishments is displayed along with their corresponding codes.
|
||||
|
||||
.. important::
|
||||
After configuring the company in the database settings, navigate to the company's contact form
|
||||
and verify that the :guilabel:`Identification Number` :guilabel:`Type` is set to :guilabel:`NIT`.
|
||||
|
||||
Electronic invoicing credentials
|
||||
--------------------------------
|
||||
|
||||
In Guatemala, electronic invoicing is mandatory for most businesses. Odoo connects with the
|
||||
authorized provider, Infile, to generate and submit electronic documents to the |SAT| for
|
||||
validation.
|
||||
|
||||
Before issuing electronic documents, you must configure and connect Odoo to Infile to ensure they
|
||||
are properly validated and assigned an official |UUID|.
|
||||
|
||||
Infile
|
||||
~~~~~~
|
||||
|
||||
Sign a service agreement directly with `Infile <https://infile.com.gt/>`_. Infile will then provide
|
||||
the necessary credentials to input in Odoo.
|
||||
|
||||
Odoo
|
||||
~~~~
|
||||
|
||||
In Odoo, once you have completed the Infile process, navigate to :menuselection:`Accounting -->
|
||||
Configuration --> Settings`, scroll down to the :guilabel:`Guatemalan Localization` section, then
|
||||
follow these steps:
|
||||
|
||||
#. Select the :guilabel:`Infile Web Services` environment, either :guilabel:`Test` or
|
||||
:guilabel:`Production`.
|
||||
#. Enter the :guilabel:`Infile Credentials`:
|
||||
|
||||
- :guilabel:`Infile WS Username or Prefix`
|
||||
- :guilabel:`Infile Token`
|
||||
- :guilabel:`Infile Key`
|
||||
|
||||
#. Click on :guilabel:`Save`.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`Infile Credentials` are provided by Infile and are required for both test and
|
||||
production environments. If they are not available, contact Infile support.
|
||||
|
||||
.. tip::
|
||||
The demo environment is for testing only and does not generate legal documents, |UUID| keys, or
|
||||
fiscal folios. No Infile account or credentials are needed to use the demo environment.
|
||||
|
||||
Multi-currency
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
The official currency exchange rate in Guatemala is provided by the Bank of Guatemala. Odoo can
|
||||
connect directly to its services and get the currency rate either automatically or manually.
|
||||
|
||||
.. seealso::
|
||||
:doc:`Multi-currencies <../accounting/get_started/multi_currency>`
|
||||
|
||||
Master data
|
||||
-----------
|
||||
|
||||
Chart of accounts
|
||||
~~~~~~~~~~~~~~~~~
|
||||
|
||||
The :doc:`chart of accounts <../accounting/get_started/chart_of_accounts>` is installed by default
|
||||
as part of the set of data included in the localization module, the accounts are mapped
|
||||
automatically in taxes, default accounts payable, and default accounts receivable.
|
||||
|
||||
Accounts can be added or deleted according to the company's needs.
|
||||
|
||||
Contacts
|
||||
~~~~~~~~
|
||||
|
||||
The following fields must be completed on contact forms:
|
||||
|
||||
- :guilabel:`Company Name`
|
||||
- :guilabel:`Address`, including the :guilabel:`Street`, :guilabel:`City`, :guilabel:`State`,
|
||||
:guilabel:`ZIP`, and :guilabel:`Country`
|
||||
- :guilabel:`Identification Number`:
|
||||
|
||||
- :guilabel:`Type`: Select an identification type.
|
||||
- :guilabel:`Number`: Required to confirm an electronic invoice.
|
||||
|
||||
.. note::
|
||||
To automatically include a specific phrase in the XML and PDF of every electronic invoice for a
|
||||
contact, select it in :guilabel:`Phrases` field in the :guilabel:`Sales & purchase` tab of the
|
||||
contact form.
|
||||
|
||||
Taxes
|
||||
~~~~~
|
||||
|
||||
As part of the Guatemala localization module, taxes are automatically created with their configuration
|
||||
and related financial accounts.
|
||||
|
||||
Electronic invoices
|
||||
===================
|
||||
|
||||
Once the database has been configured successfully, electronic documents can be created and sent.
|
||||
|
||||
Once :doc:`customer invoices <../accounting/customer_invoices>` are validated, they can be sent
|
||||
electronically to |SAT| via Infile, provided the following fields are completed:
|
||||
|
||||
- :guilabel:`Customer`: Type the customer's information.
|
||||
- :guilabel:`GT Document Type`: Select the type of document you want to create, i.e.,
|
||||
:guilabel:`FACT - Factura Electrónica` or :guilabel:`FCAM - Factura Cambiara`. By default, the
|
||||
document type is set to :guilabel:`FACT`.
|
||||
- :guilabel:`Due date`: To compute if the invoice is due now or later.
|
||||
- :guilabel:`Journal`: Select the sales journal.
|
||||
- :guilabel:`Products`: Specify the product(s) with the correct taxes.
|
||||
|
||||
When done, click :guilabel:`Confirm`.
|
||||
|
||||
.. note::
|
||||
If you need to add a specific phrase based on the transaction, go to the :guilabel:`Other Info`
|
||||
tab and add the corresponding phrase in :guilabel:`GT Phrases`. These phrases are used in the XML
|
||||
and PDF documents.
|
||||
|
||||
.. note::
|
||||
If you need to add an addendum to the invoice, you can do so in the :guilabel:`Terms and
|
||||
Conditions` field. The addendum will be included in the XML document and can be used to provide
|
||||
additional information or notes related to the invoice.
|
||||
|
||||
After the invoice confirmation, click :guilabel:`Send`. In the wizard that appears, make sure to
|
||||
enable the :guilabel:`Send to SAT` and :guilabel:`by Email` checkboxes to send the XML to the |SAT|
|
||||
through Infile's web service and the validated invoice to the client's email, and click
|
||||
:guilabel:`Send`. Then, the following occurs:
|
||||
|
||||
- The XML document is created.
|
||||
- The |UUID| is generated.
|
||||
- The XML is processed synchronously by Infile.
|
||||
|
||||
- If accepted, the file is displayed in the chatter, and the email to the client with the
|
||||
corresponding :file:`pdf` and :file:`xml` file is sent.
|
||||
- If the file contains errors, a warning message displays the reason(s) and the email is not sent.
|
||||
|
||||
.. image:: guatemala/pdf-xml-chatter-guatemala.png
|
||||
:alt: EDI documents available in the chatter.
|
||||
|
||||
The :guilabel:`SAT` tab then displays the following:
|
||||
|
||||
- :guilabel:`Datetime`: Timestamp recorded of the XML creation.
|
||||
- :guilabel:`GT Status`: Status result obtained in the |SAT| response. If the file contains errors,
|
||||
a warning message displays the reason(s) and the email is not sent.
|
||||
- :guilabel:`UUID`: The unique identifier assigned by the |SAT| to the electronic document.
|
||||
- :guilabel:`Download Certificate`: To download the sent XML file, even if the |SAT| result was
|
||||
rejected.
|
||||
|
||||
.. image:: guatemala/sat-tab-electronic-document.png
|
||||
:alt: EDI document record available in SAT tab.
|
||||
|
||||
.. _localization/guatemala/credit-notes:
|
||||
|
||||
Debit and credit notes
|
||||
----------------------
|
||||
|
||||
To send a debit or credit note to Infile, first create the :ref:`debit
|
||||
<accounting/credit_notes/issue-debit-note>` or :ref:`credit note
|
||||
<accounting/credit_notes/issue-credit-note>`.
|
||||
|
||||
Then, in the :guilabel:`Send` window, click :guilabel:`Send to SAT (Guatemalan EDI)` to submit it
|
||||
for real-time validation. Upon successful validation, the QR code from Infile is embedded in the
|
||||
debit or credit note PDF.
|
||||
|
||||
Export invoices
|
||||
---------------
|
||||
|
||||
Exportation invoices must meet the following conditions:
|
||||
|
||||
- The customer's :guilabel:`Identification type` must be :guilabel:`VAT`, :guilabel:`Passport`, or
|
||||
:guilabel:`Foreign ID`.
|
||||
- The following fields must be defined in the customer invoice's :guilabel:`Other Info` tab, under
|
||||
the :guilabel:`Accounting` section:
|
||||
|
||||
- :guilabel:`Incoterm`
|
||||
- :guilabel:`GT Phrases`: :guilabel:`Type 4 Code 1`
|
||||
- :guilabel:`Consignatory Company`
|
||||
|
||||
- All invoice lines must include taxes set to 0%.
|
||||
|
||||
.. image:: guatemala/l10n-gt-factura-de-cliente.png
|
||||
:alt: Exportation invoices main data.
|
||||
|
After Width: | Height: | Size: 54 KiB |
|
After Width: | Height: | Size: 36 KiB |
|
After Width: | Height: | Size: 10 KiB |
|
After Width: | Height: | Size: 19 KiB |
@@ -592,33 +592,22 @@ Process
|
||||
|
||||
.. _italy/digital-signature:
|
||||
|
||||
Digital qualified signature
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
Qualified electronic signature
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
For invoices and bills intended for the :abbr:`PA (Public Administration)`, a **Digital Qualified
|
||||
Signature** is required for all files sent through the :abbr:`SdI (Sistema di Interscambio)`. The
|
||||
XML file must be certified using a certificate that is either:
|
||||
Invoices and bills intended for the :abbr:`PA (Public Administration)` must include a **qualified
|
||||
electronic signature** when submitted through the :abbr:`SdI (Sistema di Interscambio)`. This
|
||||
signature is automatically applied in the :abbr:`XAdES (XML Advanced Electronic Signature)` format
|
||||
when the invoice's partner has a 6-digit long :guilabel:`Destination Code` (which indicates a
|
||||
:abbr:`PA (Public Administration)` business).
|
||||
|
||||
- a **smart card**;
|
||||
- a **USB token**;
|
||||
- an :abbr:`HSM (Hardware Security Module)`.
|
||||
|
||||
.. warning::
|
||||
Odoo **cannot** digitally sign documents for you. When a 6-digit long :guilabel:`Codice
|
||||
Destinatario` is detected, then the :abbr:`EDI (Electronic Data Interchange)` process stops, and
|
||||
the invoice is set on the :guilabel:`Requires user signature` state. You can download the
|
||||
document in XML, sign it with any :guilabel:`Digital Qualified Signature` provider's external
|
||||
program and send it through the :abbr:`AdE (Agenzia Delle Entrate)` portal.
|
||||
.. note::
|
||||
When such an invoice is transmitted to the Tax Agency, the generated `.xml` file is signed on the
|
||||
Odoo servers, returned to the database, and attached to the invoice automatically.
|
||||
|
||||
Acceptance or Refusal
|
||||
~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
.. warning::
|
||||
As Odoo does not handle sending signed invoices to :abbr:`PA (Public Administration)` businesses,
|
||||
these states cannot be directly triggered by Odoo. When you upload the invoice on the :abbr:`AdE
|
||||
(Agenzia Delle Entrate)` portal, Odoo receives notifications about it, putting the correct
|
||||
:guilabel:`SdI State` on the invoice.
|
||||
|
||||
After receiving the invoice through the :abbr:`SdI (Sistema di Interscambio)`, the :abbr:`PA (Public
|
||||
Administration)` business has 15 days to accept the invoice. If it does, then the process ends here.
|
||||
If the :abbr:`PA (Public Administration)` business refuses the invoice, it is still considered valid
|
||||
|
||||
|
After Width: | Height: | Size: 47 KiB |
|
Before Width: | Height: | Size: 4.9 KiB |
|
Before Width: | Height: | Size: 9.4 KiB After Width: | Height: | Size: 8.0 KiB |
|
Before Width: | Height: | Size: 8.2 KiB |
|
Before Width: | Height: | Size: 2.9 KiB |
|
Before Width: | Height: | Size: 19 KiB |
|
Before Width: | Height: | Size: 32 KiB |
|
Before Width: | Height: | Size: 17 KiB After Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 29 KiB |
|
Before Width: | Height: | Size: 21 KiB |
|
Before Width: | Height: | Size: 36 KiB After Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 10 KiB |
|
Before Width: | Height: | Size: 11 KiB After Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 4.1 KiB |
|
Before Width: | Height: | Size: 4.4 KiB |
|
Before Width: | Height: | Size: 24 KiB After Width: | Height: | Size: 15 KiB |
|
After Width: | Height: | Size: 15 KiB |
|
Before Width: | Height: | Size: 26 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 27 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 22 KiB After Width: | Height: | Size: 20 KiB |
|
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 28 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 4.1 KiB After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 6.4 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 16 KiB |
|
After Width: | Height: | Size: 35 KiB |
|
Before Width: | Height: | Size: 15 KiB After Width: | Height: | Size: 17 KiB |
|
Before Width: | Height: | Size: 18 KiB After Width: | Height: | Size: 31 KiB |
|
Before Width: | Height: | Size: 35 KiB |
|
After Width: | Height: | Size: 5.2 KiB |