Compare commits

..

368 Commits

Author SHA1 Message Date
rps-odoo 403d55ccc5 [IMP] accounting/l10n_ar: liquidity product direct sales
Link to GDrive images folder: https://drive.google.com/drive/folders/1qWtbGewR3LxDKs21QpMEPhCKEovVyoKx?usp=drive_link

Co-authored-by: XPL <xpl@odoo.com>
2024-03-28 13:14:58 -04:00
Lara Martini (larm) f16d89dbc7 [IMP] time off: updating images and directions
closes odoo/documentation#8021

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-03-28 14:16:44 +00:00
Yaroslav Soroko (yaso) 656064ea1c [ADD] Pricer tags section added to PoS/pricing
task-3603496

This PR adds the documentation needed to use Point Of Sale
with Pricer electronic price tags.

Related PRs:
https://github.com/odoo/enterprise/pull/50368

task-3603496

closes odoo/documentation#6539

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-03-28 12:19:04 +00:00
jero-odoo 36ca933672 [IMP] Livechat: basics 17.0
closes odoo/documentation#8275

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-03-27 20:47:39 +00:00
tiku-odoo 92b3166167 [IMP] general: users access rights rewrite
closes odoo/documentation#8399

X-original-commit: ae061c9041
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-03-27 17:45:02 +00:00
tiku-odoo 880f1cc01d [ADD] general: integrations google translate
closes odoo/documentation#8202

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-03-27 17:44:56 +00:00
Syed Sarmad Sabih 0fbf9995f0 Update deploy.rst
Fix typo db_filter to the correct usage dbfilter

closes odoo/documentation#8389

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-03-27 14:09:51 +00:00
tiku-odoo 97f5c6f02a [IMP] essenials: import export version 17 updates
closes odoo/documentation#8364

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-27 01:31:43 +00:00
John Holton (hojo) 51a70769ca [ADD] MRP: Unbuild orders
closes odoo/documentation#8264

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-03-26 20:53:46 +00:00
masi-odoo ffcdc7f3ea [IMP] accounting/l10n_cl: electronic purchase invoice
Google Drive image folder: https://drive.google.com/drive/folders/12OaeDvzn-u5Nf_AjhIzrWaZWEb7smlTL?usp=drive_link

closes odoo/documentation#8265

X-original-commit: 39910d1e7b
Signed-off-by: Marco Antonio Iribe Sepulveda (masi) <masi@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-03-26 13:35:53 +00:00
Tiffany Chang (tic) b65460db47 [I18N] *: export latest terms + add missing resources
This commit does 2 things:

- exports the latest terms to be translated
- adds missing pot files + adds them to be translated on transifex
  (essentials, hr, and studio)

Notes:
- hr (source) was already in v16, but was missing from v15 and v17,
  hence the commits being slightly different
- latest pot files of `contributing`, `developer`, and `legal` were
  purposely left off this PR because they are either not translated
  or not translated via Transifex, so these pot files serve no purpose

closes odoo/documentation#8363

X-original-commit: 977a649fae
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2024-03-25 17:50:08 +00:00
Felicious fdda9ff30a [IMP] inventory: remove rescheduling
closes odoo/documentation#8287

X-original-commit: 8ad53481d1
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
2024-03-25 17:50:03 +00:00
Odoo Translation Bot 90606a0d56 [I18N] Update translation terms from Transifex 2024-03-24 00:41:05 +01:00
Jess Rogers (jero) c63dda1e5f [ADD] crm: quality leads report doc
closes odoo/documentation#7966

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
Co-authored-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-03-22 21:45:16 +00:00
Lara Martini (larm) e4057858a1 [IMP] payroll: updating new reporting for 17
closes odoo/documentation#7806

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-03-22 21:45:15 +00:00
João Alves 2c613fdfc4 Update location of Outlook Calendar setting
closes odoo/documentation#8254

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-22 20:01:23 +00:00
tiku-odoo 2e99e9b57e [IMP] essentials: import export rewrite
closes odoo/documentation#8314

X-original-commit: c635baa0a2
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-03-22 14:48:01 +00:00
Rémy Voet (ryv) 7353d7b2cc [IMP] orm: add 'any' and 'not any' operators
- Add descriptions of the 'any' and 'not any' operators
- Simplify the example for searching partners
- Add an example using the 'any' operator for the sale.order model

closes odoo/documentation#8195

Closes: #7620
Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
2024-03-22 11:20:06 +00:00
Jess Rogers (jero) 4a28f69400 [ADD] crm: expected revenue report doc
closes odoo/documentation#7980

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-03-22 04:33:40 +00:00
tiku-odoo c2a84d65f7 [IMP] iot: flash card update section
closes odoo/documentation#8301

X-original-commit: 1f89b5f4b2
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-03-22 03:11:44 +00:00
Mohamed Alkobrosli dfb88db7b6 [FW][FIX] dev/assets: typo
the "py" letter should be "by" to make the syntax correct and understood.

closes odoo/documentation#8296

Forward-port-of: odoo/documentation#8276
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2024-03-22 01:30:24 +00:00
Brandon Seltenrich (BRSE) 3d82c7671c [ADD] inventory: add before date res doc
closes odoo/documentation#7925

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-22 01:30:23 +00:00
Brandon Seltenrich (BRSE) 9a5074848c [IMP] purchase: update blanket orders doc
closes odoo/documentation#8201

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-22 01:30:22 +00:00
John Holton (hojo) e0e97ea763 [ADD] Maintenance: Maintenance requests
closes odoo/documentation#8139

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-22 01:30:21 +00:00
KC (ksc) 3e4463c978 [IMP] email marketing: updated unsubscription/blacklist doc for 17
closes odoo/documentation#7809

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-22 01:30:20 +00:00
Lara Martini (larm) 735097850c [IMP] payroll: updating payslips info and pics for 17
closes odoo/documentation#7740

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-22 01:30:19 +00:00
KC (ksc) d8494b2c4b [ADD] subscriptions: add scheduled actions doc
closes odoo/documentation#7663

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-22 01:30:19 +00:00
tiku-odoo f4bcdc815e [IMP] email comms: feedback loop edit
closes odoo/documentation#8280

X-original-commit: 2fad56f841
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-03-21 23:03:01 +00:00
Martin Trigaux (mat) e655f90e62 [I18N] conf: add more language codes
closes odoo/documentation#8244

X-original-commit: 88fa5d6e0a
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2024-03-21 23:02:56 +00:00
Paolo Gatti (pgi) d7595e5eb8 [IMP] finance/fiscal_localizations: Internal Reverse Charge
Many updates are due because of all the changes that have happened in
the last version. Internal Reverse Charge section has been added. The
configuration section has been reordered and information no longer valid
(like invoices being automatically sent) are removed. The flow is
described in a little more detail.

closes odoo/documentation#8054

Signed-off-by: Paolo Gatti (pgi) <pgi@odoo.com>
2024-03-21 23:02:53 +00:00
Tom Aarab (toaa) 0b6bef6516 [IMP] accounting: add extra taxes
Extra taxes (ecotax, luxury, etc) are currently missing from doc

taskid-3794931

closes odoo/documentation#8076

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-03-21 21:30:40 +00:00
Jonathan Castillo (jcs) 3a18276d4a [FIX] website: anchors in analytics hyperlinks
Custom anchors can be used as hyperlinks to target a specific
heading on the page. However, the google analytics one didn't
work well because of the capital letters used.

closes odoo/documentation#8224

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-03-21 18:35:49 +00:00
tiku-odoo bb9cb27935 [IMP] hosting: add admonition block on subscription
closes odoo/documentation#8252

X-original-commit: 9df807a532
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-03-20 19:56:46 +00:00
tiku-odoo 148eaedfa9 [IMP] developer: external api add admonition block
closes odoo/documentation#8232

X-original-commit: d6f5e74971
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-03-20 18:29:27 +00:00
tiku-odoo a9d4fbbd5a [REM] voip: onsip scrub per onsip
closes odoo/documentation#8231

X-original-commit: 7b728a22f4
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-03-20 18:29:26 +00:00
Xavier (XPL) 7cacdf626b [FIX] website: domain names
closes odoo/documentation#8223

X-original-commit: b7ffab804b
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-03-20 17:11:45 +00:00
Ray Carnes b07ea8d014 [IMP] upgrade: ready to upgrade image
Screenshot taken from Odoo 16 database with the option to upgrade to Odoo 17

closes odoo/documentation#8212

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-03-20 17:11:43 +00:00
Donatienne (dopi) 158a1dee79 [ADD] Website: Structure blocks
task-3733822

closes odoo/documentation#7954

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-03-20 17:11:41 +00:00
Felicious bfcb1fa443 [ADD]inventory: product type
closes odoo/documentation#8091

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-03-20 13:52:18 +00:00
Colu 6355b52f87 [IMP] database management: update on-premise page
task-3627193

closes odoo/documentation#8179

X-original-commit: 739309b258
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-03-19 11:14:07 +00:00
Zachary Straub (ZST) d43cc3e466 [FIX] crm: unattended leads example
closes odoo/documentation#8200

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-18 19:04:01 +00:00
Felicious 281d3976da [DEL] remove usage; contains packages + packagings
closes odoo/documentation#8169

X-original-commit: 8deb666761
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
2024-03-18 19:03:59 +00:00
glovebx 02a47a607d [FIX] dev/view_architectures: domain attribute of search view fields
The domain in the `field` component cannot accept user-provided values or access self variables.
This commit removes the misleading sentence about it from the documentation.

closes odoo/documentation#8193

Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2024-03-18 11:47:42 +00:00
Martin Trigaux (mat) 36ab5e74c3 [FIX] conf: don't use None in language switcher
In a lang is not present in languages_names, the menu was displaying None

X-original-commit: 8b40d49

add Swedish

closes odoo/documentation#8159

X-original-commit: 8e647c342a
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2024-03-18 08:45:40 +00:00
Odoo Translation Bot 33712a339f [I18N] Update translation terms from Transifex 2024-03-17 00:41:16 +01:00
Brandon Seltenrich (BRSE) 5a8691d249 [ADD] inventory: add manual res doc
closes odoo/documentation#7886

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-15 22:10:36 +00:00
Brandon Seltenrich (BRSE) 20865bfaea [IMP} barcode: update default nomenclature doc
closes odoo/documentation#8044

Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-03-15 22:10:35 +00:00
Brandon Seltenrich (BRSE) 4255e514a9 [ADD] inventory: add res at confirmation doc
closes odoo/documentation#7876

Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-03-15 17:29:51 +00:00
Antoine Vandevenne (anv) 632add350d [FIX] tutorials/discover_js_framework: clarify instructions
closes odoo/documentation#8065

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-03-15 17:29:49 +00:00
Ricardo Gomes Rodrigues d36e0b095c [IMP] l10n: update/clarify CodaBox documentation
This commit:
- clarifies that the connection must be done by the Accounting Firm that
  has valid CodaBox Connect credentials
- updates the general configuration part following changes in
  https://github.com/odoo/enterprise/pull/58426
- adds a tip for multi-currencies bank statements

task-id 3795251

closes odoo/documentation#8134

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-03-14 11:12:30 +00:00
Stephan Wilson 946a55b029 [IMP] accounting: wrong line break in customer_invoices
Removed line break

closes odoo/documentation#8136

X-original-commit: 00b934c9d3
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-03-14 09:27:14 +00:00
Samuel Degueldre e259853486 [IMP] web: create how-to for using Owl components in the frontend
closes odoo/documentation#8129

Signed-off-by: Samuel Degueldre (sad) <sad@odoo.com>
2024-03-14 08:06:23 +00:00
Olivier Dony fd8b628b0e [FIX] legal: update license info for v17
closes odoo/documentation#8144

Signed-off-by: Olivier Dony (odo) <odo@odoo.com>
2024-03-14 01:22:45 +00:00
Lara Martini (larm) bcd3747156 [IMP] fleet: updating new config changes
closes odoo/documentation#8069

Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-03-13 21:09:51 +00:00
Lara Martini (larm) 1f1f574615 [IMP] attendances: fixed typo and added details section
closes odoo/documentation#8068

Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-03-13 21:09:50 +00:00
vladstroia 89c63cb952 [ADD] point_of_sale: customer display doc page
task-3226201

There was previously no docs for the customer display feature in pos.
In this commit we add a docs page for it

closes odoo/documentation#8122

X-original-commit: 28bfdbc97a
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-03-13 12:28:19 +00:00
Marion (masp) 2da5c1664f [ADD] Website/Configuration: Google Search Console
closes odoo/documentation#8117

Taskid: 3696023
X-original-commit: bf8491feda
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Marion Spindler (masp) <masp@odoo.com>
2024-03-13 09:14:12 +00:00
Jess Rogers (jero) 25f95ce12d [ADD] crm: unattended leads report doc
closes odoo/documentation#7965

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-03-13 02:26:49 +00:00
tiku-odoo 300345957a [IMP] misc: email comms alias admonition block odoo 17
closes odoo/documentation#8097

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-12 21:35:07 +00:00
Jonathan Castillo (jcs) ffaa9ec7a8 [FIX] redirections: wrong rule for supported versions
closes odoo/documentation#8112

X-original-commit: 0c392041ab
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-03-12 16:59:09 +00:00
KC (ksc) 60d55082ce [IMP] email marketing: updated mailing lists for 17
closes odoo/documentation#7661

Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-03-12 00:17:42 +00:00
Jess Rogers (jero) d8b4b1d60f [IMP] helpdesk: track and bill time
closes odoo/documentation#7986

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-03-11 20:41:08 +00:00
Jonathan Castillo (jcs) 10cd2a061b [MOV] documentation structure reorganization
This commit aims to improve the documentation's navigability by
redefining some categories' purposes and titles.

There is a redirection rule for each documentation page moved.
This ensures that users won't have a 404 error message.

task-3217827

closes odoo/documentation#8061

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-03-11 15:03:04 +00:00
Odoo Translation Bot 41b3bd3bc9 [I18N] Update translation terms from Transifex 2024-03-10 00:41:26 +01:00
tiku-odoo 9be4c889e3 [IMP] misc: email comm add allowed alias sys parameter
closes odoo/documentation#8088

X-original-commit: 256c96b56f
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-03-08 22:55:44 +00:00
Brandon Seltenrich (BRSE) dc5136cc45 [ADD] barcode: add troubleshooting doc
closes odoo/documentation#7983

Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-03-08 22:55:42 +00:00
Brandon Seltenrich (BRSE) 2d0505c0bd [ADD] inventory: add reservation methods docs
closes odoo/documentation#7709

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-03-08 22:55:41 +00:00
tiku-odoo 22b294400f [IMP] iot: ts scale exception
closes odoo/documentation#8083

X-original-commit: 8a89c4311c
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-03-08 21:22:01 +00:00
Martin Trigaux (mat) ef3e57c994 [I18N] *: export 15.0 translations
closes odoo/documentation#8074

X-original-commit: 794eafff52
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2024-03-08 14:30:58 +00:00
Felicious 04f9ea14cd [IMP] inventory: putaway rules
closes odoo/documentation#8049

X-original-commit: 43f2ecd375
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
2024-03-07 23:41:56 +00:00
Brandon Seltenrich (BRSE) 4742f77ef9 [IMP] barcode: update hardware setup doc
closes odoo/documentation#7947

Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-03-07 22:11:44 +00:00
Felicious df01a6edf4 [ADD] inventory: packaging
closes odoo/documentation#8028

X-original-commit: a8659727e3
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-03-07 02:52:49 +00:00
Julien Castiaux d3f17c6609 [FIX] deploy: enable HSTS also for websocket
Fine tunning of 6a2725e604

closes odoo/documentation#8015

X-original-commit: c00571d724
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2024-03-06 14:30:43 +00:00
Claire Bretton (clbr) a54e626075 [IMP] getting_started: use odoo/tutorials repository + runbot
We now use the odoo/tutorials to make the technical onboarding.
- Change the current documentation accordingly.
- Add a section for employees only so that they use odoo-dev/tutorials
as shared fork. It's closer to our way to work so we think it's better
to make them use to it as fast as possible.
- Add some explanations about runbot.

`odoo/technical-training-sandbox` will no longer be used and can be considered deprecated.

closes odoo/documentation#8041

X-original-commit: e60affa6fe
Signed-off-by: Claire Bretton (clbr) <clbr@odoo.com>
2024-03-06 12:46:16 +00:00
Jess Rogers (jero) 069ee16ee1 [IMP] helpdesk: update closing tickets
closes odoo/documentation#7888

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-03-06 00:01:15 +00:00
Jess Rogers (jero) df48788817 [IMP] helpdesk: update helpcenter doc
closes odoo/documentation#7710

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-03-06 00:01:14 +00:00
Jess Rogers (jero) dc0dfea959 [IMP] helpdesk: after sales updates
closes odoo/documentation#7796

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-03-05 22:33:50 +00:00
Felicious 1c2897c54d [IMP] inventory: gme's comments on packages
closes odoo/documentation#8000

X-original-commit: 4f15ba1eea
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-03-05 16:48:21 +00:00
Felicious f87f12c53a [ADD] inventory: package use and type
closes odoo/documentation#7991

X-original-commit: 03a871a88b
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-03-04 22:35:40 +00:00
masi-odoo a7f87a913a [IMP] accounting/l10n_ar: ecommerce electronic invoicing
Improving l10n_ar documentation adding eCommerce feature

closes odoo/documentation#7792

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Co-authored-by: Jess Rogers <104637850+jero-odoo@users.noreply.github.com>
2024-03-04 15:15:50 +00:00
Demesmaeker 77b0cc21ee [FIX] amazon_connector: change to more complete links
closes odoo/documentation#7941

X-original-commit: eb41f30593
Signed-off-by: Morgane Demesmaeker <edm@odoo.com>
2024-03-04 13:26:29 +00:00
Odoo Translation Bot 41c33f1165 [I18N] Update translation terms from Transifex 2024-03-03 00:40:43 +01:00
Marion (masp) 6d923e4729 [ADD] integration: geolocation
task-3694395

closes odoo/documentation#7976

X-original-commit: 22b75fd6de
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-03-01 19:45:58 +00:00
Ali Alfie (alal) 59dcc0e921 [IMP] fiscal_localizations: HMRC format improved
Before, when entering the company's VAT, the user had to leave out the 'GB' prefix. This is no longer needed after odoo/enterprise/pull/57570

task-3765235

closes odoo/documentation#7961

X-original-commit: 61c86a1a8e
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-03-01 13:48:26 +00:00
Felicious 3875f79b5c [IMP] inventory: combine uom and usage into one doc
closes odoo/documentation#7904

X-original-commit: 6f8118fba6
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-03-01 07:29:37 +00:00
tiku-odoo befe1d0c8d [IMP] misc: voip onsip version 17 changes
closes odoo/documentation#7895

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-29 19:00:42 +00:00
Felicious f65dbd4c15 [IMP] inventory: add visibility days section
closes odoo/documentation#7915

X-original-commit: 187d41bc02
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-02-28 21:21:03 +00:00
Felicious 40015002bd [IMP] inventory: direct carrier contract
closes odoo/documentation#7911

X-original-commit: 786a9086e9
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
2024-02-28 21:21:02 +00:00
Marion (masp) 2383ecff09 [ADD] administration: neutralized database
closes odoo/documentation#7922

Task: 3572950
X-original-commit: 65960a2726
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Marion Spindler (masp) <masp@odoo.com>
2024-02-28 19:49:16 +00:00
Sam Lieber (sali) d266d142a8 [IMP] marketing automation: overview content
closes odoo/documentation#7711

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: meng-odoo <101904966+meng-odoo@users.noreply.github.com>
2024-02-28 19:49:04 +00:00
Brandon Seltenrich (BRSE) f8c1f3538d [IMP] barcode: update zebra instructions
closes odoo/documentation#7580

Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-02-28 19:49:02 +00:00
Donatienne (dopi) 757f750358 [ADD] website: building blocks
task-3693628

closes odoo/documentation#7800

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-02-28 14:00:02 +00:00
Nicolas Viseur (vin) f61b571960 [ADD] Starshipit as a delivery provider
Starshipit is the leading provider of integrated
and automated fulfilment solutions for online businesses
integrating with the main carriers used in Australia and
New Zealand, such as Australia Post, DHL, Aramex, CouriersPlease and more

Task ID # 3041982

closes odoo/documentation#7798

Related: odoo/enterprise#47569
Related: odoo/odoo#135839
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-02-27 17:40:49 +00:00
John Holton (hojo) 6349f5a13e [ADD] Quality: Quality alerts doc
closes odoo/documentation#7821

X-original-commit: 8dd98b1314
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-02-27 16:16:04 +00:00
Donatienne (dopi) 76b234ba3a [IMP] maintain: domain names
task-3595179

closes odoo/documentation#7883

X-original-commit: 9d3948daaf
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-02-27 09:35:48 +00:00
Sam Lieber (sali) c1f4f1fb57 [IMP] accounting/l10n_pe: delivery guide 2.0 peru
closes odoo/documentation#7849

X-original-commit: 81de2a5bbe
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-02-26 21:22:55 +00:00
Tom Aarab (toaa) b2bad17b19 [IMP] localization/spain
Updated the Spain localization page

taskid-3736761

closes odoo/documentation#7685

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-02-26 21:22:48 +00:00
Lara Martini (larm) 1ad921a1d1 [ADD] appraisals: new documentation
closes odoo/documentation#7487

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-26 21:22:47 +00:00
Odoo Translation Bot 8291dc0379 [I18N] Update translation terms from Transifex 2024-02-25 00:40:32 +01:00
tiku-odoo 1534cf4e19 [IMP] sales: mrkt conn ebay exception
closes odoo/documentation#7866

X-original-commit: 97203c4027
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-02-23 22:41:47 +00:00
Lara Martini (larm) 3dc21be0a7 [IMP] payroll: update work entries, add menu
closes odoo/documentation#7551

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-23 22:41:46 +00:00
Lara Martini (larm) 9cbc9e3610 [IMP] Employees: updating new employee doc for version 17
closes odoo/documentation#7429

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-23 22:41:45 +00:00
Lara Martini (larm) 269d602af0 [IMP] Payroll: updating ocnfiguration doc for 17
closes odoo/documentation#7337

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-23 22:41:44 +00:00
tiku-odoo 0bde5db3bc [IMP] misc: voip onsip edits
closes odoo/documentation#7854

X-original-commit: 0a133687dd
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-02-23 18:10:39 +00:00
Ricardo Gomes Rodrigues ac9eb58b7a [IMP] l10n: update CodaBox documentation
This commit renames the "Fetch CODA's"
and "Fetch SODA's" texts in "Fetch from CodaBox"
to match the new text in the Entreprise branch.

closes odoo/documentation#7840

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-02-23 16:43:33 +00:00
tiku-odoo 3229ee3210 [IMP] iot: windows iot worldline exception
closes odoo/documentation#7837

X-original-commit: 4dc8875b42
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-02-23 16:43:31 +00:00
tiku-odoo 21362bea09 [IMP] iot: troubleshooting add barcode exception
closes odoo/documentation#7830

X-original-commit: 056242b831
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-02-23 15:13:58 +00:00
Xavier (XPL) 3867472761 [IMP] install: enterprise packaged installers note
task-3536177

closes odoo/documentation#7817

X-original-commit: 62e08e0c1f
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-02-23 15:13:55 +00:00
Donatienne (dopi) b3fc71894a [ADD] Website: adding link to the themes documentation
taskid-3685215

closes odoo/documentation#7799

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-02-22 11:14:56 +00:00
Loredana Perazzo 3fada867de [IMP] pos: update the whole page
task-3005131

closes odoo/documentation#6718

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-02-22 11:14:51 +00:00
Loredana Perazzo 75fa2c64b3 [ADD] POS: configure and use the ship later feature
task-3095674

closes odoo/documentation#7785

X-original-commit: a12f7925ca
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-02-21 09:41:23 +00:00
Donatienne (dopi) af5ac872e7 [ADD] Website: website themes page creation
taskid-3685215

closes odoo/documentation#7592

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-02-20 14:57:24 +00:00
Tarek berkane dc3bdd3824 [FW][FIX] tutorials/getting_started: typo in 'estate'
closes odoo/documentation#7782

Forward-port-of: odoo/documentation#7772
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-02-19 17:53:16 +00:00
Odoo Translation Bot ce85e620f1 [I18N] Update translation terms from Transifex 2024-02-18 00:40:29 +01:00
Jess Rogers (jero) 00faf01516 [IMP] helpdesk: update sla doc
closes odoo/documentation#7552

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-02-17 01:59:39 +00:00
Felicious dcf55ac08a [IMP] inventory: sell stock virtual warehouse
closes odoo/documentation#7758

X-original-commit: 98994fbbaa
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-02-17 00:26:00 +00:00
KC (ksc) b0009b8e10 [IMP] subscriptions: corrected error about recurring products tip
closes odoo/documentation#7748

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-17 00:25:59 +00:00
KC (ksc) b154ed017f [IMP] subscriptions: update close subs doc for 17
closes odoo/documentation#7327

Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-02-17 00:25:53 +00:00
Zuzanna Luczynska 54f7faa593 [ADD] planning: new page planning basics
New doc concerning planning basics, e.g. creating roles, first shitfs,
configuration, etc.

taskid-3648638

closes odoo/documentation#7591

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-02-16 16:45:45 +00:00
Ricardo Gomes Rodrigues 2a00746f71 [IMP] l10n: update CodaBox documentation
This commit updates the documentation of CodaBox:
- new connection process
- new revocation process
- modified potential errors

closes odoo/documentation#7683

Related: odoo/enterprise#55858
Signed-off-by: Ricardo Gomes Rodrigues (rigr) <rigr@odoo.com>
2024-02-16 13:51:51 +00:00
Dylan Kiss (dyki) ee1ef85417 [IMP] accounting: deferred detail change
Update the documentation for Deferred Revenues and Expenses following
the changes in https://github.com/odoo/enterprise/pull/56052

task-3725621

closes odoo/documentation#7729

X-original-commit: 1f730d050f
Related: odoo/enterprise#56554
Signed-off-by: Dylan Kiss (dyki) <dyki@odoo.com>
2024-02-14 18:32:11 +00:00
John Holton (hojo) 9f21404579 [IMP] MRP: Scrap during manufacturing
closes odoo/documentation#7712

X-original-commit: b498eb2cb9
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-14 03:46:57 +00:00
Jess Rogers (jero) 212da24684 [IMP] helpdesk: update receiving tickets
closes odoo/documentation#7579

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-02-14 03:46:56 +00:00
Luucwa ca71dfa66a Update send_quotes.rst
Removed "see also" links that lead nowhere

closes odoo/documentation#7599

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-14 02:16:55 +00:00
Sam Lieber (sali) 715bd20ac1 [FIX] odoo_theme: add bottom margin to inner lists
closes odoo/documentation#7727

X-original-commit: 1200df1ec8
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-02-13 19:14:54 +00:00
KC (ksc) 7576501508 [IMP] subscriptions: updated reports doc for 17
closes odoo/documentation#7365

Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-02-13 16:07:27 +00:00
Antoine Vandevenne (anv) 00771d68bd [IMP] supported_versions: release saas-17.1
closes odoo/documentation#7706

X-original-commit: e116579c99
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-02-12 22:26:17 +00:00
Donatienne (dopi) 83ca0c26ff [IMP] Website Analytics: adding Google Tag Manager documentation
taskid-3650278

closes odoo/documentation#7693

X-original-commit: 1799e47028
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-02-12 08:31:08 +00:00
Odoo Translation Bot e0010641ac [I18N] Update translation terms from Transifex 2024-02-11 00:40:46 +01:00
Sam Lieber (sali) 2198e60c5e [REF] marketing automation: move getting started
closes odoo/documentation#7658

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-09 15:47:16 +00:00
“Audrey d4d62b6967 [IMP] payment_providers/stripe: improve structure and add Enable Apple Pay button
task-3697828

closes odoo/documentation#7682

X-original-commit: 1bc080ed36
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-02-09 13:44:07 +00:00
Jess Rogers (jero) 48bfcc6d93 [IMP] helpdesk: getting started doc updates
closes odoo/documentation#7486

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-02-09 04:13:52 +00:00
tiku-odoo 5eb6fc8cbc [IMP] Misc VoIP Version 17 Specific Changes
closes odoo/documentation#7669

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-09 02:36:56 +00:00
Donatienne (dopi) af0853ec77 [IMP] Website: updating seo documentation
taskid-3499195

closes odoo/documentation#7646

X-original-commit: 5f6dfc7880
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-02-08 10:57:00 +00:00
John Holton (hojo) 9265f644ad [ADD] Quality: Control points doc
closes odoo/documentation#7633

X-original-commit: 1bf87a0db9
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-06 23:14:56 +00:00
tiku-odoo 1da9a538c2 [ADD] Misc: VoIP Axivox Dial Plan Edits
closes odoo/documentation#7655

X-original-commit: 5ea7d3aa16
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-02-06 21:44:35 +00:00
John Holton (hojo) 91201d199a [IMP] MRP: Backorders Shop Floor workflow
closes odoo/documentation#7566

X-original-commit: de2a4e2db7
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-02-05 23:51:12 +00:00
John Holton (hojo) c612a4e1fa [IMP] Quality: Quality checks Shop Floor
closes odoo/documentation#7565

X-original-commit: 0806969e0d
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-02-05 23:51:11 +00:00
John Holton (hojo) caffe57110 [IMP] Quality: Measure check Shop Floor
closes odoo/documentation#7564

X-original-commit: 5b47c396ca
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-02-05 23:51:10 +00:00
John Holton (hojo) 7cf18082ad [IMP] Quality: Pass - Fail check Shop Floor
closes odoo/documentation#7560

X-original-commit: 30d2a5efd1
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-02-05 23:51:09 +00:00
Loredana Perazzo deecd2ae21 [IMP] POS: path to configure payment terminals
task-3684488

closes odoo/documentation#7606

X-original-commit: d16864d586
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-02-05 11:00:14 +00:00
KC (ksc) f07ce400b0 [IMP] subscriptions: update automation rules doc for 17
closes odoo/documentation#7338

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-04 04:08:52 +00:00
Lara Martini (larm) 23b5138038 [ADD] Frontdesk: new documentation for new app
closes odoo/documentation#7237

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: Jess Rogers <104637850+jero-odoo@users.noreply.github.com>
2024-02-04 04:08:51 +00:00
Brandon Seltenrich (BRSE) 18fd3f00e4 [ADD] purchase: add new temp rr doc
closes odoo/documentation#7576

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-04 02:51:23 +00:00
Odoo Translation Bot a8d88ed33e [I18N] Update translation terms from Transifex 2024-02-04 00:40:44 +01:00
“Audrey 281137ccfb [IMP] Studio: add a data table using the report editor
task-3698568

closes odoo/documentation#7558

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-02-02 12:41:58 +00:00
Felicious 81509af376 [REF] inventory: move removal strats into own folder
closes odoo/documentation#7530

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: Jonathan <jcs@odoo.com>
2024-02-02 01:47:47 +00:00
tiku-odoo 8b76aedf88 [IMP] Productivity IoT Windows Add Admonition Block
closes odoo/documentation#7613

X-original-commit: c1ba4c61ae
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-02-01 21:01:45 +00:00
tiku-odoo cffbd073fb [IMP] Misc Auth LDAP Typo Edits
closes odoo/documentation#7588

X-original-commit: 03678233c5
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-01-31 06:59:11 +00:00
Donatienne (dopi) 5400f76019 [IMP] accounting: reconciliation models update
task-3377307

closes odoo/documentation#7512

X-original-commit: e5a19771c1
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-01-30 15:15:09 +00:00
John Holton (hojo) a5803c0a57 [IMP] Quality: Take a Picture check Shop Floor
closes odoo/documentation#7563

X-original-commit: 93b47e7896
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-30 12:19:55 +00:00
John Holton (hojo) 72a7fa97e0 [IMP] Quality: Instructions check Shop Floor
closes odoo/documentation#7555

X-original-commit: 58365b78c4
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: Felicious <feku@odoo.com>
Co-authored-by: ksc-odoo <ksc@odoo.com>
Co-authored-by: StraubCreative <zst@odoo.com>
2024-01-30 08:24:50 +00:00
Lara Martini (larm) 9331fce764 [ADD] Time Off: new documentation needed
closes odoo/documentation#7535

X-original-commit: a838df1660
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-01-29 20:22:46 +00:00
Odoo Translation Bot 2abc1ceb54 [I18N] Update translation terms from Transifex 2024-01-28 00:40:50 +01:00
Augusto Perez c330f4d72e [ADD] Upgrade documentation: Upgrade scripts and Util package
closes odoo/documentation#7548

X-original-commit: 16a209c750
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-01-26 10:35:04 +00:00
John Holton (hojo) e8576b7a04 [IMP] MRP: Update Manufacturing step docs for Shop Floor
closes odoo/documentation#7498

X-original-commit: 71a9b4efac
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-26 07:48:50 +00:00
MaxKeilOdoo 07333c0061 [IMP] misc: IAP grammar updates and new image
closes odoo/documentation#7427

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: tiku-odoo <tiku@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: StraubCreative <zst@odoo.com>
2024-01-26 01:17:56 +00:00
Donatienne (dopi) 05370926ff [IMP] elearning: set prerequisite courses
taskid-3433600

closes odoo/documentation#7540

X-original-commit: 2d4a3cc883
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-01-25 15:24:59 +00:00
“Audrey 67894e33f6 [IMP] payment_providers: payment methods + restructure doc page
task-3570280

closes odoo/documentation#7414

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-01-24 10:44:37 +00:00
“Audrey 2118084f11 [IMP] Studio: new report editor
task-3553091

closes odoo/documentation#7516

X-original-commit: cf389c1c3e
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-01-24 09:12:45 +00:00
Julien Alardot (jual) cbe72a69bb [FIX] reference/user_interface: filter element name is mandatory
The filter element attribute 'name' is now required since
odoo/odoo/commit/4ddc3231

closes odoo/documentation#7510

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-01-24 00:16:51 +00:00
Loredana Perazzo e6c1f703ab [IMP] pos: note about products loading
task-3095675

closes odoo/documentation#7507

X-original-commit: 5ec37fbb7f
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-01-24 00:16:46 +00:00
tiku-odoo 484cf203a9 [IMP] IoT Printer doc edits
closes odoo/documentation#7494

X-original-commit: bfe57fdbdd
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-23 05:56:24 +00:00
tiku-odoo 474d0b7b94 [IMP]Productivity WhatsApp Enterprise Edit
closes odoo/documentation#7483

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-23 05:56:23 +00:00
tiku-odoo df637c5746 [RMV]Sales: remove snyc menu line ebay connector
closes odoo/documentation#7469

X-original-commit: 9db684fe86
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-01-23 04:41:42 +00:00
Loredana Perazzo 539435d14d [ADD] POS: page to setup and use product combos
Task-3604850

closes odoo/documentation#7341

Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-01-22 19:01:00 +00:00
nni-odoo 05637af163 [ADD] payment_providers: Xendit
Documentation for Xendit payment provider

taskid-2946329

closes odoo/documentation#6045

Signed-off-by: Nigel Nicholas (nni) <nni@odoo.com>
2024-01-22 00:56:38 +00:00
Odoo Translation Bot 5689bc1039 [I18N] Update translation terms from Transifex 2024-01-21 00:40:53 +01:00
Martin Trigaux (mat) aecf49d6c8 [I18N] *: export 16.0 translations
closes odoo/documentation#7452

X-original-commit: 3917094efd
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2024-01-20 07:12:53 +00:00
tiku-odoo a787a2652f [IMP] Microsoft Azure Email Phrasing update
closes odoo/documentation#7460

X-original-commit: d902bbbc19
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-01-20 05:31:55 +00:00
tiku-odoo e5586b3180 [RMV]VOIP:Scrub Asterisk Docs
closes odoo/documentation#7443

X-original-commit: 055e332ef3
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-01-20 02:43:02 +00:00
Antoine Vandevenne (anv) 439c4521ad [IMP] reference/user_interface: reformat and clarify views reference
In particular, the following changes are made:
- Use the `class` and `attribute` admonitions along with custom
  attributes to define classes, views' root attributes, views'
  components, and attribute values. This allows re-using the responsive
  design that was made for reference lists, and getting rid of the
  previous implementation that relied on class attributes, which were not
  intended for this usage and reduce readability while hindering further
  contributions due to a lack of flexibility (no admonitions,
  sub-attributes...)
- Use definition lists to define view types to allow for clearer and
  longer descriptions.
- Rewrite and restructure the explanations when there is a lack clarity.
- Extract duplicated content to included RST files.
- Display SVG images into dedicated admonitions.
- Fix RST and English mistakes.
- Rename `view_architecture` to `view_architectures`, as it lists all
  existing architectures and doesn't describe "the architecture of a
  view".
- Replace underscores with hyphens in image file names to improve SEO.

task-3458320

closes odoo/documentation#5237

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-01-19 15:21:43 +00:00
KC (ksc) 6a7bc2d449 [IMP] subscriptions: update renewals doc
closes odoo/documentation#7239

Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-01-18 03:48:01 +00:00
Brandon Seltenrich (BRSE) 03ace4206c [IMP] barcode: update adjustments doc
closes odoo/documentation#7422

X-original-commit: a7af9a59ff
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-17 05:12:21 +00:00
Felicious bc6c92d786 [ADD] inventory: least packages removal strategy
closes odoo/documentation#7296

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
2024-01-17 01:35:41 +00:00
Christophe Monniez 6391349a6d [FIX] requirements: fix sphinxcontrib versions
It seems that the latest version if sphinx contrib libs needs sphinx 5.0.

closes odoo/documentation#7411

X-original-commit: 38bd71fa13
Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
2024-01-16 16:42:07 +00:00
Ricardo Gomes Rodrigues eded294b05 [IMP] l10n: Codabox for Belgium
Add Codabox Belgium documentation following the introduction of the
module introduced in https://github.com/odoo/enterprise/pull/47607

task-id 3592955

closes odoo/documentation#6425

Signed-off-by: Ricardo Gomes Rodrigues (rigr) <rigr@odoo.com>
2024-01-16 09:55:19 +00:00
Olivier Dony 856a60cd24 [IMP] conf: special case alt lang links for legal terms
Legal terms live under specific URL as their translations are not
managed in the same manner.

Layout is like this:
  /terms/enterprise.html (EN)
  /terms/i18n/enterprise_fr.html (FR)

This commit adapts the generation of alternative languages links for each
"legal terms page", so that it targets the correct i18n link, or goes
back to the canonical EN one, depending on the target language.

closes odoo/documentation#7382

closes odoo/documentation#7384

closes odoo/documentation#7387

Signed-off-by: Olivier Dony (odo) <odo@odoo.com>
2024-01-15 22:53:37 +01:00
Olivier Dony 05be4c72db [CHG] legal: make Spanish partnership contract official
Removed the "not legally binding" warning, as Odoo now has official
establishments in countries when Spanish contracts are mandatory and
need to be binding. More careful reviews of the Spanish translations
will be necessary from now on.

Part-of: odoo/documentation#7387
2024-01-15 22:53:37 +01:00
Olivier Dony fb48206c21 [IMP] legal: update spanish Enterprise contract to v10a
Including spellchecking and proper emphasis of some important terms, and
the disambiguation of "Extra Covered Modules" and "Bug"

Removed the "not legally binding" warning, as Odoo now has official
establishments in countries when Spanish contracts are mandatory and
need to be binding. More careful reviews of the Spanish translations
will be necessary from now on.

Part-of: odoo/documentation#7387
2024-01-15 22:53:37 +01:00
aliya 47300c10bf [IMP] accounting: peppol
In 17.0 we have introduced some additional features in Peppol:
- switching between the demo mode/test mode/live
- better UI that allows fetch peppol message status, new documents, etc from the accounting dashboard
- peppol ready filter to filter customer invoices that are ready to be sent via peppol

part of:
task-3614809

closes odoo/documentation#7304

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-01-15 16:07:46 +00:00
Jonathan Castillo (jcs) 403c616602 [FIX] redirects: redirection loop on install.rst
closes odoo/documentation#7391

X-original-commit: f4bad01680
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-01-15 14:48:42 +00:00
Donatienne (dopi) 6f81a3b076 [MOV] geo ip installation: move page to install
Page moved from Websites to Install section

taskid-3512515

X-original-commit: a9004e844f
Part-of: odoo/documentation#7391
2024-01-15 14:48:42 +00:00
“Chiara 9223318b05 [IMP] accounting: internal transfers
taskid-3663508

closes odoo/documentation#7208

Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-15 13:18:32 +00:00
Donatienne (dopi) 7e45e144a6 [IMP] Website: menus
Update screenshots to reflect V17

closes odoo/documentation#7200

Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-01-15 13:18:31 +00:00
KC (ksc) 998addbdb2 [IMP] sales: amazon connector features doc for 16
closes odoo/documentation#7379

X-original-commit: a43a65992e
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-14 20:58:47 +00:00
KC (ksc) f751e9548a [IMP] sales: updated amazon order management
closes odoo/documentation#7378

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-01-14 03:12:06 +00:00
Odoo Translation Bot 9aa0b714ef [I18N] Update translation terms from Transifex 2024-01-14 00:40:37 +01:00
Felicious fd598899c2 [ADD] inventory: lifo removal strategy
closes odoo/documentation#7293

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
2024-01-13 18:42:06 +00:00
Felicious a926fbf998 [ADD] inventory: closest locations removal strat
closes odoo/documentation#7295

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
2024-01-13 02:05:12 +00:00
Felicious 8ebfc5cd2a [ADD] inventory: fefo removal
closes odoo/documentation#7294

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-01-12 23:08:27 +00:00
Sam Lieber (sali) 75734d8c6d [FIX] l10n_cl: Chile typo corrections
closes odoo/documentation#7362

X-original-commit: 505547264e
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
Signed-off-by: Marco Antonio Iribe Sepulveda (masi) <masi@odoo.com>
2024-01-12 20:16:00 +00:00
Marion (masp) 8f8e65640a [ADD] website: address autocomplete configuration
Task-3618264

closes odoo/documentation#7313

X-original-commit: ca160e4e1a
Signed-off-by: Marion Spindler (masp) <masp@odoo.com>
2024-01-12 12:50:32 +00:00
Felicious 5f416e028f [ADD] inventory: fifo removal strategy
closes odoo/documentation#7289

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
2024-01-12 11:18:01 +00:00
Tom Aarab (toaa) 3099ce8e0b [REM] accounting: multiple payments
Removing redundant page (see task)

See PR https://github.com/odoo/documentation/pull/6645

taskid-3466400

closes odoo/documentation#7349

X-original-commit: 2ef7150ebf
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-12 09:53:59 +00:00
Joren Van Onder 968177ade5 [IMP] accounting: direct customers to official fork of Taxcloud modules
Also improve wording a bit.

closes odoo/documentation#7340

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: Renee Carano <rca@odoo.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-01-11 23:35:02 +00:00
Nathan Marotte (nama) 9776aa010c [ADD] Upgrade documentation: How-to-guide for developers
closes odoo/documentation#7335

X-original-commit: 44f4683519
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-01-11 08:46:59 +00:00
masi-odoo bb99bd6bf6 [IMP] payment_provider/mercado pago: content updates
This commit will add important clarifications to use and test the Mercado Pago payment provider and add visual documentation similar to other provider's documentation

closes odoo/documentation#7325

X-original-commit: 1596413d4b
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Marco Antonio Iribe Sepulveda (masi) <masi@odoo.com>
Co-authored-by: samueljlieber <sali@odoo.com>
2024-01-10 22:45:59 +00:00
Tom Aarab (toaa) 82f68ea5fc [IMP] localization: spain missing reports
Missing tax reports for

15 & 16: 347 & 349
17: 347, 349, & 390

taskid-3673259

closes odoo/documentation#7319

X-original-commit: fecb587e78
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-10 10:28:14 +00:00
Felicious 9c417efadc [IMP] inventory: split removal strategy doc
closes odoo/documentation#7223

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-01-10 05:04:29 +00:00
Tom Aarab (toaa) 6b963f8f7d [IMP] accounting: Incoterms
Updated the Incoterms page to add "location" field and fixed typos

taskid-3619104

closes odoo/documentation#7243

X-original-commit: 30f5433366
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-09 20:51:48 +00:00
Tom Aarab (toaa) 9e777948c1 [IMP] accounting: checks
Cleared up some confusion about path menu and feature

Forward to master

taskid-3644544

closes odoo/documentation#7291

X-original-commit: c438e5a3aa
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-09 06:28:02 +00:00
Tom Aarab (toaa) 73fc5e9be4 [IMP] accounting: taxes
Updated the tax documentation for 16.4 onwards. Forward to master.

taskid-3621461

closes odoo/documentation#7283

X-original-commit: 7983e8d72d
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-09 06:28:00 +00:00
Donatienne (dopi) 01883d07c1 [ADD] blogs: documentation
task-3492925

closes odoo/documentation#7281

X-original-commit: 4bc2742413
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-01-09 06:27:59 +00:00
Tom Aarab (toaa) 8557dbf8c2 [IMP] accounting: payments doc update
Updated the payments doc page.

Forward to master.

16.3 -> Change reconciliation section

taskid-3610834

closes odoo/documentation#7271

X-original-commit: 9c1efe5b20
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-09 06:27:56 +00:00
Odoo Translation Bot 313a22ba60 [I18N] Update translation terms from Transifex 2024-01-07 00:40:52 +01:00
Julien Castiaux c847bdc4dd [FIX] developer/reference/cli: log on stderr
Odoo is actually logging on sys.stderr and not sys.stdout[^1][^2][^3].

Remove passage about the workflows, the workflows were an OpenERP
feature removed almost a decade ago in odoo/odoo@98cb4719db.

Fixes: #7210

[^1]: https://github.com/odoo/odoo/blob/b3b9b2b49ef90d30bcce1e27a4ba0b24f888170c/odoo/netsvc.py#L156
[^2]: https://github.com/odoo/odoo/blob/b3b9b2b49ef90d30bcce1e27a4ba0b24f888170c/odoo/netsvc.py#L198
[^3]: https://docs.python.org/3/library/logging.handlers.html#logging.StreamHandler

closes odoo/documentation#7272

X-original-commit: c55e8f251a
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2024-01-05 03:24:45 +00:00
Donatienne (dopi) 054801995e [IMP] sign: tags, signing orders, reminders, expiration dates
task-3609727

New features are available in v17:
Modify tags on signed documents.
Send automatic email reminders to people who have yet to sign a document after a set delay.
Signing order available as soon as you have more than one signer
Setting expiration dates on signature requests.

closes odoo/documentation#6947

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-01-04 19:58:15 +00:00
Tom Aarab (toaa) 7d5afdda56 [FIX] Project: broken URL
One of the link is broken

taskid-3658558

closes odoo/documentation#7249

X-original-commit: 0311faee2f
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-04 13:54:51 +00:00
Tom Aarab (toaa) cace3cc370 [IMP] accounting: batch payments
Updated screenshots from 16.3 onwards. Forward to master.

taskid-3615592

closes odoo/documentation#7241

X-original-commit: 22012bbf3e
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-04 12:02:09 +00:00
Tom Aarab (toaa) 0178034f89 [IMP] accounting: bank sync
Changed a note that was confusing to end users. Forward to 16.3

16.3 & 16.4 --> Fetch Account/Reconnect

17.0 --> Reconnect

taskid-3619168

closes odoo/documentation#7233

X-original-commit: 3e1cf88a8c
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-01-04 12:02:05 +00:00
Donatienne (dopi) a1eaf3af64 [IMP] to-do: create a new to-do with ctrl k shortcut
taskid-3501306

closes odoo/documentation#7202

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-01-04 12:02:00 +00:00
Lara Martini (larm) f499de92ab [ADD] fleet: add a new vehicle
closes odoo/documentation#7221

X-original-commit: 7a5d891206
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: jero-odoo <104637850+jero-odoo@users.noreply.github.com>
2024-01-03 16:59:20 +00:00
Brandon Seltenrich (BRSE) a56255286a [IMP] inventory: update differences doc
closes odoo/documentation#7215

X-original-commit: 81d201efc4
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-01-03 16:59:19 +00:00
“Chiara cc03963248 [IMP] accounting: withholding tax
taskid-3615963

closes odoo/documentation#6709

Signed-off-by: Chiara Prattico (chpr) <chpr@odoo.com>
2024-01-03 16:59:03 +00:00
YStorm5 f62c7f83c5 [FIX] developer/tutorials/getting_started: swap headers
I think these two header got mix up.

closes odoo/documentation#7199

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-01-03 09:17:54 +00:00
ezoer 9e740e90d1 [FIX] developer/user_interface: fix typo in 'attribute'
closes odoo/documentation#7190

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-01-03 09:17:51 +00:00
Odoo Translation Bot 66959cf6ee [I18N] Update translation terms from Transifex 2023-12-31 00:40:52 +01:00
KC (ksc) edb41d8c51 [IMP] sales: updated quotation template for 17
closes odoo/documentation#7101

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-28 23:43:25 +00:00
KC (ksc) 648cc25775 [IMP] subscriptions: updated upsell sub doc
closes odoo/documentation#6802

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-28 23:43:24 +00:00
Lara Martini (larm) bdcd01f798 [IMP] Inventory: making targeted edits for 16
closes odoo/documentation#7188

X-original-commit: 04401626e5
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-27 23:57:18 +00:00
Lara Martini (larm) 2a46a816bc [ADD] Fleet: new services doc
closes odoo/documentation#7182

X-original-commit: abb6130914
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-27 23:57:17 +00:00
Brandon Seltenrich (BRSE) e0ab490d57 [IMP] mrp: update variants doc
closes odoo/documentation#7174

X-original-commit: f3a2865dea
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2023-12-27 13:47:04 +00:00
Lara Martini (larm) d0fc3e23f7 [ADD] Referrals: new doc explaining all of referrals
closes odoo/documentation#7165

X-original-commit: f2b550ab78
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2023-12-26 20:37:11 +00:00
Brandon Seltenrich (BRSE) ab5a5e0997 [IMP] barcode: update barcode operations doc
closes odoo/documentation#7164

X-original-commit: 30fd7112af
Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-26 20:37:10 +00:00
Brandon Seltenrich (BRSE) a969aaf498 [IMP] barcode: update transfers scratch doc
closes odoo/documentation#7152

X-original-commit: df58ae965c
Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-26 19:09:45 +00:00
Prakash Prajapati (ppr) 5be62e15e2 [IMP] payment_providers: activate on-demand (Recurring payments) feature for Razorpay
task-3495914

closes https://github.com/odoo/documentation/pull/6732

closes odoo/documentation#6732

Related: odoo/odoo#143525
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-12-24 07:01:15 +00:00
Odoo Translation Bot 2e0df8e810 [I18N] Update translation terms from Transifex 2023-12-24 00:41:04 +01:00
aliya fc363ad00f [IMP] accounting: peppol
task-3613395

closes odoo/documentation#7139

X-original-commit: d88148f3f6
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2023-12-22 21:37:42 +00:00
Lara Martini (larm) 336801a842 [IMP] Recruitmet: updating images and text for 16 version
closes odoo/documentation#7130

X-original-commit: 55600e428d
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-22 20:09:01 +00:00
Lara Martini (larm) b7ce6cf74e [IMP] payroll: made targeted edits for 16
closes odoo/documentation#7129

X-original-commit: ec18f20bf5
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-22 20:09:00 +00:00
Lara Martini (larm) 0387e3f518 [IMP] employees: larm made targeted edits for 16 and updated pics
closes odoo/documentation#7128

X-original-commit: 5413bd1c5d
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-22 20:08:59 +00:00
KC (ksc) d81d63945b [IMP] sales: updated product_images doc about Google API
closes odoo/documentation#7111

X-original-commit: 8167182ae9
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-22 20:08:58 +00:00
KC (ksc) 1df1c46ff1 [IMP] sales: updated import products doc for 16
closes odoo/documentation#7110

X-original-commit: ca1554271b
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-22 20:08:57 +00:00
Lara Martini (larm) c219ff72c2 [ADD] fleet: new configurations doc
closes odoo/documentation#7096

X-original-commit: 52a2a795a1
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2023-12-22 20:08:56 +00:00
Ricardo Gomes Rodrigues 6d6e82a158 [IMP] accounting: Deferred revenues and expenses
Update Deferred Revenues and Expenses documentation
following the changes in https://github.com/odoo/enterprise/pull/40902

task-id 3478356

closes odoo/documentation#7142

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Ricardo Gomes Rodrigues (rigr) <rigr@odoo.com>
2023-12-22 18:42:25 +00:00
Nicolas Viseur (vin) 2bffc3d457 [IMP] l10n_au: update documentation
Provides an up-to-date documentation for the Australian localization
(Odoo 17) with all the new and upcoming features in this version.

closes odoo/documentation#6733

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2023-12-22 09:25:40 +00:00
Lara Martini (larm) 3e450bafa6 [IMP] Recruitment: adding new hiring flow doc
closes odoo/documentation#7097

X-original-commit: 6704ff51de
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-22 01:22:16 +00:00
tiku-odoo 16fb06757a [IMP] Market Connectors: eBay Marketplace edits
closes odoo/documentation#7081

X-original-commit: 2048c588c4
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-22 01:22:15 +00:00
Jess Rogers (jero) 3411cdb2ae [IMP] crm: update convert leads
closes odoo/documentation#7067

X-original-commit: 88a0b155e5
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2023-12-22 01:22:14 +00:00
Lara Martini (larm) 6b9ba7f9ed [ADD] Attendances: new documentation needed for flow and configurations
updated section about managers for better flow

closes odoo/documentation#6497

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: jero-odoo <104637850+jero-odoo@users.noreply.github.com>
Co-authored-by: jero-odoo <104637850+jero-odoo@users.noreply.github.com>
2023-12-22 01:22:13 +00:00
KC (ksc) 230461a3e8 [IMP] rental: total update of the doc for the rental app
closes odoo/documentation#6780

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-21 18:36:47 +00:00
Martin Trigaux a4f0e6b9b8 [I18N] *: export saas-16.1 translations
closes odoo/documentation#7072

X-original-commit: 2d4fb6f390
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-12-21 17:24:59 +00:00
tiku-odoo 4fac976025 [IMP] Misc: Portal User Change Login Initial Commit
closes odoo/documentation#7058

X-original-commit: d423038270
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-21 08:00:00 +00:00
KC (ksc) bdc6660120 [IMP] marketing automation: updated testing_running campaign doc for Odoo 16
closes odoo/documentation#7038

X-original-commit: 76fc90dde7
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-21 07:59:59 +00:00
KC (ksc) c2c3b912ed [IMP] marketing automation: updated workflow activities for 16
closes odoo/documentation#7027

X-original-commit: 6968e362da
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-21 07:59:59 +00:00
tiku-odoo eba685e7d9 [IMP] Productivity: Discuss Getting Started
closes odoo/documentation#7048

X-original-commit: cdd5dbead5
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-21 06:49:48 +00:00
KC (ksc) 4ef21b06cd [IMP] marketing automation: update understanding_metrics for 16
closes odoo/documentation#7037

X-original-commit: 70050340fe
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-21 06:49:47 +00:00
MaxKeilOdoo 554193a14b [IMP] sales: update win loss report documentation for Odoo 17
closes odoo/documentation#6746

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: jero-odoo <104637850+jero-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2023-12-21 03:51:39 +00:00
KC (ksc) 6dbaeeb29b [IMP] sales: updated variants doc for v16
closes odoo/documentation#7019

X-original-commit: c2c835c2d6
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2023-12-20 23:58:34 +00:00
KC (ksc) cba598cac8 [IMP] social marketing: updated essentials for Odoo 16
closes odoo/documentation#7018

X-original-commit: bddbe0fd45
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2023-12-20 23:58:33 +00:00
Valentino f23dcb7d35 [IMP] l10n_br: include electronic invoicing flow
With the addition of l10n_br_edi and l10n_br_edi_sale to the previous modules, now electronic invoices for goods can be created from Odoo.

This PR includes the necessary information to use these new modules - configuration and workflows.

closes odoo/documentation#6877

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-20 22:33:32 +00:00
KC (ksc) e4fd701fd2 made all of BRSE's edits
closes odoo/documentation#7008

X-original-commit: a728ac22dd
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2023-12-20 20:28:39 +00:00
Jess Rogers (jero) 5a298f09eb [IMP] crm: create new quotation
closes odoo/documentation#6683

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2023-12-20 15:21:32 +00:00
Lara Martini (larm) 5995f3dcce [IMP] Inventory: updated for v16
closes odoo/documentation#6999

X-original-commit: 1c00f06816
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-20 06:11:40 +00:00
Lara Martini (larm) 2025434058 [ADD] Payroll: adding new reporting doc
closes odoo/documentation#6993

X-original-commit: fcba53839f
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-20 00:28:40 +00:00
Felicious 2cfaf34d9b [FIX] barcode: typo in example
closes odoo/documentation#6976

X-original-commit: 72f93a84ea
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-19 20:24:02 +00:00
Julien Castiaux da20d2f5f8 [FIX] deploy: set Content-Security-Policy on static
The Content-Security-Policy[^1] http header was only set on the response
generated by controllers but it was missing from the `/<module>/static/`
route.

It is not strictly necessary to set that header on the responses comming
from that routes as it is not possible to add new static files or edit
existing ones via the interface (not even as admin). Only the developers
and system administrator can access those files.

It is also worth mentionning that using the Odoo internal web server to
deliver static files is suboptimal. Outside of a dev environment, those
files will typically be delivered via a web server[^2] and sysadmins
should configure their web server to set the CSP header on static images.

[^1]: https://developer.mozilla.org/en-US/docs/Web/HTTP/CSP
[^2]: https://www.odoo.com/documentation/master/administration/install/deploy.html#serving-static-files-and-attachments

closes odoo/documentation#6953

X-original-commit: f3f44fe5f2
Related: odoo/odoo#146591
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2023-12-18 23:32:00 +00:00
Julien Castiaux 882a34c2bd [FIX] deploy: nginx forwarded-host with tcp port
Install nginx using the nginx configuration found in the documentation
and changes the `listen` port to 8080. Start Odoo in `--proxy-mode`.

    listen 8080;
    server_name mycompany.odoo.com;
    proxy_set_header X-Forwarded-Host $host;
    proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
    proxy_set_header X-Forwarded-Proto $scheme;
    proxy_set_header X-Real-IP $remote_addr;
    location / {
            proxy_pass http://127.0.0.1:8069;
    }

Inside your browser, access "http://mycompany.odoo.com:8080" you are
wrongly redirected to "http://mycompany.odoo.com:80".

Odoo uses the `X-Forwarded-Host` http header value to generate new URls,
in this configuration `$host` only contains the domain (=hostname using
the urllib terminology) instead of the domain+port (=netloc). The
variable that contains both the domain and the port is actually
`$http_host`.

closes odoo/documentation#6943

Closes: odoo/odoo#64643
X-original-commit: 09c42c5896
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2023-12-18 23:31:59 +00:00
Géry Debongnie 3d4a275196 [IMP] Rework the JavaScript tutorials
This commit rework the entire JavaScript tutorial series with the
following improvements:

-   Each chapter is now designed to be independent, allowing learners to
    follow any chapter without the necessity of completing previous ones.
-   Each chapter has been transformed into a standalone module, enabling
    learners to create small projects from scratch within each chapter.
-   The screenshots/text/code have been updated for Odoo 17.

Currently we have 5 chapters:
- Discover Chapter 1 - Owl Components: This chapter allows to learn the
  Owl framework in the `awesome_owl` module.
- Discover Chapter 2 - Build a dashboard: This chapter allows to grasp
  the basic of the web framework by building a dashboard in the
  `awesome_dashboard` module.
- Master Chapter 1 - Build a clicker game: This chapter allows to grasp
  the web framework by building a clicker game in the `awesome_clicker`
  module.
- Master Chapter 2 - Create a gallery view: This chapter allows to learn
  how to create a new view type. The new view is a gallery of records
  pictures. It can be done in the `awesome_gallery` module.
- Master Chapter 3 - Customize a kanban view: This chapter allows to
  learn to customize a kanban view by implementing a list of customer in
  the side of a kanban view. This can be done in the `awesome_kanban`
  module.

The chapter on creating and customizing fields is deleted for now and
will be completely rewritten in a near future.
The chapter on testing is deleted, how-to guides will be written to
cover this subject.

The solutions for all exercises has been done for v17, the goal by
merging the new tutorial is to have this new branch structure in
`odoo/tutorials`:
- 16.0
- 16.0-solutions
- 17.0
- 17.0-discover-js-framework-solutions
- 17.0-master-odoo-web-framework-solutions
-   master <-- default branch, starting point for all addons
-   master-discover-js-framework-solutions
-   master-master-odoo-web-framework-solutions

closes odoo/documentation#6876

Task-id: 3623595
Signed-off-by: Géry Debongnie <ged@odoo.com>
2023-12-18 23:31:55 +00:00
KC (ksc) 066c662509 [IMP] sales: updated entire invoicing based on milestones doc
closes odoo/documentation#6967

X-original-commit: d615bc0f6d
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-17 19:03:20 +00:00
KC (ksc) 613420f55e [IMP] sales: updated Amazon Connector setup doc for 16
closes odoo/documentation#6961

X-original-commit: 5233e05676
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: dalaOdoo <dala@odoo.com>
Co-authored-by: Demesmaeker <edm@odoo.com>
Co-authored-by: meng-odoo <meng@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: StraubCreative <zst@odoo.com>
2023-12-17 00:27:47 +00:00
Odoo Translation Bot ea2145960b [I18N] Update translation terms from Transifex 2023-12-17 00:40:42 +01:00
Brandon Seltenrich (BRSE) 8b6e7a0323 [FIX] barcode: fix default delay number
closes odoo/documentation#6959

X-original-commit: 18aad6d5f2
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-16 21:36:18 +00:00
masi-odoo 74d5918ff3 [IMP] l10n_cl: Electronic Invoicing eCommerce and POS
Adding the new functionality for V17 which let's the end client to decide the electronic document to be generated for their eCommerce purchase.

Photo folder: https://drive.google.com/drive/folders/17zrIsuhZ2IAWX6X30IJ1HdFF0531gB3_

closes odoo/documentation#6408

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-15 01:35:55 +00:00
Tom Aarab (toaa) b9a40d117e fw port
closes odoo/documentation#6915

Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2023-12-14 17:57:01 +00:00
Lara Martini (larm) a08970722b [ADD] Payroll: adding detailed payslips doc
closes odoo/documentation#6929

X-original-commit: 9486fe5b62
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: meng-odoo <101904966+meng-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <ksc@odoo.com>
Co-authored-by: samueljlieber <sali@odoo.com>
Co-authored-by: StraubCreative <zst@odoo.com>
2023-12-14 02:36:40 +00:00
Sam Lieber (sali) feeb8dc18f [IMP] accounting/l10n_mx: additional context
closes odoo/documentation#6894

X-original-commit: 9e7518ff69
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: feav-odoo <feav@odoo.com>
Co-authored-by: toaa-odoo <toaa@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
2023-12-13 17:11:52 +00:00
Maximilien (malb) 97e3173c7c [FIX] accounting: cheat sheet reconcile
Before this commit, when doing the reconciliation of the table present in the
cheat sheet, the second reconciliation was wrong because the "Invoice 1" should
be reconciled with the twos partials payment. This Pr correct that by changing
the find parameter to target the partials also.

closes odoo/documentation#6902

Task: 3633468
X-original-commit: 053fb768e6
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Maximilien La Barre (malb) <malb@odoo.com>
2023-12-13 10:20:45 +00:00
John Holton (hojo) ae77baa7f3 [REF] Inventory: Restructure Inventory scope
closes odoo/documentation#6882

X-original-commit: 59791c252b
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-11 21:56:06 +00:00
KC (ksc) fbd85e82ba [IMP] sales: reinvoice expenses to customers
closes odoo/documentation#6825

X-original-commit: a4a9335dd1
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-11 20:33:20 +00:00
KC (ksc) e0921f7b6e [IMP] subscriptions: products fix misleading info
closes odoo/documentation#6817

X-original-commit: ff2cabf621
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-11 20:33:19 +00:00
Odoo Translation Bot b35f9305c9 [I18N] Update translation terms from Transifex 2023-12-10 00:40:50 +01:00
KC (ksc) 1d61839374 [IMP] sales: updated returns doc for v16
closes odoo/documentation#6866

X-original-commit: 4e85ef01e8
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-08 00:08:59 +00:00
KC (ksc) 567b22f30c [IMP] sales: updated pro-forma invoice doc for 16
closes odoo/documentation#6865

X-original-commit: bbbb00e752
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-08 00:08:58 +00:00
KC (ksc) f3a4770775 [IMP] sales: updated down payment doc for 16
closes odoo/documentation#6864

X-original-commit: 9fc9c2f52d
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-08 00:08:57 +00:00
KC (ksc) 77f1a1fc12 [IMP] sales: update get signature to validate for 16
closes odoo/documentation#6863

X-original-commit: e1bed7ee7c
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-08 00:08:56 +00:00
KC (ksc) b9ba63fde0 [IMP] sales: updated optional_products for 16
closes odoo/documentation#6862

X-original-commit: 22d41dc2f3
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-08 00:08:55 +00:00
KC (ksc) ed6f2aba4d [IMP] sales: online signature confirmation doc
closes odoo/documentation#6861

X-original-commit: e6a6b9b453
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-08 00:08:54 +00:00
KC (ksc) a6d3a8d497 [IMP] sales: fully updated currencies doc
closes odoo/documentation#6860

X-original-commit: 039dba0780
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-08 00:08:53 +00:00
KC (ksc) b6964f128e [IMP] sales: updated time_materials for v16
closes odoo/documentation#6859

X-original-commit: 1e2a29338e
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-08 00:08:52 +00:00
KC (ksc) d0761052da [ADD] sales: recommend Adobe software, as suggested by JCS
closes odoo/documentation#6752

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-08 00:08:49 +00:00
Ken Geis 54f32b3df6 [FIX] developer/mixins: fix typo in XMLID
closes odoo/documentation#6801

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-12-07 10:08:03 +00:00
KC (ksc) 1cffbdfa5b [IMP] sales: update orders and variants for 16
closes odoo/documentation#6809

X-original-commit: af7c7afa34
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-07 02:23:56 +00:00
Zachary Straub (ZST) 675eaa8068 [IMP] sales: update quote_template for 16
closes odoo/documentation#6786

X-original-commit: f9013a6309
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-12-07 00:33:54 +00:00
Julien Castiaux 2d749c3134 [FIX] administration/install: wkhtmltopdf 0.12.6
Official packages for wkhtmltopdf 0.12.5 are no more released since the
release of wkhtmltopdf 0.12.6 in 2020. Debian 10 "Buster" and Ubuntu
20.04 "Focal" were the last system for which 0.12.5 was built[^1].
Installing 0.12.5 on a Ubuntu 22.04 "Jammy" (using the Focal package)
fails for outdated dependencies.

Official packages for wkhtmltopdf 0.12.6 are published on another
repository[^2] than 0.12.5 used to, it includes packages for 0.12.6 for
both Debian 11 "Bullseye" and Ubuntu 22.04 "Jammy". Version 0.12.6.1-r3
is compatible out-of-the-box with Odoo and has been used by runbot to
test all 16.x, 17.x and master branches for the past month.

This work makes it official that [wkhtmltopdf 0.12.6.1-r3] must be used
for Odoo 16.0 and onward.

[^1]: https://github.com/wkhtmltopdf/wkhtmltopdf/releases/tag/0.12.5
[^2]: https://github.com/wkhtmltopdf/packaging/releases
[wkhtmltopdf 0.12.6.1-r3]: https://github.com/wkhtmltopdf/packaging/releases/tag/0.12.6.1-3

closes odoo/documentation#6799

X-original-commit: e5d77ee285
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2023-12-06 17:27:45 +00:00
“Chiara c605694f0b [IMP] accounting: followup screenshot
taskid-3614885

closes odoo/documentation#6793

X-original-commit: 27a307cb0c
Signed-off-by: Chiara Prattico (chpr) <chpr@odoo.com>
2023-12-06 12:42:25 +00:00
william-andre bf87dbeccb [FIX] install: do not create superuser for postgres
The preferred/safe way of running Odoo is with a standard user, with
only the right to create a database.
See https://github.com/odoo/odoo/commit/b6b73551dbbb3079f043920f21554b945fa4870e

closes odoo/documentation#6768

X-original-commit: df8114e591
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: William André (wan) <wan@odoo.com>
2023-12-06 08:20:12 +00:00
Donatienne (dopi) 68fcd62330 [IMP] Website: Unsplash documentation updated
task-3498880

closes odoo/documentation#6767

X-original-commit: 88f546f2a9
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-12-06 08:20:11 +00:00
Jess Rogers (jero) 2b0059937a [IMP] crm: update plan activities
closes odoo/documentation#6776

X-original-commit: e4aee350b8
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2023-12-05 22:40:47 +00:00
Loredana Perazzo e24c83a0a1 [IMP] pos: remove duplicate of set customer and update sections accordingly
task-3366190

closes odoo/documentation#6667

X-original-commit: 4118cb9bf9
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2023-12-04 11:58:14 +00:00
Julien Castiaux e28bed32d0 [IMP] developer/reference/cli: --proxy-mode
Many customers struggle with their web server configuration, notably
regarding the `--proxy-mode` option and the way `X-Forwarded-*` HTTP
request headers are interpreted within Odoo.

The `--proxy-mode` section has been updated to cover the most common
misunderstandings and to give guidances on how to setup a web server.

Odoo always only takes the last entry of the `X-Forwarded-*` request
header because there are situations where it is not possible to
determine which last n-th entry to use. Employees might access their
odoo database via the internal network: connecting directly to nginx,
while customers might access the database via an additional proxy such
as cloudflare. The real IP of employees would be the last inside the
`X-Forwarded-For` chain, while the real IP of customers would be the
*second* last entry inside the chain. It would be incorrect to always
take the same nth last entry inside the chain. The cloudflare's own IP
address must be discarded from the chain. Web servers usually feature
a way to ignore trusted IP from the chain, a way so that the real IP
of the user is always the last entry inside the chain. Odoo relies on
such feature to be active and configured.

Prior discussions about `X-Forwarded-For`:
* odoo/odoo#104947
* odoo/odoo#118629
* odoo/odoo#139536

All `X-Forwarded-*` headers are ignored in case the `X-Forwarded-Host`
header is missing (even with `--proxy-mode`). System admin might be
tempted to not set this header and to set `Host` instead, this is
broken as this a user-agent would be able to spoof `X-Forwarded-Host`
and Odoo would use that instead of the correct `Host`.

Prior discussions about `X-Forwarded-Host`:
* odoo/odoo#63277
* odoo/odoo#70117

closes odoo/documentation#6743

X-original-commit: 3d91c57b57
Signed-off-by: Julien Castiaux (juc) <juc@odoo.com>
2023-12-03 08:26:32 +00:00
Odoo Translation Bot 533f7f884c [I18N] Update translation terms from Transifex 2023-12-03 00:41:06 +01:00
Tom Aarab (toaa) b188381b70 [IMP] accounting: checks
Update screenshots for 16.4 and up. Forward to master.

taskid-3614814

closes odoo/documentation#6710

X-original-commit: 639a56fc5c
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2023-12-01 18:14:14 +00:00
Martin Trigaux 8ba87a67ce [I18N] *: export 17.0 translations
closes odoo/documentation#6727

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-11-30 19:55:12 +00:00
Martin Trigaux 1a44524ab5 [FIX] applications: fix typo
Part-of: odoo/documentation#6727
2023-11-30 19:55:12 +00:00
Marion (masp) 8ecbd48796 [FIX] Website: pages.rst menu bug
fixes bug introduced with https://github.com/odoo/documentation/pull/5307

closes odoo/documentation#6720

X-original-commit: 53cc4aacb5
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2023-11-30 18:37:59 +00:00
John Holton (hojo) 51b98a71d4 [ADD] Quality: Take a Picture Check
closes odoo/documentation#6715

X-original-commit: 2e605c9ec8
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-30 17:30:23 +00:00
“Audrey 61cad6cd0d [ADD] website: mail groups
task-2845181

closes odoo/documentation#6705

X-original-commit: 25bc655cfa
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2023-11-30 10:13:21 +00:00
Raphael Collet 2662fa5437 [IMP] core: add SQL wrapper
This completes https://github.com/odoo/odoo/pull/134677.

closes odoo/documentation#6674

Signed-off-by: Raphael Collet <rco@odoo.com>
2023-11-30 07:37:10 +00:00
Marion (masp) ebc80297af [IMP] Contributing: typo seealso admonition
closes odoo/documentation#6642

X-original-commit: 70d5a55909
Signed-off-by: Marion Spindler (masp) <masp@odoo.com>
2023-11-30 07:37:06 +00:00
Felicious b44913931d [IMP] barcode: add zebra scanner section
add more figures

closes odoo/documentation#6601

X-original-commit: 56cda37610
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2023-11-28 21:21:01 +00:00
Sam Lieber (sali) be835f7493 [IMP] accounting/l10n_co: additional context
closes odoo/documentation#6690

X-original-commit: 6045a60dd5
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: dade-odoo <87431108+dade-odoo@users.noreply.github.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
2023-11-28 17:28:48 +00:00
Jess Rogers (jero) 11076c8cdd [IMP] crm: update manage lost opps
closes odoo/documentation#6681

X-original-commit: 21f0ad60f8
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2023-11-28 17:28:47 +00:00
Donatienne (dopi) 23b88dbff5 [IMP] documents: new features
task-3433587

closes odoo/documentation#6672

X-original-commit: 2ba79f54a5
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-28 00:31:04 +00:00
Samuel Degueldre 8e3008f06a [FIX] developer: remove confusing section about starting services
When writing the documentation page for standalone Owl apps, it was
originally required to create the env and start the services manually,
and then mount the application by giving it a bunch of configuration
parameters. During review, it was noted that this was error prone and
confusing, and as such a corresponding PR added a helper to mount the
application without needing to do much by hand. While the code was
adapted in the documentation that was merged, the text still referred to
starting the services and creating the environment which is no longer
necessary.

This commit removes references to those things, and because the
resulting section is very small and not very interesting it has been
merged into the previous section.

closes odoo/documentation#6669

Signed-off-by: Samuel Degueldre (sad) <sad@odoo.com>
2023-11-27 21:39:19 +00:00
Donatienne (dopi) d337b38433 [IMP] sign: update for 16.0
task-3433578

closes odoo/documentation#6661

X-original-commit: 71446b0668
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-27 09:51:07 +00:00
Xavier (XPL) c9affa54a8 [IMP] reporting: improve grammar and remove image centering
closes odoo/documentation#6653

X-original-commit: 3ead6e0f99
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-25 04:36:03 +00:00
“Chiara 1860805474 [IMP] accounting: branch management in main page
taskid-3609491

closes odoo/documentation#6646

X-original-commit: eafe834cf4
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-25 04:36:02 +00:00
“Chiara 8025fdd915 [IMP] accounting: peppol changes
taskid-3450738

closes odoo/documentation#6634

X-original-commit: 4728e6db23
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-24 11:17:02 +00:00
Xavier (XPL) ae08218516 [IMP] outlook: remove note about multi-user sync spam
task-3575806

closes odoo/documentation#6625

X-original-commit: b4302e4023
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-24 08:52:34 +00:00
Xavier (XPL) 25a7492e74 [FIX] accounting: update link to getting started video tutorial
task-3608613

closes odoo/documentation#6614

X-original-commit: c0653112a1
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-24 08:52:33 +00:00
Claire Bretton (clbr) 32517aa638 [FIX] getting_started: remove useless lambda
The lambda function here is useless and makes newdooers think
they need to use it everytime.
`default=fields.Date.add(fields.Date.today(), months=3))`
should do the trick, no lambda involved.

closes odoo/documentation#6631

X-original-commit: 620508fb29
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Claire Bretton (clbr) <clbr@odoo.com>
2023-11-24 06:53:31 +00:00
Claire Bretton (clbr) e8106a55c4 [FIX] getting_started: invalid addons-path
The "../technical-training-sandbox" is added too early in the path since
its still empty, and results into an "invalid addons-path" error.

X-original-commit: 8707609b38
Part-of: odoo/documentation#6631
2023-11-24 06:53:31 +00:00
Felicious 05da049af4 [ADD] inventory: cluster picking
closes odoo/documentation#6591

X-original-commit: 32900efbb9
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: meng-odoo <101904966+meng-odoo@users.noreply.github.com>
2023-11-24 06:53:30 +00:00
Xavier (XPL) 4d48d1dfa6 [IMP] paypal: add note about supported currencies
task-3608056

closes odoo/documentation#6571

X-original-commit: 5f1881a88a
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-23 08:52:05 +00:00
Felicious 3da8280f33 [IMP] inventory: update delivery methods from 12 to 16
closes odoo/documentation#6602

X-original-commit: 4e2b634a50
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2023-11-23 07:40:03 +00:00
KC (ksc) ccf0b02713 [IMP] sales: updated deadline doc for 16
closes odoo/documentation#6584

X-original-commit: 75c24e7e88
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-23 07:40:03 +00:00
John Holton (hojo) 37e10a53d9 [ADD] Quality: Measure quality check
closes odoo/documentation#6578

X-original-commit: 78713f1637
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-23 07:40:02 +00:00
Xavier (XPL) b50ca9703a [IMP] upgrade: add note on bank synch neutralization
task-3605690

closes odoo/documentation#6562

X-original-commit: dc48273e7e
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-22 18:12:41 +00:00
Donatienne (dopi) 01d5b97ee0 [IMP] website: use plausible.io servers and account
This addition explains how to create and connect an existing plausible.io account in Odoo.

task-3540753

closes odoo/documentation#6545

X-original-commit: cd11937f43
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2023-11-22 07:43:09 +00:00
John Holton (hojo) ff6f914a09 [ADD] Quality: Pass - Fail quality checks
closes odoo/documentation#6551

X-original-commit: 1a11e3c35c
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-22 04:35:20 +00:00
Jess Rogers (jero) 2459ad79b9 [REM] crm: google spreadsheet integration
closes odoo/documentation#6537

X-original-commit: a11fa7e5b2
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2023-11-22 00:46:20 +00:00
Jonathan Castillo (jcs) 386a3a9e10 [IMP] sales: add link to OQT - PDF quote video
This commit adds a seealso section in the intro of the PDF quote builder
doc, with a link to the related Odoo Quick Tips video.

closes odoo/documentation#6534

Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2023-11-22 00:46:15 +00:00
Xavier (XPL) 4fff23c50e [FIX] payroll: add missing show-content metadata
Without the :show-content: metadata markup, it is not possible to open the
page by navigating from the toctree.

closes odoo/documentation#6531

X-original-commit: 16e339a7a3
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-21 23:24:02 +00:00
Samuel Degueldre 1fc36ffa82 [IMP] developer: document how to create standalone owl apps
Since we've introduced Owl, developers want more and more to create
standalone Owl applications outside of the webclient. This commit
introduces a How-to for doing just that.

task-3580007

closes odoo/documentation#6493

Related: odoo/odoo#142498
Signed-off-by: Samuel Degueldre (sad) <sad@odoo.com>
2023-11-21 20:06:45 +00:00
Rémy Voet (ryv) 01625aa661 [FIX] performance: change example with the new _read_group
closes odoo/documentation#6459

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-11-21 14:33:44 +00:00
Mathieu (mano) 80aa3b74dc [IMP] odoo_theme: toctrees-l1,l2 design improvement
Issue 1:
========
The toctrees in the documentation are visually inconsistent because of
the content. Sometimes we have titles that are also links and visually
collides with the rest of the toc making it hard to read. This applies
to toctree-l1 and toctree-l2.

Fix 1:
========
When we have a link and title toctree-l2 in a list containing other
nested toc, we apply another styling displaying it with the same color
as a title, but with an icon and hover behavior indicating that it is a
link. (This commit also changes the direction of the i-link icon to make
it standard).

Issue 2:
========
When we have only have toctree-l1 links without nested toc the toctree
is uselessly taking a lot of space.

Fix: 2
========

In these scenario we add a class to the toctree wrapper to replace the
toctree-l1 style with a toctree-l2.

task-3138525
task-3138563

part of

task-3059178

closes odoo/documentation#6511

X-original-commit: c62bf21987
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-11-21 12:56:56 +00:00
Rémi Rahir (rar) 9be2b43adb [FIX] dev/reference: Fix external reference
The tour utils were red and moved in Odoo (odoo/odoo#107618).

closes odoo/documentation#6514

X-original-commit: 1746c57ff4
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Rémi Rahir (rar) <rar@odoo.com>
2023-11-20 11:13:29 +00:00
Felicious e946be6abd [IMP] barcode: split docs + hone in on language
closes odoo/documentation#6519

X-original-commit: 9081e45aab
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2023-11-20 01:14:04 +00:00
oco-odoo a70677317a [IMP] accounting: new tag selector for custom reports
https://github.com/odoo/enterprise/commit/0c0cf8ebc943a8dc2d9bdd952dc7b5c2dabbd60a
added a new way to select accounts in the account_codes engine. This
commit adds some explanation in the doc on how to use this new syntax.

closes odoo/documentation#6507

X-original-commit: 1a32165180
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2023-11-20 01:14:02 +00:00
John Holton (hojo) d7218a2d75 [ADD] MRP: Three-step manufacturing
closes odoo/documentation#5163

closes odoo/documentation#6489

X-original-commit: 5689f7cf22
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-20 01:13:56 +00:00
John Holton (hojo) 507c4a07e1 [ADD] MRP: One-step manufacturing
closes odoo/documentation#6469

X-original-commit: 9c0982371a
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-16 01:20:31 +00:00
Felicious f92a81d051 [IMP] inventory: expand on accounting and math
closes odoo/documentation#6481

X-original-commit: 9761eb44dc
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: toaa <104567387+toaa-odoo@users.noreply.github.com>
Co-authored-by: meng-odoo <101904966+meng-odoo@users.noreply.github.com>
2023-11-15 23:51:15 +00:00
tiku-odoo e5ee15e20d [IMP] Productivity: Outlook Plugin edits
closes odoo/documentation#6482

X-original-commit: 71aabb2618
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2023-11-15 21:07:21 +00:00
Rémy Voet (ryv) 5070f160ed [IMP] orm: update changelog
closes odoo/documentation#6464

X-original-commit: f1960a250c
Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
2023-11-15 12:34:28 +00:00
Yaroslav Soroko (yaso) 52b86aab37 [IMP] Pos: iot six module part added to the six doc
This PR adds the documentation for a new Pos IoT Six module which will
soon replace the old Six module.

task-3555605

closes odoo/documentation#6439

X-original-commit: bc98b8c491
Signed-off-by: Yaroslav Soroko (yaso) <yaso@odoo.com>
Co-authored-by: Yaroslav Soroko (yaso) <yaso@odoo.com>
Co-authored-by: Loredana Perazzo <lrpz@odoo.com>
2023-11-14 16:35:03 +00:00
John Holton (hojo) ae1ad46925 [ADD] Quality: Instructions quality check
closes odoo/documentation#6453

X-original-commit: f0b895fdb2
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-14 03:13:49 +00:00
Felicious ee93bc9d9d [IMP] inventory: fwport removal strategy
closes odoo/documentation#6448

X-original-commit: ba34f754ce
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-14 03:13:48 +00:00
Sam Lieber (sali) 0336359c57 [IMP] tests: make review UX and resource files
closes odoo/documentation#6433

X-original-commit: 25e204adcd
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-11-13 19:03:36 +00:00
John Holton (hojo) 5d840a56d7 [ADD] MRP: Two-step manufacturing
closes odoo/documentation#6401

X-original-commit: 0241c9dd05
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-13 19:03:31 +00:00
John Holton (hojo) b09c1e045e [ADD] Inventory: Use locations to manage inventory
closes odoo/documentation#6422

X-original-commit: 889e95037d
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-11 18:47:20 +00:00
KC (ksc) f938a012ad [IMP] sales: complete rewrite for pricing doc
closes odoo/documentation#6414

X-original-commit: a113d83fea
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-11 18:47:19 +00:00
Loredana Perazzo 787ec0f787 [IMP] pos: add warning to not buy a terminal from amazon
closes odoo/documentation#6390

Taskid: 3284737
X-original-commit: f0495a9bc9
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-11-09 12:27:47 +00:00
John Holton (hojo) 7cb346fbb1 [ADD] MRP: Work order dependencies
closes odoo/documentation#6379

X-original-commit: a1e7445ae3
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-09 03:52:53 +00:00
Felicious 5e579431e1 [IMP] inventory: rewrite lead times, add images
closes odoo/documentation#6359

X-original-commit: 3d5badcc82
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2023-11-09 03:52:53 +00:00
John Holton (hojo) 1a353a6b91 [ADD] Inventory: Add Scrap inventory
closes odoo/documentation#6374

X-original-commit: 0e6576cc3d
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-09 02:52:28 +00:00
Sam Lieber (sali) 17885d893e [FW][ADD] MRP: Shop Floor Overview
closes odoo/documentation#6334

X-original-commit: cd88165
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: hojo-odoo <hojo@odoo.com>
2023-11-09 01:24:00 +00:00
Martin Trigaux f13d8b52fc [I18N] *: export 17.0 translations
closes odoo/documentation#6352

Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-11-08 10:05:16 +00:00
tiku-odoo 7f69acd5aa [ADD] IoT: OPC-UA Protocol
closes odoo/documentation#6350

X-original-commit: 4d2a3101ad
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-08 10:05:15 +00:00
John Holton (hojo) 66414a765e [ADD] MRP: Add Split and merge manufacturing orders
closes odoo/documentation#6340

X-original-commit: 83873dbd71
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-08 10:05:14 +00:00
Louis Baudoux 1c0678a99a [IMP] iap: move from first-person to second-person writing
For some reason, the first-person was used throughout the IAP
documentation, and quite inconsistently.
As the rest of the documentation is using second-person writing, IAP
should be no exception.

closes odoo/documentation#6327

X-original-commit: df474342ba
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Louis Baudoux (lba) <lba@odoo.com>
2023-11-08 05:31:15 +00:00
Louis Baudoux b237af1ba8 [IMP] iap: remove documentation related to IAP services creation
It has been decided to remove the possibility for our users to create
their own IAP services.
This decision was motivated by the fact that, in the 5 years of
existence of IAP, very few non-Odoo services have been created and
actively used by our customers.

X-original-commit: 282f041ed1
Part-of: odoo/documentation#6327
2023-11-08 05:31:15 +00:00
KC (ksc) 03cf50013a [IMP] sales: minor adjustment to dynamic text portion of PDF builder
closes odoo/documentation#6322

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-08 05:31:13 +00:00
Nathan Marotte (nama) 9ab09aa0a5 [IMP] upgrade: overhaul upgrade doc
closes odoo/documentation#6320

X-original-commit: 41aebc3b05
Signed-off-by: Nathan Marotte (nama) <nama@odoo.com>
2023-11-08 04:09:48 +00:00
Antoine Vandevenne (anv) 255b3b2651 [IMP] supported_versions: release 17.0
closes odoo/documentation#6313

X-original-commit: 2c805d9813
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2023-11-08 04:09:45 +00:00
Felicious 07bb9ec349 [ADD] PLM: ECO approvals doc
closes odoo/documentation#6303

X-original-commit: 907e1ba854
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-07 02:24:49 +00:00
Sam Lieber (sali) 717b45bf56 [IMP] l10n: Chile new features
closes odoo/documentation#6256

X-original-commit: eff8e9d915
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: masi-odoo <masi@odoo.com>
Co-authored-by: StraubCreative <zst@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
2023-11-05 18:35:53 +00:00
Felicious 60490b0a7d [ADD] PLM: version control
closes odoo/documentation#6293

Author:    Felicious <feku@odoo.com>
X-original-commit: 6a5c340a26
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2023-11-04 16:38:55 +00:00
Louis Baudoux 6ce9a014a7 [IMP] extract_api: document the new API version
We have introduced a second version of the Extract API that adds the IAP
account token to the `get_result` and `validate` routes.

There are also other changes in this commit:
 - The deprecated stuff has been removed as it's been deprecated for a
   while and won't be supported anymore in the future.
 - The `status` table of the `get_result` route has been added as it was
   missing for some reason.
 - The documentation regarding the `/validate` routes have been removed
   for security reasons.

closes odoo/documentation#6282

X-original-commit: a8c6272899
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Louis Baudoux (lba) <lba@odoo.com>
2023-11-04 06:43:07 +00:00
Jess Rogers (jero) c4f0e9c11c [IMP] live chat: update ratings doc
closes odoo/documentation#6263

X-original-commit: 7a307320c3
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
2023-11-04 00:38:27 +00:00
KC (ksc) 4fdfda7ddb [ADD] sales: adding pdf quote builder doc for 16/17
closes odoo/documentation#6029

Author:    KC (ksc) <ksc@odoo.com>
Date:      Thu Oct 5 11:29:37 2023 -0700
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Co-authored-by: meng-odoo <meng@odoo.com>
Co-authored-by: Felicious <feku@odoo.com>
Co-authored-by: Demesmaeker <edm@odoo.com>
Co-authored-by: dalaOdoo <dala@odoo.com>
Co-authored-by: StraubCreative <zst@odoo.com>
2023-11-04 00:38:16 +00:00
Felicious 765d8935d4 [ADD] PLM: engineering change order
closes odoo/documentation#6272

X-original-commit: fc9bbb7d22
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: Sho Ketchum <96748231+odoo-shke@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2023-11-02 18:23:13 +00:00
Rémy Voet (ryv) 6cb55a5cce [FIX] developer: fix bad documentation of --unaccent
In the CLI, `--unaccent` try to enable PostgreSQL unaccent extention
when odoo is responsible to create new database(s).

closes odoo/documentation#6244

X-original-commit: 1639d22efd
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Rémy Voet (ryv) <ryv@odoo.com>
2023-10-31 07:11:43 +00:00
Martin Trigaux fd7d95f707 [IMP] *: export translations
closes odoo/documentation#6248

X-original-commit: bb4210cdbd
Signed-off-by: Martin Trigaux (mat) <mat@odoo.com>
2023-10-30 09:01:02 +00:00
Tom Aarab (toaa) ffe569a625 [IMP] accounting: reconciliation
Updated screenshots and typos for 16.3

Forward to 16.4:
- Change: Dashboard links are improved, and audit features can be found
  in the journal items view.

closes odoo/documentation#6233

X-original-commit: a31bcec3ba
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2023-10-27 21:36:43 +00:00
Tom Aarab (toaa) 077b7a577f [IMP] silverfin: API key
Added a note to make it clearer that for fiduciaries, a single API key
is valid for all databases linked to the user.

taskid-3570700

closes odoo/documentation#6230

X-original-commit: 323d3563c9
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2023-10-27 16:09:42 +00:00
Christophe Monniez 9d94d155fd [REL] 17.0 2023-10-26 19:39:29 +00:00
665 changed files with 3054693 additions and 280483 deletions
+30
View File
@@ -21,6 +21,16 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-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-17-doc:r:finance]
file_filter = locale/<lang>/LC_MESSAGES/finance.po
source_file = locale/sources/finance.pot
@@ -41,6 +51,16 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-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-17-doc:r:index]
file_filter = locale/<lang>/LC_MESSAGES/index.po
source_file = locale/sources/index.pot
@@ -111,6 +131,16 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-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-17-doc:r:websites]
file_filter = locale/<lang>/LC_MESSAGES/websites.po
source_file = locale/sources/websites.pot
+1 -1
View File
@@ -26,7 +26,7 @@ SOURCE_DIR = content
HTML_BUILD_DIR = $(BUILD_DIR)/html
ifdef VERSIONS
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/master
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/17.0
endif
ifneq ($(CURRENT_LANG),en)
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)
+5 -2
View File
@@ -22,7 +22,7 @@ copyright = 'Odoo S.A.'
# `version` is the version info for the project being documented, acts as replacement for |version|,
# also used in various other places throughout the built documents.
# `release` is the full version, including alpha/beta/rc tags. Acts as replacement for |release|.
version = release = 'master'
version = release = '17.0'
# `current_branch` is the technical name of the current branch.
# E.g., saas-15.4 -> saas-15.4; 12.0 -> 12.0, master -> master (*).
@@ -233,8 +233,11 @@ languages_names = {
'es': 'ES',
'fr': 'FR',
'it': 'IT',
'ko': 'KO',
'nl': 'NL',
'pt_BR': 'PT',
'ro': 'RO',
'sv': 'SV',
'uk': 'UA',
'zh_CN': 'ZH (CN)',
'zh_TW': 'ZH (TW)'
@@ -445,7 +448,7 @@ def _generate_alternate_urls(app, pagename, templatename, context, doctree):
"""
_current_lang = app.config.language or 'en'
# Replace the context value by its upper-cased value ("FR" instead of "fr")
context['language'] = languages_names.get(_current_lang)
context['language'] = languages_names.get(_current_lang, _current_lang.upper())
context['language_code'] = _current_lang
# If the list of languages is not set, assume that the project has no alternate language
+6 -1
View File
@@ -20,7 +20,7 @@ To Odoo Online
- Odoo Online is *not* compatible with **non-standard apps**.
- The database's current version must be :doc:`supported <supported_versions>`.
#. Create a :ref:`duplicate <duplicate_premise>` of the database.
#. Create a :ref:`duplicate of the database <on-premise/duplicate>`.
#. In this duplicate, uninstall all **non-standard apps**.
#. Use the database manager to grab a *dump with filestore*.
#. `Submit a support ticket <https://www.odoo.com/help>`_ including the following:
@@ -59,6 +59,11 @@ Transferring an Odoo Online database
Click the gear icon (:guilabel:`⚙`) next to the database name on the `Odoo Online database
manager <https://www.odoo.com/my/databases/>`_ to display its version number.
.. warning::
If there is an active Odoo subscription linked to the database being migrated, reach out to
the Customer Service Manager or `submit a support ticket <https://www.odoo.com/help>`_ to
complete the subscription transfer.
To on-premise
-------------
+93 -142
View File
@@ -7,159 +7,110 @@ On-premise
Register a database
===================
To register your database, you just need to enter your Subscription Code in the
banner in the App Switcher. Make sure you do not add extra spaces before or after
your subscription code. If the registration is successful, it will turn green and
will provide you with the Expiration Date of your freshly-registered database. You
can check this Expiration Date in the About menu (Odoo 9) or in the Settings Dashboard
(Odoo 10).
To register your database, enter your subscription code in the banner in the app dashboard. If the
registration is successful, the banner will turn green and display the database expiration date.
Registration Error Message
--------------------------
.. tip::
The expiration date is also displayed at the bottom of the Settings page.
If you are unable to register your database, you will likely encounter this
message:
.. image:: on_premise/error_message_sub_code.png
:alt: Something went wrong while registering your database, you can try again or contact Odoo
Help
Solutions
~~~~~~~~~
* Do you have a valid Enterprise subscription?
* Check if your subscription details get the tag "In Progress" on
your `Odoo Account
<https://accounts.odoo.com/my/subscription>`__ or with your Account Manager
* Have you already linked a database with your subscription reference?
* You can link only one database per subscription.
(Need a test or a development database? `Find a partner
<https://www.odoo.com/partners>`__)
* You can unlink the old database yourself on your `Odoo Contract
<https://accounts.odoo.com/my/subscription>`__ with the button "Unlink database"
.. image:: on_premise/unlink_single_db.png
A confirmation message will appear; make sure this is the correct database as
it will be deactivated shortly:
.. image:: on_premise/unlink_confirm_enterprise_edition.png
* Do you have the updated version of Odoo 9?
* From July 2016 onward, Odoo 9 now automatically change the uuid of a
duplicated database; a manual operation is no longer required.
* If it's not the case, you may have multiple databases sharing the same
UUID. Please check on your `Odoo Contract
<https://accounts.odoo.com/my/subscription>`__, a short message will appear
specifying which database is problematic:
.. image:: on_premise/unlink_db_name_collision.png
In this case, you need to change the UUID on your test databases to solve this
issue. You will find more information about this in :ref:`this section <duplicate_premise>`.
For your information, we identify database with UUID. Therefore, each database
should have a distinct UUID to ensure that registration and invoicing proceed
effortlessly for your and for us.
* Check your network and firewall settings
* The Update notification must be able to reach Odoo's subscription
validation servers. In other words, make sure that the Odoo server is able
to open outgoing connections towards:
* services.odoo.com on port 443 (or 80)
* services.openerp.com on port 443 (or 80) for older deployments
* Once you activated your database, you must keep these ports open, as the
Update notification runs once a week.
Error message due to too many users
-----------------------------------
If you have more users in your local database than provisionned in your
Odoo Enterprise subscription, you may encounter this message:
.. image:: on_premise/add_more_users.png
:alt: This database will expire in X days, you have more users than your subscription allows
When the message appears you have 30 days before the expiration.
The countdown is updated everyday.
Solutions
~~~~~~~~~
- **Add more users** on your subscription: follow the link and Validate
the upsell quotation and pay for the extra users.
- **Deactivate users** as explained in this `documentation <documentation.html#deactivating-users>`_
and **Reject** the upsell quotation.
Once your database has the correct number of users, the expiration message
will disappear automatically after a few days, when the next verification occurs.
We understand that it can be a bit frightening to see the countdown,
so you can :ref:`force an Update Notification <force_ping>` to make the message disappear
right away.
Database expired error message
------------------------------
If your database reaches its expiration date before your renew your subscription,
you will encounter this message:
.. image:: on_premise/database_expired.png
:alt: This database has expired.
This **blocking** message appears after a non-blocking message that lasts 30 days.
If you fail to take action before the end of the countdown, the database is expired.
Solutions
~~~~~~~~~
* Renew your subscription: follow the link and renew your subscription - note that
if you wish to pay by Wire Transfer, your subscription will effectively be renewed
only when the payment arrives, which can take a few days. Credit card payments are
processed immediately.
* Contact our `Support <https://www.odoo.com/help>`__
None of those solutions worked for you? Please contact our
`Support <https://www.odoo.com/help>`__
.. _force_ping:
.. _duplicate_premise:
.. _on-premise/duplicate:
Duplicate a database
====================
You can duplicate your database by accessing the database manager on your
server (<odoo-server>/web/database/manager). In this page, you can easily
duplicate your database (among other things).
Duplicate a database by accessing the database manager on your server
(`<odoo-server>/web/database/manager`). Typically, you want to duplicate your production database
into a neutralized testing database. It can be done by checking the neutralize box when prompted,
which executes all :file:`neutralize.sql` scripts for every installed module.
.. image:: on_premise/db_manager.gif
Common error messages and solutions
===================================
When you duplicate a local database, it is **strongly** advised to change
the duplicated database's uuid (Unniversally Unique Identifier), since this
uuid is how your database identifies itself with our servers. Having two
databases with the same uuid could result in invoicing problems or registration
problems down the line.
Registration error
------------------
.. note::
From July 2016 onward, Odoo 9 now automatically change the uuid of a duplicated database; a
manual operation is no longer required.
In case of a registration error, the following message should be displayed.
The database uuid is currently accessible from the menu :menuselection:`Settings --> Technical -->
System Parameters`, we advise you to use a `uuid generator <https://www.uuidtools.com>`_ or to
use the unix command ``uuidgen`` to generate a new uuid. You can then simply replace it like any
other record by clicking on it and using the edit button.
.. image:: on_premise/error-message-sub-code.png
:alt: Database registration error message
.. image:: on_premise/db_uuid.png
To resolve the issue:
- Check the **validity of your Odoo Enterprise subscription** by verifying if your subscription
details have the tag :guilabel:`In Progress` on your `Odoo Account
<https://accounts.odoo.com/my/subscription>`_ or contact your Account Manager.
- Ensure that **no other database is linked** to the subscription code, as only one database can be
linked per subscription.
.. tip::
If a test or a development database is needed, you can :ref:`duplicate a database
<on-premise/duplicate>`.
- Verify that **no databases share the same UUID** (Universally Unique Identifier) by opening your
`Odoo Contract <https://accounts.odoo.com/my/subscription>`_. If two or more databases share the
same UUID, their name will be displayed.
.. image:: on_premise/unlink-db-name-collision.png
:alt: Database UUID error message
If that is the case, manually change the database(s) UUID or `send a support ticket
<https://www.odoo.com/help>`_.
- As the update notification must be able to reach Odoo's subscription validation servers, ensure
your **network and firewall settings** allow the Odoo server to open outgoing connections
towards:
- `services.odoo.com` on port `443` (or `80`)
- for older deployments, `services.openerp.com` on port `443` (or `80`)
These ports must be kept open even after registering a database, as the update notification runs
once a week.
Too many users error
--------------------
If you have more users in a local database than provisioned in your Odoo Enterprise subscription,
the following message should be displayed.
.. image:: on_premise/add-more-users.png
:alt: Too many users on a database error message
When the message appears, you have 30 days to act before the database expires. The countdown is
updated every day.
To resolve the issue, either:
- **Add more users** to your subscription by clicking the :guilabel:`Upgrade your subscription` link
displayed in the message to validate the upsell quotation and pay for the extra users.
- :ref:`Deactivate users <users/deactivate>` and **reject** the upsell quotation.
.. important::
If you are on a monthly subscription plan, the database will automatically update to reflect the
added user(s). If you are on a yearly or multi-year plan, an expiration banner will appear in the
database. You can create the upsell quotation by clicking the banner to update the subscription
or `send a support ticket <https://www.odoo.com/help>`_ to resolve the issue.
Once your database has the correct number of users, the expiration message disappears automatically
after a few days, when the next verification occurs.
Database expired error
----------------------
If your database expires before you renew your subscription, the following message should be
displayed.
.. image:: on_premise/database-expired.png
:alt: Database expired error message
This message appears if you fail to act before the end of the 30-day countdown.
To resolve the issue, either:
- Click the :guilabel:`Renew your subscription` link displayed in the message and complete the
process. If you pay by wire transfer, your subscription will be renewed when the payment arrives
which can take a few days. Credit card payments are processed immediately.
- `Send a support ticket <https://www.odoo.com/help>`_.
.. toctree::
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.5 KiB

Before

Width:  |  Height:  |  Size: 4.6 KiB

After

Width:  |  Height:  |  Size: 4.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 89 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

+4 -4
View File
@@ -9,7 +9,7 @@ internet.
.. warning:: If you are setting up a public server, be sure to check our :ref:`security` recommendations!
.. _db_filter:
.. _dbfilter:
dbfilter
========
@@ -573,12 +573,12 @@ security-related topics:
- Use appropriate database filters ( :option:`--db-filter <odoo-bin --db-filter>`)
to restrict the visibility of your databases according to the hostname.
See :ref:`db_filter`.
See :ref:`dbfilter`.
You may also use :option:`-d <odoo-bin -d>` to provide your own (comma-separated)
list of available databases to filter from, instead of letting the system fetch
them all from the database backend.
- Once your ``db_name`` and ``db_filter`` are configured and only match a single database
- Once your ``db_name`` and ``dbfilter`` are configured and only match a single database
per hostname, you should set ``list_db`` configuration option to ``False``, to prevent
listing databases entirely, and to block access to the database management screens
(this is also exposed as the :option:`--no-database-list <odoo-bin --no-database-list>`
@@ -722,7 +722,7 @@ management screens.
the system administrator, including provisioning of new databases and automated backups.
Be sure to setup an appropriate ``db_name`` parameter
(and optionally, ``db_filter`` too) so that the system can determine the target database
(and optionally, ``dbfilter`` too) so that the system can determine the target database
for each request, otherwise users will be blocked as they won't be allowed to choose the
database themselves.

Before

Width:  |  Height:  |  Size: 6.9 KiB

After

Width:  |  Height:  |  Size: 6.9 KiB

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

After

Width:  |  Height:  |  Size: 22 KiB

@@ -2,166 +2,246 @@
Export and import data
======================
In Odoo, it is sometimes necessary to export or import data for running reports, or for data
modification. This document covers the export and import of data into and out of Odoo.
.. important::
Sometimes, users run into a 'time out' error, or a record does not process, due to its size. This
can occur with large exports, or in cases where the import file is too large. To circumvent this
limitation surrounding the size of the records, process exports or imports in smaller batches.
.. _export-data:
Export data from Odoo
=====================
When working with a database, it sometimes is necessary to export your data in a distinct file.
Doing so can help to do reporting over your activities (even if Odoo offers a precise and easy
reporting tool with each available application).
When working with a database, it is sometimes necessary to export data in a distinct file. Doing so
can aid in reporting on activities, although, Odoo provides a precise and easy reporting tool with
each available application.
With Odoo, you can export the values from any field in any record. To do so,
activate the list view on the items that need to be exported, click on *Action*, and, then,
on *Export*.
With Odoo, the values can be exported from any field in any record. To do so, activate the list view
(:guilabel:`≣ (four horizontal lines)` icon), on the items that need to be exported, and then
select the records that should be exported. To select a record, tick the checkbox next to the
corresponding record. Finally, click on :guilabel:`⚙️ Action`, and then :guilabel:`Export`.
.. image:: export_import_data/list-view-export.png
:align: center
:alt: view of the different things to enable/click to export data
:alt: View of the different things to enable/click to export data.
Pretty simple, this action still comes with some specificities. In fact,
when clicking on *Export*, a pop-up window appears with several
options for the data to export:
When clicking on :guilabel:`Export`, an :guilabel:`Export Data` pop-over window appears, with
several options for the data to export:
.. image:: export_import_data/export-data-overview.png
:align: center
:alt: overview of all the options to take into account when exporting data in Odoo
:alt: Overview of options to consider when exporting data in Odoo..
#. With the *I want to update data* option ticked, the system only
shows the fields which can be imported. This is very helpful in
case you want to update existing records. Basically, this works
like a filter. Leaving the box unticked gives way more field
options because it shows all the fields, not just the ones which
can be imported.
#. When exporting, you can choose between two formats: .csv and .xls.
With .csv, items are separated with a comma, while .xls holds information about all the
worksheets in a file, including both content and formatting.
#. Those are the items you may want to export. Use the arrows to display
more sub-field options. Of course, you can use the search bar to
find specific fields more easily. To use the search option more
efficiently, display all the fields by clicking on all the
arrows!
#. The + button is there to add fields to the "to export" list.
#. The "handles" next to the selected fields allow you to move the fields up and down to
change the order in which they must be displayed in the exported
file.
#. The trashcan is there if you need to remove fields.
#. For recurring reports, it might be interesting to save export presets.
Select all the needed ones and click on the template bar.
There, click on *New template* and give a name to yours. The
next time you need to export the same list, simply select the
related template.
#. With the :guilabel:`I want to update data (import-compatable export)` option ticked, the system
only shows the fields that can be imported. This is helpful in the case where the existing
records need to be updated. This works like a filter. Leaving the box unticked, gives many more
field options because it shows all the fields, not just the ones that can be imported.
#. When exporting, there is the option to export in two formats: `.csv` and `.xls`. With `.csv`,
items are separated by a comma, while `.xls` holds information about all the worksheets in a
file, including both content and formatting.
#. These are the items that can be exported. Use the :guilabel:`> (right arrow)` icon to display
more sub-field options. Use the :guilabel:`Search` bar to find specific fields. To use the
:guilabel:`Search` option more efficiently, click on all the :guilabel:`> (right arrows)` to
display all fields.
#. The :guilabel:`+ (plus sign)` icon button is present to add fields to the :guilabel:`Fields to
export` list.
#. The :guilabel:`↕️ (up-down arrow)` to the left of the selected fields can be used to move the
fields up and down, to change the order in which they are displayed in the exported file.
Drag-and-drop using the :guilabel:`↕️ (up-down arrow)` icon.
#. The :guilabel:`🗑️ (trash can)` icon is used to remove fields. Click on the :guilabel:`🗑️ (trash
can)` icon to remove the field.
#. For recurring reports, it is helpful to save export presets. Select all the needed fields, and
click on the template drop-down menu. Once there, click on :guilabel:`New template`, and give a
unique name to the export just created. Click the :guilabel:`💾 (floppy drive)` icon to save the
configuration. The next time the same list needs to be exported, select the related template that
was previously saved from the drop-down menu.
.. tip::
Its good to keep the fields external identifier in mind. For example,
*Related Company* is equal to *parent_id*. Doing so helps export
only what you would like to import next.
It is helpful to know the field's external identifier. For example, :guilabel:`Related Company`
in the export user interface is equal to *parent_id* (external identifier). This is helpful
because then, the only data exported is what should be modified and re-imported.
.. _import-data:
Import data into Odoo
=====================
How to start
------------
Importing data into Odoo is extremely helpful during implementation, or in times where data needs to
be updated in bulk. The following documentation covers how to import data into an Odoo database.
You can import data on any Odoo's business object using either Excel
(.xlsx) or CSV (.csv) formats:
contacts, products, bank statements, journal entries and even orders!
.. warning::
Imports are permanent and **cannot** be undone. However, it is possible to use filters (`created
on` or `last modified`) to identify records changed or created by the import.
Open the view of the object you want to populate and click on :menuselection:`Favorites --> Import
records`.
.. tip::
Activating :ref:`developer mode <developer-mode>` changes the visible import settings in the left
menu. Doing so reveals an :menuselection:`Advanced` menu. Included in this advanced menu are two
options: :guilabel:`Track history during import` and :guilabel:`Allow matching with subfields`.
.. image:: export_import_data/import_button.png
.. image:: export_import_data/advanced-import.png
:align: center
:alt: Advanced import options when developer mode is activated.
If the model uses openchatter, the :guilabel:`Track history during import` option sets up
subscriptions and sends notifications during the import, but leads to a slower import.
Should the :guilabel:`Allow matching with subfields` option be selected, then all subfields
within a field are used to match under the :guilabel:`Odoo Field` while importing.
Get started
-----------
Data can be imported on any Odoo business object using either Excel (`.xlsx`) or :abbr:`CSV
(Comma-separated Values)` (`.csv`) formats. This includes: contacts, products, bank statements,
journal entries, and orders.
Open the view of the object to which the data should be imported/populated, and click on
:menuselection:`⚙️ (Action) --> Import records`.
.. image:: export_import_data/import-button.png
:align: center
:alt: Action menu revealed with the import records option highlighted.
There you are provided with templates you can easily populate
with your own data. Such templates can be imported in one click;
The data mapping is already done.
After clicking :guilabel:`Import records`, Odoo reveals a separate page with templates that can be
downloaded and populated with the company's own data. Such templates can be imported in one click,
since the data mapping is already done. To download a template click :guilabel:`Import Template for
Customers` at the center of the page.
How to adapt the template
-------------------------
.. important::
When importing a :abbr:`CSV (Comma-separated Values)` file, Odoo provides :guilabel:`Formatting`
options. These options do **not** appear when importing the proprietary Excel file type (`.xls`,
`.xlsx`).
* Add, remove and sort columns to fit at best your data structure.
* We advise to not remove the **ID** one (see why in the next section).
* Set a unique ID to every single record by dragging down the ID sequencing.
.. image:: export_import_data/formatting.png
:align: center
:alt: Formatting options presented when a CVS file is imported in Odoo.
Make necessary adjustments to the *Formatting* options, and ensure all columns in the
:guilabel:`Odoo field` and :guilabel:`File Column` are free of errors. Finally, click
:guilabel:`Import` to import the data.
Adapt a template
----------------
Import templates are provided in the import tool of the most common data to import (contacts,
products, bank statements, etc.). Open them with any spreadsheet software (*Microsoft Office*,
*OpenOffice*, *Google Drive*, etc.).
Once the template is downloaded, proceed to follow these steps:
- Add, remove, and sort columns to best fit the data structure.
- It is strongly advised to **not** remove the :guilabel:`External ID` (ID) column (see why in the
next section).
- Set a unique ID to every record by dragging down the ID sequencing in the :guilabel:`External ID`
(ID) column.
.. image:: export_import_data/dragdown.gif
:align: center
:alt: An animation of the mouse dragging down the ID column, so each record has a unique ID.
* When you add a new column, Odoo might not be able to map it automatically if its
label doesn't fit any field in Odoo. Don't worry! You can map
new columns manually when you test the import. Search the list for the
corresponding field.
.. note::
When a new column is added, Odoo may not be able to map it automatically, if its label does not
fit any field within Odoo. However, new columns can be mapped manually when the import is tested.
Search the drop-down menu for the corresponding field.
.. image:: export_import_data/field_list.png
:align: center
.. image:: export_import_data/field_list.png
:align: center
:alt: Drop-down menu expanded in the initial import screen on Odoo.
Then, use this field's label in your file in order to make it work
straight on the very next time.
Then, use this field's label in the import file to ensure future imports are successful.
How to import from another application
--------------------------------------
.. tip::
Another useful way to find out the proper column names to import is to export a sample file
using the fields that should be imported. This way, if there is not a sample import template,
the names are accurate.
In order to re-create relationships between different records,
you should use the unique identifier from the original application
and map it to the **ID** (External ID) column in Odoo.
When you import another record that links to the first one,
use **XXX/ID** (XXX/External ID) to the original unique identifier.
You can also find this record using its name but you will be stuck
if at least 2 records have the same name.
Import from another application
-------------------------------
The **ID** will also be used to update the original import
if you need to re-import modified data later,
it's thus good practice to specify it whenever possible.
The :guilabel:`External ID` (ID) is a unique identifier for the line item. Feel free to use one
from previous software to facilitate the transition to Odoo.
Setting an ID is not mandatory when importing, but it helps in many cases:
I cannot find the field I want to map my column to
--------------------------------------------------
- Update imports: import the same file several times without creating duplicates.
- :ref:`Import relation fields <export_import_data/relation-fields>`.
Odoo tries to find with some heuristic, based on the first ten lines of
the files, the type of field for each column inside your file.
For example if you have a column only containing numbers,
only the fields that are of type *Integer* will be displayed for you
to choose from.
While this behavior might be good and easy for most cases,
it is also possible that it goes wrong or that you want to
map your column to a field that is not proposed by default.
To recreate relationships between different records, the unique identifier from the original
application should be used to map it to the :guilabel:`External ID` (ID) column in Odoo.
If that happens, you just have to check the
** Show fields of relation fields (advanced)** option,
you will then be able to choose from the complete list of fields for each column.
When another record is imported that links to the first one, use **XXX/ID** (XXX/External ID) for
the original unique identifier. This record can also be found using its name.
.. warning::
It should be noted that there will be a conflict if two or more records have the same name.
The :guilabel:`External ID` (ID) can also be used to update the original import, if modified data
needs to be re-imported later, therefore, it is a good practice to specify it whenever possible.
Field missing to map column
---------------------------
Odoo heuristically tries to find the type of field for each column inside the imported file, based
on the first ten lines of the files.
For example, if there is a column only containing numbers, only the fields with the *integer* type
are presented as options.
While this behavior might be beneficial in most cases, it is also possible that it could fail, or
the column may be mapped to a field that is not proposed by default.
If this happens, check the :guilabel:`Show fields of relation fields (advanced) option`, then a
complete list of fields becomes available for each column.
.. image:: export_import_data/field_list.png
:align: center
:alt: Searching for the field to match the tax column.
Where can I change the date import format?
------------------------------------------
Odoo can automatically detect if a column is a date, and it will try to guess the date format from a
set of most commonly used date formats. While this process can work for many date formats, some date
formats will not be recognized. This can cause confusion due to day-month inversions; it is
difficult to guess which part of a date format is the day and which part is the month in a date such
as '01-03-2016'.
To view which date format Odoo has found from your file you can check the **Date Format** that is
shown when clicking on **Options** under the file selector. If this format is incorrect you can
change it to your liking using the *ISO 8601* to define the format.
Change data import format
-------------------------
.. note::
If you are importing an excel (.xls, .xlsx) file, you can use date cells to store dates as the
display of dates in excel is different from the way it is stored. That way you will be sure that
the date format is correct in Odoo whatever your locale date format is.
Odoo can automatically detect if a column is a date, and tries to guess the date format from a
set of most commonly used date formats. While this process can work for many date formats, some
date formats are not recognizable. This can cause confusion, due to day-month inversions; it is
difficult to guess which part of a date format is the day, and which part is the month, in a
date, such as `01-03-2016`.
Can I import numbers with currency sign (e.g.: $32.00)?
-------------------------------------------------------
When importing a :abbr:`CSV (Comma-separated Values)` file, Odoo provides :guilabel:`Formatting`
options.
Yes, we fully support numbers with parenthesis to represent negative sign as well as numbers with
currency sign attached to them. Odoo also automatically detect which thousand/decimal separator you
use (you can change those under **options**). If you use a currency symbol that is not known to
Odoo, it might not be recognized as a number though and it will crash.
To view which date format Odoo has found from the file, check the :guilabel:`Date Format` that is
shown when clicking on options under the file selector. If this format is incorrect, change it to
the preferred format using *ISO 8601* to define the format.
Examples of supported numbers (using thirty-two thousands as an example):
.. important::
*ISO 8601* is an international standard, covering the worldwide exchange, along with the
communication of date and time-related data. For example, the date format should be `YYYY-MM-DD`.
So, in the case of July 24th 1981, it should be written as `1981-07-24`.
.. tip::
When importing Excel files (`.xls`, `.xlsx`), consider using *date cells* to store dates. This
maintains locale date formats for display, regardless of how the date is formatted in Odoo. When
importing a :abbr:`CSV (Comma-separated Values)` file, use Odoo's :guilabel:`Formatting` section
to select the date format columns to import.
Import numbers with currency signs
----------------------------------
Odoo fully supports numbers with parenthesis to represent negative signs, as well as numbers with
currency signs attached to them. Odoo also automatically detects which thousand/decimal separator is
used. If a currency symbol unknown to Odoo is used, it might not be recognized as a number, and the
import crashes.
.. note::
When importing a :abbr:`CSV (Comma-separated Values)` file, the :guilabel:`Formatting` menu
appears on the left-hand column. Under these options, the :guilabel:`Thousands Separator` can be
changed.
Examples of supported numbers (using 'thirty-two thousand' as the figure):
- 32.000,00
- 32000,00
@@ -176,156 +256,191 @@ Example that will not work:
- ABC 32.000,00
- $ (32.000,00)
What can I do when the Import preview table isn't displayed correctly?
----------------------------------------------------------------------
.. important::
A :guilabel:`() (parenthesis)` around the number indicates that the number is a negative value.
The currency symbol **must** be placed within the parenthesis for Odoo to recognize it as a
negative currency value.
By default the Import preview is set on commas as field separators and quotation marks as text
delimiters. If your csv file does not have these settings, you can modify the File Format Options
(displayed under the Browse CSV file bar after you select your file).
Import preview table not displayed correctly
--------------------------------------------
Note that if your CSV file has a tabulation as separator, Odoo will not detect the separations. You
will need to change the file format options in your spreadsheet application. See the following
question.
By default, the import preview is set on commas as field separators, and quotation marks as text
delimiters. If the :abbr:`CSV (Comma-separated Values)` file does not have these settings, modify
the :guilabel:`Formatting` options (displayed under the :guilabel:`Import` :abbr:`CSV
(Comma-separated Values)` file bar after selecting the :abbr:`CSV (Comma-separated Values)` file).
How can I change the CSV file format options when saving in my spreadsheet application?
---------------------------------------------------------------------------------------
.. important::
If the :abbr:`CSV (Comma-separated Values)` file has a tabulation as a separator, Odoo does
**not** detect the separations. The file format options need to be modified in the spreadsheet
application. See the following :ref:`Change CSV file format <export_import_data/change-csv>`
section.
If you edit and save CSV files in spreadsheet applications, your computer's regional settings will
be applied for the separator and delimiter. We suggest you use OpenOffice or LibreOffice Calc as
they will allow you to modify all three options (in :menuselection:`'Save As' dialog box --> Check the
box 'Edit filter settings' --> Save`).
.. _export_import_data/change-csv:
Microsoft Excel will allow you to modify only the encoding when saving (in :menuselection:`'Save As'
dialog box --> click 'Tools' dropdown list --> Encoding tab`).
Change CSV file format in spreadsheet application
-------------------------------------------------
What's the difference between Database ID and External ID?
----------------------------------------------------------
When editing and saving :abbr:`CSV (Comma-separated Values)` files in spreadsheet applications, the
computer's regional settings are applied for the separator and delimiter. Odoo suggests using
*OpenOffice* or *LibreOffice*, as both applications allow modifications of all three options (from
*LibreOffice* application, go to :menuselection:`'Save As' dialog box --> Check the box 'Edit filter
settings' --> Save`).
Microsoft Excel can modify the encoding when saving (:menuselection:`'Save As' dialog box -->
'Tools' drop-down menu --> Encoding tab`).
Difference between Database ID and External ID
----------------------------------------------
Some fields define a relationship with another object. For example, the country of a contact is a
link to a record of the 'Country' object. When you want to import such fields, Odoo will have to
recreate links between the different records. To help you import such fields, Odoo provides three
mechanisms. You must use one and only one mechanism per field you want to import.
link to a record of the 'Country' object. When such fields are imported, Odoo has to recreate links
between the different records. To help import such fields, Odoo provides three mechanisms.
For example, to reference the country of a contact, Odoo proposes you 3 different fields to import:
.. important::
**Only one** mechanism should be used per field that is imported.
- Country: the name or code of the country
- Country/Database ID: the unique Odoo ID for a record, defined by the ID postgresql column
- Country/External ID: the ID of this record referenced in another application (or the .XML file
that imported it)
For example, to reference the country of a contact, Odoo proposes three different fields to import:
For the country Belgium, you can use one of these 3 ways to import:
- :guilabel:`Country`: the name or code of the country
- :guilabel:`Country/Database ID`: the unique Odoo ID for a record, defined by the ID PostgreSQL
column
- :guilabel:`Country/External ID`: the ID of this record referenced in another application (or the
`.XML` file that imported it)
- Country: Belgium
- Country/Database ID: 21
- Country/External ID: base.be
For the country of Belgium, for example, use one of these three ways to import:
According to your need, you should use one of these 3 ways to reference records in relations. Here
is when you should use one or the other, according to your need:
- :guilabel:`Country`: `Belgium`
- :guilabel:`Country/Database ID`: `21`
- :guilabel:`Country/External ID`: `base.be`
- Use Country: This is the easiest way when your data come from CSV files that have been created
manually.
- Use Country/Database ID: You should rarely use this notation. It's mostly used by developers as
it's main advantage is to never have conflicts (you may have several records with the same name,
According to the company's need, use one of these three ways to reference records in relations. Here
is an example when one or the other should be used, according to the need:
- Use :guilabel:`Country`: this is the easiest way when data comes from :abbr:`CSV (Comma-separated
Values)` files that have been created manually.
- Use :guilabel:`Country/Database ID`: this should rarely be used. It is mostly used by developers
as the main advantage is to never have conflicts (there may be several records with the same name,
but they always have a unique Database ID)
- Use Country/External ID: Use External ID when you import data from a third party application.
- Use :guilabel:`Country/External ID`: use *External ID* when importing data from a third-party
application.
When you use External IDs, you can import CSV files with the "External ID" column to define the
External ID of each record you import. Then, you will be able to make a reference to that record
with columns like "Field/External ID". The following two CSV files give you an example for Products
and their Categories.
When *External IDs* are used, import :abbr:`CSV (Comma-separated Values)` files with the
:guilabel:`External ID` (ID) column defining the *External ID* of each record that is imported.
Then, a reference can be made to that record with columns, like `Field/External ID`. The following
two :abbr:`CSV (Comma-separated Values)` files provide an example for products and their categories.
:download:`CSV file for categories
<export_import_data/External_id_3rd_party_application_product_categories.csv>`.
- :download:`CSV file for categories
<export_import_data/External_id_3rd_party_application_product_categories.csv>`
- :download:`CSV file for Products
<export_import_data/External_id_3rd_party_application_products.csv>`
:download:`CSV file for Products
<export_import_data/External_id_3rd_party_application_products.csv>`.
.. _export_import_data/relation-fields:
What can I do if I have multiple matches for a field?
-----------------------------------------------------
Import relation fields
----------------------
If for example you have two product categories with the child name "Sellable" (ie. "Misc.
Products/Sellable" & "Other Products/Sellable"), your validation is halted but you may still import
your data. However, we recommend you do not import the data because they will all be linked to the
first 'Sellable' category found in the Product Category list ("Misc. Products/Sellable"). We
recommend you modify one of the duplicates' values or your product category hierarchy.
An Odoo object is always related to many other objects (e.g. a product is linked to product
categories, attributes, vendors, etc.). To import those relations, the records of the related object
need to be imported first, from their own list menu.
However if you do not wish to change your configuration of product categories, we recommend you use
make use of the external ID for this field 'Category'.
This can be achieved by using either the name of the related record, or its ID, depending on the
circumstances. The ID is expected when two records have the same name. In such a case add `/ ID`
at the end of the column title (e.g. for product attributes: `Product Attributes / Attribute / ID`).
How can I import a many2many relationship field (e.g. a customer that has multiple tags)?
-----------------------------------------------------------------------------------------
Options for multiple matches on fields
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The tags should be separated by a comma without any spacing. For example, if you want your customer
to be linked to both tags 'Manufacturer' and 'Retailer' then you will encode "Manufacturer,Retailer"
in the same column of your CSV file.
If, for example, there are two product categories with the child name `Sellable` (e.g. `Misc.
Products/Sellable` & `Other Products/Sellable`), the validation is halted, but the data may still be
imported. However, Odoo recommends that the data is not imported because it will all be linked to
the first `Sellable` category found in the *Product Category* list (`Misc. Products/Sellable`).
Odoo, instead, recommends modifying one of the duplicate's values, or the product category
hierarchy.
:download:`CSV file for Manufacturer, Retailer <export_import_data/m2m_customers_tags.csv>`
However, if the company does not wish to change the configuration of product categories, Odoo
recommends making use of the *External ID* for this field, 'Category'.
Import many2many relationship fields
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
How can I import a one2many relationship (e.g. several Order Lines of a Sales Order)?
-------------------------------------------------------------------------------------
The tags should be separated by a comma, without any spacing. For example, if a customer needs to be
linked to both tags: `Manufacturer` and `Retailer` then 'Manufacturer,Retailer' needs to be encoded
in the same column of the :abbr:`CSV (Comma-separated Values)` file.
If you want to import sales order having several order lines; for each order line, you need to
reserve a specific row in the CSV file. The first order line will be imported on the same row as the
information relative to order. Any additional lines will need an additional row that does not have
any information in the fields relative to the order. As an example, here is
``purchase.order_functional_error_line_cant_adpat.CSV`` file of some quotations you can import,
based on demo data.
- :download:`CSV file for Manufacturer, Retailer <export_import_data/m2m_customers_tags.csv>`
:download:`File for some Quotations <export_import_data/purchase.order_functional_error_line_cant_adpat.csv>`.
Import one2many relationships
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
The following CSV file shows how to import purchase orders with their respective purchase order
lines:
If a company wants to import a sales order with several order lines, a specific row **must** be
reserved in the :abbr:`CSV (Comma-separated Values)` file for each order line. The first order line
is imported on the same row as the information relative to order. Any additional lines need an
additional row that does not have any information in the fields relative to the order.
:download:`Purchase orders with their respective purchase order lines <export_import_data/o2m_purchase_order_lines.csv>`.
As an example, here is a :abbr:`CSV (Comma-separated Values)` file of some quotations that can be
imported, based on demo data:
The following CSV file shows how to import customers and their respective contacts:
- :download:`File for some Quotations
<export_import_data/purchase.order_functional_error_line_cant_adpat.csv>`
:download:`Customers and their respective contacts <export_import_data/o2m_customers_contacts.csv>`.
The following :abbr:`CSV (Comma-separated Values)` file shows how to import purchase orders with
their respective purchase order lines:
Can I import several times the same record?
-------------------------------------------
- :download:`Purchase orders with their respective purchase order lines
<export_import_data/o2m_purchase_order_lines.csv>`
If you import a file that contains one of the column "External ID" or "Database ID", records that
have already been imported will be modified instead of being created. This is very useful as it
allows you to import several times the same CSV file while having made some changes in between two
imports. Odoo will take care of creating or modifying each record depending if it's new or not.
The following :abbr:`CSV (Comma-separated Values)` file shows how to import customers and their
respective contacts:
This feature allows you to use the Import/Export tool of Odoo to modify a batch of records in your
favorite spreadsheet application.
- :download:`Customers and their respective contacts
<export_import_data/o2m_customers_contacts.csv>`
What happens if I do not provide a value for a specific field?
Import records several times
----------------------------
If an imported file contains one of the columns: :guilabel:`External ID` or :guilabel:`Database ID`,
records that have already been imported are modified, instead of being created. This is extremely
useful as it allows users to import the same :abbr:`CSV (Comma-separated Values)` file several
times, while having made some changes in between two imports.
Odoo takes care of creating or modifying each record, depending if it is new or not.
This feature allows a company to use the *Import/Export tool* in Odoo to modify a batch of records
in a spreadsheet application.
Value not provided for a specific field
---------------------------------------
If all fields are not set in the CSV file, Odoo assigns the default value for every non-defined
field. But, if fields are set with empty values in the :abbr:`CSV (Comma-separated Values)` file,
Odoo sets the empty value in the field, instead of assigning the default value.
Export/import different tables from an SQL application to Odoo
--------------------------------------------------------------
If you do not set all fields in your CSV file, Odoo will assign the default value for every non
defined fields. But if you set fields with empty values in your CSV file, Odoo will set the EMPTY
value in the field, instead of assigning the default value.
If data needs to be imported from different tables, relations need to be recreated between records
belonging to different tables. For instance, if companies and people are imported, the link between
each person and the company they work for needs to be recreated.
How to export/import different tables from an SQL application to Odoo?
----------------------------------------------------------------------
To manage relations between tables, use the `External ID` facilities of Odoo. The `External ID` of a
record is the unique identifier of this record in another application. The `External ID` must be
unique across all records of all objects. It is a good practice to prefix this `External ID` with
the name of the application or table. (like, 'company_1', 'person_1' - instead of '1')
If you need to import data from different tables, you will have to recreate relations between
records belonging to different tables. (e.g. if you import companies and persons, you will have to
recreate the link between each person and the company they work for).
As an example, suppose there is an SQL database with two tables that are to be imported: companies
and people. Each person belongs to one company, so the link between a person and the company they
work for must be recreated.
To manage relations between tables, you can use the "External ID" facilities of Odoo. The "External
ID" of a record is the unique identifier of this record in another application. This "External ID"
must be unique across all the records of all objects, so it's a good practice to prefix this
"External ID" with the name of the application or table. (like 'company_1', 'person_1' instead of
'1')
Test this example, with a :download:`sample of a PostgreSQL database
<export_import_data/database_import_test.sql>`.
As an example, suppose you have a SQL database with two tables you want to import: companies and
persons. Each person belong to one company, so you will have to recreate the link between a person
and the company he work for. (If you want to test this example, here is a :download:`dump of such a
PostgreSQL database <export_import_data/database_import_test.sql>`)
We will first export all companies and their "External ID". In PSQL, write the following command:
First, export all companies and their *External ID*. In PSQL, write the following command:
.. code-block:: sh
> copy (select 'company_'||id as "External ID",company_name as "Name",'True' as "Is a Company" from companies) TO '/tmp/company.csv' with CSV HEADER;
This SQL command will create the following CSV file:
This SQL command creates the following :abbr:`CSV (Comma-separated Values)` file:
.. code-block:: text
@@ -334,13 +449,14 @@ This SQL command will create the following CSV file:
company_2,Organi,True
company_3,Boum,True
To create the CSV file for persons, linked to companies, we will use the following SQL command in PSQL:
To create the :abbr:`CSV (Comma-separated Values)` file for people linked to companies, use the
following SQL command in PSQL:
.. code-block:: sh
> copy (select 'person_'||id as "External ID",person_name as "Name",'False' as "Is a Company",'company_'||company_id as "Related Company/External ID" from persons) TO '/tmp/person.csv' with CSV
It will produce the following CSV file:
It produces the following :abbr:`CSV (Comma-separated Values)` file:
.. code-block:: text
@@ -350,62 +466,13 @@ It will produce the following CSV file:
person_3,Eric,False,company_2
person_4,Ramsy,False,company_3
As you can see in this file, Fabien and Laurence are working for the Bigees company (company_1) and
Eric is working for the Organi company. The relation between persons and companies is done using the
External ID of the companies. We had to prefix the "External ID" by the name of the table to avoid a
conflict of ID between persons and companies (person_1 and company_1 who shared the same ID 1 in the
original database).
In this file, Fabien and Laurence are working for the Bigees company (`company_1`), and Eric is
working for the Organi company. The relation between people and companies is done using the
*External ID* of the companies. The *External ID* is prefixed by the name of the table to avoid a
conflict of ID between people and companies (`person_1` and `company_1`, who shared the same ID 1 in
the original database).
The two files produced are ready to be imported in Odoo without any modifications. After having
imported these two CSV files, you will have 4 contacts and 3 companies. (the firsts two contacts are
linked to the first company). You must first import the companies and then the persons.
How to adapt an import template
===============================
Import templates are provided in the import tool of the most common data to
import (contacts, products, bank statements, etc.).
You can open them with any spreadsheets software (Microsoft Office,
OpenOffice, Google Drive, etc.).
How to customize the file
=========================
* Remove columns you don't need. We advise to not remove the *ID* one (see
why here below).
* Set a unique ID to every single record by dragging down the ID sequencing.
.. image:: export_import_data/dragdown.gif
:align: center
* When you add a new column, Odoo might not be able to map it automatically if its
label doesn't fit any field of the system.
If so, find the corresponding field using the search.
.. image:: export_import_data/field_list.png
:align: center
Then, use the label you found in your import template in order to make it work
straight away the very next time you try to import.
Why an “ID” column
==================
The **ID** (External ID) is an unique identifier for the line item.
Feel free to use the one of your previous software to ease the transition to Odoo.
Setting an ID is not mandatory when importing but it helps in many cases:
* Update imports: you can import the same file several times without creating duplicates;
* Import relation fields (see here below).
How to import relation fields
=============================
An Odoo object is always related to many other objects (e.g. a product is linked
to product categories, attributes, vendors, etc.). To import those relations you need to
import the records of the related object first from their own list menu.
You can do it using either the name of the related record or its ID. The ID is expected when
two records have the same name. In such a case add " / ID" at the end of the column title
(e.g. for product attributes: Product Attributes / Attribute / ID).
imported these two :abbr:`CSV (Comma-separated Values)` files, there are four contacts and three
companies (the first two contacts are linked to the first company). Keep in mind to first import
the companies, and then the people.
Binary file not shown.

After

Width:  |  Height:  |  Size: 3.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 47 KiB

@@ -47,9 +47,7 @@ Draft invoices
--------------
The system generates invoice which are initially set to the Draft state.
While these invoices
remain unvalidated, they have no accounting impact within the system.
While these invoices remain unvalidated, they have no accounting impact within the system.
There is nothing to stop users from creating their own draft invoices.
Let's create a customer invoice with following information:
@@ -307,6 +307,32 @@ directly to a product line.
.. image:: taxes/list-sequence.png
:alt: The taxes' sequence in Odoo determines which tax is applied first
Extra taxes
===========
"Extra taxes" is a broad term referring to additional taxes beyond the standard or basic taxes
imposed by governments. These extra taxes can be **luxury** taxes, **environmental** taxes,
**import** or **export duties** taxes, etc.
.. note::
The method to compute these taxes varies across different countries. We recommend consulting your
country's regulations to understand how to calculate them for your business.
To compute an extra tax in Odoo, :ref:`create a tax <taxes/configuration>`, enter a tax name, select
a :ref:`Tax Computation <taxes/configuration>`, set an :guilabel:`Amount`, and in the
:guilabel:`Advanced Options` tab, check :guilabel:`Affect Base of Subsequent Taxes`. Then, drag and
drop the taxes in the :ref:`order they should be computed <taxes/base-subsequent>`.
.. example::
- In Belgium, the formula to compute an environmental tax is: `(product price + environmental
tax) x sales tax`. Therefore, our environmental tax has to come *before* the sales tax in the
computation sequence.
- In our case, we created a 5% environmental tax (Ecotax) and put it *before* the Belgian base
tax of 21%.
.. image:: taxes/ecotax.png
:alt: Environmental tax sequence in Belgium.
.. seealso::
- :doc:`taxes/fiscal_positions`
- :doc:`taxes/B2B_B2C`
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.7 KiB

@@ -93,12 +93,11 @@ available on Odoo.
- :doc:`Kenya - Accounting <fiscal_localizations/kenya>`
- Lithuania - Accounting
- :doc:`Luxembourg - Accounting <fiscal_localizations/luxembourg>`
- :doc:`Malaysia - Accounting <fiscal_localizations/malaysia>`
- Maroc - Accounting
- :doc:`Mexico - Accounting <fiscal_localizations/mexico>`
- Mongolia - Accounting
- :doc:`Netherlands - Accounting <fiscal_localizations/netherlands>`
- :doc:`New Zealand - Accounting <fiscal_localizations/new_zealand>`
- New Zealand - Accounting
- Norway - Accounting
- OHADA - Accounting
- Pakistan - Accounting
@@ -147,10 +146,8 @@ available on Odoo.
fiscal_localizations/italy
fiscal_localizations/kenya
fiscal_localizations/luxembourg
fiscal_localizations/malaysia
fiscal_localizations/mexico
fiscal_localizations/netherlands
fiscal_localizations/new_zealand
fiscal_localizations/romania
fiscal_localizations/peru
fiscal_localizations/philippines
@@ -162,4 +159,3 @@ available on Odoo.
fiscal_localizations/vietnam
fiscal_localizations/united_arab_emirates
fiscal_localizations/united_kingdom
fiscal_localizations/employment_hero
@@ -41,11 +41,13 @@ localization:
- `l10n_ar_edi`
- Includes all technical and functional requirements to generate electronic invoices via web
service, based on the AFIP regulations.
* - :guilabel:`Argentinean eCommerce`
* - :ref:`Argentinean eCommerce <argentina/ecommerce-electronic-invoicing>`
- `l10n_ar_website_sale`
- (optional) Allows the user to see Identification Type and AFIP Responsibility in the
eCommerce checkout form in order to create electronic invoices.
.. _argentina/configure-your-company:
Configure your company
----------------------
@@ -549,6 +551,8 @@ When creating a :guilabel:`Credit Note` we can have two scenarios:
:align: center
:alt: FCE: Es Cancelación?
.. _argentina/invoice-printed-report:
Invoice printed report
~~~~~~~~~~~~~~~~~~~~~~
@@ -872,6 +876,145 @@ The menu also displays critical information related to these operations, such as
- The :guilabel:`Journal` in which the check is currently registered
- The **partner** associated with the operation (either customer or vendor).
.. _argentina/ecommerce-electronic-invoicing:
Ecommerce electronic invoicing
------------------------------
:ref:`Install <general/install>` the *Argentinian eCommerce* (`l10n_ar_website_sale`) module to
enable the following features and configurations:
- Clients being able to create online accounts for eCommerce purposes.
- Support for required fiscal fields in the eCommerce application.
- Receive payments for sale orders online.
- Generate electronic documents from the eCommerce application.
Configuration
~~~~~~~~~~~~~
Once all of the configurations are made for the Argentinian :ref:`electronic invoice
<argentina/configure-your-company>` flow, it is also necessary to complete certain configurations to
integrate the eCommerce flow.
Client account registration
***************************
To configure your website for client accounts, follow the instructions in the :doc:`checkout
<../../websites/ecommerce/checkout_payment_shipping/checkout>` documentation.
Automatic invoice
*****************
Configure your website to generate electronic documents in the sales process by navigating to
:menuselection:`Website --> Configuration --> Settings` and activating the :guilabel:`Automatic
Invoice` feature in the :guilabel:`Invoicing` section to automatically generate the required
electronic documents when the online payment is confirmed.
.. image:: argentina/l10nar-automatic-invoicing-ecommerce.png
:align: center
:alt: Feature activated to invoice automatically.
Since an online payment needs to be confirmed for the :guilabel:`Automatic Invoice` feature to
generate the document, a :doc:`payment provider <../payment_providers>` **must** be configured for
the related website.
Products
********
To allow your products to be invoiced when an online payment is confirmed, navigate to the desired
product from :menuselection:`Website --> eCommerce --> Products`. In the :guilabel:`General
Information` tab, set the :guilabel:`Invoicing Policy` to :guilabel:`Ordered quantities` and define
the desired :guilabel:`Customer Taxes`.
Invoicing flow for eCommerce
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Once the configurations mentioned above are all set, clients can complete the following required
steps in the *Argentinian eCommerce* flow to input fiscal fields in the checkout process.
Fiscal fields are available for input in the checkout process once the :guilabel:`Country` field is
set as `Argentina`. Inputting the fiscal data enables the purchase to conclude in the corresponding
electronic document.
.. image:: argentina/l10nar-fiscal-fields-ar-ecommerce.png
:align: center
:alt: Fiscal required fields for electronic invoicing.
When the client makes a successful purchase and payment, the necessary invoice is generated with
the corresponding layout and fiscal stamps stated in the :ref:`Invoice printed report
<argentina/invoice-printed-report>`.
.. seealso::
:doc:`Client account creation <../../websites/ecommerce/checkout_payment_shipping/checkout>`
Liquidity product direct sales
------------------------------
Liquidity product direct sales are used for sales involving third parties. For such
sales, the seller and the proprietary company of the goods can each register their corresponding
sales and purchases.
.. note::
:ref:`Install <general/install>` the *Argentinian Electronic Invoicing* module (`l10n_ar_edi`) to
use this feature.
Configuration
~~~~~~~~~~~~~
Purchase journal
****************
A purchase journal is needed to generate an electronic vendor bill with a document type *Liquidity
Product*. This journal needs to be synchronized with the AFIP as it will be used to generate the
liquidity product electronic document.
To modify the existing purchase journal or create a new one, navigate to :menuselection:`Accounting
--> Configuration --> Journals`. Then, select the existing purchase journal or click the
:guilabel:`New` button, and fill in the following required information:
- :guilabel:`Type`: select :guilabel:`Purchase`.
- :guilabel:`Use Documents`: check this field to to be able select the electronic document type.
- :guilabel:`Is AFIP POS`: check this field to be able to generate electronic documents.
- :guilabel:`AFIP POS System`: select :guilabel:`Electronic Invoice - Web Service` from the
drop-down menu in order to send the electronic document to AFIP via web service.
- :guilabel:`AFIP POS Number`: is the number configured in the AFIP to identify the operations
related to this AFIP POS.
- :guilabel:`AFIP POS Address`: is the field related to the commercial address registered for the
POS, which is usually the same address as the company. For example, if a company has multiple
stores (fiscal locations) then the AFIP will require the company to have one AFIP POS per
location. This location will be printed in the invoice report.
.. image:: argentina/l10n-ar-purchase-journal.png
:align: center
:alt: l10n_ar Purchase Journal Configuration.
Sales journal
*************
A sales journal is needed to register the invoice when a product is sold to a third party that will
then sell the same product. This journal will not be synced with AFIP as the invoice will not be
electronic.
To modify the existing sales journal or create a new one, navigate to
:menuselection:`Accounting --> Configuration --> Journals`. Then, selecting the sales journal or
click the :guilabel:`New` button, and fill in the following required information:
- :guilabel:`Type`: select :guilabel:`Sales`.
- :guilabel:`Use Documents`: check this field on the journal to select the electronic document type
(in this case the electronic invoice).
.. image:: argentina/l10n-ar-sales-journal.png
:align: center
:alt: l10n_ar Sales Journal Configuration.
Invoicing flow
~~~~~~~~~~~~~~
Once the configurations are all set, the *Liquidity Product Vendor Bill* will be generated by the
company that is selling the product on behalf of another party. For example, a distributor of a
specific product.
Reports
=======
@@ -889,11 +1032,10 @@ VAT reports
Sales VAT book
~~~~~~~~~~~~~~
In this report, all the sales are recorded, which are taken as the basis for the accounting records
to determine the VAT (Tax Debit).
The :guilabel:`Sales VAT` book report can be exported in a `.zip` file :guilabel:`VAT BOOK (ZIP)`
button in the top left, which contains `.txt` files to upload in the AFIP portal.
This report records all the sales, which are taken as the basis for the accounting records
to determine the VAT (Tax Debit). The :guilabel:`Sales VAT` book report can be exported as a `.zip`
file using the :guilabel:`VAT BOOK (ZIP)` button at the top left, containing `.txt` files to upload
to the AFIP portal.
.. image:: argentina/sales-vat-book.png
:align: center
@@ -902,8 +1044,9 @@ button in the top left, which contains `.txt` files to upload in the AFIP portal
Purchases VAT book
~~~~~~~~~~~~~~~~~~
The :guilabel:`Purchases VAT` book report can be exported in a `.zip` file :guilabel:`VAT BOOK
(ZIP)` button in the top left, which contains `.txt` files to upload in the AFIP portal.
The :guilabel:`Purchases VAT` book report can be exported as a `.zip` file using the
:guilabel:`VAT BOOK (ZIP)` button at the top left, which contains `.txt` files to upload to the AFIP
portal.
.. image:: argentina/purchases-vat-book.png
:align: center
@@ -912,7 +1055,7 @@ The :guilabel:`Purchases VAT` book report can be exported in a `.zip` file :guil
VAT summary
~~~~~~~~~~~
Pivot table designed to check the monthly VAT totals. This report is for internal usage, it is not
Pivot table designed to check the monthly VAT totals. This report is for internal use and is not
sent to the AFIP.
.. image:: argentina/vat-summary.png
@@ -926,7 +1069,7 @@ IIBB - Sales by jurisdiction
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pivot table where you can validate the gross income in each jurisdiction. Affidavit for the
corresponding taxes to pay, therefore it is not sent to the AFIP.
corresponding taxes to pay; and therefore, it is not sent to the AFIP.
.. image:: argentina/iibb-sales-jurisdiction.png
:align: center
@@ -936,7 +1079,7 @@ IIBB - Purchases by jurisdiction
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Pivot table where you can validate the gross purchases in each jurisdiction. Affidavit for the
corresponding taxes to pay, therefore it is not sent to the AFIP.
corresponding taxes to pay; and therefore, it is not sent to the AFIP.
.. image:: argentina/iibb-purchases-jurisdiction.png
:align: center
Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

@@ -35,6 +35,9 @@ Configuration
- `l10n_account_customer_statements`
- Allows the management and sending of monthly customer statements from the partner ledger and
the contact form. Also used in New Zealand.
* - :guilabel:`Employment Hero Australian Payroll`
- `l10n_au_keypay`
- Synchronises all pay runs from Employment Hero with Odoos journal entries.
.. _australia/coa:
@@ -858,12 +861,70 @@ from the batch.
.. _australia/employment-hero:
Employment Hero payroll
=======================
Employment Hero Australian Payroll
==================================
If your business is already up and running with :doc:`Employment Hero <employment_hero>`, you can
use our connector as an alternative payroll solution.
If your business is already up and running with `Employment Hero <https://employmenthero.com/>`_,
you can use our connector as an alternative payroll solution.
The Employment Hero module synchronises payslip accounting entries (e.g., expenses, social charges,
liabilities, taxes) automatically from Employment Hero to Odoo. Payroll administration is still done
in Employment Hero. We only record the **journal entries** in Odoo.
.. important::
To :ref:`configure the Employment Hero API <employment_hero/configuration>` for **Australia**,
use the following value as :guilabel:`Payroll URL`: `https://api.yourpayroll.com.au/`.
KeyPay was rebranded as **Employment Hero** in March 2023.
Configuration
-------------
#. :ref:`Activate <general/install>` the :guilabel:`Employment Hero Australian Payroll` module
(`l10n_au_keypay`).
#. Configure the **Employment Hero API** by going to :menuselection:`Accounting --> Configuration
--> Settings`. More fields become visible after clicking on :guilabel:`Enable Employment Hero
Integration`.
.. image:: australia/employment-hero-integration.png
:alt: Enabling Employment Hero Integration in Odoo Accounting displays new fields in the
settings
- You can find the API Key in the :guilabel:`My Account` section of the Employment Hero platform.
.. image:: australia/employment-hero-myaccount.png
:alt: "Account Details" section on the Employment Hero dashboard
- The **Payroll URL** is pre-filled with `https://keypay.yourpayroll.com.au`.
.. warning::
Do not change the **pre-filled Payroll URL**
- You can find the **Business ID** in the Employment Hero URL. (i.e., `189241`)
.. image:: australia/employment-hero-business-id.png
:alt: The Employment Hero "Business ID" number is in the URL
- You can choose any Odoo journal to post the payslip entries.
How does the API work?
----------------------
The API syncs the journal entries from Employment Hero to Odoo and leaves them in draft mode. The
reference includes the Employment Hero payslip entry ID in brackets for the user to easily retrieve
the same record in Employment Hero and Odoo.
.. image:: australia/employment-hero-journal-entry.png
:alt: Example of a Employment Hero Journal Entry in Odoo Accounting (Australia)
By default, the synchronisation happens once per week. You can fetch the records manually by going
to :menuselection:`Accounting --> Configuration --> Settings` and, in the :guilabel:`Enable
Employment Hero Integration` option, click on :guilabel:`Fetch Payruns Manually`.
Employment Hero payslip entries also work based on double-entry bookkeeping.
The accounts used by Employment Hero are defined in the section :guilabel:`Payroll settings`.
.. image:: australia/employment-hero-chart-of-accounts.png
:alt: Chart of Accounts menu in Employment Hero
For the API to work, you need to create the same accounts as the default accounts of your Employment
Hero business (**same name and same code**) in Odoo. You also need to choose the correct account
types in Odoo to generate accurate financial reports.
Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -216,14 +216,14 @@ CODA
----
**CODA** is an electronic XML format used to import Belgian bank statements. You can download CODA
files from your bank and import them directly into Odoo by clicking :guilabel:`Import Statement`
from your :guilabel:`Bank` journal on your dashboard.
files from your bank and import them directly into Odoo by clicking :guilabel:`Import file` from
your :guilabel:`Bank` journal on your dashboard.
.. image:: belgium/coda-import.png
:alt: Import CODA files
.. seealso::
:ref:`Import bank statements files <transactions/import>`
:ref:`Import bank files <transactions/import>`
.. _belgium/soda:
@@ -249,7 +249,8 @@ information and statements. Odoo provides a way to import such statements automa
.. note::
As an accounting firm, you must manage your clients on separate databases and configure them
individually to avoid mixing up their data.
individually to avoid mixing up their data. The connection must be made by the accounting firm
with valid CodaBox Connect credentials.
Configuration
~~~~~~~~~~~~~
@@ -258,13 +259,13 @@ The configuration must be done on each client database. In the following
instructions, we will refer to your client's company as *Company* and to your
accounting firm as *Accounting Firm*.
You must first :ref:`install <general/install>` :guilabel:`CodaBox` to start.
You must first :ref:`install <general/install>` :guilabel:`CodaBox` and
:guilabel:`CodaBox Bridge Wizard` (if available) to start.
.. important::
Make sure the company settings are correctly configured, i.e., the country is set to
:guilabel:`Belgium`, the :guilabel:`Tax ID` and :guilabel:`Accounting Firm` fields are filled,
as well as the :guilabel:`Tax ID` of the accounting firm (if not filled, the :guilabel:`Tax ID`
of the company is used).
:guilabel:`Belgium`, the :guilabel:`Tax ID` and :guilabel:`Accounting Firm` fields are filled, as
well as the :guilabel:`Tax ID` of the :guilabel:`Accounting Firm`.
Configure the journals
**********************
@@ -281,6 +282,10 @@ Configure the journals
:align: center
:alt: Configuration of a CODA journal.
.. tip::
When working with bank transactions that use different currencies, it is recommended to
create multiple journals with the same bank account but different currencies.
.. tab:: For SODA files
#. Create a new miscellaneous journal.
@@ -745,6 +745,55 @@ If you claim a vendor bill, the status changes from :guilabel:`Draft` to :guilab
automatically. Considering this as best practice, all the claimed documents should be canceled as
they won't be valid for your accounting records.
Electronic purchase invoice
---------------------------
The *electronic purchase invoice* is a feature included in the `l10n_cl_edi` module.
Once all configurations have been made for :ref:`electronic invoices <chile/electronic-invoice>`
(e.g., uploading a valid company certificate, setting up master data, etc.), the electronic
purchase invoices need their own :abbr:`CAFs (Folio Authorization Code)`. Please refer to the
:ref:`CAF documentation <chile/caf-documentation>` to check the details on how to acquire the
:abbr:`CAFs (Folio Authorization Code)` for electronic purchase invoices.
Electronic purchase invoices are useful when vendors are not obligated to expedite an electronic
vendor bill for your purchase. Still, your obligations require a document to be sent to the
:abbr:`SII (Servicio de Impuestos Internos)` as proof of purchase.
Configuration
~~~~~~~~~~~~~
To generate an electronic purchase invoice from a vendor bill, the bill must be created in a
purchase journal with the *Use Documents* feature enabled. It is possible to modify an existing
purchase journal or create a new one in the following process.
To modify the existing purchase journal, or create a new purchase journal, navigate to
:menuselection:`Accounting --> Configuration --> Journals`. Then, click the :guilabel:`New` button,
and fill in the following required information:
- :guilabel:`Type`: select :guilabel:`Purchase` from the drop-down menu for vendor bill journals.
- :guilabel:`Use Documents`: check this field so the journal can generate electronic documents (in
this case the electronic purchase invoice).
Generate an electronic purchase invoice
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
To generate this type of document, it is necessary to create a vendor bill in Odoo. To do so,
navigate to :menuselection:`Accounting --> Vendors --> Bills`, and click the :guilabel:`New` button.
When all of the electronic purchase invoice information is filled, select the option :guilabel:`(46)
Electronic Purchase Invoice` in the :guilabel:`Document Type` field:
After the vendor bill is posted:
- The :abbr:`DTE (Documentos Tributarios Electrónicos)` file (Electronic Tax Document) is
automatically created and added to the chatter.
- The :guilabel:`DTE SII Status` is set as :guilabel:`Pending to be sent`.
Odoo automatically updates the *DTE Status* every night using a scheduled action. To get a response
from the :abbr:`SII (Servicio de Impuestos Internos)` immediately, click the :guilabel:`Send now to
SII` button.
Delivery guide
--------------
@@ -1,73 +0,0 @@
=======================
Employment Hero Payroll
=======================
The `Employment Hero <https://employmenthero.com/>`_ module synchronises payslip accounting entries
(e.g., expenses, social charges, liabilities, taxes) automatically from Employment Hero to Odoo.
Payroll administration is still done in Employment Hero. We only record the **journal entries** in
Odoo.
.. important::
KeyPay was rebranded as **Employment Hero** in March 2023.
.. _employment_hero/configuration:
Configuration
-------------
#. :ref:`Activate <general/install>` the :guilabel:`Employment Hero Payroll` module
(`l10n_employment_hero`).
#. Configure the **Employment Hero API** by going to :menuselection:`Accounting --> Configuration
--> Settings`. More fields become visible after clicking on :guilabel:`Enable Employment Hero
Integration`.
.. image:: employment_hero/employment-hero-integration.png
:alt: Enabling Employment Hero Integration in Odoo Accounting displays new fields in the
settings
- You can find the API Key in the :guilabel:`My Account` section of the Employment Hero platform.
.. image:: employment_hero/employment-hero-myaccount.png
:alt: "Account Details" section on the Employment Hero dashboard
- The **Payroll URL** is left empty by default to avoid any confusion. Please fill it according
to the documentation specific to your localization.
.. note::
Employment hero is available for :ref:`Australia <australia/employment-hero>`,
:ref:`Malaysia <malaysia/employment-hero>`,
:ref:`New Zealand <new-zealand/employment-hero>`,
:ref:`Singapore <singapore/employment-hero>`,
and the :ref:`United Kingdom <united-kingdom/employment-hero>`.
- You can find the **Business ID** in the Employment Hero URL. (i.e., `189241`)
.. image:: employment_hero/employment-hero-business-id.png
:alt: The Employment Hero "Business ID" number is in the URL
- You can choose any Odoo journal to post the payslip entries.
How does the API work?
----------------------
The API syncs the journal entries from Employment Hero to Odoo and leaves them in draft mode. The
reference includes the Employment Hero payslip entry ID in brackets for the user to easily retrieve
the same record in Employment Hero and Odoo.
.. image:: employment_hero/employment-hero-journal-entry.png
:alt: Example of a Employment Hero Journal Entry in Odoo Accounting (Australia)
By default, the synchronisation happens once per week. You can fetch the records manually by going
to :menuselection:`Accounting --> Configuration --> Settings` and, in the :guilabel:`Enable
Employment Hero Integration` option, click on :guilabel:`Fetch Payruns Manually`.
Employment Hero payslip entries also work based on double-entry bookkeeping.
The accounts used by Employment Hero are defined in the section :guilabel:`Payroll settings`.
.. image:: employment_hero/employment-hero-chart-of-accounts.png
:alt: Chart of Accounts menu in Employment Hero
For the API to work, you need to create the same accounts as the default accounts of your Employment
Hero business (**same name and same code**) in Odoo. You also need to choose the correct account
types in Odoo to generate accurate financial reports.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.8 KiB

@@ -164,48 +164,6 @@ Cancel`.
the NIC e-Invoice portal. You can click :guilabel:`Process now` if you want to process the
invoice immediately.
.. _india/e-invoice-negative-lines:
Management of negative lines in e-Invoices
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Negative lines are typically used to represent discounts or adjustments associated with specific
products or global discounts. The government portal prohibits the submission of data with negative
lines, which means they need to be converted based on the HSN code and GST rate. This is done
automatically by Odoo.
.. example::
Consider the following example:
+---------------------------------------------------------------------------------------------------+
| **Product Details** |
+=======================+==============+==================+==============+==============+===========+
| **Product Name** | **HSN Code** | **Tax Excluded** | **Quantity** | **GST Rate** | **Total** |
+-----------------------+--------------+------------------+--------------+--------------+-----------+
| Product A | 123456 | 1,000 | 1 | 18% | 1,180 |
+-----------------------+--------------+------------------+--------------+--------------+-----------+
| Product B | 239345 | 1,500 | 2 | 5% | 3,150 |
+-----------------------+--------------+------------------+--------------+--------------+-----------+
| Discount on Product A | 123456 | -100 | 1 | 18% | -118 |
+-----------------------+--------------+------------------+--------------+--------------+-----------+
Here's the transformed representation:
+-------------------------------------------------------------------------------------------------------------+
| **Product Details** |
+==================+==============+==================+==============+==============+==============+===========+
| **Product Name** | **HSN Code** | **Tax Excluded** | **Quantity** | **Discount** | **GST Rate** | **Total** |
+------------------+--------------+------------------+--------------+--------------+--------------+-----------+
| Product A | 123456 | 1,000 | 1 | 100 | 18% | 1,062 |
+------------------+--------------+------------------+--------------+--------------+--------------+-----------+
| Product B | 239345 | 1,500 | 2 | 0 | 5% | 3,150 |
+------------------+--------------+------------------+--------------+--------------+--------------+-----------+
In this conversion, negative lines have been transformed into positive discounts, maintaining
accurate calculations based on the HSN Code and GST rate. This ensures a more straightforward and
standardized representation in the E-invoice records.
.. _india/verify-e-invoice:
GST e-Invoice verification
@@ -126,59 +126,3 @@ Correct an invoice that has been posted but not downloaded yet: Reset e-Faktur
.. image:: indonesia/indonesia-e-faktur-reset.png
:align: center
.. _localization_indonesia/qris-qr:
QRIS QR code on invoices
========================
`QRIS <https://qris.online/homepage/>`_ is a digital payment system that allows customers to make
payments by scanning the QR code from their preferred e-wallet.
.. important::
According to the `QRIS API documentation <https://qris.online/api-doc/create-invoice.php>`_,
QRIS expires after 30 minutes. Due to this restriction, the QR code is not included in reports
sent to customers and is only available on the customer portal.
Activate QR codes
-----------------
Go to :menuselection:`Accounting --> Configuration --> Settings`. Under the :guilabel:`Customer
Payments` section, activate the :guilabel:`QR Codes` feature.
QRIS bank account configuration
-------------------------------
Go to :menuselection:`Contacts --> Configuration --> Bank Accounts` and select the bank account for
which you want to activate QRIS. Set the :guilabel:`QRIS API Key` and :guilabel:`QRIS Merchant ID`
based on the information provided by QRIS.
.. important::
The account holder's country must be set to `Indonesia` on its contact form.
.. image:: indonesia/qris-setup.png
:alt: QRIS bank account configuration
.. seealso::
:doc:`../accounting/bank`
Bank journal configuration
--------------------------
Go to :menuselection:`Accounting --> Configuration --> Journals`, open the bank journal, then fill
out the :guilabel:`Account Number` and :guilabel:`Bank` under the :guilabel:`Journal Entries` tab.
.. image:: indonesia/journal-bank-config.png
:alt: Bank journal configuration
Issue invoices with QRIS QR codes
---------------------------------
When creating a new invoice, open the :guilabel:`Other Info` tab and set the :guilabel:`Payment
QR-code` option to `QRIS`.
.. image:: indonesia/invoice-qris.png
:alt: Select QRIS QR-code option
Ensure that the :guilabel:`Recipient Bank` is the one you configured, as Odoo uses this field to
generate the QRIS QR code.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.1 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

@@ -22,10 +22,10 @@ localization:
- Default :ref:`fiscal localization package <fiscal_localizations/packages>`
* - Italy - E-invoicing
- `l10n_it_edi`
- e-invoice implementation
* - Italy - E-invoicing
- E-invoice implementation
* - Italy - E-invoicing (Withholding)
- `l10n_it_edi_withholding`
- e-invoice withholding
- E-invoice withholding
* - Italy - Accounting Reports
- `l10n_it_reports`
- Country-specific reports
@@ -33,10 +33,6 @@ localization:
- `l10n_it_stock_ddt`
- Transport documents - Documento di Trasporto (DDT)
.. image:: italy/italy-modules.png
:align: center
:alt: Italian localization modules
Company information
-------------------
@@ -49,70 +45,149 @@ section, click :guilabel:`Update info`. From here, fill out the fields:
- :guilabel:`Codice Fiscale`: the fiscal code of the company;
- :guilabel:`Tax System`: the tax system under which the company falls;
.. image:: italy/italy-company.png
:align: center
:alt: Company information to provide
.. image:: italy/company.png
:alt: Company information to be provided
Taxes configuration
-------------------
Many of the e-invoicing features are implemented using Odoo's tax system. As such, taxes must be
properly configured to generate invoices correctly and handle other billing use cases.
The **Italian** localization contains predefined **examples** of taxes for various purposes.
.. _italy/tax-exemption:
Tax exemption
~~~~~~~~~~~~~
The use of sale taxes that amount to **zero percent** (0%) is required by Italian authorities to
keep track of the exact :guilabel:`Tax Exemption Kind (Natura)` and :guilabel:`Law Reference` that
justify the exemption operated on an invoice line.
.. example::
The export tax in the EU can be used as reference (`0% EU`, invoice label `00eu`). It can be
found under :menuselection:`Accounting --> Configuration --> Taxes`. Exports are exempt from VAT,
and therefore, they require :guilabel:`Exoneration` kind and :guilabel:`Law Reference` filled in.
.. image:: italy/tax-exemption.png
:alt: Tax Exemption Settings
.. seealso::
There are many :guilabel:`Tax Exemption Kind (Natura)` and :guilabel:`Law Reference` codes. Make
sure you check the latest version available to get the latest information on:
- `Italian authorities documentation <https://www.agenziaentrate.gov.it/portale/web/guest/aree-tematiche/fatturazione-elettronica>`_
- `Official guide on Tax exemption <https://www.agenziaentrate.gov.it/portale/documents/20143/451259/Guida_compilazione-FE-Esterometro-V_1.9_2024-03-05.pdf/67fe4c2d-1174-e8de-f1ee-cea77b7f5203>`_
.. note::
If you need to use a different kind of exoneration, go to :menuselection:`Accounting -->
Configuration --> Taxes`, select a similar tax, then click on the cog icon and select
:guilabel:`Duplicate`. In the :guilabel:`Advanced Options` tab, add the :guilabel:`Exoneration`
and :guilabel:`Law Reference`. To confirm click on :guilabel:`Save`.
.. tip::
**Rename** your taxes in the :guilabel:`Name` field according to their :guilabel:`Exoneration` to
differentiate them easily.
.. _italy/reverse-charge:
Reverse charge
==============
The **reverse charge** mechanism is a VAT rule that shifts the liability to pay VAT from the
supplier to the customer. The customers pay the VAT *themselves* to the :abbr:`AdE (Agenzia delle
Entrate)` instead. There are different types:
- | :guilabel:`Internal Reverse Charge` (for domestic sales)
| The VAT responsibility is shifted to the buyer for certain categories of products and services.
- | :guilabel:`External Reverse Charge` (for intra-EU sales)
| VAT is due in the country of the delivery or in the country where the service is performed. When
the buyer is itself an Italian business, then the EU offers a mechanism that allows the seller
to transfer his responsibility to the buyer.
Invoices
--------
**Reverse-charged** customer invoices show no VAT amount, but the :abbr:`AdE (Agenzia delle
Entrate)` requires the seller to specify the :guilabel:`Tax Exemption` reason and the :guilabel:`Law
Reference` that enable the reverse-charge mechanism. Odoo provides a set of special 0% taxes that
can be assigned to each reverse-charged invoice lines, representing the most commonly used
configurations.
Vendor bills
------------
Italian companies subjected to Reverse Charge must send the information in the bill received to the
:abbr:`AdE (Agenzia delle Entrate)`.
.. note::
Self-reported VAT XML files must be issued and sent to the :abbr:`AdE (Agenzia Delle Entrate)`
for reverse charged bills.
When creating a vendor bill, **reverse charge** taxes are available to be added in the
:guilabel:`Taxes` field. You can check which taxes are available by going to
:menuselection:`Accounting --> Configuration --> Taxes`, you can see that the 10% Goods and 22%
Services taxes are activated, among others. Due to the automated configuration of the Italian fiscal
position, these are automatically activated in the tax list.
.. _italy/grids:
Tax grids
---------
The Italian localization has a specific :ref:`tax grid <tax-returns/tax-grids>` section for
**reverse charge** taxes. These tax grids are identifiable by the :ref:`VJ <italy/grids>` tag, and
can be found by going to :menuselection:`Accounting --> Reporting --> Audit Reports: Tax Report`.
.. image:: italy/grids.png
:alt: Reverse charge tax grid from the VJ section of the Tax Declaration
.. _italy/e-invoicing:
E-invoicing
-----------
===========
The :abbr:`SdI (Sistema di Interscambio)` is the electronic invoicing system used in Italy. It
enables to send and receive electronic invoices to and from customers. The documents must be in XML
format and formally validated by the system before being delivered.
The :abbr:`SdI (Sistema di Interscambio)` is the :doc:`electronic invoicing
<../accounting/customer_invoices/electronic_invoicing>` system used in Italy. It enables the sending
and receiving of electronic invoices to and from customers. The documents must be in an XML
:abbr:`EDI (Electronic Data Interchange)` format called **FatturaPA** and formally validated by the
system before being delivered.
To be able to receive invoices and notifications, the :abbr:`SdI (Sistema di Interscambio)` service
must be notified that the user's files are to be sent to **Odoo** and processed on their behalf. To
so, you must set up Odoo's :guilabel:`Codice Destinatario` on the **Agenzia Delle Entrate**
portal.
must be notified that the user's files need to be sent to Odoo and processed on their behalf. To do
so, you must set up Odoo's :guilabel:`Destination Code` on the :abbr:`AdE (Agenzia Delle
Entrate)` portal.
#. Go to https://ivaservizi.agenziaentrate.gov.it/portale/ and authenticate;
#. Go to `Italian authorities portal <https://ivaservizi.agenziaentrate.gov.it/portale>`_ and
authenticate;
#. Go to section :menuselection:`Fatture e Corrispettivi`;
#. Set the user as Legal Party for the VAT number you wish to configure the electronic address;
#. In :menuselection:`Servizi Disponibili --> Fatturazione Elettronica --> Registrazione
dellindirizzo telematico dove ricevere tutte le fatture elettroniche`, insert Odoo's
:guilabel:`Codice Destinatario` `K95IV18`, and confirm.
:guilabel:`Destination Code` `K95IV18`, and confirm.
Electronic Data Interchange (EDI)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Odoo uses the **FatturaPA** :abbr:`EDI (Electronic Data Interchange)` format for the Italian
localization and is enabled on the default journals when installed. When the **file processing
authorization** has been set, all **invoices** and **bills** are automatically sent.
.. note::
You can :ref:`enable electronic invoicing for other sales and purchase journals
<e-invoicing/configuration>` than the default ones.
You can check the current status of an invoice by the :guilabel:`Electronic invoicing` field. The
XML file can be found in the **chatter** of the invoice.
.. image:: italy/italy-test.png
:align: center
:alt: Electronic invoicing status (waiting for confirmation)
.. seealso::
:doc:`../accounting/customer_invoices/electronic_invoicing`
File processing authorization (Odoo)
------------------------------------
EDI Mode and authorization
--------------------------
Since the files are transmitted through Odoo's server before being sent to the :abbr:`SdI (Sistema
di Interscambio)` or received by your database, you need to authorize Odoo to process your files
from your database. To do so, go to :menuselection:`Accounting --> Configuration --> Settings -->
Electronic Document Invoicing`.
There are **three** modes available:
There are three modes available:
:guilabel:`Demo`
This mode simulates an environment in which invoices are sent to the government. In this mode,
invoices need to be *manually* downloaded as XML files and uploaded to the **Agenzia delle
Entrate**'s website.
:guilabel:`Test (experimental)`
This mode sends invoices to a non-production (i.e., test) service made available by the **Agenzia
delle Entrate**. Saving this change directs all companies on the database to use this
configuration.
:guilabel:`Official`
This is a production mode that sends your invoices directly to the **Agenzia delle Entrate**.
- | :guilabel:`Demo`
| This mode simulates an environment in which invoices are sent to the government. In this mode,
invoices need to be *manually* downloaded as XML files and uploaded to the :abbr:`AdE
(Agenzia delle Entrate)`'s website.
- | :guilabel:`Test (experimental)`
| This mode sends invoices to a non-production (i.e., test) service made available by the
:abbr:`AdE (Agenzia delle Entrate)`. Saving this change directs all companies on the database to
use this configuration.
- | :guilabel:`Official`
| This is a production mode that sends your invoices directly to the :abbr:`AdE (Agenzia delle
Entrate)`.
Once a mode is selected, you need to accept the **terms and conditions** by ticking :guilabel:`Allow
Odoo to process invoices`, and then :guilabel:`Save`. You can now record your transactions in Odoo
@@ -120,340 +195,436 @@ Accounting.
.. warning::
Selecting either :guilabel:`Test (experimental)` or :guilabel:`Official` is **irreversible**.
Once in :guilabel:`Official` mode, it is not possible to select :guilabel:`Test (experimental)`
or :guilabel:`Demo`, and same for :guilabel:`Test (experimental)`. We recommend creating a
separate database for testing purposes only.
For example, once in :guilabel:`Official` mode, it is not possible to select :guilabel:`Test
(experimental)` or :guilabel:`Demo`. We recommend creating a **separate database** for testing
purposes only.
.. note::
When in :guilabel:`Test (Experimental)` mode, all invoices sent *must* have a partner using one
of the following fake :guilabel:`Codice Destinatario` given by the **Agenzia Delle Entrate**:
`0803HR0` - `N8MIMM9` - `X9XX79Z`. Any real production :guilabel:`Codice Destinario` of your
customers will not be recognized as valid by the test service.
of the following fake :guilabel:`Destination Code` given by the :abbr:`AdE (Agenzia Delle
Entrate)`: `0803HR0` - `N8MIMM9` - `X9XX79Z`. Any real production :guilabel:`Codice Destinario`
of your customers will not be recognized as valid by the test service.
.. image:: italy/italy-edi.png
:align: center
:alt: Italy's electronic document invoicing options
.. image:: italy/edi.png
:alt: Electronic document invoicing settings
Taxes configuration
===================
.. _italy/e-invoicing-process:
Many of the e-invoicing features are implemented using Odoo's tax system. As such, it is very
important that taxes are properly configured in order to generate invoices correctly and handle
other billing use cases. For example, specific configurations are required for the **reverse
charge** type of taxes. In case of a **reverse charge** tax, the seller does *not* charge the
customer for the VAT but, instead, the customer pays the VAT *themselves* to their government. There
are **two** main types:
Process
-------
- :ref:`external reverse charge <italy/external-reverse>`;
- :ref:`internal reverse charge <italy/internal-reverse>`.
.. _italy/external-reverse:
External reverse charge
-----------------------
Invoices
~~~~~~~~
To make an export invoice, make sure that the invoice lines all use a tax configured for **reverse
charge**. The **Italian** localization contains an **example** of a reverse charge tax for export in
the EU to be used as reference (`0% EU`, invoice label `00eu`), which can be found under
:menuselection:`Accounting --> Configuration --> Taxes`. Exports are exempt from VAT, and therefore
**reverse charge** taxes require the :guilabel:`Has exoneration of tax (Italy)` option ticked, with
both the :guilabel:`Exoneration` kind and :guilabel:`Law Reference` filled in.
.. image:: italy/italy-tax.png
:align: center
:alt: External reverse charge settings
The submission of invoices to the :abbr:`SdI (Sistema di Interscambio)` for Italy is an electronic
process used for the mandatory transmission of tax documents in XML format between companies and the
:abbr:`AdE (Agenzia delle Entrate)` to reduce errors and verify the correctness of operations.
.. note::
If you need to use a different kind of :guilabel:`Exoneration`, click :menuselection:`Action -->
Duplicate` within the tax menu to create a copy of an existing similar tax. Then, select another
:guilabel:`Exoneration`, and :guilabel:`Save`. Repeat this process as many times as you need
different kind of :guilabel:`Exoneration` taxes.
You can check the current status of an invoice by the :guilabel:`SdI State` field. The XML file
is attached to the invoice.
.. tip::
**Rename** your taxes in the :guilabel:`Name` field according to their :guilabel:`Exoneration` to
differentiate them easily.
.. image:: italy/edi-process.png
:alt: EDI system architecture
On your invoice, select the corresponding tax you need in the :guilabel:`Taxes` field. You can find
the following **additional info** by opening the **XML** file of the issued invoice:
XML Documents creation
~~~~~~~~~~~~~~~~~~~~~~
- :guilabel:`SdI address (Codice Destinatario)`: must be filled for both **EU** or **non-EU**;
- :guilabel:`Country Id`: must contain the country of the foreign seller in the two-letter ISO
(Alpha-2) code (ex., `IT` for 'Italy');
- :guilabel:`CAP`: must be filled with `00000`;
- :guilabel:`Partita Iva` (**VAT number**): must contain the **VAT** number for **EU businesses**
and `OO99999999999` (double 'O' **letter**, not 'zero') for **non-EU businesses**. In case of
private customers without **VAT** number, use `0000000`;
- :guilabel:`Fiscal Code`: for foreign entities without an actual **Codice Fiscale**, any
recognizable identifier is valid.
Odoo generates the required XML files as attachments to invoices in the `FatturaPA` format required
by the :abbr:`AdE (Agenzia delle Entrate)`. Once the invoices needed are selected, go to
:guilabel:`Action` and click on :guilabel:`Send and Print`.
.. note::
Odoo does not support sending user-modified XML files.
.. image:: italy/edi-menu.png
:alt: Send and Print menu
For **invoices**, multiple configurations are technically identified by a :guilabel:`Tipo Documento`
code:
When the pop-up window opens there is a selection of actions that can be taken. :guilabel:`Generate
XML File` generates the attachments.
- `TD02` - Down payments;
- `TDO7` - Simplified invoice;
- `TD08` - Simplified credit note;
- `TD09` - Simplified debit note;
- `TD24` - Deferred invoice.
.. image:: italy/edi-send-and-print.png
:alt: Send and Print dialog
.. tabs::
The XML file as well as the PDF once can be found attached to the invoice.
.. tab:: `TD02`
.. image:: italy/edi-attachments.png
:alt: EDI Attachments
Down payments.
Submission to SDI
~~~~~~~~~~~~~~~~~
**Down payment** invoices are imported/exported with a different :guilabel:`Tipo Documento`
code `TDO2` than regular invoices. Upon import of the invoice, it creates a regular vendor
bill.
The :guilabel:`Send to Tax Agency` option in the :guilabel:`Send and Print` dialog sends the
attachment to the :guilabel:`Proxy Server`, which gathers all requests and then forwards them via a
WebServices channel to the :abbr:`SdI (Sistema di Interscambio)`. Check the sending status of the
invoice through the :guilabel:`Check Sending` button at the top of the invoice's view.
Odoo exports moves as `TD02` if the following conditions are met:
Processing by SDI
~~~~~~~~~~~~~~~~~
- Is an invoice;
- All invoice lines are related to **sales order lines** that have the flag `is_downpayment`
set as `True`.
The :abbr:`SdI (Sistema di Interscambio)` receives the document and verifies for any errors. At this
stage, the invoice is in the :guilabel:`SdI Processing` state, as shown on the invoice. The invoice
also gets assigned a :guilabel:`FatturaPA Transaction` number that is shown in the
:guilabel:`Electronic Invoicing` tab. The checks may take variable time, ranging from a few seconds
up to a day, depending on the queue of invoices sent throughout Italy.
.. tab:: `TD07`, `TD08`, and `TD09`
.. image:: italy/edi-processing.png
:alt: Check Sending button and Sdi Processing state
Simplified invoices, and credit/debit notes.
Acceptance
~~~~~~~~~~
Simplified invoices and credit notes can be used to certify **domestic transactions** under
**400 EUR** (VAT included). Its status is the same as a regular invoice, but with fewer
information requirements.
For a **simplified** invoice to be established, it must include:
- :guilabel:`Customer Invoice` reference: **unique** numbering sequence with **no gaps**;
- :guilabel:`Invoice Date`: issue **date** of the invoice;
- :guilabel:`Company Info`: the **seller**'s full credentials (VAT/TIN number, name, full
address) under :menuselection:`General Settings --> Companies (section)`;
- :guilabel:`VAT`: the **buyer**'s VAT/TIN number (on their profile card);
- :guilabel:`Total`: the total **amount** (VAT included) of the invoice.
In the :abbr:`EDI (Electronic Data Interchange)`, Odoo exports invoices as simplified if:
- It is a **domestic** transaction (i.e., the partner is from Italy);
- The buyer's data is **insufficient** for a regular invoice;
- The **required fields** for a regular invoice (address, ZIP code, city, country) are
provided;
- The total amount VAT included is **less** than **400 EUR**.
.. note::
The 400 EUR threshold was defined in `the decree of the 10th of May 2019 in the Gazzetta
Ufficiale <https://www.gazzettaufficiale.it/eli/id/2019/05/24/19A03271/sg>`_. We advise you
to check the current official value.
.. tab:: `TD24`
Deferred invoices.
The **deferred invoice** is an invoice that is **issued at a later time** than the sale of
goods or the provision of services. A **deferred invoice** has to be issued at the latest
within the **15th day** of the month following the delivery covered by the document.
It usually is a **summary invoice** containing a list of multiple sales of goods or services,
carried out in the month. The business is allowed to **group** the sales into **one invoice**,
generally issued at the **end of the month** for accounting purposes. Deferred invoices are
default for **wholesaler** having recurrent clients.
If the goods are transported by a **carrier**, every delivery has an associated **Documento di
Transporto (DDT)**, or **Transport Document**. The deferred invoice **must** indicate the
details of all the **DDTs** information for better tracing.
.. note::
E-invoicing of deferred invoices requires the `l10n_it_stock_ddt`
:ref:`module <italy/modules>`. In this case, a dedicated :guilabel:`Tipo Documento` `TD24`
is used in the e-invoice.
Odoo exports moves as `TD24` if the following conditions are met:
- Is an invoice;
- Is associated to deliveries whose **DDTs** have a **different** date than the issuance date
of the invoice.
Vendor bills
~~~~~~~~~~~~
Italian companies buying goods or services from EU countries (or services from non-EU countries)
must send the information contained within the bill received to the **Agenzia delle Entrate**. This
allows you to complete tax-related information on your bill, and to send it. The seller must be set
as :guilabel:`Cedente/Prestatore`, and the buyer as :guilabel:`Cessionario/Committente`. Contained
within the **XML** document for the vendor bill, the vendor's credentials show as
:guilabel:`Cedente/Prestatore`, and your company's credentials as
:guilabel:`Cessionario/Committente`.
.. note::
Self-billing invoices or VAT invoice integrations must be issued and sent to the tax agency.
When inputting taxes in a vendor bill, it is possible to select **reverse charge** taxes. These are
automatically activated in the Italian fiscal position. By going to :menuselection:`Accounting -->
Configuration --> Taxes`, the `10%` and `22%` :guilabel:`Goods` and :guilabel:`Services` tax scopes
are activated and preconfigured with the correct tax grids. These are set up automatically to ensure
the correct booking of accounting entries and display of the tax report.
For **vendor bills**, **three** types of configurations are technically identified by a code called
:guilabel:`Tipo Documento`:
- `TD17` - Buying services from **EU** and **non-EU** countries;
- `TD18` - Buying **goods** from **EU**;
- `TD19` - Buying **goods** from a **foreign** vendor, but the **goods** are already in **Italy**
in a **VAT deposit**.
.. tabs::
.. tab:: `TD17`
Buying **services** from **EU** and **non-EU** countries:
The foreign *seller* invoices a service with a **VAT-excluded** price, as it is not
taxable in Italy. The VAT is paid by the *buyer* in Italy;
- Within EU: the *buyer* integrates the invoice received with the **VAT information**
due in Italy (i.e., **vendor bill tax integration**);
- Non-EU: the *buyer* sends themselves an invoice (i.e., **self-billing**).
Odoo exports a transaction as `TD17` if the following conditions are met:
- Is a vendor bill;
- At least one tax on the invoice lines targets the tax grids :ref:`VJ <italy/grids>`;
- All invoice lines either have :guilabel:`Services` as **products**, or a tax with the
:guilabel:`Services` as **tax scope**.
.. tab:: `TD18`
Buying **goods** from **EU**:
Invoices issued within the EU follow a **standard format**, therefore only an integration of
the existing invoice is required.
Odoo exports a transaction as `TD18` if the following conditions are met:
- Is a vendor bill;
- At least one tax on the invoice lines targets the tax grids :ref:`VJ <italy/grids>`;
- All invoice lines either have :guilabel:`Consumable` as **products**, or a tax with the
:guilabel:`Goods` as **tax scope**.
.. tab:: `TD19`
Buying **goods** from a **foreign** vendor, but the **goods** are already in **Italy** in a
**VAT deposit**:
- From EU: the *buyer* integrates the invoice received with the **VAT information** due in
Italy (i.e., **vendor bill tax integration**);
- Non-EU: the *buyer* sends an invoice to *themselves* (i.e., **self-billing**).
Odoo exports a move as a `TD19` if the following conditions are met:
- Is a vendor bill;
- At least one tax on the invoice lines targets the tax grid :ref:`VJ3 <italy/grids>`;
- All invoice lines either have :guilabel:`Consumable` products, or a tax with
:guilabel:`Goods` as tax scope.
If the document is valid, it is recorded and considered fiscally valid by the :abbr:`AdE (Agenzia
delle Entrate)`, which will proceed with archiving in :guilabel:`Substitute Storage (Conservazione
Sostitutiva)` if explicitly requested on the Agency's portal.
.. warning::
Odoo does not offer the
`Conservazione Sostitutiva <https://www.agid.gov.it/index.php/it/piattaforme/conservazione>`_
requirements. Other providers and **Agenzia delle Entrate** supply free and certified storage to
meet the requested conditions.
Odoo does not offer the `Conservazione Sostitutiva
<https://www.agid.gov.it/index.php/it/piattaforme/conservazione>`_ requirements. Other providers
and :abbr:`AdE (Agenzia delle Entrate)` supply free and certified storage to meet the
specifications requested by law.
.. _italy/internal-reverse:
The :abbr:`SdI (Sistema di Interscambio)` :guilabel:`Destination Code` attempts to forward the
invoice to the customer at the provided address, whether it is a `PEC` email address or a
:abbr:`SdI (Sistema di Interscambio)` :guilabel:`Destination Code` for their ERP's WebServices
channels. A maximum of 6 attempts are made every 12 hours, so even if unsuccessful, this process can
take up to three days. The invoice status is :guilabel:`Accepted by SDI, Forwarding to Partner`.
Internal reverse charge
-----------------------
Possible Rejection
~~~~~~~~~~~~~~~~~~
.. warning::
Odoo currently does not support domestic **internal reverse charge** processes.
The :abbr:`SdI (Sistema di Interscambio)` may find inaccuracies in the compilation, possibly even
formal ones. In this case, the invoice is in the :guilabel:`SDI Rejected` state. The :abbr:`SdI
(Sistema di Interscambio)`'s observations are inserted at the top of the Invoice tab. To resolve the
issue, it is sufficient to delete the attachments of the invoice, return the invoice to
:guilabel:`Draft`, and fix the errors. Once the invoice is ready, it can be resent.
.. _italy/grids:
.. note::
To regenerate the XML, both the XML attachment and the PDF report must be deleted, so that they
are then regenerated together. This ensures that both always contain the same data.
'Reverse Charge' tax grids
--------------------------
.. image:: italy/edi-rejected.png
:alt: EDI Rejected State
The Italian localization has a specific **tax grid** section for **reverse charge** taxes. These
tax grids are identifiable by the :ref:`VJ <italy/grids>` tag, and can be found under
:menuselection:`Accounting --> Reporting --> Audit Reports: Tax Report`.
Forwarding Completed
~~~~~~~~~~~~~~~~~~~~
.. image:: italy/italy-grids.png
:align: center
:alt: Italian reverse charge tax grids
The invoice has been delivered to the customer; however, you can still send a copy to the customer
in PDF via email or post. Its status is :guilabel:`Accepted by SDI, Delivered to Partner`.
San Marino
==========
If the :abbr:`SdI (Sistema di Interscambio)` cannot contact your customer, they may not be
registered on the :abbr:`AdE (Agenzia delle Entrate)` portal. In this case, just make sure to send
the invoice in PDF via email or by mail. The invoice is then in the :guilabel:`Accepted by SDI,
Partner Delivery Failed` state.
Tax Integration
---------------
When you receive a vendor bill, either from :abbr:`SdI (Sistema di Interscambio)`, from paper or
from an imported XML file, the Tax Agency might request that you send some tax information
integration back to the :abbr:`SdI (Sistema di Interscambio)`. It happens when a transaction that
was tax exempt becomes taxable for any reason.
.. example::
Here is a non-exhaustive list:
- | :ref:`italy/reverse-charge`
| As a buyer, you have to pay taxes on what you buy and integrate tax information.
:guilabel:`Reverse Charge` taxes.
- | :ref:`italy/split-payment`
| As a :abbr:`PA (Public Administration)` business buyer, you have to pay taxes and integrate
tax information. Be sure that you replace the :guilabel:`0% Sale Taxes` on the vendor bill
you received with the correct :guilabel:`Split Payment` taxes.
- | :guilabel:`Self Consumption`
| When, as a business owner, you use an asset that you bought for business for personal reasons
instead, you have to pay those taxes you originally deducted as a business cost for it.
Odoo may detect that your vendor bill can be interpreted as a document of a type that needs tax
integration, as detailed in the :ref:`italy/document-types` section.
.. important::
Be sure that you replace the :guilabel:`0% Sale Taxes` on the vendor bill you received with the
ones you're supposed to pay to the :abbr:`AdE (Agenzia delle Entrate)`. A button then appears on
the top of the single vendor bill form to send them.
When clicking on the :guilabel:`Send Tax Integration` button, an XML file of the appropriate
:guilabel:`Document Type` is generated, attached to the bill, and sent as for invoices.
.. image:: italy/edi-tax-integration-button.png
:alt: EDI Send Tax Integration button
.. _italy/document-types:
Document Types
--------------
The :abbr:`SdI (Sistema di Interscambio)` requires businesses to send customer invoices and other
documents through the :abbr:`EDI (Electronic Data Interchange)`.
The following :guilabel:`Document Type` codes all technically identify different business use cases.
TD01 - Invoices
~~~~~~~~~~~~~~~
This represents the standard **domestic** scenario for all invoices exchanged through the :abbr:`SdI
(Sistema di Interscambio)`. Any invoice that doesn't fall into one of the specific special cases
is categorized as a regular invoice, identified by the :guilabel:`Document Type` `TD01`.
TD02 - Down payments
~~~~~~~~~~~~~~~~~~~~
**Down payment** invoices are imported/exported with a different :guilabel:`Document Type` code
`TDO2` than regular invoices. Upon import of the invoice, a regular vendor bill is created.
Odoo exports transactions as `TD02` if the following conditions are met:
#. It is an invoice;
#. All invoice lines are related to down payment sales order lines.
TD04 - Credit notes
~~~~~~~~~~~~~~~~~~~
It is the standard scenario for all **credit notes** issued to **domestic** clients, when we need to
formally acknowledge that the seller is reducing or canceling a previously issued invoice, for
example, in case of overbilling, incorrect items, or overpayment. Just like invoices, they must be
sent to the :abbr:`SdI (Sistema di Interscambio)`, their :guilabel:`Document Type` `TD04`
TD07, TD08, TD09 - Simplified Invoicing
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Simplified invoices (`TD07`), credit notes (`TD08`), and debit notes (`TD09`) can be used to certify
domestic transactions under 400 EUR (VAT included). Its status is the same as that of a regular
invoice, but with fewer information requirements.
For a simplified invoice to be established, it must include:
#. :guilabel:`Customer Invoice` reference: **unique** numbering sequence with **no gaps**;
#. :guilabel:`Invoice Date`: issue **date** of the invoice;
#. :guilabel:`Company Info`: the **seller**'s full credentials (VAT/TIN number, name, full address)
under :menuselection:`General Settings --> Companies (section)`;
#. :guilabel:`VAT`: the **buyer**'s VAT/TIN number (on the partner form);
#. :guilabel:`Total`: the total **amount** (VAT included) of the invoice.
In the :abbr:`EDI (Electronic Data Interchange)`, Odoo exports invoices as simplified if:
#. It is a domestic transaction (i.e., the partner is from Italy);
#. Your company's **required fields** (:guilabel:`VAT Number` or :guilabel:`Codice Fiscale`,
:guilabel:`Fiscal Regime`, and full **address**) are provided;
#. The partner's address is not fully specified (i.e., it misses the City or the ZipCode);
#. The total amount of VAT included is **less** than **400 EUR**.
.. note::
The 400 EUR threshold was defined in `the decree of the 10th of May 2019 in the Gazzetta
Ufficiale <https://www.gazzettaufficiale.it/eli/id/2019/05/24/19A03271/sg>`_. We advise you to
check the current official value.
TD16 - Internal Reverse Charge
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Internal reverse charge transactions (see :ref:`italy/tax-exemption` and
:ref:`italy/reverse-charge`) are exported as `TD16` if the following conditions are met:
- It is a vendor bill;
- It has at least **one tax** on the invoice lines that targets one of these :ref:`tax grids
<italy/grids>`: `VJ6`, `VJ7`, `VJ8`, `VJ12`, `VJ13`, `VJ14`, `VJ15`, `VJ16`, `VJ17`
TD17 - Buying services from abroad
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
When buying **services** from **EU** and **non-EU** countries, the foreign *seller* invoices a
service with a **VAT-excluded** price, as it is not taxable in Italy. The VAT is paid by the *buyer*
in Italy.
- Within the EU: the *buyer* integrates the invoice received with the **VAT information** due in
Italy (i.e., **vendor bill tax integration**);
- Non-EU: the *buyer* sends themselves an invoice (i.e., **self-billing**).
Odoo exports a transaction as `TD17` if the following conditions are met:
- It is a vendor bill;
- It has at least **one tax** on the invoice lines that targets the tax grid :ref:`VJ3
<italy/grids>`;
- All invoice lines either have :guilabel:`Services` as **products**, or a tax with the
:guilabel:`Services` as **tax scope**.
TD18 - Buying goods from EU
~~~~~~~~~~~~~~~~~~~~~~~~~~~
Invoices issued within the EU follow a **standard format**, therefore only an integration of the
existing invoice is required.
Odoo exports a transaction as `TD18` if the following conditions are met:
- It is a vendor bill;
- The **partner** is from an **EU** country;
- It has at least one tax on the invoice lines that targets the tax grid :ref:`VJ9 <italy/grids>`;
- All invoice lines either have :guilabel:`Consumable` as **products**, or a tax with
:guilabel:`Goods` as **tax scope**.
TD19 - Buying goods from VAT deposit
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Buying **goods** from a **foreign** vendor, but the **goods** are already in **Italy** in a **VAT
deposit**.
- From the EU: the *buyer* integrates the invoice received with the **VAT information** due in
Italy (i.e., **vendor bill tax integration**);
- Non-EU: the *buyer* sends an invoice to *themselves* (i.e., **self-billing**).
Odoo exports a transaction as a `TD19` if the following conditions are met:
- It is a vendor bill;
- It has at least one tax on the invoice lines that targets the tax grid :ref:`VJ3 <italy/grids>`;
- All invoice lines either have :guilabel:`Consumables` as products, or a tax with
:guilabel:`Goods` as **tax scope**.
TD24 - Deferred invoices
~~~~~~~~~~~~~~~~~~~~~~~~
The **deferred invoice** is an invoice that is **issued at a later time** than the sale of goods or
the provision of services. A **deferred invoice** has to be issued at the latest within the **15th
day** of the month following the delivery covered by the document.
It usually is a **summary invoice** containing a list of multiple sales of goods or services carried
out in the month. The business is allowed to **group** the sales into **one invoice**, generally
issued at the **end of the month** for accounting purposes. Deferred invoices are default for
**wholesalers** having recurrent clients.
If the goods are transported by a **carrier**, every delivery has an associated **Documento di
Transporto (DDT)**, or **Transport Document**. The deferred invoice **must** indicate the details of
all the **DDTs** information for better tracing.
.. note::
E-invoicing of deferred invoices requires the `l10n_it_stock_ddt` :ref:`module <italy/modules>`.
In this case, a dedicated :guilabel:`Document Type` `TD24` is used in the e-invoice.
Odoo exports transactions as `TD24` if the following conditions are met:
#. It is an invoice;
#. It is associated with deliveries whose **DDTs** have a **different** date than the issue date of
the invoice.
TD28 - San Marino
~~~~~~~~~~~~~~~~~
Invoices
--------
********
San Marino and Italy have special agreements on e-invoicing operations. As such, **invoices** follow
the regular **reverse charge** rules. Additional requirements are not enforced by Odoo, however, the
user is requested by the **State** to:
the regular **reverse charge** rules. You can use the proper :guilabel:`Document Type` depending on
the invoice type: `TD01`, `TD04`, `TD05`, `TD24`, `TD25`. Additional requirements are not enforced
by Odoo. However, the user is requested by the **State** to:
- Select a tax with the option :guilabel:`Has exoneration of tax (Italy)` ticked, and the
:guilabel:`Exoneration` set to `N3.3`;
- Use the generic :abbr:`SdI (Sistema di Interscambio)` :guilabel:`Codice Destinatario` `2R4GT08`.
The invoice is then routed by a dedicated office in San Marino to the correct business.
- Select a tax with the :guilabel:`Tax Exemption Kind` set to `N3.3`;
- Use the generic :abbr:`SdI (Sistema di Interscambio)` :guilabel:`Destination Code` `2R4GT08`.
Bills
-----
The invoice is then routed by a dedicated office in San Marino to the correct business.
Vendor Bills
************
When a **paper bill** is received from San Marino, any Italian company **must** submit that invoice
to the **Agenzia delle Entrate** by indicating the e-invoice's :guilabel:`Tipo Documento` field with
the special value `TD28`.
to the :abbr:`AdE (Agenzia delle Entrate)` by indicating the e-invoice's :guilabel:`Document Type`
field with the special value `TD28`.
.. tabs::
Odoo exports a transaction as `TD28` if the following conditions are met:
.. tab:: `TD28`
#. It is a vendor bill;
#. It has at least one tax on the invoice lines that targets the tax grids :ref:`VJ <italy/grids>`;
#. The **country** of the partner is **San Marino**.
Odoo exports a move as `TD28` if the following conditions are met:
Public Administration Businesses (B2G)
======================================
- Is a vendor bill;
- At least one tax on the invoice lines targets the tax grids :ref:`VJ <italy/grids>`;
- The **country** of the partner is **San Marino**.
:abbr:`PA (Public Administration)` businesses are subjected to more control than private businesses
as they handle public money coming from taxpayers. The :abbr:`EDI (Electronic Data Interchange)`
process adds some steps to the :ref:`regular one <italy/e-invoicing-process>`, as :abbr:`PA (Public
Administration)` businesses can **accept** or **refuse** invoices.
Pubblica amministrazione (B2G)
==============================
.. note::
:abbr:`PA (Public Administration)` businesses have a 6-digit long :guilabel:`Destination Code`,
also called :abbr:`CUU (Codice Univoco Ufficio)`, that is **mandatory**, **PEC** address cannot
be used in this case.
.. warning::
Odoo does **not** send invoices directly to the government as they need to be signed. If we see
that the codice destinatario is 6 digits, then it is not sent to the PA automatically, but you
can download the XML, sign it with an external program and send it through the portal.
Digital qualified signature
---------------------------
For invoices and bills intended to the **Pubblica Amministrazione (B2G)**, 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:
- a **smart card**;
- a **USB token**;
- a **Hardware Security Module (HSM)**.
.. seealso::
`Complete list of businesses that belong to the Public Administration along with their
Destination Code <https://www.agenziaentrate.gov.it/portale/web/guest/aree-tematiche/fatturazione-elettronica>`_
CIG, CUP, DatiOrdineAcquisto
----------------------------
To ensure the effective traceability of payments by public administrations, electronic invoices
issued to the public administrations must contain:
issued to public administrations must contain:
- The :abbr:`CIG (Codice Identificativo Gara)`, except in cases of exclusion from traceability
obligations provided by law n. 136 of August 13, 2010;
- The :abbr:`CUP (Codice Unico di Progetto)`, in case of invoices related to public works.
If the **XML** file requires it, the **Agenzia Delle Entrate** can *only* proceed payments of
electronic invoices when the **XML** file contains a :abbr:`CIG (Codice Identificativo Gara)` and
:abbr:`CUP (Codice Unico di Progetto)`. For each electronic invoice, it is **necessary** to indicate
the :abbr:`CUU (Codice Univoco Ufficio)`, which represents the unique identifier code that allows
the :abbr:`SdI (Sistema di Interscambio)` to correctly deliver the electronic invoice to the
recipient office.
If the XML file requires it, the :abbr:`AdE (Agenzia Delle Entrate)` can *only* proceed payments of
electronic invoices when the XML file contains a :abbr:`CIG (Codice Identificativo Gara)` and
:abbr:`CUP (Codice Unico di Progetto)`.
.. note::
- The :abbr:`Codice Unico di Progetto)` and the :abbr:`CIG (Codice Identificativo Gara)` must be
included in one of the **2.1.2** (DatiOrdineAcquisto), **2.1.3** (Dati Contratto), **2.1.4**
(DatiConvenzione), **2.1.5** (Date Ricezione), or **2.1.6** (Dati Fatture Collegate)
information blocks. These correspond to the elements named :guilabel:`CodiceCUP` and
:guilabel:`CodiceCIG` of the electronic invoice **XML** file, whose table can be found on the
government `website <http://www.fatturapa.gov.it/>`_.
- The :abbr:`CUU (Codice Univoco Ufficio)` must be included in the electronic invoice
corresponding to the element **1.1.4** (:guilabel:`CodiceDestinario`).
The :abbr:`CUP (Codice Unico di Progetto)` and the :abbr:`CIG (Codice Identificativo Gara)` must
be included in one of the `DatiOrdineAcquisto`, `DatiContratto`, `DatiConvenzione`,
`DateRicezione`, or `DatiFattureCollegate` XML tags.
These correspond to the elements named :guilabel:`CodiceCUP` and :guilabel:`CodiceCIG` of the
electronic invoice XML file, whose table can be found on the government `website
<http://www.fatturapa.gov.it/>`_.
.. _italy/split-payment:
Split Payment
-------------
The :guilabel:`Split Payment` mechanism behaves much like :ref:`italy/reverse-charge`.
.. example::
When an Italian company bills a :abbr:`PA (Public Administration)` business - for example,
cleaning services for a public building - the :abbr:`PA (Public Administration)` business
self-reports the VAT to the Tax Agency themselves, and the vendor just has to select the
appropriate tax with the right :guilabel:`Tax Exemption` for their invoice lines.
The specific :guilabel:`Scissione dei Pagamenti` fiscal position is available to deal with partners
belonging to the :abbr:`PA (Public Administration)`.
Process
-------
.. _italy/digital-signature:
Digital qualified 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:
- 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.
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
once it is accepted by the :abbr:`SdI (Sistema di Interscambio)`. You then have to issue a credit
note to compensate and send it to the :abbr:`SdI (Sistema di Interscambio)`.
Expired Terms
~~~~~~~~~~~~~
If the :abbr:`PA (Public Administration)` business doesn't reply within 15 days, you need to contact
the :abbr:`PA (Public Administration)` business directly, sending them both the invoice and the
received deadline notification by email. You can make an arrangement with them and manually set the
correct :guilabel:`SdI State` on your invoice.
Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

@@ -1,15 +0,0 @@
========
Malaysia
========
.. _malaysia/employment-hero:
Employment Hero payroll
=======================
If your business is already up and running with :doc:`Employment Hero <employment_hero>`, you can
use our connector as an alternative payroll solution.
.. important::
To :ref:`configure the Employment Hero API <employment_hero/configuration>` for **Malaysia**, use
the following value as :guilabel:`Payroll URL`: `https://apimy.yourpayroll.io/`.
@@ -1,15 +0,0 @@
===========
New Zealand
===========
.. _new-zealand/employment-hero:
Employment Hero payroll
=======================
If your business is already up and running with :doc:`Employment Hero <employment_hero>`, you can
use our connector as an alternative payroll solution.
.. important::
To :ref:`configure the Employment Hero API <employment_hero/configuration>` for **New Zealand**,
use the following value as :guilabel:`Payroll URL`: `https://api.nzpayroll.co.nz/`.
@@ -52,16 +52,3 @@ QR-code` option to *EMV Merchant-Presented QR-code*.
Ensure that the :guilabel:`Recipient Bank` is the one you configured, as Odoo uses this field to
generate the PayNow QR code.
.. _singapore/employment-hero:
Employment Hero payroll
=======================
If your business is already up and running with :doc:`Employment Hero <employment_hero>`, you can
use our connector as an alternative payroll solution.
.. important::
To :ref:`configure the Employment Hero API <employment_hero/configuration>` for **Singapore**,
use the following value as :guilabel:`Payroll URL`: `https://apisg.yourpayroll.io/`.
@@ -115,15 +115,3 @@ each submission:
.. note::
During this process, the :guilabel:`Connect to HMRC` button no longer appears for other UK-based
companies.
.. _united-kingdom/employment-hero:
Employment Hero payroll
=======================
If your business is already up and running with :doc:`Employment Hero <employment_hero>`, you can
use our connector as an alternative payroll solution.
.. important::
To :ref:`configure the Employment Hero API <employment_hero/configuration>` for **United
Kingdom**, use the following value as :guilabel:`Payroll URL`: `https://api.yourpayroll.co.uk/`.
@@ -284,8 +284,8 @@ in the *System Parameters*. To override the following defaults they need to be a
The two system parameters are as follows:
- `mail.incoming.limit.period` (60 minutes by default)
- `mail.incoming.limit.alias` (5 by default)
- `mail.gateway.loop.minutes` (120 minutes by default)
- `mail.gateway.loop.threshold` (20 by default)
Add these fields in Odoo by first enabling :ref:`developer mode <developer-mode>`, and then
navigating to :menuselection:`Settings --> Technical Menu --> Parameters --> System Parameters`.
@@ -293,13 +293,13 @@ Change the value of these parameters, as needed.
When an email is received in the Odoo database on the catchall email address or on any alias, Odoo
looks at the mail received for the given period of time defined in the system parameter
`mail.incoming.limit.period`. If the received email was sent to an alias then Odoo will reference
the `mail.incoming.limit.alias` system parameter and determine the value as the number of records
this alias is allowed to create in the given period of time (value of `mail.incoming.limit.period`).
`mail.gateway.loop.minutes`. If the received email was sent to an alias then Odoo will reference the
`mail.gateway.loop.threshold` system parameter and determine the value as the number of records this
alias is allowed to create in the given period of time (value of `mail.gateway.loop.minutes`).
In addition, when email is received to the catchall email address, Odoo will reference the emails
received to the database during the set period of time (as stated by the value in the system
parameter: `mail.incoming.limit.period`). Odoo will then determine whether any of the emails
parameter: `mail.gateway.loop.minutes`). Odoo will then determine whether any of the emails
received match that of the email(s) being received during the specified time-frame, and will prevent
a feedback loop from occurring if a duplicate email is detected.
@@ -325,6 +325,11 @@ recipient, and :abbr:`CC (Carbon Copy)` email addresses of an incoming email.
the database falsely treats the email as the full `commercial` alias (with a different domain),
and therefore, creates a ticket/lead/opportunity/etc.
.. important::
This alias mismatch issue has been resolved in Odoo 17, however, the
`mail.catchall.domain.allowed` system parameter is still used in Odoo 17 for backward
compatibility.
To add the `mail.catchall.domain.allowed` system parameter, first, activate the :ref:`developer mode
<developer-mode>`. Then, go to :menuselection:`Settings app --> Technical --> Parameters section -->
System Parameters`. Click :guilabel:`Create`. Then, type in `mail.catchall.domain.allowed` for the
@@ -7,3 +7,4 @@ Integrations
integrations/mail_plugins
integrations/unsplash
integrations/geolocation
integrations/google_translate
@@ -0,0 +1,123 @@
================
Google Translate
================
*Google Translate* can be used to translate user generated text in the Odoo chatter.
Google API console
==================
A majority of the setup for integrating *Google Translate* into Odoo is done with the *Google API
console*. Once the following processes are complete, an *API key* is created to input in Odoo.
.. seealso::
`Google Translate setup on Google <https://cloud.google.com/translate/docs/setup>`_
Create a new project
--------------------
To get started, go to the `Google API Console <https://console.developers.google.com>`_. Then, log
in with a *Google Workspace* account, if there is one. If not, log in with a personal Gmail account
(this should match the email address that has billing attached to it).
Next, click :guilabel:`Create Project` on the far-right of the :guilabel:`OAuth consent screen`.
.. tip::
If the *Google API Console* has existing projects, click the drop-down menu next to the
:guilabel:`Google Cloud` icon, and a pop-over window appears. Next, click :guilabel:`New Project`
top-right of the pop-over window.
On the :guilabel:`New Project` screen, rename the :guilabel:`Project name` to `Odoo Translate`, and
browse for the :guilabel:`Location`. Set the :guilabel:`Location` as the *Google Workspace
organization*. If a personal Gmail account is being used, leave the :guilabel:`Location` as
:guilabel:`No Organization`.
.. image:: google_translate/new-project.png
:align: center
:alt: Project Name and Location for Google OAuth.
Click on :guilabel:`Create` to finish this step.
API library
-----------
Next, the *Cloud Translation API* needs to be installed on this newly-created project. To do that,
click :menuselection:`Library` in the left menu. Then, search the term `Cloud Translation API`, and
click into the result. This should be a *Google Enterprise API* labeled :guilabel:`Cloud Translation
API`.
Click :guilabel:`Enable` to install the library on this project.
.. important::
Using the *Google Translate* API **requires** a current billing account with `Google
<https://https://myaccount.google.com/>`_.
Once a billing account is setup with *Google* and the library is enabled, click :guilabel:`Manage`
to finish configuration on the API.
Create credentials
------------------
Now that the project is set up, and the *Cloud Translation API* is enabled, credentials **must** be
created. This includes the *API key*.
To begin this process, click :menuselection:`Credentials` in the left sidebar menu.
Then, click :guilabel:`Create Credentials` in the top menu, and select :guilabel:`API key` from the
drop-down menu.
.. image:: google_translate/api-key.png
:align: center
:alt: Create an API key in the Google API console.
Copy the :guilabel:`API key` for use in the next section.
.. important::
For security purposes, the usage of the *API key* can be restricted.
To do that, go to the *API restrictions* by clicking on :guilabel:`Edit API key` in the pop-over
window, or by clicking on the listed API key on the :guilabel:`Credentials` page. From here, key
restrictions can be set. This includes setting an application to restrict the use of the API key,
and whether this API key can call any API.
It is recommended that the Odoo *Translate API* be restricted to **only** allow requests from the
configured Odoo database and to the *Cloud Translation API*.
To add the website restriction, click :guilabel:`Websites`, under the :guilabel:`Set an
application restriction`. Then, enter the address of the database *Google Translate* is being
used in, by clicking on :guilabel:`Add`. Lastly, add the :abbr:`URL (Uniform Resource Locator)`,
and click :guilabel:`Done`.
To restrict use of the key to a selected API, first, select :guilabel:`Restrict key`, under the
:guilabel:`API restrictions` section. Then use the drop-down menu to choose the API being
configured (*Cloud Translation API*).
.. tip::
- Save the API key: copy the API key and store it somewhere secure.
- Do **not** share the API key publicly or expose it in client-side code.
Odoo configuration
==================
To access the integration in Odoo, navigate to the :menuselection:`Settings app --> Discuss
section`. Enter the API key into the field labeled :guilabel:`Message Translation`. Then,
:guilabel:`Save` the settings, and *Google Translate* can be used in any chatter throughout the
database.
.. image:: google_translate/odoo-config.png
:align: center
:alt: Odoo configuration of the API key from the *Google API Console*.
Translate chatter
=================
To translate a user's text from another language, click the :guilabel:`... (three dot)` icon menu to
the right of the chatter. Then, select :guilabel:`Translate`. The content translates to the
*language* set on the user's preferences.
.. image:: google_translate/google-translate.png
:align: center
:alt: Google Translate present in an Odoo database's chatter.
.. seealso::
:ref:`language/change-user-language`
Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

+1 -1
View File
@@ -11,6 +11,6 @@ Configuration
config/connect
config/pos
config/https_certificate_iot
config/flash_sdcard
config/updating_iot
config/troubleshooting
config/windows_iot
@@ -37,8 +37,8 @@ via :ref:`WiFi <iot_connect/wifi>`.
.. important::
The disk image that the :abbr:`IoT (Internet of Things)` box SD card is formatted with is unique
to the version of the Odoo database that the :abbr:`IoT (Internet of Things)` box is running on.
Ensure that the :abbr:`IoT (Internet of Things)` box is :doc:`flashed <flash_sdcard>` with the
most up-to-date disk image.
Ensure that the :abbr:`IoT (Internet of Things)` box is :ref:`flashed <iot/config/flash>` with
the most up-to-date disk image.
.. _iot_connect/ethernet:
@@ -1,68 +0,0 @@
====================
Flashing the SD card
====================
In some circumstances, the :abbr:`IoT (Internet of Things)` box's micro SD Card may need to be
re-flashed to benefit from Odoo's latest :abbr:`IoT (Internet of Things)` image update. This means
that the Odoo :abbr:`IoT (Internet of Things)` box software may need to be updated.
Upgrade from the IoT box home page
==================================
Go to the :abbr:`IoT (Internet of Things)` box homepage by navigating to :menuselection:`IoT app -->
IoT Boxes` and clicking on the :guilabel:`IP address` of the :abbr:`IoT (Internet of Things)` box.
Then click on :guilabel:`Update` (next to the version number).
If a new version of the :abbr:`IoT (Internet of Things)` Box image is available, an
:guilabel:`Upgrade to _xx.xx_` button will appear at the bottom of the page. Click this button to
upgrade the unit and the :abbr:`IoT (Internet of Things)` box will then flash itself to the new
version. All of the previous configurations will be saved.
.. note::
This process can take more than 30 minutes. Do not turn off or unplug the :abbr:`IoT (Internet of
Things)` box as it would leave it in an inconsistent state. This means that the :abbr:`IoT
(Internet of Things)` box will need to be re-flashed with a new image. See
:ref:`flash_sdcard/etcher`.
.. image:: flash_sdcard/flash-upgrade.png
:align: center
:alt: IoT box software upgrade in the IoT Box Home Page.
.. _flash_sdcard/etcher:
Upgrade with Etcher Software
============================
.. note::
A computer with a micro SD card reader/adapter is required in order to re-flash the micro SD
card.
Navigate to Balena's website and download `Etcher <https://www.balena.io/>`_. It's a free and
open-source utility used for burning image files onto drives. Click to `download
<https://www.balena.io/etcher#download-etcher>`_. Install and launch the program on the computer.
Then download the version-specific :abbr:`IoT (Internet of Things)` image from `nightly
<http://nightly.odoo.com/master/iotbox/>`_.
The following are image versions on the `nightly <http://nightly.odoo.com/master/iotbox/>`_ website
with their corresponding Odoo database version:
- Odoo V16 --> iotbox-latest.zip
- Odoo V15 --> iotboxv21_10.zip
- Odoo V14 --> iotboxv21_04.zip
- Odoo V13 --> iotboxv20_10.zip
The images should be downloaded and extracted to a convenient file location.
After this step is complete, insert the :abbr:`IoT (Internet of Things)` box's micro SD card into
the computer or reader. Open *Etcher* and select :guilabel:`Flash from file`, then find and select
the image just downloaded and extracted. Next, select the drive the image should be burned to.
Lastly, click on :guilabel:`Flash` and wait for the process to finish.
.. image:: flash_sdcard/etcher-app.png
:align: center
:alt: Balena's Etcher software dashboard.
.. note::
An alternative software for flashing the micro SD card is *Raspberry Pi Imager*. Download the
*Raspberry Pi* software `here <https://www.raspberrypi.com/software/>`_.
@@ -19,10 +19,10 @@ The pairing code does not show under the following circumstances:
It is automatically removed from connected displays when this time has expired.
- The version of the :abbr:`IoT (Internet of Things)` box image is too old. If the :abbr:`IoT
(Internet of Things)` box image is from an earlier version, then the SD card of the :abbr:`IoT
(Internet of Things)` box will need to be re-flashed to update the image (see :doc:`Flashing the
SD Card <flash_sdcard>`).
(Internet of Things)` box needs to be re-flashed to update the image (see :ref:`Flashing the SD
Card <iot/config/flash>`).
If none of the cases listed above correct the issue, then make sure that the :abbr:`IoT (Internet of
If none of the cases listed above correct the issue, then make sure the :abbr:`IoT (Internet of
Things)` box has correctly started, by checking that a fixed green LED is showing next to the power
port.
@@ -100,18 +100,6 @@ printer.
Epson and Star receipt printers and Zebra label printers do not need a driver to work. Make sure
that no driver is selected for those printers.
The printer is detected but is not recognized correctly
-------------------------------------------------------
If the printer is not recognized correctly by Odoo and the :abbr:`IoT (Internet of Things)` box, go
to the form view of the device (:menuselection:`IoT App --> Devices -->Printer Device`) and change
the subtype. The three options available are: :guilabel:`Receipt Printer`, :guilabel:`Label
Printer`, and :guilabel:`Office Printer`.
.. image:: troubleshooting/sub-type.png
:align: center
:alt: Sub-type selection in a printer IoT device.
Epson configuration special case
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,137 @@
==============
Updating (IoT)
==============
Due to the complexity of the :abbr:`IoT (Internet of Things)` box, and virtual Windows :abbr:`IoT
(Internet of Things)` box, the term 'updating' can mean several different things.
The actual drivers can be updated, the core code on the :abbr:`IoT (Internet of Things)` box can be
updated, or a new image can be flashed (using a physical :abbr:`IoT (Internet of Things)` box).
This document explores the various ways to update :abbr:`IoT (Internet of Things)` boxes to ensure
smooth operation of :abbr:`IoT (Internet of Things)` box processes and devices.
.. _iot/config/flash:
Flashing the SD card on IoT box
===============================
.. important::
This update does **not** apply to the Windows :abbr:`IoT (Internet of Things)` box (Odoo 16 and
higher).
To update the Windows :abbr:`IoT (Internet of Things)`, first, uninstall the previous version of
the Odoo Windows program, and then reinstall it using the most up-to-date installation package.
To begin the installation, navigate to the Odoo 16 (or higher) installation package for
Enterprise or Community - Windows edition, at `Odoo's download page
<https://odoo.com/download>`_.
In some circumstances, the :abbr:`IoT (Internet of Things)` box's micro SD Card may need to be
re-flashed with *Etcher* software to benefit from Odoo's latest :abbr:`IoT (Internet of Things)`
image update. This means the Odoo :abbr:`IoT (Internet of Things)` box software may need to be
updated in instances of a new :abbr:`IoT (Internet of Things)` box, or when a handler's update, or
an update from the :abbr:`IoT (Internet of Things)` box home page, does not resolve issues.
.. note::
- It is often necessary to re-flash the :abbr:`IoT (Internet of Things)` box's image after
upgrading the Odoo database to a new version.
- A computer with a micro SD card reader/adapter is **required** to re-flash the micro SD card.
First, begin by downloading `Etcher <https://www.balena.io/etcher#download-etcher>`_. It is a free,
open-source utility, used for burning image files onto drives. After the download completes, install
and launch the program on the computer.
Then, download the latest :abbr:`IoT (Internet of Things)` image from `nightly
<http://nightly.odoo.com/master/iotbox>`_, which will be labeled as `iotbox-latest.zip`. This
particular image is compatible with *all* supported versions of Odoo.
After this step is complete, insert the :abbr:`IoT (Internet of Things)` box's micro SD card into
the computer or reader. Open *Etcher*, and select :guilabel:`Flash from file`, then find and select
the `iotbox-latest.zip` image and extract it. Next, select the drive the image should be burned to.
Lastly, click :guilabel:`Flash`, and wait for the process to finish.
.. image:: updating_iot/etcher-app.png
:align: center
:alt: Balena's Etcher software dashboard.
.. tip::
Balena's *Etcher* software also allows for the administrator to flash the :abbr:`SD (Secure
Digital)` card from a :abbr:`URL (Uniform Resource Locator)`. To flash from a :abbr:`URL (Uniform
Resource Locator)`, simply click :guilabel:`Flash from URL`, instead of :guilabel:`Flash from
file`.
Then, enter the following: `http://nightly.odoo.com/master/iotbox/iotbox-latest.zip`.
.. image:: updating_iot/url-flash.png
:align: center
:alt: A view of Balena's Etcher software, with the flash from URL option highlighted.
.. note::
An alternative software for flashing the micro SD card is `Raspberry Pi Imager
<https://www.raspberrypi.com/software/>`_.
.. _iot/config/homepage-upgrade:
Update from the IoT box home page
=================================
In the background, the :abbr:`IoT (Internet of Things)` box uses a version of Odoo code to run and
connect to the Odoo database. This code may need to be updated in order for the :abbr:`IoT (Internet
of Things)` box to operate effectively. This operation should be completed on a routine basis, to
ensure the :abbr:`IoT (Internet of Things)` system, and its processes, stay up-to-date.
Go to the :abbr:`IoT (Internet of Things)` box home page by navigating to :menuselection:`IoT app
--> IoT Boxes`, and clicking on the :guilabel:`IP address` of the :abbr:`IoT (Internet of Things)`
box. Then, click on :guilabel:`Update` (next to the version number).
If a new version of the :abbr:`IoT (Internet of Things)` box image is available, an
:guilabel:`Upgrade to _xx.xx_` button appears at the bottom of the page. Click this button to
upgrade the unit, at which point the :abbr:`IoT (Internet of Things)` box flashes itself to the
newer version. All of the previous configurations are then saved.
.. important::
This process can take more than 30 minutes. Do **not** turn off, or unplug, the :abbr:`IoT
(Internet of Things)` box, as it would leave it in an inconsistent state. This means the
:abbr:`IoT (Internet of Things)` box needs to be :ref:`re-flashed <iot/config/flash>` with a new
image.
.. image:: updating_iot/flash-upgrade.png
:align: center
:alt: IoT box software upgrade in the IoT Box Home Page.
Handler (driver) update
=======================
There may be some instances where drivers or interfaces need to be updated for individual devices
(e.g. scales, measurement tools, etc.). The IoT handler's (drivers and interfaces) code can be
modified by syncing them with the configured server handler's code.
This can be helpful in instances where :abbr:`IoT (Internet of Things)` devices (e.g. scales,
measurement tools, etc.) are not working properly with the :abbr:`IoT (Internet of Things)` box.
For both the Windows :abbr:`IoT (Internet of Things)` (Odoo 16 and higher) and physical :abbr:`IoT
(Internet of Things)` box, this process can be performed manually from the :abbr:`IoT (Internet of
Things)` box home page. Go to the :abbr:`IoT (Internet of Things)` box home page by navigating to
:menuselection:`IoT app --> IoT Boxes`, and clicking on the :guilabel:`IP address` of the :abbr:`IoT
(Internet of Things)` box.
Next, click :guilabel:`Handlers list`, and then select :guilabel:`Load Handlers` at the bottom of
the page.
.. image:: updating_iot/load-handlers.png
:align: center
:alt: Handlers list on an IoT box with the load handlers button highlighted.
.. important::
Handler's code is fetched from the configured server, and it needs to be up-to-date to have the
latest fixes and patches.
.. note::
A handler update is also performed automatically each time the :abbr:`IoT (Internet of Things)`
box is restarted. The only exception to this process is if the *Automatic drivers update* is
unchecked in the form view of the :abbr:`IoT (Internet of Things)` box on the Odoo server. This
setting can be reached by going to :menuselection:`IoT App --> Select the IoT box --> Automatic
drivers update`.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Before

Width:  |  Height:  |  Size: 115 KiB

After

Width:  |  Height:  |  Size: 115 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 3.0 KiB

@@ -1,67 +1,184 @@
=============
Access Rights
Access rights
=============
Activate the :ref:`developer mode <developer-mode>`, then go to :menuselection:`Settings --> Users &
Companies --> Groups`.
*Access rights* are permissions that determine the content and applications users can access and
edit. In Odoo, these permissions can be set for individual users or for groups of users. Limiting
permissions to only those who need them ensures that users do not modify or delete anything they
should not have access to.
Groups
======
**Only** an *administrator* can change access rights.
| When choosing the groups the user can have access under
:ref:`Access Rights <users/add-individual>`, details of the rules and inheritances of that group
are not shown, so this is when the menu *Groups* comes along. *Groups* are created to define rules
to models within an application.
| Under *Users*, have a list of the current ones. The ones with administrative rights are shown
in black.
.. danger::
Making changes to access rights can have a detrimental impact on the database. This includes
*impotent admin*, which means that no user in the database can make changes to the access rights.
For this reason, Odoo recommends contacting an Odoo Business Analyst, or our Support Team, before
making changes.
.. image:: access_rights/groups-users.png
.. tip::
A user **must** have the specific *Administration* access rights set on their user profile, in
order to make changes on another user's settings for access rights.
To access this setting, navigate to :menuselection:`Settings app --> Manage users --> select a
user --> Access Rights tab --> Administration section --> Administration field`.
Once at the setting, an already existing administrator **must** change the setting in the
:guilabel:`Administration` field to :guilabel:`Access Rights`.
Once complete, click :guilabel:`Save` to save the changes, and implement the user as an
administrator.
Users
=====
The access rights for :ref:`individual users <users/add-individual>` are set when the user is added
to the database, but they can be adjusted at any point in the user's profile.
To make changes to a user's rights, click on the desired user to edit their profile.
.. image:: access_rights/navigate-to-users-menu.png
:align: center
:alt: View of a groups form emphasizing the tab users in Odoo
:alt: Users menu in the Users & Companies section of the Settings app of Odoo.
*Inherited* means that users added to this application group are automatically added to the
following ones. In the example below, users who have access to the group *Administrator* of *Sales*
also have access to *Website/Restricted Editor* and *Sales/User: All Documents*.
On the user's profile page, in the :guilabel:`Access Rights` tab, scroll down to view the current
permissions.
.. image:: access_rights/groups-inherited.png
For each app, use the drop-down menu to select what level of permission this user should have. The
options vary for each section, yet the most common are: :guilabel:`Blank/None`, :guilabel:`User: Own
Documents`, :guilabel:`User: All Documents`, or :guilabel:`Administrator`.
The :guilabel:`Administration` field in the :guilabel:`Access Rights` tab has the following options:
:guilabel:`Settings` or :guilabel:`Access Rights`.
.. image:: access_rights/user-permissions-dropdown-menu.png
:align: center
:height: 330
:alt: View of a groups form emphasizing the tab inherited in Odoo
:alt: The Sales apps drop-down menu to set the user's level of permissions.
Create and modify groups
========================
*Groups* are app-specific sets of permissions that are used to manage common access rights for a
large amount of users. Administrators can modify the existing groups in Odoo, or create new ones to
define rules for models within an application.
To access groups, first activate Odoo's :ref:`developer mode <developer-mode>`, then go to
:menuselection:`Settings app --> Users & Companies --> Groups`.
.. image:: access_rights/click-users-and-companies.png
:align: center
:alt: Groups menu in the Users & Companies section of the Settings app of Odoo.
To create a new group from the :guilabel:`Groups` page, click :guilabel:`Create`. Then, from the
blank group form, select an :guilabel:`Application`, and complete the group form (detailed below).
To modify existing groups, click on an existing group from the list displayed on the
:guilabel:`Groups` page, and edit the contents of the form.
Enter a :guilabel:`Name` for the group and tick the checkbox next to :guilabel:`Share Group`, if
this group was created to set access rights for sharing data with some users.
.. important::
Remember to always test the settings being changed in order to ensure that they are being applied
to the needed and right users.
Always test the settings being changed to ensure they are being applied to the correct users.
The *Menus* tab is where you define which menus (models) the user can have access to.
The group form contains multiple tabs for managing all elements of the group. In each tab, click
:guilabel:`Add a line` to add a new row for users or rules, and click the :guilabel:`❌ (remove)`
icon to remove a row.
.. image:: access_rights/groups-menus.png
.. image:: access_rights/groups-form.png
:align: center
:height: 330
:alt: View of a groups form emphasizing the tab menus in Odoo
:alt: Tabs in the Groups form to modify the settings of the group.
*Access Rights* rules are the first level of rights. The field is composed of the object name, which
is the technical name given to a model. For each model, enable the following options as appropriate:
- :guilabel:`Users` tab: lists the current users in the group. Users listed in black have
administrative rights. Users without administrative access appear in blue. Click :guilabel:`Add a
line` to add users to this group.
- :guilabel:`Inherited` tab: inherited means that users added to this group are automatically added
to the groups listed on this tab. Click :guilabel:`Add a line` to add inherited groups.
- *Read*: the values of that object can be only seen by the user.
- *Write*: the values of that object can be edited by the user.
- *Create*: values for that object can be created by the user.
- *Delete*: the values of that object can be deleted by the user.
.. example::
For example, if the group *Sales/Administrator* lists the group *Website/Restricted Editor* in
its :guilabel:`Inherited` tab, then any users added to the *Sales/Administrator* group
automatically receive access to the *Website/Restricted Editor* group, as well.
.. image:: access_rights/groups-access-rights.png
:align: center
:alt: View of a groups form emphasizing the tab access rights in Odoo
- :guilabel:`Menus` tab: defines which menus/models the group can have access to. Click
:guilabel:`Add a line` to add a specific menu.
- :guilabel:`Views` tab: lists which views in Odoo the group has access to. Click :guilabel:`Add a
line` to add a view to the group.
- :guilabel:`Access Rights` tab: lists the first level of rights (models) that this group has access
rights to. Click :guilabel:`Add a line` to link access rights to this group. In this tab, the
:guilabel:`Model` column represents the common name of the menu/model, and the :guilabel:`Name`
column represents the technical name given to the model. For each model, enable the following
options as appropriate:
| As a second layer of editing and visibility rules, *Record Rules* can be formed. They overwrite,
or refine, the *Access Rights*.
| A record rule is written using a *Domain*. Domains are conditions used to filter or searching
data. Therefore, a domain expression is a list of conditions. For each rule, choose among the
following options: *Read*, *Write*, *Create* and *Delete* values.
- :guilabel:`Read`: users can see the object's existing values.
- :guilabel:`Write`: users can edit the object's existing values.
- :guilabel:`Create`: users can create new values for the object.
- :guilabel:`Delete`: users can delete values for the object.
.. image:: access_rights/groups-record-rules.png
:align: center
:alt: View of a groups form emphasizing the tab record rules in Odoo
.. tip::
First try searching for the common name of the model in the drop-down menu of the
:guilabel:`Model` column. The :guilabel:`Model` technical name can be found by expanding the
model common name, which can be done by clicking the :guilabel:`(external link)` icon.
The model technical name can also be accessed in :ref:`developer mode <developer-mode>`.
On a form, navigate to any field, and hover over the field name. A box of backend information
reveals itself with the specific Odoo :guilabel:`Object` name in the backend. This is the
technical name of the model that should be added.
.. image:: access_rights/technical-info.png
:align: center
:alt: Technical information shown on a field of a model, with object highlighted.
- :guilabel:`Record Rules`: lists the second layer of editing and visibility rights.
:guilabel:`Record Rules` overwrite, or refine, the group's access rights. Click :guilabel:`Add a
line` to add a record rule to this group. For each rule, choose values for the following options:
- :guilabel:`Apply for Read`.
- :guilabel:`Apply for Write`.
- :guilabel:`Apply for Create`.
- :guilabel:`Apply for Delete`.
.. important::
Record rules are written using a *domain*, or conditions that filter data. A domain expression
is a list of such conditions. For example:
`[('mrp_production_ids', 'in', user.partner_id.commercial_partner_id.production_ids.ids)]`
This record rule is to enable MRP consumption warnings for subcontractors.
Odoo has a library of preconfigured record rules for ease of use. Users without knowledge of
domains (and domain expressions) should consult an Odoo Business Analyst, or the Odoo Support
Team, before making changes.
Superuser mode
==============
*Superuser mode* allows the user to bypass record rules and access rights. To activate *Superuser
mode*, first, activate :ref:`developer mode <developer-mode>`. Then, navigate to the *debug* menu,
represented by a :guilabel:`🪲 (bug)` icon, located in the top banner.
Finally, towards the bottom of the menu, click :guilabel:`Become Superuser`.
.. important::
Making changes in access rights can have a big impact on the database. For this reason, we
recommend you to contact your Odoo Business Analyst or our Support Team, unless you have
knowledge about Domains in Odoo.
Only users with *Settings* access for the *Administration* section of the *Access Rights* (in
their user profile) are allowed to log in to *Superuser mode*.
.. danger::
*Superuser mode* allows for circumvention of record rules and access rights, and therefore,
should be exercised with extreme caution.
Upon exiting *Superuser mode*, users may be locked out of the database, due to changes that were
made. This can cause *impotent admin*, or an administrator without the ability to change access
rights/settings.
In this case contact Odoo Support here: `new help ticket <https://www.odoo.com/help>`_. The
support team is able to restore access using a support login.
To leave *Superuser mode*, log out of the account, by navigating to the upper-right corner, and
clicking on the :guilabel:`OdooBot` username. Then, select the :guilabel:`Log out` option.
.. tip::
An alternative way to activate *Superuser mode* is to login as a superuser. To do that, navigate
to the login screen, and enter the appropriate :guilabel:`Email` and :guilabel:`Password`.
Instead of clicking :guilabel:`Login`, click :guilabel:`Log in as superuser`.
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.5 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 46 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 44 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.9 KiB

@@ -23,6 +23,8 @@ select a language to install and click on **LOAD.**
If you check the "Websites to translate" checkbox you will have the option
to change the navigation language on your website.
.. _language/change-user-language:
Change your language
====================
+160 -84
View File
@@ -11,26 +11,26 @@ Attendances
Odoo's *Attendances* application functions as a time clock. Employees are able to check in and out
of work using a dedicated device in kiosk mode, while users are also able to check in and out of
work directly from the database. Managers can quickly see who is available at any given time, and
create reports to see everyone's hours, and gain insights on which employees are working overtime,
or checking out of work earlier than expected.
work directly from the database. Managers can quickly see who is available at any given time, create
reports to see everyone's hours, and gain insights on which employees are working overtime, or
checking out of work earlier than expected.
.. _attendances/access-rights:
Access Rights
Access rights
=============
It is important to understand how the different access rights affect what users can access in the
*Attendances* application.
Every user in the database is always able to access their own information on the dashboard, and can
Every user in the database is always able to access their own information on the dashboard and can
check in and out directly from the database. Access to all the other features is determined by
access rights.
To see what access rights a user has, navigate to the :menuselection:`Settings application --> Users
& Companies: Users`, and click on an individual user. The :guilabel:`Access Rights` tab is visible
by default. Scroll down to the :guilabel:`Human Resources` section to see the setting. For the
:guilabel:`Attendances` field, the options are either to leave the field blank, or select
:guilabel:`Attendances` field, the options are either to leave the field blank or select
:guilabel:`Administrator`.
If the :guilabel:`Administrator` option is selected, the user has full access to the entire
@@ -39,36 +39,35 @@ enter kiosk mode from the application, access all reporting metrics, and make mo
settings.
If left blank, the user can only view their own information on the *Attendances* application
dashboard, and can view their own personal attendance records under the reporting feature. Everyone
else's attendance records will be hidden from view on the report. There is no access to either the
kiosk mode or the configuration menu.
dashboard and can view their own personal attendance records under the reporting feature. All other
attendance records are hidden from view on the report. There is no access to either the kiosk mode
or the configuration menu.
.. _attendances/approvers:
Approvers
---------
The only other scenario where different information may be accessible in the *Attendances*
The **only** other scenario where different information may be accessible in the *Attendances*
application is for approvers. If a user does *not* have administrative rights for the *Attendances*
application, but they are set as an employee's approver for the *Attendances* application, that user
will be able to view the attendance records for that specific employee, as well as make
modifications to that employee's attendance records (when necessary). This applies to all employee's
the user is listed as the *Attendances* application approver. Approvers are typically managers,
though this is not necessary.
is able to view the attendance records for that specific employee, as well as make modifications to
that employee's attendance records, if necessary. This applies to all employees for whom the user is
listed as the *Attendances* application approver. Approvers are typically managers, though this is
not required.
To see who the attendance approver is for an employee, navigate to the :menuselection:`Employees
application` and click on the specific employee. Click on the :guilabel:`Work Information` tab, and
application` and click on the specific employee. Click on the :guilabel:`Work Information` tab,
scroll to the :guilabel:`Approvers` section, and check the :guilabel:`Attendance` field. The person
selected will be able to view that employees' attendance records, both on the *Attendances*
application dashboard as well as in the attendance reports, and make modifications to their
records.
selected is able to view that employees' attendance records, both on the *Attendances* application
dashboard as well as in the attendance reports, and make modifications to their records.
Configuration
=============
There are very few configurations needed in the *Attendances* application. Determining how employees
check in and out, defining how the kiosks function, and determining how extra hours are computed are
all set in the Configuration menu. Navigate to the :menuselection:`Attendances application-->
Few configurations are needed in the *Attendances* application. Determining how employees check in
and out, defining how the kiosks function, and determining how extra hours are computed are all set
in the Configuration menu. Navigate to the :menuselection:`Attendances application -->
Configuration` to access the configuration menu.
Modes
@@ -81,8 +80,8 @@ Modes
:guilabel:`Manual Selection`.
.. important::
The *Barcode* application **does not** need to be installed in order to use one of the
Barcode/RFID settings.
The *Barcode* application **does not** need to be installed to use one of the Barcode/RFID
settings.
- :guilabel:`Attendances from Backend`: activate this selection to allow users to check in and out
directly from the Odoo database. If this is not activated, users must use a kiosk to check in and
@@ -90,62 +89,75 @@ Modes
.. _attendances/kiosk-settings:
Kiosk Settings
Kiosk settings
--------------
This section only needs to be configured if employees use kiosks for checking in and out. If kiosks
are *not* being used, modifying any of these fields will **not** adversely affect the functionality
of the Attendances application.
are **not** being used, modifying any of these fields does **not** adversely affect the
*Attendances* application.
- :guilabel:`Barcode Source`: this setting appears if either of the two Barcode/RFID selections were
configured for the :ref:`Kiosk Mode <attendances/kiosk-mode>` setting. Select how barcodes are
scanned at the kiosk, either with a dedicated barcode :guilabel:`Scanner`, or the device's
:guilabel:`Front Camera`, or :guilabel:`Back Camera`.
- :guilabel:`Barcode Source`: this setting appears **only** if either of the two Barcode/RFID
selections were configured for the :ref:`Kiosk Mode <attendances/kiosk-mode>` setting. Select how
barcodes are scanned at the kiosk, either with a dedicated barcode :guilabel:`Scanner`, or the
device's :guilabel:`Front Camera`, or :guilabel:`Back Camera`.
- :guilabel:`Employee PIN Identification`: activate this option if employees should use a unique PIN
to check in. PINs are configured on each individual employee record. Refer to the
:doc:`../hr/employees/new_employee` documentation for more information on setting up PINs.
- :guilabel:`Display Time`: set the duration (in seconds) the check in and check out confirmation
screen remains on the kiosk before going back to the main check in screen.
- :guilabel:`Attendance Kiosk Url`: Odoo generates a unique web address (URL) in order to use a
device as a kiosk without having to sign in to the Odoo database. When setting up a kiosk device,
navigate to this unique web address in a web browser to present the Attendances application kiosk.
- :guilabel:`Attendance Kiosk Url`: Odoo generates a unique web address (URL) to use a device as a
kiosk without having to sign in to the Odoo database. When setting up a kiosk device, navigate to
this unique web address in a web browser to present the Attendances application kiosk.
.. important::
These kiosk URLs are **not** secured with any type of access code. Anyone who has the URL can
access the Attendances application kiosk. If the URL is compromised for any reason, such as in
the event of a security breach, click :guilabel:`Generate a new Kiosk Mode URL`, located
beneath the link, to generate a new URL and update the kiosk(s) accordingly.
beneath the link, to generate a new URL and update the kiosk accordingly.
Extra Hours
Extra hours
-----------
This section specifies how extra time is calculated, including when extra time is counted and what
time is not logged.
- :guilabel:`Count of Extra Hours`: enable this box to allow employees to log extra hours beyond
their set working hours (sometimes referred to as *overtime*). Activating this selection displays
the following settings as well. If this is not activated, no other configurations appear.
- :guilabel:`Start From`: the current date is automatically entered in this field. If desired,
click on this field and use the calendar selector to modify the start date that extra hours will
be logged.
- :guilabel:`Tolerance Time In Favor Of Company`: enter the amount of time, in minutes, that will
*not* count towards an employee's overtime. When an employee checks out, and the extra time
logged is below the specified minutes, the extra time will *not* be counted as overtime for the
click on this field and use the calendar selector to modify the start date on which extra hours
are logged.
- :guilabel:`Tolerance Time In Favor Of Company`: enter the amount of time, in minutes, that is
**not** counted towards an employee's overtime. When an employee checks out, and the extra time
logged is below the specified minutes, the extra time is **not** counted as overtime for the
employee.
- :guilabel:`Tolerance Time In Favor Of Employee`: enter the amount of time, in minutes, that an
employee is given, that will not adversely affect their attendance if they log less time than
their working hours. When an employee checks out, and the total time logged for the day is less
than their specified working hours, and less than this specified grace period, they will not be
penalized for their reduced hours.
- :guilabel:`Display Extra Hours`: activate this box to display the extra hours logged by an
employee when they check out with a kiosk, or when a user checks out in the database.
employee is given, that does **not** adversely affect their attendance if they log less time
than their working hours. When an employee checks out, and the total time logged for the day is
less than their specified working hours and less than this specified grace period, they are
**not** penalized for their reduced hours.
.. example::
A company sets both of the :guilabel:`Tolerance` fields to `15` minutes, and the working
hours for the entire company is set from 9:00 AM to 5:00 PM. If an employee checks in at 9:00
AM, and checks out at 5:14 PM, the extra 14 minutes are *not* counted towards their overtime.
hours for the entire company are set from 9:00 AM to 5:00 PM.
If an employee checks in at 9:00 AM, and checks out at 5:14 PM, the extra 14 minutes are
**not** counted towards their overtime.
If an employee checks in at 9:05 AM, and checks out at 4:55 PM, even though they logged a
total of 10 minutes less than their full working hours, they will not be penalized for this
total of 10 minutes less than their full working hours, they are **not** penalized for this
discrepancy.
- :guilabel:`Display Extra Hours`: activate this box to display the extra hours logged by an
employee when they check out with a kiosk, or when a user checks out in the database.
.. note::
Employees are still able to log overtime hours even if the :guilabel:`Count of Extra Hours`
option is not activated. The difference is that when :guilabel:`Count of Extra Hours` is
activated, the extra hours can be :ref:`deducted from an approved time off request
<time_off/deduct-extra-hours>`.
.. _attendances/check-in:
Check in and out via the database
@@ -169,47 +181,58 @@ Check in
If the attendance widget circle is red, this indicates the user is not currently checked in. Click
the :guilabel:`🔴 (red circle)` and the attendance widget appears, displaying a green
:guilabel:`Check in ->` button.
:guilabel:`Check in ➡️` button.
.. image:: attendances/check-in.png
:align: center
:alt: Top right main menu with check in button highlighted.
When the user checks in from the database, the *Attendances* app logs the location details for the
user, including the IP Address and GPS coordinates.
.. important::
For the *Attendances* app to log the location details, the user must allow their computer to
access their location information.
If the user has not checked in and out already during the current work day, this button is the only
visible item in the widget. If the user has previously checked in and out, a :guilabel:`Total today`
field appears above the button, and the total amount of time that has been logged for the day
appears beneath that field, in an :guilabel:`XX:XX` (hours:minutes) format.
appears beneath that field, in an :guilabel:`HH:MM` (hours:minutes) format.
Click the :guilabel:`Check in ->` button to check in. The :guilabel:`🔴 (red circle)` in the top
Click the :guilabel:`Check in ➡️` button to check in. The :guilabel:`🔴 (red circle)` in the top
menu changes to green, and the widget changes appearance as well. The widget updates to reflect that
the user has checked in, by changing the green :guilabel:`Check in ->` button to a yellow
:guilabel:`Check out ->` button.
the user has checked in, by changing the green :guilabel:`Check in ➡️` button to a yellow
:guilabel:`Check out ➡️` button.
Click anywhere on the screen to close the attendance widget.
Check out
---------
If the user is checking out for the first time, :guilabel:`Since XX:XX (AM/PM)` appears at the top
If the user is checking out for the first time, :guilabel:`Since HH:MM (AM/PM)` appears at the top
of the widget, with the time the user checked in populating the time field. Beneath that line,
:guilabel:`XX:XX` is displayed, indicating the hours and minutes that have elapsed since checking
:guilabel:`HH:MM` is displayed, indicating the hours and minutes that have elapsed since checking
in. As time passes, this value is updated to reflect the hours and minutes that have passed since
the user checked in.
If the user has previously checked in and out, additional fields are presented. A :guilabel:`Before
XX:XX (AM/PM)` field appears in addition to the :guilabel:`Since XX:XX (AM/PM)` field. The time
HH:MM (AM/PM)` field appears in addition to the :guilabel:`Since HH:MM (AM/PM)` field. The time
displayed in both of these fields are populated with the most recent check in time, and will match.
Beneath the :guilabel:`Before XX:XX (AM/PM)` field, the previously logged hours are displayed, in an
:guilabel:`XX:XX` (hours:minutes) format.
Beneath the :guilabel:`Before HH:MM (AM/PM)` field, the previously logged hours are displayed, in an
:guilabel:`HH:MM` (hours:minutes) format.
In addition, beneath both of these fields, a :guilabel:`Total today` field appears. This field is
the sum of both the :guilabel:`Before XX:XX (AM/PM)` and :guilabel:`Since XX:XX (AM/PM)` fields, and
the sum of both the :guilabel:`Before HH:MM (AM/PM)` and :guilabel:`Since HH:MM (AM/PM)` fields, and
is the total time that will be logged for the user, if they were to log out at that moment.
As time passes, both the :guilabel:`Since XX:XX (AM/PM)` and :guilabel:`Total today` fields are
updated live. To check out, click the yellow :guilabel:`Check out ->` button. The attendance widget
As time passes, both the :guilabel:`Since HH:MM (AM/PM)` and :guilabel:`Total today` fields are
updated live. To check out, click the yellow :guilabel:`Check out ➡️` button. The attendance widget
updates again, displaying the :guilabel:`Total today` field with the logged time, and the yellow
:guilabel:`Check out ->` button changes to a green :guilabel:`Check in ->` button.
:guilabel:`Check out ➡️` button changes to a green :guilabel:`Check in ➡️` button.
When the user checks out from the database, the *Attendances* app logs the location details for the
user. This information is **only** logged if the user allows their computer to access this
information.
.. image:: attendances/check-in-database-message.png
:align: center
@@ -221,7 +244,9 @@ updates again, displaying the :guilabel:`Total today` field with the logged time
out, the information is stored and appears on the dashboard, including check ins and check outs
with no time value.
Kiosk Mode
.. _attendances/kiosk-mode-entry:
Kiosk mode
==========
Some companies may opt to use a dedicated device (a laptop or desktop PC, a tablet, or a mobile
@@ -229,12 +254,12 @@ phone) for employees to check in and check out from. Kiosk mode is used for thes
.. important::
If users check in and out using either a badge or an RFID, then an accessible device in kiosk
mode **must** be available in order to check in and check out using these two methods.
mode **must** be available to check in and check out using these two methods.
Entering kiosk mode is only available for users with specific :ref:`access rights
<attendances/access-rights>`.
There are three ways that kiosk mode can be activated:
Kiosk mode can be activated in three different ways:
#. Navigate to the :guilabel:`Attendances` application, and click :guilabel:`Kiosk Mode` in the top
menu. The device then enters kiosk mode.
@@ -252,9 +277,9 @@ There are three ways that kiosk mode can be activated:
:alt: The Attendances Kiosk URL field in the settings section of the Attendances application.
As a security measure, once a device is in kiosk mode, it is not possible to exit kiosk mode and go
back into the database without singing back in. To exit kiosk mode, click the back button in the web
browser. This logs the user out of the database, and returns to the main log in screen. This
prevents anyone from accessing the database, adding another layer of security.
back into the database without signing back in. To exit kiosk mode, click the back button in the web
browser. This logs the user out of the database, and returns to the main log in screen. This adds an
extra layer of security, preventing anyone from accessing the database.
Badge
-----
@@ -294,7 +319,7 @@ ways to quickly find a specific person:
- :guilabel:`Department`: to quickly filter the presented employees, tap on a department to display
only those employees that are part of that department. The :guilabel:`Departments` are listed on
the left side of the screen, and the number at the end of each department indicates how many
employees are part of the department, and will be displayed when selected.
employees are part of the department, and is displayed when selected.
PIN
~~~
@@ -322,7 +347,7 @@ Confirmation message
When an employee checks in or out, a confirmation message appears with all the check in or check out
information. When checking in, a welcome message appears, as well as the date and time of check in.
An :guilabel:`Hours Previously Today: XX:XX` field also appears, displaying any time already logged
An :guilabel:`Hours Previously Today: HH:MM` field also appears, displaying any time already logged
for that employee for the day. If no time has already been logged, the value displayed is `00:00`.
Beneath the message is an :guilabel:`OK` button. To exit the screen before the preset time in the
kiosk, tap the :guilabel:`OK` button.
@@ -353,12 +378,12 @@ the :guilabel:`Gantt` button, located next to the :guilabel:`List` button.
The default view presents the current day's information. To present the information for the
:guilabel:`Week`, :guilabel:`Month`, or :guilabel:`Year`, click on the :guilabel:`Day` button to
reveal a drop-down, displaying those other options. Select the desired view, and the dashboard will
update, presenting the selected information. To change the :guilabel:`Day`, :guilabel:`Week`,
:guilabel:`Month`, or :guilabel:`Year` presented, click the left or right :guilabel:`arrow` buttons
on either side of the drop-down button. To jump back to a view containing the current day, click the
:guilabel:`Today` button. The refreshed the dashboard, presenting information containing the current
day's information.
reveal a drop-down, displaying those other options. Select the desired view, and the dashboard
updates, presenting the selected information. To change the :guilabel:`Day`, :guilabel:`Week`,
:guilabel:`Month`, or :guilabel:`Year` presented, click the :guilabel:`← (left arrow)` or
:guilabel:`→ (right arrow)` buttons on either side of the drop-down menu. To jump back to a view
containing the current day, click the :guilabel:`Today` button. This refreshes the dashboard,
presenting information containing the current day's information.
In the :guilabel:`Day` view, the column for the current hour is highlighted in yellow. If the
:guilabel:`Week` or :guilabel:`Month` view is selected, the column for the current day is
@@ -375,13 +400,14 @@ proper :ref:`access rights <attendances/access-rights>` and/or are :ref:`approve
.. _attendances/filters-groups:
Filters and Groups
Filters and groups
------------------
To filter the results in the dashboard or to present different groups of information, click the
drop-down button in the :guilabel:`Search` bar above the dashboard, then select one of the available
:guilabel:`Filters` or :guilabel:`Group By` options. There are several pre-configured filters and
groups to choose from, as well as an option to create custom ones.
To filter the results in the overview dashboard, or to present different groups of information,
click the :guilabel:`🔻 (triangle drop down)` button in the right side of the :guilabel:`Search` bar
above the dashboard, and select one of the available :guilabel:`Filters` or :guilabel:`Group By`
options. There are several pre-configured filters and groups to choose from, as well as an option to
create custom ones.
Filters
~~~~~~~
@@ -419,11 +445,61 @@ The default groups that can be selected are:
.. _attendances/errors:
Attendance log details
----------------------
Odoo captures various time and location details when a user checks in and out. The specific details
provided are determined by the method the user checked in and out.
To view the specific check in and/or check out details for an employee, click on an individual entry
in the overview dashboard.
A detailed attendance log for the user appears in a pop-up window. To close the detailed attendance
log, click the :guilabel:`Save & Close` button in the bottom-left corner of the form.
The detailed attendance log contains the following information:
Main details
~~~~~~~~~~~~
- :guilabel:`Employee`: the name of the employee.
- :guilabel:`Check In`: the date and time the employee checked in.
- :guilabel:`Check Out`: the date and time the employee checked out. This only appears if the
employee has checked out.
- :guilabel:`Worked Hours`: the total amount of time the employee logged for the day, in an hour and
minute format (HH:MM). This value calculates all the checks in and check outs for the day, if the
employee checked in and out multiple times.
- :guilabel:`Extra Hours`: any extra hours the employee logged that is beyond their expected working
hours.
Check in/check out details
~~~~~~~~~~~~~~~~~~~~~~~~~~
The following information appears for both the :guilabel:`Check In` and :guilabel:`Check Out`
sections.
- :guilabel:`Mode`: the method with which the attendance information was gathered.
:guilabel:`Systray` is displayed if the employee logged in and out :ref:`directly from the
database <attendances/check-in>`, :guilabel:`Manual` is displayed if the employee logged in and
out :ref:`using an attendance kiosk <attendances/kiosk-mode-entry>`.
- :guilabel:`IP Address`: the IP address for the computer the employee used to log in or out.
- :guilabel:`Browser`: the web browser the employee used to log in or out.
- :guilabel:`Localization`: the city and country associated with the computer's IP address.
- :guilabel:`GPS Coordinates`: the specific coordinates when the user logged in or out. To view the
specific coordinates on a map, click the :guilabel:`→ View on Maps` button beneath the
:guilabel:`GPS Coordinates`. This opens a map in a new browser tab, with the specific location
pointed out.
.. image:: attendances/details.png
:align: center
:alt: The detailed information for an attendance entry.
Errors
------
Entries that contain an error appear on the dashboard in red. In the :guilabel:`Gantt view`, the
entry appears with a red background. If in the :guilabel:`List view`, the entry text appears in red.
Entries that contain an error appear on the overview dashboard in red. In the :guilabel:`Gantt
view`, the entry appears with a red background. If in the :guilabel:`List view`, the entry text
appears in red.
An error typically occurs when an employee has checked in but has not checked out within the last
24 hours, or when an employee has a check in and check out period spanning over 16 hours.
Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Some files were not shown because too many files have changed in this diff Show More