Compare commits

...

50 Commits

Author SHA1 Message Date
gmz-odoo 37bd21ba00 l10n_pe update 2523 - GrossWeightMeasure Error.rst
Typo
2024-10-14 17:36:56 -07:00
Felicious 9368181d04 [REF] inventory: resupply warehouses
closes odoo/documentation#11195

X-original-commit: ef367bd442
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
2024-10-12 00:07:43 +00:00
Felicious d87271002b [IMP] inventory: fix typos in shipping table
closes odoo/documentation#11185

X-original-commit: e41e3c7ba0
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
2024-10-11 18:36:35 +00:00
larm-odoo 783ab8f2c0 [ADD] Payroll: Work entry analysis report
closes odoo/documentation#11181

X-original-commit: 34814984ec
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-10-11 14:12:17 +00:00
Odoo's Mergebot da0360cdd5 [FW][ADD] odoo.sh: new ci token usage
closes odoo/documentation#11190

Forward-port-of: odoo/documentation#11172
Signed-off-by: Fabien Meghazi (fme) <fme@odoo.com>
Signed-off-by: Stanislas Sobieski (sts) <sts@odoo.com>
Co-authored-by: Fabien Meghazi <fme@odoo.com>
Co-authored-by: Stanislas Sobieski <sts@odoo.com>
2024-10-11 12:51:43 +00:00
Demesmaeker e17d6d7689 [ADD] payment_providers/worldline
task-3499275

New payment provider and its related configuration; remove Ogone and SIPS payments providers as they were replaced by Wordline.

closes odoo/documentation#11173

X-original-commit: da682b7f22
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-10-10 12:18:16 +00:00
Donatienne (dopi) e174fa9e3e [IMP] ecommerce: products page updated
closes odoo/documentation#11165

Taskid: 4056328
X-original-commit: 1c5bf1337e
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-10-10 06:11:28 +00:00
Ricardo Gomes Rodrigues 3d2422b3bd [IMP] accounting: split deferred settings
This has been done in https://github.com/odoo/enterprise/commit/39fffc5541eb51d7a3ae25405abe90fe6031001a

closes odoo/documentation#11163

X-original-commit: ac69e2872c
Signed-off-by: Ricardo Gomes Rodrigues (rigr) <rigr@odoo.com>
2024-10-09 13:23:06 +00:00
dikd-odoo d7eb8f014b [IMP] calendar: expand parent documentation
[ADD] expand parent calendar documentation

[FIX] formatting changes

[FIX] formatting changes

[FIX] content changes

Apply suggestions from KAEK review

[FIX] KAEK review edits

[FIX] resize images

Apply suggestions from KSC review

[FIX] content from KSC review

[FIX] revisions KSC review

[FIX] formatting

newline

formatting

Apply suggestions from KSC review

[FIX] Content change

[FIX] Content changes

Apply suggestions from KSC review

Apply suggestions from SALI review

Apply suggestions from SALI review2

content changes

format

Apply suggestions from SALI review

content

content

closes odoo/documentation#11133

X-original-commit: 721c07d341
Signed-off-by: Dina Klarisse Dugar (dikd) <dikd@odoo.com>
Co-authored-by: kekiss <karaekiss@yahoo.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: 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>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-10-08 16:57:49 +00:00
xpl-odoo 9a2921ba52 [IMP] administration: on-premise publisher warranty URL
task-4226945

closes odoo/documentation#11155

X-original-commit: 544e2c18d0
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-10-07 17:10:50 +00:00
Tiffany Chang (tic) c42963cda9 [I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

Also update the tx/config to point to v18 project

closes odoo/documentation#11149

X-original-commit: d21d77b181
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2024-10-07 14:42:49 +00:00
Felicious 38ce2431e5 [ADD] purchase: import vendor pricelist
closes odoo/documentation#11142

X-original-commit: 3b69030302
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: kekiss <karaekiss@yahoo.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-10-04 21:22:31 +00:00
larm-odoo 5c43477540 [IMP] Appraisals: Skills Report - highest improvement
closes odoo/documentation#11137

X-original-commit: 6c843244eb
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-10-04 19:37:34 +00:00
Felicious e56cfe5e48 [ADD] inventory: valuation by lots
closes odoo/documentation#10858

Signed-off-by: Felicia Kuan (feku) <feku@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-10-04 19:37:33 +00:00
Antoine Vandevenne (anv) 5627bea8aa [IMP] supported_versions: release 18.0
closes odoo/documentation#11126

X-original-commit: a0472c95e5
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-10-01 12:07:13 +00:00
Pierre Pulinckx (PIPU) 3f048e7997 [FW][IMP] developer/testing: update tours documentation
The towers interface was modified during version 17. Therefore, in this commit, we update the documentation of this interface.

closes odoo/documentation#11117

Forward-port-of: odoo/documentation#11116
Signed-off-by: Victor Feyens (vfe) <vfe@odoo.com>
2024-09-30 15:13:24 +00:00
afma-odoo a13bf9b24f [IMP] accounting: pdf menu to export reports
task-3605633

closes odoo/documentation#11114

X-original-commit: 380c4bc10f
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Anne-Françoise Marcq (afma) <afma@odoo.com>
2024-09-29 19:51:54 +00:00
masp-odoo 615d282910 [FIX] website: recaptcha threshold number
task-4145451

closes odoo/documentation#11108

X-original-commit: 0aa1a671dd
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Marion Spindler (masp) <masp@odoo.com>
2024-09-26 22:58:38 +00:00
larm-odoo f820f189a2 [ADD] Appraisals: Skills Evolution reporting
closes odoo/documentation#11102

X-original-commit: 1e39d90420
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-09-25 20:43:42 +00:00
larm-odoo 1d17ceda3c [ADD] Employees: Certifications
closes odoo/documentation#11101

X-original-commit: 14007868bb
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-09-25 20:43:41 +00:00
larm-odoo 4b5b008063 [ADD] Employees: Employee retention report
closes odoo/documentation#11094

X-original-commit: 43d99f8070
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-09-25 20:43:39 +00:00
Tiffany Chang (tic) ba3ba3c93b [I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#11087

X-original-commit: b9338949e9
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2024-09-25 09:21:33 +00:00
Aaron Bohy 5765edca11 [IMP] reference/user_interface: rework kanban documentation
Following the new kanban API with `card` template.

Task~3992107

closes odoo/documentation#11081

Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2024-09-25 08:09:21 +00:00
Sam Lieber (sali) 78225635f4 [IMP] l10n_us: blank checks
closes odoo/documentation#11062

X-original-commit: b5c962699f
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
2024-09-24 21:32:32 +00:00
larm-odoo c2e60da73d [ADD] Employees: Offboarding an employee
closes odoo/documentation#11076

X-original-commit: 7d075de97a
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-09-23 20:45:52 +00:00
larm-odoo 5144c006ef [ADD] Appraisals: Appraisal Analysis reporting
closes odoo/documentation#11077

X-original-commit: 85e04b2723
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-09-23 20:45:43 +00:00
Loredana Perazzo 4df1b8ec7a [IMP] POS: add information about POS categories
task-3984698

Still have to come back in 16 (restrict and start categories) and
saas-17.4 (point of sale tab in product form)

closes odoo/documentation#11013

X-original-commit: 2e14d134c6
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-09-21 08:24:58 +00:00
Victor Piryns (pivi) 840a739396 [REM] developer/performance: remove mentions to the populate tool
closes odoo/documentation#11034

Related: odoo/odoo#180318
Related: odoo/enterprise#70095
Signed-off-by: Piryns Victor (pivi) <pivi@odoo.com>
Co-authored-by: Aurelienvd <avd@odoo.com>
2024-09-21 00:13:24 +00:00
Julian Roussieau 3692e684c4 [ADD] odoo.sh: a new role tester is added.
Before odoo.sh had two types of role, `user` and `admin`. A third role, `tester`,
was added between the two, and the user role was renamed `developer`.

closes odoo/documentation#11061

X-original-commit: f53cdc64cb
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-09-20 22:55:38 +00:00
Loredana Perazzo 7e60e64125 [IMP] l10n: add 17.0 blackbox certif in table
task-4131387

closes odoo/documentation#11018

X-original-commit: 7b841f6eee
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-09-20 11:36:04 +00:00
Florian Damhaut d35306daca [IMP] reference/actions: update doc to reflect new behaviour
Improve the doc regarding Scheduled Actions.

closes odoo/documentation#11043

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-09-19 15:19:12 +00:00
afma-odoo 8e23bc4ccb [IMP] accounting: cash register page in POS
task-3721929
task-3890538

closes odoo/documentation#11055

X-original-commit: 5b6531a68d
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Anne-Françoise Marcq (afma) <afma@odoo.com>
2024-09-19 15:19:07 +00:00
afma-odoo ff86bf4e67 [IMP] accounting: update reporting page and screenshots
task-3605633
task-3562956

closes odoo/documentation#11052

X-original-commit: 5bb9c1fcc2
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Anne-Françoise Marcq (afma) <afma@odoo.com>
2024-09-19 12:30:24 +00:00
Lina (liew) 8c80d01693 [IMP] sales,finance/payment_providers: delete ebay_connector and alipay
Ebay Connector and Alipay have been deleted

See Also:
- odoo/odoo#180352
- odoo/enterprise#70109
- odoo/upgrade#6514

task-4185344

closes odoo/documentation#11036

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-09-18 19:38:59 +00:00
larm-odoo 0d4ae20ed8 [FW][ADD] Recruitment: Team performance reporting
closes odoo/documentation#11026

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-09-17 05:12:46 +00:00
Lara Martini (larm) b46e7c8ef0 [IMP] Time Off: added example for based on work time
closes odoo/documentation#10996

X-original-commit: 4b1ebb71c0
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-09-17 05:12:29 +00:00
larm-odoo 8c895b05e4 [ADD] Referrals: reporting doc with use case
closes odoo/documentation#11033

X-original-commit: db78ddcdf9
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-09-16 20:55:20 +00:00
Sam Lieber (sali) 884c0b0c57 [ADD] accounting/l10n_ca: canada accounting
closes odoo/documentation#11029

X-original-commit: b752040eb0
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-09-16 18:54:18 +00:00
Audrey (auva) 279527cb73 [IMP] contributing/documentation: update documentation guidelines
task-3709518

closes odoo/documentation#11023

X-original-commit: 9225abb13f
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-09-16 17:01:20 +00:00
Krzysztof Magusiak (krma) c6208a51ef [IMP] core: Environment._ for translations
odoo/odoo#174844

closes odoo/documentation#10421

Related: odoo/enterprise#67528
Signed-off-by: Krzysztof Magusiak (krma) <krma@odoo.com>
2024-09-15 15:44:18 +00:00
Raphael Collet 16c6c0f492 [IMP] *: adapt to the new check_access API
closes odoo/documentation#10991

Related: odoo/odoo#179148
Related: odoo/enterprise#69425
Signed-off-by: Raphael Collet <rco@odoo.com>
2024-09-14 11:26:54 +00:00
tong-odoo ca39c79dfe [ADD] POS: point of sale qr code payment
task-4169629

closes odoo/documentation#11006

X-original-commit: 4393e08731
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-09-14 10:19:07 +00:00
Lara Martini (larm) 196361f8ae [ADD] Recruitment: time in stage analysis
closes odoo/documentation#11002

X-original-commit: 03839a5b11
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-09-14 05:09:52 +00:00
Loredana Perazzo a5cfacc973 [IMP] POS: move title from page A to page B in restaurant
task-3617680

closes odoo/documentation#10982

X-original-commit: fc71b2df57
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
2024-09-13 15:33:57 +00:00
John Holton (hojo) cab5ad8532 [ADD] Inventory: product catalog
closes odoo/documentation#10998

X-original-commit: 4f2402aec4
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-09-13 14:22:15 +00:00
Sven Fuehr e7b777bebd [IMP] accounting: inalterability update
To avoid confusion between lock dates and "locking" with hash
we now speak of "securing" (with hash) instead.

In the related community PR we introduce new inalterability features.
  * On account move form view:
    * An indicator next to the 'posted' state whether a move is hashed or not.
    * A checkbox "Secured" in the "Other Info" tab for the same reason.
  * A "Not Secured" filter for account move list views (and account
    move line list views) to find moves (and move lines) that are posted but not hashed.
  * A new wizard to hash all journals (independent of journal settings).

They are invisible by default; the wizard is visible in debug mode.

They can be made visible for a user by activating a special user group
(similar to multi-currency).
This happens automatically for all users in case the "Hash on Post"
option is activated on any journal or the new wizard is used to secure moves.

This commit updates the documentation accordingly.

The inalterability report pictures and description are updated.
I.e. it now checks all journals independent of whether they are restricted ("Hash on Post") or not.
This is since the wizard can be used to hash any journal.

task-4095970

closes odoo/documentation#10906

Related: odoo/odoo#178915
Related: odoo/enterprise#69324
Related: odoo/upgrade#6458
Signed-off-by: Sven Führ (svfu) <svfu@odoo.com>
2024-09-12 05:37:29 +00:00
Sven Fuehr 707b5842cb [IMP] accounting: back to hash journal entries on post
In the related community PR we move from hash on send (back) to hash on post
See community PR.

This commit adapts related documentation.

task-4095970

Part-of: odoo/documentation#10906
Related: odoo/odoo#178915
Related: odoo/enterprise#69324
Related: odoo/upgrade#6458
Signed-off-by: Sven Führ (svfu) <svfu@odoo.com>
2024-09-12 05:37:29 +00:00
Parish Bracha abdb31b852 [IMP] Subscriptions: Report format update
closes odoo/documentation#10938

X-original-commit: 31972238cc
Signed-off-by: Parish Bracha (pabr) <pabr@odoo.com>
2024-09-10 18:51:30 +00:00
Audrey (auva) 769793b56c [IMP] payment_providers: PCI DSS compliance, payment methods on portal
task-4042449
task-2949379

closes odoo/documentation#10989

X-original-commit: d8b827cda4
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-09-10 17:11:34 +00:00
Gorash f8a114b334 [IMP] all: replace <tree> in <list>
Remove historical error from semantically incorrect <tree>.

Viewtiverse
task-3599136
task-27709
task-3414068

closes odoo/documentation#8446

Related: odoo/odoo#159909
Related: odoo/enterprise#59787
Related: odoo/upgrade#5884
Signed-off-by: Christophe Matthieu (chm) <chm@odoo.com>
2024-09-10 06:01:21 +00:00
254 changed files with 15680 additions and 11674 deletions
+15 -15
View File
@@ -1,7 +1,7 @@
[main]
host = https://www.transifex.com
[o:odoo:p:odoo-17-doc:r:administration]
[o:odoo:p:odoo-18-doc:r:administration]
file_filter = locale/<lang>/LC_MESSAGES/administration.po
source_file = locale/sources/administration.pot
type = POT
@@ -11,7 +11,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:applications]
[o:odoo:p:odoo-18-doc:r:applications]
file_filter = locale/<lang>/LC_MESSAGES/applications.po
source_file = locale/sources/applications.pot
type = POT
@@ -21,7 +21,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:essentials]
[o:odoo:p:odoo-18-doc:r:essentials]
file_filter = locale/<lang>/LC_MESSAGES/essentials.po
source_file = locale/sources/essentials.pot
type = POT
@@ -31,7 +31,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:finance]
[o:odoo:p:odoo-18-doc:r:finance]
file_filter = locale/<lang>/LC_MESSAGES/finance.po
source_file = locale/sources/finance.pot
type = POT
@@ -41,7 +41,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:general]
[o:odoo:p:odoo-18-doc:r:general]
file_filter = locale/<lang>/LC_MESSAGES/general.po
source_file = locale/sources/general.pot
type = POT
@@ -51,7 +51,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:hr]
[o:odoo:p:odoo-18-doc:r:hr]
file_filter = locale/<lang>/LC_MESSAGES/hr.po
source_file = locale/sources/hr.pot
type = POT
@@ -61,7 +61,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:index]
[o:odoo:p:odoo-18-doc:r:index]
file_filter = locale/<lang>/LC_MESSAGES/index.po
source_file = locale/sources/index.pot
type = POT
@@ -71,7 +71,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:inventory_and_mrp]
[o:odoo:p:odoo-18-doc:r:inventory_and_mrp]
file_filter = locale/<lang>/LC_MESSAGES/inventory_and_mrp.po
source_file = locale/sources/inventory_and_mrp.pot
type = POT
@@ -81,7 +81,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:marketing]
[o:odoo:p:odoo-18-doc:r:marketing]
file_filter = locale/<lang>/LC_MESSAGES/marketing.po
source_file = locale/sources/marketing.pot
type = POT
@@ -91,7 +91,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:productivity]
[o:odoo:p:odoo-18-doc:r:productivity]
file_filter = locale/<lang>/LC_MESSAGES/productivity.po
source_file = locale/sources/productivity.pot
type = POT
@@ -101,7 +101,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:sales]
[o:odoo:p:odoo-18-doc:r:sales]
file_filter = locale/<lang>/LC_MESSAGES/sales.po
source_file = locale/sources/sales.pot
type = POT
@@ -111,7 +111,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:services]
[o:odoo:p:odoo-18-doc:r:services]
file_filter = locale/<lang>/LC_MESSAGES/services.po
source_file = locale/sources/services.pot
type = POT
@@ -121,7 +121,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:user_settings]
[o:odoo:p:odoo-18-doc:r:user_settings]
file_filter = locale/<lang>/LC_MESSAGES/settings.po
source_file = locale/sources/settings.pot
type = POT
@@ -131,7 +131,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:studio]
[o:odoo:p:odoo-18-doc:r:studio]
file_filter = locale/<lang>/LC_MESSAGES/studio.po
source_file = locale/sources/studio.pot
type = POT
@@ -141,7 +141,7 @@ replace_edited_strings = false
keep_translations = false
source_lang = en
[o:odoo:p:odoo-17-doc:r:websites]
[o:odoo:p:odoo-18-doc:r:websites]
file_filter = locale/<lang>/LC_MESSAGES/websites.po
source_file = locale/sources/websites.pot
type = POT
+1 -7
View File
@@ -231,18 +231,12 @@ sphinx.transforms.i18n.docname_to_domain = (
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
versions_names = {
'master': "Master",
'18.0': "Odoo 18",
'saas-17.4': "Odoo Online",
'saas-17.2': "Odoo Online",
'saas-17.1': "Odoo Online",
'17.0': "Odoo 17",
'saas-16.4': "Odoo Online",
'saas-16.3': "Odoo Online",
'saas-16.2': "Odoo Online",
'saas-16.1': "Odoo Online",
'16.0': "Odoo 16",
'saas-15.2': "Odoo Online",
'15.0': "Odoo 15",
'14.0': "Odoo 14",
}
# The language names that should be shown in the language switcher, if the config option `languages`
@@ -33,17 +33,17 @@ Manage the Github users who can access your project.
.. image:: settings/interface-settings-collaborators.png
:align: center
There are two levels of users:
There are three levels of users:
* Admin: has access to all features of Odoo.sh.
* User: does not have access to the project settings nor to the production and staging databases.
- :guilabel:`Admin`: has access to all features of an Odoo.sh project.
The user group is meant for developers who can make modifications in your code but are not allowed
to access the production data. Users of this group cannot connect to the production and staging
databases using the *1-click connect* feature, but they can of course use their regular account on
these databases if they have one, using their regular credentials.
- :guilabel:`Tester`: has access to the *Staging* and *Development* databases and their tooling.
This role is for users conducting User Acceptance Tests. Testers can work with copies of
production data but cannot access the production database through the Odoo.sh tooling.
In addition, they cannot use the webshell nor have access to the server logs.
- :guilabel:`Developer`: has access only to the *Development* databases and their tooling. This
role is for developers who propose code modifications but are not allowed to access production
and staging databases through the Odoo.sh tooling.
.. list-table::
:header-rows: 1
@@ -51,83 +51,145 @@ In addition, they cannot use the webshell nor have access to the server logs.
* -
-
- User
- Developer
- Tester
- Admin
* - Development
- History
- |green|
- |green|
- |green|
* -
- 1-click connect
- |green|
- |green|
- |green|
* -
- Logs
- |green|
- |green|
- |green|
* -
- Shell/SSH
- |green|
- |green|
- |green|
* -
- Mails
- |green|
- |green|
* -
- Upgrade
- |green|
- |green|
* -
- Settings
- |green|
- |green|
* - Production & Staging
- |green|
* - Staging
- History
- |green|
- |green|
- |green|
* -
- 1-click connect
-
- |green|
- |green|
* -
- Logs
-
- |green|
- |green|
* -
- Shell/SSH
-
- |green|
- |green|
* -
- Mails
-
- |green|
- |green|
* -
- Monitoring
-
- |green|
- |green|
* -
- Backups
-
-
- |green|
* -
- Upgrade
-
- |green|
- |green|
* -
- Settings
- |green|\*
-
- |green|
- |green|
* - Production
- History
- |green|
- |green|
- |green|
* -
- 1-click connect
-
-
- |green|
* -
- Logs
-
-
- |green|
* -
- Shell/SSH
-
-
- |green|
* -
- Mails
-
-
- |green|
* -
- Monitoring
-
-
- |green|
* -
- Backups
-
-
- |green|
* -
- Upgrade
-
-
- |green|
* -
- Settings
-
-
- |green|
* - Status
-
- |green|
- |green|
- |green|
* - Settings
-
-
-
- |green|
.. note::
\* Only in staging branches
.. warning::
Those roles only apply to the usage of Odoo.sh. It is important to reflect the user roles
attribution within the repository on GitHub. Please refer to the GitHub documentation section on
`Managing a branch protection rule <https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/managing-protected-branches/managing-a-branch-protection-rule>`_
for detailed guidance.
.. |green| raw:: html
@@ -149,15 +211,32 @@ Allow public access to your development builds.
.. image:: settings/interface-settings-public.png
:align: center
If activated, this option exposes the Builds page publicly, allowing visitors to connect to your
development builds.
In addition, visitors have access to the logs, shell and mails of your development builds.
If activated, this option exposes the Builds page publicly, allowing visitors to view logs of development builds.
Production and staging builds are excluded, visitors can only see their status.
.. _odoosh-gettingstarted-settings-modules-installation:
GitHub commit statuses
======================
This option enables Odoo.sh to push commit statuses to your GitHub repository when a build is
created or updated. It requires a GitHub token with permissions to push commit statuses to the
repository. Refer to `GitHub's documentation on personal access tokens <https://docs.github.com/en/authentication/keeping-your-account-and-data-secure/managing-your-personal-access-tokens>`_
for instructions to create yours.
.. note::
GitHub's **fine-grained personal tokens** have an expiration date and will be disabled if they
fail to update the commit status. You can replace the token at any time on Odoo.sh.
The commit statuses pushed to GitHub can have the following contexts:
- :guilabel:`ci/odoo.sh (dev)`: status of a development build
- :guilabel:`ci/odoo.sh (staging)`: status of a staging build
- :guilabel:`ci/odoo.sh (production)`: status of a production build
- :guilabel:`ci/odoo.sh (test_ci)`: testing the token from the Settings page will push a test
status on the last commit of your repository
Custom domains
==============
+2 -2
View File
@@ -61,8 +61,8 @@ To resolve the issue:
your **network and firewall settings** allow the Odoo server to open outgoing connections
towards:
- `services.odoo.com` on port `443` (or `80`)
- for older deployments, `services.openerp.com` on port `443` (or `80`)
- Odoo 18.0 and above: `services.odoo.com` on port `443` (or `80`)
- Odoo 17.0 and below: `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.
+15 -21
View File
@@ -31,24 +31,24 @@ This matrix shows the support status of every version.
- On-Premise
- Release date
- End of support
* - Odoo saas~17.4
* - **Odoo 18.0**
- |green|
- |green|
- |green|
- October 2024
- October 2027 (planned)
* - Odoo SaaS 17.4
- |green|
- N/A
- N/A
- July 2024
-
* - Odoo saas~17.2
* - Odoo SaaS 17.2
- |green|
- N/A
- N/A
- April 2024
-
* - Odoo saas~17.1
- |green|
- N/A
- N/A
- January 2024
-
* - **Odoo 17.0**
- |green|
- |green|
@@ -60,31 +60,25 @@ This matrix shows the support status of every version.
- |green|
- |green|
- October 2022
- November 2025 (planned)
- October 2025 (planned)
* - **Odoo 15.0**
- |green|
- |green|
- |green|
- |red|
- |red|
- |red|
- October 2021
- November 2024 (planned)
- October 2024
* - **Odoo 14.0**
- |red|
- |red|
- |red|
- October 2020
- November 2023
* - **Odoo 13.0**
- |red|
- |red|
- |red|
- October 2019
- October 2022
* - Older versions
- |red|
- |red|
- |red|
- Before 2019
- Before 2022
- Before 2020
- Before 2023
.. admonition:: Legend
@@ -193,4 +193,3 @@ Payments` tab. To display the outstanding accounts column, click on the toggle b
bank/reconciliation
bank/reconciliation_models
bank/foreign_currency
bank/cash_register
@@ -1,56 +0,0 @@
=============
Cash register
=============
The cash register is a journal to register receivings and payments transactions.
It calculates the total money in and out, computing the total balance.
Configuration
=============
.. image:: cash_register/journal.png
:align: center
1. Configure the Cash journal in :menuselection:`Accounting --> Configuration -->
Journals`.
2. In the tab Journal Entries, the Default Debit and Credit Account can be
configured as well as the currency of the journal
Usage
=====
How to register cash payments?
------------------------------
To register a cash payment specific to another customer, you should follow
these steps:
1. Go to :menuselection:`Accounting --> Dashboard --> Cash --> Register
Transactions`
2. Fill in the start and ending balance
3. Register the transactions, specifying the customers linked to the transaction
Put money in
------------
Put money in is used to placed your cash manually before starting your
transactions. From the Register Transactions window, go to :menuselection:`More
--> Put money in`
.. image:: cash_register/put-money-in.png
:align: center
Take money out
--------------
Take money out is used to collect/get yor your cash manually after
ending all your transactions. From the Register Transaction windows, go to :menuselection:`More
--> Take money out`
.. image:: cash_register/put-money-out.png
:align: center
The transactions will be added to the current cash payment registration.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

@@ -33,18 +33,16 @@ Make sure the default settings are correctly configured for your business. To do
Journal
The deferral entries are posted in this journal.
Deferred Expense Account
Expenses are deferred on this Current Asset account until they are recognized.
Deferred Revenue Account
Deferred Revenue
Revenues are deferred on this Current Liability account until they are recognized.
Generate Entries
By default, Odoo :ref:`automatically generates <customer_invoices/deferred/generate_on_validation>`
the deferral entries when you post a customer invoice. However, you can also choose to
:ref:`generate them manually <customer_invoices/deferred/generate_manually>` by selecting the
:guilabel:`Manually & Grouped` option instead.
Amount Computation
Suppose an invoice of $1200 must be deferred over 12 months. The :guilabel:`Equal per month`
computation accounts for $100 each month, while the :guilabel:`Based on days` computation
Based on
Suppose an invoice of $1200 must be deferred over 12 months. The :guilabel:`Months`
computation accounts for $100 each month, while the :guilabel:`Days` computation
accounts for different amounts depending on the number of days in each month.
.. _customer_invoices/deferred/generate_on_validation:
@@ -4,157 +4,130 @@
Reporting
=========
Main reports available
======================
Odoo includes **generic** and **dynamic** reports available for all countries, regardless of the
:doc:`localization package <../../finance/fiscal_localizations>` installed:
Besides the reports created specifically in each localisation module, a
few very useful **generic** and **dynamic reports** are available for all
countries :
- :ref:`accounting/reporting/balance-sheet`
- :ref:`accounting/reporting/profit-and-loss`
- :ref:`accounting/reporting/executive-summary`
- :ref:`accounting/reporting/general-ledger`
- :ref:`accounting/reporting/aged-receivable`
- :ref:`accounting/reporting/aged-payable`
- :ref:`accounting/reporting/cash-flow-statement`
- :ref:`accounting/reporting/tax-report`
- **Balance Sheet**
- **Profit and Loss**
- **Executive Summary**
- **General Ledger**
- **Aged Payable**
- **Aged Receivable**
- **Cash Flow Statement**
- **Tax Report**
- **Bank Reconciliation**
To expand the lines of a report and view its details, click the :icon:`fa-caret-right`
(:guilabel:`right arrow`) on the left. Then click the :icon:`fa-caret-down` (:guilabel:`down arrow`)
to the right of the account, journal entry, payment, invoice, etc. to :guilabel:`Annotate` and view
the details.
You can annotate every reports to print them and report to your adviser.
Export to xls to manage extra analysis. Drill down in the reports to see
more details (payments, invoices, journal items, etc.).
.. image:: reporting/reporting-annotate.png
:alt: Annotate reports.
You can also compare values with another period. Choose how many periods
you want to compare the chosen time period with. You can choose up to 12
periods back from the date of the report if you don't want to use the
default **Previous 1 Period** option.
To export reports in PDF or XLSX format, click :guilabel:`PDF` at the top or click the
:icon:`fa-caret-down` (:guilabel:`down arrow`) icon next to the :guilabel:`PDF` button and
select :guilabel:`XLSX`.
.. _reporting/balance-sheet:
To compare values across periods, click the :guilabel:`Comparison` menu and select the periods you
want to compare.
Balance Sheet
-------------
The **Balance Sheet** shows a snapshot of the assets, liabilities and equity
of your organisation as at a particular date.
.. image:: reporting/main_reports09.png
.. image:: reporting/reporting-comparison.png
:alt: Comparison menu to compare time periods.
.. _accounting/reporting/balance-sheet:
Balance Sheet
=============
The :guilabel:`Balance Sheet` shows a snapshot of your organization's assets, liabilities, and
equity at a particular date.
.. _accounting/reporting/profit-and-loss:
Profit and Loss
---------------
===============
The **Profit and Loss** report (or **Income Statement**) shows your
organisation's net income, by deducting expenses from revenue for the
report period.
.. image:: reporting/main_reports10.png
The :guilabel:`Profit and Loss` report (or **Income Statement**) shows your company's net income by
deducting expenses from revenue for the reporting period.
.. _accounting/reporting/executive-summary:
Executive Summary
-----------------
=================
The **Executive Summary** allows for a quick look at all the important
figures you need to run your company.
The :guilabel:`Executive Summary` provides an overview of all the important figures for overseeing
your company's performance.
In very basic terms, this is what each of the items in this section is
reporting :
It includes the following items:
- **Performance:**
- **Gross profit margin:**
The contribution each individual sale made
by your business less any direct costs needed to make those sales
(things like labour, materials, etc).
- **Net profit margin:**
The contribution each individual sale made by
your business less any direct costs needed to make those sales,
as well as any fixed overheads your company has (things like
rent, electricity, taxes you need to pay as a result of those
sales).
- **Return on investment (p.a.):**
The ratio of net profit made, to the
amount of assets the company used to make those profits.
- **Position:**
- **Average debtor days:**
The average number of days it takes your
customers to pay you (fully), across all your customer invoices.
- **Average creditor days:**
The average number of days it takes you to
pay your suppliers (fully) across all your bills.
- **Short term cash forecast:**
How much cash is expected in or out of
your organisation in the next month i.e. balance of your **Sales
account** for the month less the balance of your **Purchases account**
for the month.
- **Current assets to liabilities:**
Also referred to as **current ratio**, this is the ratio
of current assets (assets that could be
turned into cash within a year) to the current liabilities
(liabilities which will be due in the next year). This is
typically used as as a measure of a company's ability to service
its debt.
- :guilabel:`Performance`:
- :guilabel:`Gross profit margin`:
The contribution of all sales your business makes **minus** any direct costs needed to
make those sales (labor, materials, etc.).
- :guilabel:`Net profit margin`:
The contribution of all sales made by your business **minus** any direct costs needed to
make those sales *and* fixed overheads your company has (electricity, rent, taxes
to be paid as a result of those sales, etc.).
- :guilabel:`Return on investment (per annum)`:
The ratio of the net profit to the amount of assets the company used to make those profits.
- :guilabel:`Position`:
- :guilabel:`Average debtors days`:
The average number of days it takes your customers to (fully) pay you across all your
customer invoices.
- :guilabel:`Average creditors days`:
The average number of days it takes you to (fully) pay your suppliers across all your bills.
- :guilabel:`Short-term cash forecast`:
How much cash is expected in or out of your business in the next month, i.e., the balance of
your **Sales account** for the month **minus** the balance of your **Purchases account** for
the month.
- :guilabel:`Current assets to liabilities`:
Also referred to as the **current ratio**, this is the ratio of current assets (:dfn:`assets
that could be turned into cash within a year`) to the current liabilities (:dfn:`liabilities
that will be due in the next year`). It is typically used to measure a company's ability to
service its debt.
.. image:: reporting/main_reports01.png
.. _accounting/reporting/general-ledger:
General Ledger
--------------
==============
The **General Ledger Report** shows all transactions from all accounts for a
chosen date range. The initial summary report shows the totals for each
account and from there you can view a detailed transaction report or any
exceptions. This report is useful for checking every transaction that
occurred during a certain period of time.
The :guilabel:`General Ledger` report shows all transactions from all accounts for a selected date
range. The initial summary report shows the totals for each account. To expand an account and view
its details, click the :icon:`fa-caret-right` (:guilabel:`right arrow`) on the left.
This report is useful for reviewing each transaction that occurred during a specific period.
.. image:: reporting/main_reports05.png
.. _reporting/aged-payable:
Aged Payable
------------
Run the **Aged Payable Details** report to display information on individual
bills, credit notes and overpayments owed by you, and how long these
have gone unpaid.
.. image:: reporting/main_reports02.png
.. _reporting/aged-receivable:
.. _accounting/reporting/aged-receivable:
Aged Receivable
---------------
===============
The **Aged Receivables** report shows the sales invoices that were awaiting
payment during a selected month and several months prior.
The :guilabel:`Aged Receivable` report shows the sales invoices awaiting payment during a selected
month and several months prior.
.. image:: reporting/main_reports07.png
.. _accounting/reporting/aged-payable:
Aged Payable
============
The :guilabel:`Aged Payable` report displays information on individual bills, credit notes, and
overpayments you owe and how long these have gone unpaid.
.. _accounting/reporting/cash-flow-statement:
Cash Flow Statement
-------------------
===================
The **Cash Flow Statement** shows how changes in balance sheet accounts and
income affect cash and cash equivalents, and breaks the analysis down to
operating, investing and financing activities.
The :guilabel:`Cash Flow Statement` shows how changes in balance sheet accounts and income affect
cash and cash equivalents and breaks the analysis down to operating, investing, and financing
activities.
.. image:: reporting/main_reports03.png
.. _reporting/tax-report:
.. _accounting/reporting/tax-report:
Tax Report
----------
==========
This report allows you to see the **net** and **tax amounts** for all the taxes
grouped by type (sale/purchase).
.. image:: reporting/main_reports04.png
Bank Reconciliation
-------------------
.. image:: reporting/main_reports06.png
The :guilabel:`Tax Report` shows the :guilabel:`NET` and :guilabel:`TAX` amounts for all the
taxes grouped by type (:guilabel:`Sales`/:guilabel:`Purchases`).
.. toctree::
:titlesonly:
@@ -3,10 +3,10 @@ Data inalterability check report
================================
Tax authorities in some countries require companies to **prove their posted accounting entries are
inalterable**, meaning that once an entry has been posted, it can no longer be changed.
unaltered**, meaning that once an entry has been secured, it can no longer be changed.
To do so, Odoo can use the **SHA-256 algorithm** to create a unique fingerprint for each posted
entry. This fingerprint is called a hash. The hash is generated by taking an entry's essential data
To do so, Odoo creates a unique fingerprint for each secured entry thanks to the **SHA-256 algorithm**.
This fingerprint is called a hash. The hash is generated by taking an entry's essential data
(the values of the `name`, `date`, `journal_id`, `company_id`, `debit`, `credit`, `account_id`, and
`partner_id` fields), concatenating it, and inputting it to the SHA-256 hash function, which then
outputs a fixed size (256-bit) string of characters. The hash function is deterministic (:dfn:`the
@@ -15,7 +15,7 @@ completely change the resulting hash. Consequently, the SHA-256 algorithm is oft
others, for data integrity verification purposes.
In addition, the previous entry's hash is always added to the next entry to form a **hash chain**.
This is used to ensure a new entry is not added afterward between two posted entries, as doing so
This is used to ensure a new entry is not added afterward between two secured entries, as doing so
would break the hash chain.
.. note::
@@ -24,27 +24,70 @@ would break the hash chain.
bigger than the number of atoms in the known universe. This is why hashes are considered unique
in practice.
.. _data-inalterability/lock:
.. _data-inalterability/inalterability_features:
Lock entries with hash
======================
Inalterability features
=======================
To start using the hashing function, go to :menuselection:`Accounting --> Configuration > Journals`.
Open the journal for which you want to activate the feature, go to the :guilabel:`Advanced Settings`
tab, and enable :guilabel:`Lock Sent Invoices with Hash` for sale journals, or
:guilabel:`Lock Entries Manually` for purchase and general journals.
Inalterability features can be enabled by activating the :ref:`secure posted entries with hash
<data-inalterability/restricted>` option on any journal or using the :ref:`secure entries wizard
<data-inalterability/wizard>`.
For sale journals, the entry is automatically locked once it is sent. You can also click on the
button :guilabel:`Lock` on the invoice to lock it without sending it. For sale, purchase, and
general journals, the locking is always done manually using the same button.
- Two indicators are added to the journal entry's form view.
They show whether the entry is secured or not.
- A :icon:`fa-lock` or :icon:`fa-unlock` (:guilabel:`lock icon`) next to the :guilabel:`Posted` state.
- A :guilabel:`Secured` checkbox in the :guilabel:`Other info` tab.
- A :guilabel:`Not Secured` filter is available on journal entries and journal items' list views.
It can be used to find posted journal entries that are not secured yet.
- The option to open the :ref:`secure entries wizard <data-inalterability/wizard>` is displayed in the
:guilabel:`Accounting` menu.
.. _data-inalterability/restricted:
Secure posted entries with hash
===============================
To activate the hashing function on a specific journal, go to :menuselection:`Accounting -->
Configuration --> Journals`. Open a sales, purchase, or miscellaneous journal, go to the
:guilabel:`Advanced Settings` tab, and enable :guilabel:`Secure Posted Entries with Hash`.
Journals for which the feature is activated are called "restricted".
To compute the hash of an entry, Odoo retrieves the predecessor entries of the chain (i.e., the
entries with the same sequence prefix) and hashes them in a continuous way from the last hashed
entry to the new entry to hash.
.. warning::
Once you lock an entry in a locked journal, you cannot disable the feature anymore, nor edit any
locked entry.
Once you post an entry in a restricted journal, you cannot disable the feature anymore, nor edit
any secured entry.
.. _data-inalterability/wizard:
Secure entries wizard
=====================
You can also use the :guilabel:`Secure Entries` Wizard to secure all journal entries,
in **all** journals, up to a specific date.
.. note::
The wizard operates independently of the journal settings and journal types.
To open it, activate the :ref:`developer mode <developer-mode>`, go to :menuselection:`Accounting
--> Accounting`, and click on :guilabel:`Secure Entries`. If the :ref:`inalterability features
<data-inalterability/inalterability_features>` are activated, it is also visible outside the debug
mode.
To secure entries, select a date up to which all entries should be secured and press
:guilabel:`Secure Entries`.
.. warning::
After securing the entries, you can no longer edit them.
.. note::
It can happen that entries that are past the selected date are secured.
This is possible since the hash chain corresponds to the sequence prefix,
ordered by sequence number.
.. _data-inalterability/report:
@@ -54,17 +97,18 @@ Report download
To download the data inalterability check report, go to :menuselection:`Accounting --> Configuration
--> Settings --> Reporting` and click on :guilabel:`Download the Data Inalterability Check Report`.
The report's first section is an overview of all your journals and their configuration. Under the
inalterability check column, you can see whether or not a journal's entries are locked with a hash
(V) or not (X). The coverage column tells you when a journal's entries started being locked.
The report's first section is an overview of all journal sequence prefixes containing hashed entries.
In the :guilabel:`Restricted` column, you can see whether or not a journal has the :ref:`secure
posted entries with hash <data-inalterability/restricted>` option (V) activated or not (X). The
:guilabel:`Check` column tells you whether all entries are correctly hashed.
.. image:: data_inalterability/journal-overview.png
:align: center
:alt: Configuration report for two journals
The second section gives you the result of the data consistency check for each hashed journal. You
can view the first hashed entry and its corresponding hash and the last hashed entry and its
corresponding hash.
The second section gives a more detailed result of the data consistency check for each hashed
journal sequence prefix. You can view the first hashed entry and its corresponding hash,
as well as the last hashed entry and its corresponding hash.
.. image:: data_inalterability/data-consistency-check.png
:align: center
Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.7 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 7.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

@@ -52,12 +52,14 @@ Closing a fiscal year
Then, to close the fiscal year:
- Run a :ref:`tax report <reporting/tax-report>`, and verify that all tax information is correct.
- Reconcile all accounts on the :ref:`balance sheet <reporting/balance-sheet>`:
- Run a :ref:`tax report <accounting/reporting/tax-report>`, and verify that all tax information is
correct.
- Reconcile all accounts on the :ref:`balance sheet <accounting/reporting/balance-sheet>`:
- Update the bank balances in Odoo according to the actual balances found on the bank statements.
- Reconcile all transactions in the cash and bank accounts by running the :ref:`aged receivables
<reporting/aged-receivable>` and :ref:`aged payables <reporting/aged-payable>` reports.
<accounting/reporting/aged-receivable>` and :ref:`aged payables
<accounting/reporting/aged-payable>` reports.
- Audit all accounts, being sure to fully understand all transactions and their nature, making
sure to include loans and fixed assets.
- Optionally, run :ref:`payments matching <payments/matching>` to validate any open vendor bills
@@ -33,18 +33,16 @@ Make sure the default settings are correctly configured for your business. To do
Journal
The deferral entries are posted in this journal.
Deferred Expense Account
Deferred Expense
Expenses are deferred on this Current Asset account until they are recognized.
Deferred Revenue Account
Revenues are deferred on this Current Liability account until they are recognized.
Generate Entries
By default, Odoo :ref:`automatically generates <vendor_bills/deferred/generate_on_validation>`
the deferral entries when you post a vendor bill. However, you can also choose to
:ref:`generate them manually <vendor_bills/deferred/generate_manually>` by selecting the
:guilabel:`Manually & Grouped` option instead.
Amount Computation
Suppose a bill of $1200 must be deferred over 12 months. The :guilabel:`Equal per month`
computation recognizes $100 each month, while the :guilabel:`Based on days` computation recognizes
Based on
Suppose a bill of $1200 must be deferred over 12 months. The :guilabel:`Months`
computation recognizes $100 each month, while the :guilabel:`Days` computation recognizes
different amounts depending on the number of days in each month.
.. _vendor_bills/deferred/generate_on_validation:
@@ -59,7 +59,7 @@ available on Odoo.
- :doc:`Belgium - Accounting <fiscal_localizations/belgium>`
- Bolivia - Accounting
- :doc:`Brazilian - Accounting <fiscal_localizations/brazil>`
- Canada - Accounting
- :doc:`Canada - Accounting <fiscal_localizations/canada>`
- :doc:`Chile - Accounting <fiscal_localizations/chile>`
- China - Accounting
- :doc:`Colombia - Accounting <fiscal_localizations/colombia>`
@@ -135,6 +135,7 @@ available on Odoo.
fiscal_localizations/austria
fiscal_localizations/belgium
fiscal_localizations/brazil
fiscal_localizations/canada
fiscal_localizations/chile
fiscal_localizations/colombia
fiscal_localizations/ecuador
@@ -460,14 +460,14 @@ The Odoo POS system is certified for the major versions of databases hosted on *
- Odoo Online
- Odoo.sh
- On-Premise
* - Odoo 17.0
- Certified
- Certified
- Not certified
* - Odoo 16.0
- Certified
- Certified
- Not certified
* - Odoo 15.2
- Not certified
- Not certified
- Not certified
* - Odoo 15.0
- Certified
- Certified
@@ -0,0 +1,311 @@
======
Canada
======
.. |COA| replace:: :abbr:`CoA (Chart of Accounts)`
.. |AR| replace:: :abbr:`AR (Accounts Receivable)`
.. |AP| replace:: :abbr:`AP (Accounts Payable)`
The Odoo Canada localization package provides tailored features and configurations for Canadian
businesses.
A series of videos on the subject of Accounting are available through Odoo's eLearning platform.
These videos cover how to start from scratch, set up configurations, complete common workflows, and
provide in-depth looks at some specific use cases.
.. seealso::
- `Odoo Tutorials: Accounting & Invoicing
<https://www.odoo.com/slides/accounting-and-invoicing-19>`_
- `Odoo SmartClass: Accounting <https://www.odoo.com/slides/smartclass-accounting-121>`_
Configuration
=============
Below are the available modules in Odoo for accounting use in Canada.
Modules installation
--------------------
:ref:`Install <general/install>` the following modules to get all the features of the Canadian
localization:
.. list-table::
:header-rows: 1
:widths: 25 25 50
* - Name
- Technical name
- Description
* - :guilabel:`Canada - Accounting`
- `l10n_ca`
- Base accounting module for Canadian localization.
* - :guilabel:`Canada - Accounting Reports`
- `l10n_ca_reports`
- Adds Canadian accounting reports.
* - :guilabel:`Canadian Checks Layout`
- `l10n_ca_check_printing`
- Enables the printing of payments on pre-printed check paper. Supports the three most common
check formats and works natively with the linked checks from `checkdepot.net
<https://checkdepot.net/collections/computer-checks/Odoo>`_.
- `Check on top: Quicken / QuickBooks standard
<https://checkdepot.net/collections/computer-checks/odoo+top-check>`_
- `Check on middle: Peachtree standard
<https://checkdepot.net/collections/computer-checks/odoo+middle-check>`_
- `Check on bottom: ADP standard
<https://checkdepot.net/collections/computer-checks/odoo+Bottom-Check>`_
.. _l10n_ca/coa:
Chart of accounts
=================
The :doc:`chart of accounts (COA) <../accounting/get_started/chart_of_accounts>` for the Canadian
localization, in Odoo, has accounts grouped into seven main categories, with corresponding numeric
values that prefix individual journal entries:
- **Receivable**: the balance of money (or credit) due to the business for goods or services
delivered or used, but not yet paid for by customers. |AR| is indicated by the journal code
labeled (or beginning) with :guilabel:`1`.
- **Payable**: the business's short-term obligations owed to its creditors or suppliers, which have
not yet been paid. |AP| is indicated by the journal code labeled (or beginning) with
:guilabel:`2`.
- **Equity**: the amount of money that would be returned to a company's shareholders if all of the
assets were liquidated and all of the company's debt was paid off in the case of liquidation.
Equity is indicated by the journal code labeled (or beginning) with :guilabel:`3` or
:guilabel:`9`.
- **Assets**: items listed on the balance sheet that contains economic value or have the ability to
generate cash flows in the future, such as a piece of machinery, a financial security, or a
patent. Assets are indicated by the journal code labeled (or beginning) with :guilabel:`1`.
- **Liability**: refers to a company's financial debts or obligations that arise during the course
of business operations. Liabilities are indicated by the journal code labeled (or beginning) with
:guilabel:`2`.
- **Income**: synonymous with *net income*, this is the profit a company retains after paying off
all relevant expenses from sales revenue earned. Income is indicated by the journal code labeled
(or beginning) with :guilabel:`4` or :guilabel:`6`.
- **Expenses**: the cost of operations that a company incurs to generate revenue. Expenses are
indicated by the journal code labeled (or beginning) with a :guilabel:`6`.
.. tip::
Predefined accounts are included in Odoo, as part of the |COA| that's installed with the Canadian
localization package. The accounts listed below are preconfigured to perform certain operations
within Odoo. It is recommended to **not** delete these accounts; however, if changes are needed,
rename the accounts instead.
.. list-table::
:header-rows: 1
:stub-columns: 1
* - :guilabel:`Type`
- :guilabel:`Account Name`
* - :guilabel:`Current Assets`
- | :guilabel:`Bank Suspense Account`
| :guilabel:`Outstanding Receipts`
| :guilabel:`Outstanding Payments`
| :guilabel:`Liquidity Transfer`
| :guilabel:`Stock Valuation`
| :guilabel:`Stock Interim (Received)`
| :guilabel:`Stock Interim (Delivered)`
| :guilabel:`Cost of Production`
* - :guilabel:`Income`
- | :guilabel:`Foreign Exchange Gain`
| :guilabel:`Cash Difference Gain`
| :guilabel:`Cash Discount Gain`
* - :guilabel:`Expenses`
- | :guilabel:`Cash Discount Loss`
| :guilabel:`Foreign Exchange Loss`
| :guilabel:`Cash Difference Loss`
* - :guilabel:`Current Year Earnings`
- :guilabel:`Undistributed Profits/Losses`
* - :guilabel:`Receivable`
- :guilabel:`Account Receivable`
* - :guilabel:`Payable`
- :guilabel:`Account Payable`
.. seealso::
- :doc:`../accounting/get_started/chart_of_accounts`
- :doc:`../accounting/get_started/cheat_sheet`
.. _l10n_ca/fiscal-positions:
Fiscal positions
================
Canadian tax rates and taxable items vary by province and territory. Default fiscal positions are
automatically created when the Odoo **Accounting** application is installed. To manage or configure
additional fiscal positions, navigate to :menuselection:`Accounting --> Configuration --> Fiscal
Positions`.
The following fiscal positions are available by default:
- :guilabel:`Alberta (AB)`
- :guilabel:`British Colombia (BC)`
- :guilabel:`Manitoba (MB)`
- :guilabel:`New Brunswick (NB)`
- :guilabel:`Newfoundland and Labrador (NL)`
- :guilabel:`Nova Scotia (NS)`
- :guilabel:`Northwest Territories (NT)`
- :guilabel:`Nunavut (NU)`
- :guilabel:`Ontario (ON)`
- :guilabel:`Prince Edward Islands (PE)`
- :guilabel:`Quebec (QC)`
- :guilabel:`Saskatchewan (SK)`
- :guilabel:`Yukon (YT)`
- :guilabel:`International (INTL)`
.. image:: canada/l10n-ca-fiscal-positions.png
:alt: The default fiscal positions for the Canada localization in Odoo Accounting.
.. note::
When considering what taxes to be applied, it is the province where the delivery occurs that
matters. Therefore, delivery is the responsibility of the vendor and is accounted for at the
customer location.
.. example::
- A delivery is made to a customer from another province.
Set the fiscal position on the customer's record to the province of the customer.
- A customer from another province comes to pick up products.
No fiscal position should be set on the customer's record.
- An international vendor doesn't charge any tax, but taxes are charged by the customs broker.
Set the fiscal position on the vendor's record to *International*.
- An international vendor charges provincial tax.
Set the fiscal position on the vendor's record to your position.
.. seealso::
:doc:`../accounting/taxes/fiscal_positions`
.. _l10n_ca/taxes:
Taxes
=====
In Canada, tax rates and what is considered taxable vary by province and territory. Default *Sales*
and *Purchases* taxes are created automatically when the Odoo **Accounting** application is
installed. To manage existing or configure additional taxes, navigate to :menuselection:`Accounting
--> Configuration --> Taxes`.
.. _l10n_ca/taxes-avatax:
AvaTax
------
**Avalara AvaTax** is a cloud-based tax calculation and compliance software that integrates with
Odoo for several localizations, including Canada. Integrating AvaTax with Odoo provides real-time
and region-specific tax calculations when items are sold, purchased, and invoiced in the database.
.. important::
AvaTax is available for integration with databases/companies that have locations in Canada and/or
the United States. Reference the :ref:`avatax/fiscal_country` documentation for more information.
.. seealso::
Refer to the documentation articles below to integrate and configure an AvaTax account with an
Odoo database:
- :doc:`AvaTax integration <../accounting/taxes/avatax>`
- :doc:`Avalara management portal <../accounting/taxes/avatax/avalara_portal>`
- :doc:`Calculate taxes with AvaTax <../accounting/taxes/avatax/avatax_use>`
- Avalara's support documents: `About AvaTax
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=dqa1657870670369_dqa1657870670369&topicId=About_AvaTax.html&_LANG=enus>`_
.. _l10n_ca/reports:
Reports
=======
A number of :doc:`report selections <../accounting/reporting>` are readily available for the
Canadian localization, under the :menuselection:`Accounting app --> Reporting` drop-down menu:
- :ref:`Balance Sheet <accounting/reporting/balance-sheet>`: a "snapshot" of a company's financial
position at a specific point in time, which contains an overview of a company's assets,
liabilities, and equity.
Be sure to select the :menuselection:`Balance sheet (CA)` option from the :icon:`fa-book`
:guilabel:`Report` filter.
.. image:: canada/l10n-ca-balance-sheet.png
:alt: Balance sheet report selection for CA localization in Odoo.
- :ref:`Profit & Loss <accounting/reporting/balance-sheet>`: otherwise known as a *P&L statement* or
*income statement*, provides a summary of a company's revenues, expenses, and profits/losses over
a given period of time.
Be sure to select the :menuselection:`Profit and loss (CA)` option from the :icon:`fa-book`
:guilabel:`Report` filter.
.. image:: canada/l10n-ca-profit-loss.png
:alt: Profit and loss report selection for CA localization in Odoo.
- :guilabel:`Cash Flow Statement`: shows how much cash and cash equivalents a company has received
and spent in a given period.
- :ref:`Executive Summary <accounting/reporting/executive-summary>`: an overview report that covers
the key performance indicators of a company's financial position, such as revenue, profit, and
debt.
- :ref:`Tax Report <accounting/reporting/tax-report>`: an official form filed for a tax authority
that reports income, expenses, and other pertinent tax information. Tax reports allow taxpayers to
calculate their tax liability, schedule tax payments, or request refunds for the overpayment of
taxes. In Odoo, the tax report can be made monthly, every two months, quarterly, every 4 months,
semi-annually, and annually.
.. seealso::
- :doc:`Accounting reporting <../accounting/reporting>`
- :doc:`../../essentials/search`
.. _l10n_ca/cash-discount:
Cash discount
=============
Cash discounts can be configured from :menuselection:`Accounting app --> Payment Terms`. Each
payment term can be set up with a cash discount and reduced tax.
.. seealso::
:doc:`../accounting/customer_invoices/cash_discounts`
Writing checks
==============
The Canadian localization allows users to print checks for vendor payments. Be sure the *Canadian
Checks Layout* (`l10n_ca_check_printing`) module for the CA localization is :ref:`installed
<general/install>`.
To enable check printing from Odoo, navigate to :menuselection:`Accounting --> Configuration -->
Settings` and find the :guilabel:`Vendor Payments` section. From here, tick the :guilabel:`Checks`
checkbox to reveal several fields for check configuration.
Select a :guilabel:`Check Layout` from the drop-down menu:
- :guilabel:`Print Check (Top) - CA`
- :guilabel:`Print Check (Middle) - CA`
- :guilabel:`Print Check (Bottom) - CA`
Next, choose whether or not to enable the :guilabel:`Multi-Pages Check Stub` checkbox.
Optionally set a :guilabel:`Check Top Margin`, :guilabel:`Check Left Margin`, or :guilabel:`Check
Right Margin` if required.
Tick the :guilabel:`Print Date Label` checkbox if a date label is required.
Once all check configurations are complete, :guilabel:`Save` the settings.
.. tip::
Some of the check formats may require pre-printed paper from a third party vendor.
`Pre-printed checks from checkdepot.net <https://checkdepot.net/collections/odoo-checks>`_ are
recommended.
.. seealso::
:doc:`../accounting/payments/pay_checks`
Receive pre-authorized debits
=============================
Pre-authorized debits are a method for receiving payments from customers, where the customer
authorizes the business to withdraw funds from their bank account on a recurring basis. This
functionality is commonly used for subscriptions, recurring invoices, and other regular payments.
In the Odoo Canadian localization, pre-authorized debits are facilitated through an
:doc:`integration with Stripe <../payment_providers/stripe>`.
.. seealso::
- :doc:`Setting up payment providers <../payment_providers>`
- `Stripe's pre-authorized debit payments documentation
<https://docs.stripe.com/payments/acss-debit>`_
Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

@@ -835,7 +835,7 @@ Common errors
At the moment, Odoo does not support the automation of prefixes for products. This can be done
manually for each product output. This can also be done for non-storable products. However, keep
in mind that there will be no traceability.
- `2325 - GrossWeightMeasure - El dato no cumple con el formato establecido "Hace falta el campo"
- `2523 - GrossWeightMeasure - El dato no cumple con el formato establecido "Hace falta el campo"
"Peso"" en el producto`
This error occurs when the weight on the product is set as `0.00`. To fix this, you need to cancel
@@ -271,9 +271,9 @@ Reports
A number of :doc:`report selections <../accounting/reporting>` are readily available for the US
localization, under the :menuselection:`Accounting app --> Reporting` drop-down menu:
- :ref:`Balance Sheet <reporting/balance-sheet>`: a "snapshot" of a company's financial position at
a specific point in time, which contains an overview of a company's assets, liabilities, and
equity.
- :ref:`Balance Sheet <accounting/reporting/balance-sheet>`: a "snapshot" of a company's financial
position at a specific point in time, which contains an overview of a company's assets,
liabilities, and equity.
- :ref:`Profit & Loss <accounting/reporting/balance-sheet>`: otherwise known as a *P&L statement* or
*income statement*, provides a summary of a company's revenues, expenses, and profits/losses over
a given period of time.
@@ -282,10 +282,10 @@ localization, under the :menuselection:`Accounting app --> Reporting` drop-down
- :ref:`Executive Summary <accounting/reporting/executive-summary>`: an overview report that covers
the key performance indicators of a company's financial position, such as revenue, profit, and
debt.
- :ref:`Tax Report <reporting/tax-report>`: an official form filed for a tax authority that reports
income, expenses, and other pertinent tax information. Tax reports allow taxpayers to calculate
their tax liability, schedule tax payments, or request refunds for the overpayment of taxes. In
Odoo, the tax report can be made monthly, every two months, quarterly, every 4 months,
- :ref:`Tax Report <accounting/reporting/tax-report>`: an official form filed for a tax authority
that reports income, expenses, and other pertinent tax information. Tax reports allow taxpayers to
calculate their tax liability, schedule tax payments, or request refunds for the overpayment of
taxes. In Odoo, the tax report can be made monthly, every two months, quarterly, every 4 months,
semi-annually, and annually.
- :guilabel:`Check Register`: a report that displays cash transactions (regardless of the journal)
with their running balance after the transaction. Only visible with the *US - Accounting Reports*
@@ -416,11 +416,14 @@ To enable check printing from Odoo, navigate to :menuselection:`Accounting --> C
Settings` and find the :guilabel:`Vendor Payments` section. From here, tick the :guilabel:`Checks`
checkbox to reveal several fields for check configuration.
Select a :guilabel:`Check Layout` from the drop-down menu:
Select a pre-printed or blank :guilabel:`Check Layout` from the drop-down menu:
- :guilabel:`Print Check (Top) - US`
- :guilabel:`Print Check (Middle) - US`
- :guilabel:`Print Check (Bottom) - US`
- :guilabel:`Print Blank Check (Top) - US`
- :guilabel:`Print Blank Check (Middle) - US`
- :guilabel:`Print Blank Check (Bottom) - US`
Next, choose whether or not to enable the :guilabel:`Multi-Pages Check Stub` checkbox.
@@ -429,8 +432,17 @@ Optionally set a :guilabel:`Check Top Margin` and :guilabel:`Check Left Margin`,
Once all check configurations are complete, :guilabel:`Save` the settings.
.. tip::
Some of the check formats may require pre-printed paper from a third party vendor,
https://checkdepot.net/collections/odoo-checks is recommended.
Pre-printed check formats (non-blank checks) require pre-printed paper from a third-party vendor.
`Pre-printed checks from checkdepot.net <https://checkdepot.net/collections/odoo-checks>`_ are
recommended.
.. important::
Use one of the blank check formats to print the information of the check ad-hoc when needed. This
requires the use of both :abbr:`MICR (Magnetic Ink Character Recognition)` ink or toner complying
with the standards for check printing, as well as `check quality paper
<https://checkdepot.net/collections/blank-check-paper/products/top-format-blank-check-paper-cdt164>`_.
Other information, such as the company name, bank account, and check number, is printed when
creating the blank check.
.. seealso::
:doc:`../accounting/payments/pay_checks`
@@ -9,7 +9,6 @@ Online payments
payment_providers/wire_transfer
payment_providers/adyen
payment_providers/alipay
payment_providers/amazon_payment_services
payment_providers/asiapay
payment_providers/authorize
@@ -18,11 +17,10 @@ Online payments
payment_providers/flutterwave
payment_providers/mercado_pago
payment_providers/mollie
payment_providers/ogone
payment_providers/paypal
payment_providers/razorpay
payment_providers/sips
payment_providers/stripe
payment_providers/worldline
payment_providers/xendit
Odoo embeds several **payment providers** that allow your customers to pay online, on their
@@ -127,18 +125,18 @@ Online payment providers
- Full only
- Full and partial
-
* - :doc:`SIPS <payment_providers/sips>`
- The provider's website
-
-
-
-
* - :doc:`Stripe <payment_providers/stripe>`
- Odoo
- |V|
- Full only
- Full and partial
- |V|
* - :doc:`Worldline <payment_providers/worldline>`
- The provider's website
- |V|
-
-
-
* - :doc:`Xendit <payment_providers/xendit>`
- The provider's website
-
@@ -177,8 +175,8 @@ Bank payments
.. _payment_providers/add_new:
Enable a payment provider
=========================
Enabling a payment provider
===========================
To add a new payment provider and make its related payment methods available to your customers,
proceed as follows:
@@ -284,10 +282,19 @@ In this case, a **payment token** is created in Odoo to be used as a payment met
payments without the customer having to enter their payment method details again. This is
particularly useful for the eCommerce conversion rate and subscriptions that use recurring payments.
.. note::
You remain fully PCI-compliant when you enable this feature because Odoo does not store the card
details directly. Instead, it creates a payment token that only references the card details
stored on the payment provider's server.
.. tip::
To add or delete their saved payment method details, customers can click :guilabel:`Manage
payment methods` in the :ref:`customer portal <users-portal-payment-methods>`.
.. admonition:: PCI DSS and Attestation of Compliance
Odoo is not `PCI <https://www.pcisecuritystandards.org>`_ DSS-certified because it does not
store cardholder data or process payments. Instead, it outsources tokenization and payment to
:ref:`external payment providers <payment_providers/online_providers>`, which means that as an
Odoo customer, you only need to complete the minimal Self-Assessment Questionnaire (SAQ) with
the provider to obtain the Attestation of Compliance (AoC) and achieve PCI compliance. Odoo
should not be mentioned as a payment processor or a third-party service provider in the
:abbr:`SAQ (Self-Assessment Questionnaire)`.
.. _payment_providers/manual_capture:
@@ -443,18 +450,16 @@ other payments.
.. seealso::
- :doc:`payment_providers/wire_transfer`
- :doc:`payment_providers/adyen`
- :doc:`payment_providers/alipay`
- :doc:`payment_providers/authorize`
- :doc:`payment_providers/asiapay`
- :doc:`payment_providers/buckaroo`
- :doc:`payment_providers/demo`
- :doc:`payment_providers/mercado_pago`
- :doc:`payment_providers/mollie`
- :doc:`payment_providers/ogone`
- :doc:`payment_providers/paypal`
- :doc:`payment_providers/razorpay`
- :doc:`payment_providers/sips`
- :doc:`payment_providers/stripe`
- :doc:`payment_providers/worldline`
- :doc:`payment_providers/xendit`
- :doc:`../websites/ecommerce/checkout_payment_shipping/payments`
- :doc:`accounting/bank`
@@ -1,39 +0,0 @@
======
Alipay
======
`Alipay <https://www.alipay.com/>`_ is an online payments platform established in China by Alibaba
Group.
.. warning::
The provider Alipay is deprecated. It is recommended to use :doc:`asiapay` instead.
Configuration
=============
.. seealso::
- :ref:`payment_providers/add_new`
Credentials tab
---------------
Odoo needs your **API Credentials** to connect with your Alipay account, which comprise:
- **Account**: Depending on where you are situated
- `Express Checkout` if your are a Chinese Merchant.
- `Cross-border` if you are not.
- **Alipay Seller Email**: Your public Alipay partner email (for express checkout only).
- **Merchant Partner ID**: The public partner ID solely used to identify the account with Alipay.
- **MD5 Signature Key**: The signature key.
You can copy your credentials from your Alipay account, and paste them in the related fields under
the **Credentials** tab.
To retrieve them, log into your Alipay account, they are on the front page.
.. important::
If you are trying Alipay as a test, in the *sandbox*, change the **State** to *Test Mode*. We
recommend doing this on a test Odoo database, rather than on your main database.
.. seealso::
- :doc:`../payment_providers`
@@ -1,107 +0,0 @@
=====
Ogone
=====
`Ogone <https://www.ingenico.com/>`_, also known as **Ingenico Payment Services** is a France-based
company that provides the technology involved in secure electronic transactions.
.. seealso::
- :ref:`payment_providers/add_new`
- `Ogone's documentation <https://epayments-support.ingenico.com/get-started/>`_.
.. warning::
The provider Ogone is deprecated. It is recommended to use :doc:`stripe` instead.
Settings in Ogone
=================
Create an API user
------------------
Log into your Ogone account and head to the :guilabel:`Configuration` tab.
You need to create an **API user** to be used in the creation of transactions from Odoo. While you
can use your main account to do so, using an **API user** ensures that if the credentials used in
Odoo are leaked, no access to your Ogone configuration is possible. Additionally, passwords for
**API users** do not need to be updated regularly, unlike normal users.
To create an **API user**, go to :menuselection:`Configuration --> Users` and click on
:guilabel:`New User`. The following fields must be configured:
.. _ogone/ogone:
- :guilabel:`UserID`: you can choose anything you want.
- :guilabel:`User's Name, E-mail and Timezone`: you can enter the information you want.
- :guilabel:`Profile`: should be set to :guilabel:`Admin`.
- :guilabel:`Special user for API`: should be checked.
After the creation of the user, you are required to generate a password. Save the password and
**UserID**, as they will be required later on during the setup.
.. tip::
If you already have an user set up, make sure it is activated without any error. If not, simply
click the :guilabel:`Activate(Errors)` button to reset the user.
Set up Ogone for Odoo
---------------------
Ogone must now be configured to accept payments from Odoo. Head to :menuselection:`Configuration -->
Technical Information --> Global Security Parameters`, select :guilabel:`SHA-512` as
:guilabel:`Hash Algorithm` and :guilabel:`UTF-8` as :guilabel:`character encoding`. Then, go to the
:guilabel:`Data and Origin verification` tab of the same page and leave the URL field of the
:guilabel:`e-Commerce and Alias Gateway` section blank.
.. tip::
If you need to use another algorithm, such as `sha-1` or `sha-256`, within Odoo, activate the
:ref:`developer mode <developer-mode>` and go to the **Payment Providers** page in
:menuselection:`Accounting --> Configuration --> Payment Providers`. Click on :guilabel:`Ogone`,
and in the :guilabel:`Credentials` tab, select the algorithm you wish to use in the
:guilabel:`Hash function` field.
You are now required to generate **SHA-IN** passphrases. **SHA-IN** and **SHA-OUT** passphrases are
used to digitally sign the transaction requests and responses between Odoo and Ogone. By using these
secret passphrases and the `sha-1` algorithm, both systems can ensure that the information they
receive from the other was not altered or tampered with.
Enter the same **SHA-IN** passphrase in both :guilabel:`Checks for e-Commerce & Alias Gateway` and
:guilabel:`Checks for DirectLink and Batch (Automatic)`. You can leave the IP address field blank.
Your **SHA-IN** and **SHA-OUT** passphrases should be different, and between 16 and 32 characters
long. Make sure to use the same **SHA-IN** and **SHA-OUT** passphrases throughout the entire Ogone
configuration, as Odoo only allows a single **SHA-IN** and single **SHA-OUT** passphrase.
In order to retrieve the **SHA-OUT** key, log into your Ogone account, go to
:menuselection:`Configuration --> Technical Information --> Transaction feedback --> All
transaction submission modes`, and get or generate your **API Key** and **Client Key**. Be careful
to copy your API key as youll not be allowed to get it later without generating a new one.
When done, head to :menuselection:`Configuration --> Technical Information --> Transaction Feedback`
and check the following options:
- The :guilabel:`URL` fields for :guilabel:`HTTP redirection in the browser` can be left empty, as
Odoo will specify these URLs for every transaction request.
- :guilabel:`I would like to receive transaction feedback parameters on the redirection URLs`:
should be checked.
- :guilabel:`Direct HTTP server-to-server request`: should to be set to `Online but switch to a
deferred request when the online request fails`.
- Both **URL** fields should contain the same following URL, with `<example>` replaced by your
database: `https://<example>/payment/ogone/return`.
- :guilabel:`Dynamic eCommerce Parameters` should contain the following values: `ALIAS`, `AMOUNT`,
`CARDNO`, `CN`, `CURRENCY`, `IP`, `NCERROR` `ORDERID`, `PAYID`, `PM`, `STATUS`, `TRXDATE`. Other
parameters can be included (if you have another integration with Ogone that requires them), but
are not advised.
- In the :guilabel:`All transaction submission modes` section, fill out **SHA-OUT** passphrase and
disable `HTTP request for status change`.
To allow your customers to save their credit card credentials for future use, head to
:menuselection:`Configuration --> Alias --> My alias information`. From this tab, you can configure
how the user can have its card details saved, for how long the information is saved, if a checkbox
to save the card information should be displayed, etc.
Settings in Odoo
================
To set up Ogone in Odoo, head to :menuselection:`Accounting --> Configuration --> Payment Providers`
and open the Ogone provider. In the :guilabel:`Credentials` tab, enter the **PSPID** of your Ogone
account, and fill out the other fields as configured in your :ref:`Ogone portal <ogone/ogone>`.
@@ -1,32 +0,0 @@
====
SIPS
====
`SIPS <https://sips.worldline.com/>`_ is an online payments solution from the multinational
Worldline.
Configuration
=============
.. seealso::
- :ref:`payment_providers/add_new`
Credentials tab
---------------
Odoo needs your **API Credentials** to connect with your SIPS account, which comprise:
- **Merchant ID**: The ID solely used to identify the merchant account with SIPS.
- **Secret Key**: The key to sign the merchant account with SIPS.
- **Secret Key Version**: The version of the key, pre-filled.
- **Interface Version**: Pre-filled, don't change it.
You can copy your credentials from your SIPS environment info documentation, in the section
**PROD**, and paste them in the related fields under the **Credentials** tab.
.. important::
If you are trying SIPS as a test, with the *TEST* credentials, change the **State** to *Test
Mode*. We recommend doing this on a test Odoo database, rather than on your main database.
.. seealso::
- :doc:`../payment_providers`
@@ -0,0 +1,68 @@
=========
Worldline
=========
`Worldline <https://worldline.com/>`_ is a France-based company and the world's fourth largest
payment provider.
Settings in Worldline
=====================
.. _worldline/API-user:
Create an API user
------------------
It is recommended to set up an **API user** to create transactions from Odoo to ensure that your
Worldline configuration remains safe even if credentials are compromised. Additionally, API users do
not require frequent password updates like regular accounts.
To create an **API user**, proceed as follows:
#. Log into your `Worldline Merchant Portal <https://merchant-portal.preprod.worldline-solutions.com/dashboard>`_,
click the :icon:`fa-th` (:guilabel:`menu`) icon, and select :guilabel:`Back Office`.
#. Go to :menuselection:`Configuration --> Users` and click on :guilabel:`New User`.
#. Configure the following fields:
#. Specify a :guilabel:`UserID`, :guilabel:`User's name`, :guilabel:`E-mail address`, and
:guilabel:`Timezone` of your choice.
#. Set the :guilabel:`Profile` field to :guilabel:`Admin`.
#. Enable :guilabel:`Special user for API`.
.. tip::
If you have already set up a user, make sure it is activated without any error.
.. _worldline/set-up:
Set up Worldline for Odoo
-------------------------
Worldline must now be configured to accept payments from Odoo.
#. From your merchant portal, go to :menuselection:`Developer --> Payment API` and click on
:guilabel:`Generate API key`. Copy the :guilabel:`API key ID` and the :guilabel:`Secret API key`
and save them for :ref:`later <wordline/odoo-configuration>`.
#. Go to :menuselection:`Developer --> Webhooks` and click on :guilabel:`Generate webhook keys`.
Copy the :guilabel:`Webhook ID` and the associated :guilabel:`Secret webhook key` and
save them for :ref:`later <wordline/odoo-configuration>`.
#. | Click :guilabel:`Add webhook endpoint`, enter your Odoo database's URL followed by
`/payment/worldline/webhook` in the :guilabel:`Endpoint url` field, and :guilabel:`Confirm`.
| For example: `https://example.odoo.com/payment/worldline/webhook`.
.. _wordline/odoo-configuration:
Settings in Odoo
================
To set up Worldline in Odoo:
#. :ref:`Navigate to the payment provider Worldline <payment_providers/add_new>` and change its
state to :guilabel:`Enabled`.
#. In the :guilabel:`Credentials` tab, enter the :guilabel:`PSPID` of your Worldline account and
fill in the :guilabel:`API Key`, :guilabel:`API Secret`, :guilabel:`Webhook Key`, and
:guilabel:`Webhook Secret` with the values you saved at the step :ref:`Set up Worldline for
Odoo <worldline/set-up>`.
#. Configure the rest of the options to your liking.
.. seealso::
:doc:`../payment_providers`
@@ -156,6 +156,8 @@ on :guilabel:`Confirm Password`. Next, activate :abbr:`2FA (two-factor authentic
Finally, click :guilabel:`Enable two-factor authentication` to complete the setup.
.. _users-portal-payment-methods:
Change payment info
-------------------
+4 -2
View File
@@ -173,11 +173,13 @@ document.
.. seealso::
- :doc:`appraisals/new_appraisals`
- :doc:`appraisals/goals`
- :doc:`appraisals/reporting`
- :doc:`appraisals/appraisal_analysis`
- :doc:`appraisals/skills_evolution`
.. toctree::
:titlesonly:
appraisals/new_appraisals
appraisals/goals
appraisals/reporting
appraisals/appraisal_analysis
appraisals/skills_evolution
@@ -0,0 +1,115 @@
==================
Appraisal analysis
==================
The **Appraisals** app has the ability to report on all the appraisals in the system, including
past, present, and future appraisals, and their respective statuses. This report helps managers
track scheduled appraisals, and identify any overdue or unconfirmed ones.
To access the *Appraisal Analysis* report, navigate to :menuselection:`Appraisals app --> Reporting
--> Appraisal Analysis`.
On the :guilabel:`Appraisal Analysis` page, a report loads, displaying all the appraisals in the
database. Each entry is highlighted in a different color to represent their status:
+-----------+----------------------------+------------------------------------------------+
| Color | Status | Meaning |
+===========+============================+================================================+
| Yellow |:guilabel:`Done` | The appraisal was completed. |
+-----------+----------------------------+------------------------------------------------+
| Orange |:guilabel:`Appraisal Sent` |The appraisal was confirmed, but not completed. |
+-----------+----------------------------+------------------------------------------------+
| Red |:guilabel:`Cancelled` |The appraisal was cancelled. |
+-----------+----------------------------+------------------------------------------------+
| Gray |:guilabel:`To Start` | The appraisal was scheduled, but not confirmed.|
+-----------+----------------------------+------------------------------------------------+
.. note::
Appraisals are scheduled automatically (appear in gray), according to their respective
:ref:`appraisals/appraisal-plan`.
The report displays the current year, in a default Gantt view, grouped by department, with the
current month highlighted.
To change the period of time that is presented, adjust the date settings in the top-left corner of
the report by clicking the default :guilabel:`Year` to reveal a drop-down menu of options. The
options to display are :guilabel:`Day`, :guilabel:`Week`, :guilabel:`Month`, and :guilabel:`Year`.
Use the adjacent arrows to move forward or backward in time.
At any point, click the :guilabel:`Today` button to have the Gantt view include today's date in the
view.
To view the details of any appraisal, click on any appraisal. A pop-over window appears, displaying
the due date for the appraisal. To view more details, click the :guilabel:`View` button, and further
details appear in a pop-up window.
The report can have other :ref:`filters <search/filters>` and :ref:`groupings <search/group>` set in
the search bar at the top.
.. image:: appraisal_analysis/analysis.png
:align: center
:alt: A report showing all the appraisals for the Appraisal Analysis report.
.. _appraisals/group-status:
Group by status
===============
When a company has a large number of employees, the default :guilabel:`Appraisal Analysis` report
may display too much information to view easily. In this scenario, viewing the data by status can be
beneficial.
First, remove the default :icon:`oi-group` :guilabel:`Department` grouping from the search bar.
Next, click the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon in the far-right of the search
bar. Click :guilabel:`Status` in the :icon:`oi-group` :guilabel:`Group By` column. Click away from
the drop-down menu to close it.
All the appraisals are now organized by status, in the following order: :guilabel:`Cancelled`,
:guilabel:`Done`, :guilabel:`To Start`, and :guilabel:`Appraisal Sent`.
This view makes it easy to see which appraisals need to be completed, and when, as well as which
appraisals still need to be confirmed.
.. image:: appraisal_analysis/by-status.png
:align: center
:alt: A report showing all the appraisals, grouped by status.
Use case: view only the user's appraisals
=========================================
When viewing the :guilabel:`Appraisal Analysis` report, it can save time to only view the appraisals
the signed-in user is responsible for, and hide the rest.
To only view this data, click the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon in the
far-right of the search bar, revealing a drop-down menu.
.. note::
It is not necessary to remove the default :icon:`oi-group` :guilabel:`Department` grouping. If it
remains active, the results are grouped by department. If it is removed, the results appear in a
list, alphabetically.
Click :guilabel:`Add Custom Filter` at the bottom of the :icon:`fa-filter` :guilabel:`Filters`
column, and a :guilabel:`Add Custom Filter` pop-up window appears.
Click into the first field, and a pop-over appears with a variety of options. Click the
:icon:`fa-chevron-right` :guilabel:`(right arrow)` icon after the word :guilabel:`Employee`, then
scroll down and click on :guilabel:`Manager`. Next, set the middle field to :guilabel:`=`
:guilabel:`(equal)`. Last, click the third field and select the desired user from the list. When all
the fields are set, click :guilabel:`Add`.
.. image:: appraisal_analysis/custom.png
:align: center
:alt: A customized filter to show only the user's employees.
Now, the only appraisals that appear are the appraisals that the selected user is responsible for,
instead of viewing *all* the appraisals.
This report can also be :ref:`grouped by status <appraisals/group-status>`.
.. image:: appraisal_analysis/users-appraisals.png
:align: center
:alt: A report showing only the appraisals the user is responsible for, by status.
.. seealso::
- :doc:`Odoo essentials reporting <../../essentials/reporting>`
- :doc:`../../essentials/search`
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 12 KiB

@@ -24,13 +24,12 @@ Each appraisal card displays the following information:
- **Name**: the employee's name.
- **Department**: the department the employee is associated with.
- **Company**: the company the employee works for. This only appears in a multi-company
database.
- **Company**: the company the employee works for. This only appears in a multi-company database.
- **Date**: the date the appraisal was requested, or is scheduled for in the future.
- **Activities**: any :doc:`activities <../../essentials/activities>` that are scheduled for the
appraisal, such as *Meetings* or *Phone Calls*.
- **Manager**: the employee's manager, indicated by the profile icon in the bottom-right
corner of an appraisal card.
- **Manager**: the employee's manager, indicated by the profile icon in the bottom-right corner of
an appraisal card.
- **Status banner**: the status of the appraisal. A banner appears if an appraisal is marked as
either *Canceled* or *Done*. If no banner is present, that means the appraisal has not happened,
or has not been scheduled yet.
@@ -274,8 +273,9 @@ Once the appraisal is marked as *Done*, the :guilabel:`Mark as Done` button disa
button.
Then, click the :guilabel:`Confirm` button that appears, and make any modifications needed. Once
all modifications are complete, click the the :guilabel:`Mark as Done` button again.
all modifications are complete, click the :guilabel:`Mark as Done` button again.
.. seealso::
- :doc:`../appraisals/goals`
- :doc:`../appraisals/reporting`
- :doc:`../appraisals/appraisal_analysis`
- :doc:`../appraisals/skills_evolution`
@@ -1,130 +0,0 @@
=========
Reporting
=========
In Odoo's *Appraisals* app, two metrics are tracked as appraisals are completed: an :ref:`appraisal
analysis <appraisals/analysis-report>`, and a :ref:`skills evolution <appraisals/skills-report>`.
.. _appraisals/analysis-report:
Appraisal analysis
------------------
To access the *Appraisal Analysis* report, navigate to :menuselection:`Appraisals app --> Reporting
--> Appraisal Analysis`.
On the :guilabel:`Appraisal Analysis` page, there is a report of all the appraisals in the database,
highlighted in different colors to represent their status.
Appraisals in yellow are *Done*, appraisals in orange are in progress (the *Appraisal Sent*, but not
completed), appraisals in red have been *Cancelled*, and appraisals in gray are scheduled *To Start*
(according to the :ref:`appraisals/appraisal-plan`), but have not been confirmed yet.
The report displays the current year, in a default Gantt view, and is grouped by department.
To change the period of time that is presented by default, adjust the date settings in the top-left
of the report. The options to display are :guilabel:`Day`, :guilabel:`Week`, :guilabel:`Month`, and
:guilabel:`Year`. Use the arrows to move forward or backward in time.
At any point, click the :guilabel:`Today` button to have the Gantt view include today's date in the
view.
The report can have other :ref:`filters <search/filters>` and :ref:`groupings <search/group>` set in
the :guilabel:`Search...` bar at the top.
.. image:: reporting/analysis.png
:align: center
:alt: A report showing all the appraisals for the Appraisal Analysis report.
.. example::
Appraisals that have been cancelled appear in red on the :guilabel:`Appraisal Analysis` report,
but there is no preconfigured filter to show only cancelled appraisals.
To view only cancelled appraisals, click the :icon:`fa-caret-down` :guilabel:`(caret down)` icon
in the :guilabel:`Search...` bar.
Next, click :guilabel:`Add Custom Filter` in the :guilabel:`Filters` section, and a
:guilabel:`Add Custom Filter` pop up window loads.
Using the drop-down menu, select :guilabel:`Status` for the first drop-down, then select
:guilabel:`Cancelled` for the third drop-down field. Click the :guilabel:`Add` button, and only
appraisals that have been cancelled appear.
.. image:: reporting/custom-filter.png
:align: center
:alt: The Custom Filter pop-up with the parameters set to only show cancelled appraisals.
.. _appraisals/skills-report:
Skills evolution
----------------
To access the *Skills Evolution* report, navigate to :menuselection:`Appraisals app --> Reporting
--> Skills Evolution`. The :guilabel:`Appraisal Skills Report` page displays a report of all skills,
grouped by employee.
Skill levels are **only** updated after an appraisal is marked as done. Any skill level changes from
any ongoing appraisals that have **not** been finalized are **not** included in this report.
All the lines of the report are collapsed, by default. To view the details of a line, click anywhere
on a line to expand the data.
Each skill has the following information listed:
- :guilabel:`Employee`: name of the employee.
- :guilabel:`Skill Type`: the category the skill falls under.
- :guilabel:`Skill`: the specific, individual skill.
- :guilabel:`Previous Skill Level`: the level the employee had previously achieved for the skill.
- :guilabel:`Previous Skill Progress`: the previous percentage of competency achieved for the skill
(based on the :guilabel:`Skill Level`).
- :guilabel:`Current Skill Level`: the current level the employee has achieved for the skill.
- :guilabel:`Current Skill Progress`: the current percentage of competency achieved for the skill.
- :guilabel:`Justification`: any notes entered on the skill, explaining the progress.
The color of the skill text indicates any changes from the previous appraisal. Skill levels that
have increased since the last appraisal appear in green as an *Improvement*, skill levels that have
not changed appear in black as *No Change*, and skills that have regressed appear in red as
*Regression*.
.. image:: reporting/skills-report.png
:align: center
:alt: A report showing all the skills grouped by employee.
The report can have other :ref:`filters <search/filters>` and :ref:`groupings <search/group>` set in
the :guilabel:`Search...` bar at the top.
.. example::
Since the :guilabel:`Appraisal Skills Report` organizes all skills by employee, it can be
difficult to find employees with a specific skill at a specific level. To find these employees,
a custom filter must be used.
To view only employees with an :guilabel:`Expert` level of the :guilabel:`Javascript` skill,
first remove any active filters in the :guilabel:`Search...` bar.
Next, click the :icon:`fa-caret-down` :guilabel:`(caret down)` icon in the :guilabel:`Search...`
bar, then click :guilabel:`Add Custom Filter` in the :guilabel:`Filters` section to load an
:guilabel:`Add Custom Filter` pop up window.
Using the drop-down menu, select :guilabel:`Skill` for the first drop-down, then select
:guilabel:`Javascript` for the third drop-down field.
Next, click the :guilabel:`New Rule` button, and another line appears. In this second line,
select :guilabel:`Current Skill Level` for the first drop-down, then select :guilabel:`Expert`
for the third drop-down field.
After the :guilabel:`New Rule` button is clicked, the word :guilabel:`any` in the sentence
:guilabel:`Match any of the following rules:` changes from plain text into a drop-down menu.
Click the :icon:`fa-caret-down` :guilabel:`(caret down)` icon after the word :guilabel:`any`, and
select :guilabel:`all`.
Finally, click the :guilabel:`Add` button, and only employees that have an :guilabel:`Expert`
level for the skill :guilabel:`Javascript` appear.
.. image:: reporting/javascript.png
:align: center
:alt: The Custom Filter pop-up with the parameters set to only show employees with expert
level for the skill javascript.
.. seealso::
- :doc:`Odoo essentials reporting <../../essentials/reporting>`
- :doc:`../../essentials/search`
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 7.4 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

@@ -0,0 +1,164 @@
================
Skills evolution
================
In Odoo's **Appraisals** app, it is possible to view employee's skills as they progress over time in
the :ref:`Skills Evolution <appraisals/identify-skills-evolution>` report, also known as the
*Appraisal Skills Report*.
Managers can use this to see who is achieving their various skill goals set on their appraisals, who
is meeting their skill deadlines, who has the highest performance in terms of skill development, and
more.
The *Skills Evolution* report also provides the ability to :ref:`search for employees with specific
skills <appraisals/identify-skills>` at certain levels, which can be helpful for scenarios where
specific skills are required.
.. _appraisals/identify-skills-evolution:
Skills evolution report
=======================
To access this *Skills Evolution* report, navigate to :menuselection:`Appraisals app --> Reporting
--> Skills Evolution`.
Doing so reveals the :guilabel:`Appraisal Skills Report` page, which displays a report of all
skills, grouped by employee, in alphabetical order, by default.
.. note::
Skill levels are **only** updated after an appraisal is marked as done. Any skill level changes
from ongoing appraisals that have **not** been finalized are **not** included in this report.
All the :guilabel:`Employee` lines are expanded, with all the various skill types nested below. Each
individual skill type is collapsed, by default. To view the individual skills contained within a
skill type, click anywhere on the skill type line to expand the data.
Each skill has the following information listed:
- :guilabel:`Employee`: the name of the employee.
- :guilabel:`Skill Type`: the category the skill falls under.
- :guilabel:`Skill`: the specific, individual skill.
- :guilabel:`Previous Skill Level`: the level the employee had previously achieved for the skill.
- :guilabel:`Previous Skill Progress`: the previous percentage of competency achieved for the skill
(based on the :guilabel:`Skill Level`).
- :guilabel:`Current Skill Level`: the current level the employee has achieved for the skill.
- :guilabel:`Current Skill Progress`: the current percentage of competency achieved for the skill.
- :guilabel:`Justification`: any notes entered on the skill, explaining the progress.
The color of the skill text indicates any changes from the previous appraisal. Skill levels that
have increased since the last appraisal appear in green, as an *Improvement*. Skill levels that have
**not** changed appear in black, as *No Change*. Skills that have regressed appear in red, as
*Regression*.
This report can be modified to find specific information by adjusting the :ref:`filters
<search/filters>` and :ref:`groupings <search/group>` set in the search bar at the top.
.. image:: skills_evolution/skills-report.png
:align: center
:alt: A report showing all the skills grouped by employee.
.. _appraisals/identify-skills:
Use case: Identify employees with specific skills
=================================================
Since the :guilabel:`Appraisal Skills Report` organizes all skills by employee, it can be difficult
to find employees with a specific skill at a specific level. To find these employees, a custom
filter must be used.
In this example, the report is modified to show employees with an expert level of Javascript
knowledge. To view only those employees, first remove all active filters in the search bar.
Next, click the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon in the search bar, then click
:guilabel:`Add Custom Filter` beneath the :icon:`fa-filters` :guilabel:`Filters` column to load an
:guilabel:`Add Custom Filter` pop-up window.
Using the drop-down menu in the first field, select :guilabel:`Skill`. Then, keep the second field
as-is, and select :guilabel:`Javascript` from the third drop-down menu in the third field.
Next, click :guilabel:`New Rule`, and another line appears. In this second line, select
:guilabel:`Current Skill Level` for the first drop-down field, leave the second field as-is, then
select :guilabel:`Expert` for the third drop-down field.
After the :guilabel:`New Rule` button is clicked, the word :guilabel:`"any"` in the sentence
:guilabel:`Match any of the following rules:`, changes from plain text into a drop-down menu. Click
the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon after the word :guilabel:`any`, and select
:guilabel:`all`.
Finally, click the :guilabel:`Add` button.
.. image:: skills_evolution/javascript.png
:align: center
:alt: The Custom Filter pop-up with the parameters set.
Now, only employees that have an :guilabel:`Expert` level for the skill :guilabel:`Javascript`
appear. In this example, only :guilabel:`Marc Demo` meets these criteria.
.. image:: skills_evolution/results.png
:align: center
:alt: The employees with expert Javascript skills.
Use case: Assess highest improvement
====================================
Another way to modify the :guilabel:`Appraisal Skills Report` is to identify the employee who has
the highest amount of improved skills over a specific period of time.
To view this information, first remove the default filter in the search bar. Next, click the
:icon:`fa-caret-down` :guilabel:`(down arrow)` icon in the search bar, then click
:guilabel:`Improvement` beneath the :icon:`fa-filter` :guilabel:`Filters` column. Enabling this
filter only presents skills that have improved.
It is possible to view the skills that have improved over a period of time, such as a specific
quarter, or month. With the search bar drop-down menu still expanded, click :guilabel:`Add Custom
Filter` at the bottom of the :icon:`fa-filter` :guilabel:`Filters` column, and an :guilabel:`Add
Custom Filter` pop-up window appears.
Select :guilabel:`Create Date` for the first drop-down field, then select :guilabel:`is between` for
the second drop-down field. Once :guilabel:`is between` is selected, a second field appears after
the last field. Using the calendar selector, select the date range to apply the filter to. Once all
the fields are properly formatted, click :guilabel:`Add`.
The custom filter presents only the skills that have improved during the specified time period,
organized by employee.
.. example::
To determine the employee with the most amount of improved skills for the third quarter, remove
the default filter in the search bar of the :guilabel:`Appraisal Skills Report`. Next, activate
the :guilabel:`Improvement` filter, then click :guilabel:`Add Custom Filter` at the bottom of the
:icon:`fa-filter` :guilabel:`Filters` column.
In the resulting :guilabel:`Add Custom Filter` pop-up window, select :guilabel:`Create Date` for
the first drop-down field, then select :guilabel:`is between` for the second drop-down field. Two
date fields appear after :guilabel:`is between` is selected.
Using the calendar selector, set the first date to :guilabel:`07/01/2024` and the second date to
:guilabel:`09/30/2024`, then click :guilabel:`Add`.
These filters present only the skills that have improved during the third quarter (between July
1st and September 30th, 2024), organized by employee.
.. image:: skills_evolution/custom-filter.png
:alt: The Custom Filter pop-up with the parameters set.
To view the number of employees and skills in further detail, click the :icon:`oi-view-pivot`
:guilabel:`(Pivot)` icon in the top-right corner to view the data in a pivot table. This presents a
pivot table with the employees populating the rows, and the only visible column represents the total
number of improved skills.
To expand more rows or columns to view which skill types had the most overall improvement, click
:icon:`fa-plus-square` :guilabel:`Total` above the :guilabel:`Count` column, then click
:guilabel:`Skill Type` from the resulting drop-down menu. This organizes the total improved skills
by their respective skill type.
.. example::
In this example, it is determined that :guilabel:`Charles Reginald` had the largest improvement
in the third quarter, with six improved skills. Additionally, they also had the most skill
improvements for both :guilabel:`Languages` (three) and :guilabel:`Programming Languages` (two).
.. image:: skills_evolution/largest-improvement.png
:alt: The pivot table showing the skill improvements for the third quarter.
.. seealso::
- :doc:`Odoo essentials reporting <../../essentials/reporting>`
- :doc:`../../essentials/search`
Binary file not shown.

After

Width:  |  Height:  |  Size: 6.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

+3
View File
@@ -13,3 +13,6 @@ Odoo *Employees* organizes a company's employee records, contracts, and departme
employees/new_employee
employees/departments
employees/certifications
employees/offboarding
employees/retention_report
@@ -0,0 +1,117 @@
==============
Certifications
==============
When jobs require specific knowledge, it is necessary to track employee certifications to ensure the
necessary knowledge and certifications are in place.
Certifications include classes, tests, professional seminars, and more. There are no restrictions in
terms of what type of certification records can be added in Odoo.
.. important::
To access the *Employee Certifications* report, the **Surveys** app **must** be installed.
View certifications
===================
To view a full list of all employee certifications, navigate to :menuselection:`Employees app -->
Reporting --> Certifications`.
All certifications appear in a list view, grouped by employee. Each certification entry displays the
following:
- :guilabel:`Employee`: the employee's name, along with their avatar image.
- :guilabel:`Name`: the title of the certification.
- :guilabel:`Validity Start`: when the employee received the certification.
- :guilabel:`Validity End`: when the certification expires.
- :guilabel:`Certification`: the corresponding course in the **Surveys** app that was completed by
the employee, if applicable.
The entries are also color-coded. Current certifications that are still valid appear in black,
expired certifications appear in red, and certifications that are going to expire within the next
90 days appear in orange.
.. image:: certifications/certifications.png
:align: center
:alt: The list of employee certifications.
.. important::
**Only** certification records with the *Display Type* set to *Certification* on their
:ref:`certification form <employees/certifications-form>` appear on the :guilabel:`Employee
Certifications` report. All other certifications appear in the resume section of the
:doc:`employee form <new_employee>`.
View certifications by expiration status
----------------------------------------
When managing a large number of employees with a variety of certifications, it can be difficult to
determine which employees need to keep necessary certifications current in the default list view. In
this scenario, it is beneficial to view the certifications by expiration status.
To do so, navigate to :menuselection:`Employees app --> Reporting --> Certifications`. Next, click
the :icon:`fa-caret-down` :guilabel:`(down arrow)` in the search bar, then click :guilabel:`Add
Custom Group`, revealing a drop-down menu. Click :guilabel:`Expiration Status`, then click away from
the drop-down menu to close it.
After doing so, all the certifications are organized by status, starting with :guilabel:`Expired`
certifications, then certifications that are :guilabel:`Expiring` soon (within the next 90 days),
and lastly, certifications that are still :guilabel:`Valid`.
This view provides an easy way to see which employees have certifications that are going to expire
soon, to determine which employees need to take action to keep their certifications current.
.. image:: certifications/status.png
:align: center
:alt: The list of employee certifications, grouped by status.
.. _employees/certifications-form:
Log a certification
===================
To log a certification for an employee, navigate to :menuselection:`Employees app --> Reporting -->
Certifications`. Click :guilabel:`New`, and a blank certification form loads. Enter the following
information on the form:
- :guilabel:`Title`: Enter a short description for the certification in this field.
- :guilabel:`Employee`: Using the drop-down menu, select the employee who received the
certification.
- :guilabel:`Type`: Using the drop-down menu, select the type of certification received. This field
determines where on the employee's resume the certification appears. To create a new
:guilabel:`Type`, enter the type in the field, then click :guilabel:`Create "type"`.
The default options are:
- :guilabel:`Experience`: Select this option to have the certification appear in the *Experience*
section of the *Resume* tab on the :doc:`employee form <new_employee>`.
- :guilabel:`Education`: Select this option to have the certification appear in the *Education*
section of the *Resume* tab on the :doc:`employee form <new_employee>`.
- :guilabel:`Internal Certification`: Select this option to have the certification appear in the
*Internal Certification* section of the *Resume* tab on the :doc:`employee form <new_employee>`.
- :guilabel:`Completed Internal Training`: Select this option to have the certification appear in
*Completed Internal Training* section of the *Resume* tab on the :doc:`employee form
<new_employee>`.
- :guilabel:`Display Type`: Select the visibility of the certification in this field. The default
options are:
- :guilabel:`Classic`: Select this option to have the certification appear in the *Resume* section
of the employee form, and **not** appear on the *Employee Certifications* report.
- :guilabel:`Course`: Select this option to have the certification appear in the *Resume* section
of the employee form, and **not** appear on the *Employee Certifications* report. Once this
option is selected, a :guilabel:`Course` field appears beneath the :guilabel:`Display Type`
field. Using the drop-down menu, select the course the employee took. The course is created in
the **Surveys** app.
- :guilabel:`Certification`: Select this option to have the certification appear in the *Resume*
section of the employee form, **and** appear on the *Employee Certifications* report. Once this
is selected, a :guilabel:`Certification` field appears beneath the :guilabel:`Display
Type` field. Using the drop-down menu, select the certification the employee took.
- :guilabel:`Description`: Enter a description for the certification in this field.
- :guilabel:`Duration`: Click into the first field, and a calendar pop-over window appears. Click on
the start and end dates for the certification validity period. When the correct dates are
selected, click :icon:`fa-check` :guilabel:`Apply`, and both fields are populated.
.. image:: certifications/osha.png
:align: center
:alt: A certification form filled out for an OSHA certificate for construction.
Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

@@ -0,0 +1,104 @@
===========
Offboarding
===========
When an employee leaves the company, it is important to ensure their employee record is updated to
reflect their departure, log the reason why, close any open activities associated with the
employee, and provide them with any important documents.
Archive an employee
===================
In Odoo, when an employee leaves the company they must be *archived*. To archive an employee, first
navigate to the :menuselection:`Employees app`. From here, locate the employee who is leaving the
company, and click on their employee card.
The employee form loads, displaying all their information. Click the :icon:`fa-gear`
:guilabel:`(gear)` icon in the top-left corner, and a drop-down menu appears. Click
:icon:`oi-archive` :guilabel:`Archive`, and an :guilabel:`Employee Termination` pop-up window
appears.
Fill out the following fields on the form:
- :guilabel:`Departure Reason`: Select a reason the employee is leaving from the drop-down menu. The
default options are:
- :guilabel:`Fired`: Select this option when an employee is being let go, and the company has
given notice.
- :guilabel:`Resigned`: Select this option when the employee no longer wishes to be employed, and
the employee has given notice.
- :guilabel:`Retired`: Select this option when the employee is retiring.
- :guilabel:`Became Freelance`: Select this option when the employee is no longer working for the
company, but is becoming a freelance worker instead.
- :guilabel:`Contract End Date`: Using the calendar selector, select the last day the employee is
working for the company.
- :guilabel:`Detailed Reason`: Enter a short description for the employee's departure in this field.
- :guilabel:`Close Activities`: Tick the checkbox next to each type of activity to close or delete
any open activities associated with it. It is recommended to tick **all** checkboxes that are
applicable. The available options are:
- :guilabel:`Appraisals`: cancels all appraisals scheduled after the contract end date.
- :guilabel:`Contract`: applies an end date for the current contract.
- :guilabel:`Company Car`: removes the employee as the driver for their current company car, and
:ref:`assigns the next driver <fleet/new_vehicle/new-driver>`, if applicable.
- :guilabel:`Time Off`: cancels any time off requests after the contract end date.
- :guilabel:`Allocations`: removes the employee from any accrual plans they are on.
- :guilabel:`HR Info`: Tick the checkbox next to :guilabel:`Send Access Link` to send a download
link to the employee's personal email address, containing all their personal HR files.
- :guilabel:`Private Email`: This field appears if the :guilabel:`HR Info` checkbox is ticked. Enter
the private email address for the employee.
When the form is complete, click :guilabel:`Apply`. The employee record is archived, an email with a
download link to their personal documents is sent to the employee's private email address (if
selected), and a red :guilabel:`Archived` banner appears in the top-right corner of the employee
form. The chatter logs the :guilabel:`Departure Date` and :guilabel:`Departure Reason`, and if an
access link was emailed.
.. image:: offboarding/termination.png
:align: center
:alt: The employee termination form with all fields filled out.
.. note::
While attempting to send the HR documents access link, an :guilabel:`Invalid Operation` pop-up
window may appear, displaying the following error message:
:guilabel:`Employee's related user and private email must be set to use "Send Access Link"
function: (Employee Name)`
If this error appears, click :guilabel:`Close` to close the pop-up window, then tick the
:guilabel:`Send Access Link` checkbox to deselect it on the :guilabel:`Employee Termination`
pop-up window.
Click :guilabel:`Apply` to archive the employee and close the selected activities on the
:guilabel:`Employee Termination` pop-up window, returning to the employee form.
Once the employee form, ensure the following fields are populated:
- :guilabel:`Private Information` tab: Ensure an email address is entered in the
:guilabel:`Email` field.
- :guilabel:`HR Settings` tab: Ensure a :guilabel:`Related User` is selected in the corresponding
field.
After the necessary information is entered, :ref:`resend the HR documents access link
<employees/send-link>`
.. _employees/send-link:
Send HR documents access link
-----------------------------
If the access link was not sent when first archiving the employee on the *Employee Termination*
form, it can be sent after the employee is archived at any point.
After an employee is archived, they are no longer visible on the main **Employees** app dashboard.
To view the archived employees, navigate to the :menuselection:`Employees app` dashboard, and click
the :icon:`fa-caret-down` :guilabel:`(down arrow)` in the search bar to reveal a drop-down menu.
Select :guilabel:`Archived`, towards the bottom of the :icon:`fa-filter` :guilabel:`Filters` column,
then click away from the drop-down window to close it.
Now, only archived employees appear on the dashboard. Click on the desired employee to open their
employee form. On this form, click the :icon:`fa-gear` :guilabel:`(gear)` icon in the top-left
corner, then click :guilabel:`Send HR Documents Access Link` from the resulting drop-down menu. The
chatter logs that the link was sent.
Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

@@ -0,0 +1,103 @@
=========================
Employee retention report
=========================
It is possible to determine the retention rate for a company by modifying an existing report.
First, navigate to :menuselection:`Employees app --> Reporting --> Contracts` to open the
:guilabel:`Employee Analysis` report. This report shows the number of all employees for the
:guilabel:`Last 365 Days`, in a default :icon:`fa-line-chart` :guilabel:`Line Chart`.
.. image:: retention_report/employees-analysis.png
:align: center
:alt: The default Employees Analysis report.
Next, click the :guilabel:`Measures` :icon:`fa-caret-down` button in the upper-left corner,
revealing a drop-down menu. Click :guilabel:`# Departure Employee` in the list, then click away from
the drop-down menu to close it. Now, the report shows all the employees who were archived for the
:guilabel:`Last 365 Days`.
To view this information in an easier format, click the :icon:`oi-view-pivot` :guilabel:`(Pivot)`
icon in the upper-right corner, and the data is presented in a pivot table.
The various employees, organized by department, populate the rows. The columns display the following
totals: the monthly :guilabel:`Wage`, the :guilabel:`Fuel Card` budget, total :guilabel:`Annual
Employee Budget` (also referred to as the *annual salary*), the number of :guilabel:`New Employees`,
as well as the number of :guilabel:`Departure Employees` (employees who left).
.. image:: retention_report/pivot-departures.png
:align: center
:alt: The Employees Analysis report, modified to show departed employees only.
Employee retention rate comparison report
=========================================
It is possible to compare data only for employees who left, compared to the total current employees,
between two separate time periods. This is commonly referred to as the *employee retention rate*.
To view these metrics, first open the :guilabel:`Employee Analysis` report by navigating to
:menuselection:`Employees app --> Reporting --> Contracts`. Click the :icon:`oi-view-pivot`
:guilabel:`(Pivot)` icon in the upper-right corner to view the information in a pivot table.
Next, click the :guilabel:`Measures` :icon:`fa-caret-down` button in the upper-left corner,
revealing a drop-down menu. Click :guilabel:`# New Employees`, :guilabel:`Annual Employee Budget`,
:guilabel:`Fuel Card`, and :guilabel:`Wage` in the list, to deselect these metrics and hide them in
the table. Then, click :guilabel:`Count` at the bottom of the list to enable that metric.
Click away from the drop-down menu to close it. Now, the report shows all the employees who left the
company (:guilabel:`# Departure Employee`), as well as the total number of employees
(:guilabel:`Count`), for the :guilabel:`Last 365 Days`.
To compare the data for the current year with the previous year, click the :icon:`fa-caret-down`
:guilabel:`(down arrow)` in the search bar, revealing multiple filter and grouping options. Click
:guilabel:`Last 365 Days` in the :icon:`fa-filter` :guilabel:`Filters` column, to turn off that
filter. Then, click :guilabel:`Date`, and click the current year (in this example, :guilabel:`2024`)
from the resulting drop-down menu.
Once a selection is made beneath :guilabel:`Date` in the :icon:`fa-filter` :guilabel:`Filters`
column, a :icon:`fa-adjust` :guilabel:`Comparison` column appears. Click :guilabel:`Date: Previous
Year` in the new column, then click off of the drop-down menu to close it.
.. note::
In Odoo, in order to access the :icon:`fa-adjust` :guilabel:`Comparison` column, a specific time
*other than* :guilabel:`Last 365 Days` **must** be selected. If not, the :icon:`fa-adjust`
:guilabel:`Comparison` column is **not** visible.
Now, the pivot table displays the total number of employees who left the company (:guilabel:`#
Departure Employee`), as well as the total number of employees (:guilabel:`Count`) in the columns.
These are further divided by the two different years, and also displays the :guilabel:`Variation`
between the two.
The rows display the departments, and lists each individual employee for each department, in the
rows.
For a more concise view of this report, click :icon:`fa-minus-square-o` :guilabel:`Total` above the
top row of the departments and employees, to collapse the rows. Now, the table presents the total
number of employees who left the company for both years, compared to the total number of employees
for both years, including the difference, in a percentage.
.. example::
In this example, :guilabel:`3` employees out of :guilabel:`83` left in 2023, and :guilabel:`8`
employees out of :guilabel:`202` left in 2024. There was a :guilabel:`166.67%` increase in the
employees who left in 2024 as compared to 2023. Additionally, there was a :guilabel:`143.37%`
increase in the total number of employees in 2024 as compared to 2023.
.. image:: retention_report/comparison-years.png
:align: center
:alt: The report modified to show the difference between two years of employees who left.
To view more detailed rates for each department, click :icon:`fa-plus-square` :guilabel:`Total` in
the single row, revealing a drop-down menu, and click :guilabel:`Department`. Click away from the
drop-down to close it, and now the pivot table displays the total number of employees who left
(:guilabel:`# Departure Employee`), the total number of employees (:guilabel:`Count`), and the
:guilabel:`Variation` (in a percentage) for both 2023 and 2024, organized by department.
.. example::
In this example, it can be determined that the :guilabel:`Management` department had the best
retention rate in 2024 as compared to 2023, with a :guilabel:`Variation` rate of
:guilabel:`-100%`. Additionally, it can be determined that the :guilabel:`Management / Research &
Development` department had the most turnover, with a :guilabel:`Variation` of :guilabel:`300%`.
.. image:: retention_report/department-totals.png
:align: center
:alt: The expanded employee retention report by department.
Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

@@ -43,6 +43,8 @@ Vehicle form fields
fields that apply to the model. If some of the fields do not appear, this may indicate there is
no model selected.
.. _fleet/new_vehicle/new-driver:
Driver section
--------------
+2
View File
@@ -963,6 +963,7 @@ form.
- :doc:`payroll/payslips`
- :doc:`payroll/work_entries`
- :doc:`payroll/reporting`
- :doc:`payroll/work_entry_analysis`
.. toctree::
:titlesonly:
@@ -971,3 +972,4 @@ form.
payroll/work_entries
payroll/payslips
payroll/reporting
payroll/work_entry_analysis
+4 -56
View File
@@ -178,63 +178,11 @@ spreadsheet view with the report added to it.
.. _payroll/doc-storage:
.. note::
If the *Documents* app is **not** installed, the :guilabel:`Insert in Spreadsheet` option places
the newly-created spreadsheet in the *Dashboards* app.
If the **Documents** app is **not** installed, the :guilabel:`Insert in Spreadsheet` option
places the newly-created spreadsheet in the **Dashboards** app.
If the *Documents* application **is** installed, the spreadsheet has the option to be stored in
either the *Dashboards* app or *Documents* app.
Work entry analysis
-------------------
The default :guilabel:`Work entry analysis` report provides an overview of the validated work
entries for the current month. To view this report, navigate to :menuselection:`Payroll app -->
Reporting --> Work Entry Analysis`.
The work entries appear in a pivot table, with the default filters of `Current month: (Month)(Year)`
and `Validated`. The various types of :doc:`work_entries` are listed on the left-hand side (x-axis),
while the :guilabel:`Total` values appear along the top (the y-axis).
To change the displayed view, click the :guilabel:` (plus)` icon next to the word
:guilabel:`Total`, then click on one of the grouping options. The available options are
:guilabel:`Work Entry Type`, :guilabel:`Employee`, and :guilabel:`Department`. If in a multi-company
database, a :guilabel:`Company` option also appears.
To add a new group to sort the data, click :guilabel:`Add Custom Group`, then click one of the
presented options.
.. tip::
Wherever a :guilabel:` (plus)` icon appears on a pivot table, the information can be further
grouped. Click on a :guilabel:` (plus)` icon to reveal the available grouping options.
Click on a :guilabel:` (minus)` icon anywhere on the pivot table to remove that respective
grouping.
It is possible to compare the current :guilabel:`Work entry analysis` report to the previous month
or the previous year. To view these comparisons, click the :guilabel:`⬇️ (down arrow)` icon in the
search bar to reveal the various :ref:`filter <payroll/filters>` and grouping options.
In the section titled :guilabel:`Comparison`, click on either :guilabel:`Current Month: Previous
Period` or :guilabel:`Current Month: Previous Year`. The report updates and displays the previous
time period values, as well as the :guilabel:`Variation` between the two.
.. image:: reporting/work-entry-comparison.png
:align: center
:alt: A pivot table comparing the work entries of the current month and the previous month.
To export the data in an XLSX format, click the :guilabel:`Download xlsx` button, represented by a
:guilabel:`⬇️ (down arrow above a horizontal bar)` icon, located at the far-right of the available
icons. The information is then downloaded into a spreadsheet.
The data can also be inserted into a spreadsheet. Click the :guilabel:`Insert in Spreadsheet` button
and a :guilabel:`Select a spreadsheet to insert your (type of report)` pop-up window appears, asking
which spreadsheet to place the information in. Select an existing spreadsheet or dashboard, or
select a new :guilabel:`Blank spreadsheet`. Click the :guilabel:`Confirm` button to move to a
spreadsheet view with the report added to it.
.. note::
The work entry analysis spreadsheet is :ref:`stored in the same locations <payroll/doc-storage>`
as a pivot table.
If the **Documents** application *is* installed, the spreadsheet has the option to be stored in
either the **Dashboards** app or **Documents** app.
Salary attachment report
------------------------
Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

@@ -59,8 +59,8 @@ Enter the following information on the form:
this field is left blank, it automatically populates once an employee is selected. The default
entry is `Attendance: (Employee)`.
- :guilabel:`Employee`: select the employee the work entry is for, using the drop-down menu.
- :guilabel:`Work Entry Type`: select the :ref:`work entry type <payroll/work-entries-config>` using
the drop-down menu.
- :guilabel:`Work Entry Type`: select the :ref:`work entry type <payroll/work-entries>` using the
drop-down menu.
- :guilabel:`From` and :guilabel:`To`: enter the start (:guilabel:`From`) and end (:guilabel:`To`)
dates and times for the work entry.
@@ -0,0 +1,80 @@
===================
Work entry analysis
===================
The default *Work Entries Analysis* report provides an overview of the validated work entries for
the current month. To view this report, navigate to :menuselection:`Payroll app --> Reporting -->
Work Entry Analysis`.
The work entries appear in a pivot table, with the default filters of :guilabel:`Current month:
(Month)(Year)` and :guilabel:`Validated`. The various types of :doc:`work_entries` populate the
rows, while the :guilabel:`Total` values populate the only visible column.
To change the displayed information, click :icon:`fa-plus-square` :guilabel:`Total` above the main
column, revealing a drop-down menu of available metrics. Click on one of the available groupings,
and the data is further organized by that selected metric. The default options are :guilabel:`Work
Entry Type`, :guilabel:`Employee`, and :guilabel:`Department`. If in a multi-company database, a
:guilabel:`Company` option also appears.
Work entry analysis comparison
==============================
It is possible to compare the work entries from one time period to a previous time period. To view
this comparison, first navigate to :menuselection:`Payroll app --> Reporting --> Work Entry
Analysis`.
Next, click the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon in the search bar, revealing a
drop-down menu. Under the :icon:`fa-adjust` :guilabel:`Comparison` section, click on either
:guilabel:`Current Month: Previous Period` or :guilabel:`Current Month: Previous Year`.
The report updates and displays the data for the current time period, data for the selected previous
time period, as well as the :guilabel:`Variation` between the two, in a percentage.
.. image:: work_entry_analysis/work-entry-comparison.png
:alt: A pivot table comparing the work entries of the current month and the previous month.
.. note::
If no work entries for a specific :ref:`work entry type <payroll/work-entries>` are logged for
the time period, it does **not** appear on the report. That does **not** mean the work entry type
does not exist, or is not configured.
Additionally, if the default :guilabel:`Current month: (Month)(Year)` filter is removed from the
search bar, the :guilabel:`Comparison` column does **not** appear; there must be a time-frame
selected to view the :guilabel:`Comparison` column.
Use case: overtime report comparison
====================================
It is possible to alter the *Work Entries Analysis* report to show a comparison of only overtime
work entries, grouped by employee, for a specific time period. To view this data, first navigate to
the default *Work entry analysis* report by going to :menuselection:`Payroll app --> Reporting -->
Work Entry Analysis`.
Next, click the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon in the search bar, revealing a
drop-down menu. Under the :icon:`fa-filter` :guilabel:`Filters` column, click :guilabel:`Add Custom
Filter`, and a :guilabel:`Add Custom Filter` pop-up window appears.
Using the drop-down menu, select :guilabel:`Work Entry Type` for the first field, leave the middle
field as-is (with :guilabel:`is in` populating the field), and select :guilabel:`Overtime Hours` for
the last field. Click :guilabel:`Add`, and all other work entry types disappear, and
:guilabel:`Overtime Hours` appear in the sole row.
To compare overtime from the current month to the previous month, to see which month had more
overtime logged, click the :icon:`fa-caret-down` :guilabel:`(down arrow)` icon again in the search
bar. Under the :icon:`fa-adjust` :guilabel:`Comparison` section, click :guilabel:`Current Month:
Previous Period`. Click away from the drop-down menu to close it.
Now, the report displays the :guilabel:`Overtime Hours` for the current month and the previous
month, along with the :guilabel:`Variation`, in a percentage.
To view which employees received the most overtime, click :icon:`fa-plus-square` :guilabel:`Overtime
Hours`, revealing a drop-down menu of options. Click :guilabel:`Employee`, and all employees with
overtime work entries for either the current or previous month appears.
In this example, it can be determined that :guilabel:`Marc Demo` worked the most overtime in
:guilabel:`August 2024`, whereas :guilabel:`Beth Evans` worked the most overtime hours in
:guilabel:`September 2024`. Additionally, :guilabel:`Mitchell Admin` had the largest variation
change, with a :guilabel:`-100%` change from :guilabel:`August 2024` to :guilabel:`September 2024`.
.. image:: work_entry_analysis/variation.png
:alt: A pivot table comparing the overtime from September 2024 with August 2024.
Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

+5 -1
View File
@@ -320,7 +320,7 @@ The pre-configured email templates and when to use them are as follows:
application caught the recruiter's attention, and they have been shortlisted for either a phone
call or an interview.
- :guilabel:`Recruitment: Schedule Interview`: this template is used to let the applicant know that
they have passed the :guilabel:`Initial Qualification` stage and they will be contacted to set up
they have passed the :guilabel:`Initial Qualification` stage, and they will be contacted to set up
an interview with the recruiter. This email is automatically sent out once the applicant is in the
:guilabel:`Initial Qualification` stage.
- :guilabel:`Recruitment: Not interested anymore`: this template is used when an applicant
@@ -381,6 +381,8 @@ the applicant. The email then appears in the chatter.
- :doc:`recruitment/refuse_applicant`
- :doc:`recruitment/source_analysis`
- :doc:`recruitment/recruitment_analysis`
- :doc:`recruitment/time_in_stage`
- :doc:`recruitment/team_performance`
.. toctree::
:titlesonly:
@@ -393,3 +395,5 @@ the applicant. The email then appears in the chatter.
recruitment/refuse_applicant
recruitment/source_analysis
recruitment/recruitment_analysis
recruitment/time_in_stage
recruitment/team_performance
@@ -39,6 +39,8 @@ button to delete it.
Once the job position has been created, it appears as a card in the Kanban view on the main
*Recruitment* app dashboard.
.. _recruitment/new_job_position/edit:
Edit a new job position
-----------------------
@@ -0,0 +1,95 @@
==========================
Team performance reporting
==========================
The *Team Performance* report in the **Recruitment** app shows how many applicants each recruiter is
managing.
This information is determined by the individuals populating the :ref:`Recruiter
<recruitment/applicant-details>` field on each applicant form.
Open report
===========
To access the *Team Performance* report, navigate to :menuselection:`Recruitment app --> Reporting
--> Team Performance`.
The number of :guilabel:`In Progress`, :guilabel:`Hired`, and :guilabel:`Refused` applicants for
each recruiter is displayed in the :icon:`fa-area-chart` :guilabel:`(Graph)` view.
The information shown is for the :icon:`fa-filter` :guilabel:`Last 365 Days Applicant` default
filter, as displayed in the search bar.
Hover the cursor over any column to view a popover window, displaying the specific details for that
column.
.. image:: team_performance/team-performance.png
:align: center
:alt: The default bar chart of the team performance report.
Pivot table view
----------------
For a more detailed view of the information in the :guilabel:`Team Performance` report, click the
:icon:`oi-view-pivot` :guilabel:`(Pivot)` icon in the top-right corner. This displays all the
information in a pivot table.
In this view, the job positions are displayed in the rows, while the columns display the total
number of applicants. The applicants are further organized by :guilabel:`# Applicant` (in process),
:guilabel:`# Hired`, and :guilabel:`# Refused`.
The displayed information can be modified, if desired.
In this example, there are 19 total applicants. Out of those 19, eight have been hired, and three
refused.
From the data presented, the :guilabel:`Experienced Developer` job position is the most successful.
This job position has the highest number of total applicants, as well as the most hires. In
addition, the :guilabel:`Experienced Developer` has the least amount of refused applicants.
This pivot table also shows that the :guilabel:`Chief Executive Officer` position is the hardest to
fill, as it has the fewest total applicants.
.. image:: team_performance/team-perf-pivot.png
:align: center
:alt: The detailed pivot table view.
Use case: recruiter performance over time
=========================================
One way to modify this report is to show how recruiters are performing over time. To show this
information, begin with the :guilabel:`Team Performance` report in the :icon:`oi-view-pivot`
:guilabel:`(Pivot)` view.
Next, click the :icon:`fa-caret-down` :guilabel:`(down arrow)` in the search bar, revealing a
drop-down menu. Click :guilabel:`Add Custom Group` :icon:`oi-caret-down` at the bottom of the
:icon:`oi-group` :guilabel:`Group By` column, then click :guilabel:`Recruiter`. Click away from the
drop-down menu to close it. Now, each row on the table represents a recruiter.
.. image:: team_performance/by-recruiter.png
:align: center
:alt: The pivot table now displaying the recruiters in the rows.
To compare the team's performance over different time periods, click the :icon:`fa-caret-down`
:guilabel:`(down arrow)` in the search bar. Click :guilabel:`Start Date` :icon:`fa-caret-down` in
the :icon:`fa-filter` :guilabel:`Filters` column, revealing various time periods to select.
In this example, the desired data is the comparison between the team's performance in the third
quarter (June - August) and the second quarter (April - July). To do so, click :guilabel:`Q3`. Once
clicked, the current year is also ticked. In this example, it is :guilabel:`2024`.
After making this selection, a :icon:`fa-adjust` :guilabel:`Comparison` column appears. Click
:guilabel:`Start Date: Previous Period` to compare the third quarter with the second quarter, for
the various recruiters.
.. image:: team_performance/compare.png
:align: center
:alt: A comparison table of recruiter totals of Q2 and Q3.
From this report, several things can be extrapolated: the total number of applicants increased, the
number of hired applicants remained the same, while the number of refused applicants decreased.
Additionally, :guilabel:`Jane Jobs` had the highest increase in number of applicants during the
third quarter, but her number of hired applicants went down :guilabel:`67%`. The recruiter with the
best overall numbers was :guilabel:`Rose Recruiter`, who had both their active applicants and hired
applicants, increase in the third quarter, while their refused applicants went down.
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

@@ -0,0 +1,79 @@
======================
Time in stage analysis
======================
The *Time In Stage Analysis* report provides information on how long applicants stay in each stage
of the recruitment process. This is important, as every job position has specific :ref:`process
details <recruitment/new_job_position/edit>` that state the length of time applicants should expect
to wait between specific stages.
Knowing how long applicants remain in each stage can help highlight possible bottlenecks. Analyzing
this data allows the recruitment team to assess each stage, identify any issues, and pivot their
strategies to move applicants through each stage, within the expected time interval.
Time in stage analysis report
=============================
To access the report, navigate to :menuselection:`Recruitment app --> Reporting --> Time in Stage
Analysis`. By default, the report displays data from all job positions, with the stages populating
the x-axis, and the number of days populating the y-axis, in a :icon:`fa-line-chart`
:guilabel:`(Line Chart)`.
The default filter is :guilabel:`Last 365 Days Applicant`, showing information for the last 365
days.
Hover over a stage in the line chart to reveal a popover window listing all the job positions within
it, and the average number of days each job position sits in each stage.
For a more visually digestible view of the information in the :guilabel:`Time In Stage Analysis`
report, click the :icon:`fa-bar-chart` :guilabel:`(Bar Chart)` icon in the upper-left corner. This
displays all the information in a bar chart.
In this view, it is easier to visualize the differences between the job positions, regarding how
long applicants stay in each stage. From this view, recruiters can more easily determine which job
positions have delays or bottlenecks at certain stages.
.. image:: time_in_stage/bar-chart.png
:align: center
:alt: The bar chart view of the Time In Stage Analysis report.
Use case: comparing times by month
----------------------------------
With the :guilabel:`Time In Stage Analysis` report, it is possible to see if there are certain
months where applicants take longer to be moved through the pipeline. To view this data, switch to
the :icon:`oi-view-pivot` :guilabel:`(Pivot)` view in the upper-right corner.
This presents the data in a detailed pivot table, with the rows representing the different job
positions, and the columns representing the stages. The average :guilabel:`Days in Stage` populates
the various boxes.
.. note::
If a field is empty, it indicates no applicant has been in that stage. Instead, all applicants
moved from a previous stage without being placed in the stage with an empty field.
.. image:: time_in_stage/time-pivot.png
:align: center
:alt: The pivot table view of the Time In Stage Analysis report.
Click :icon:`fa-minus-square-o` :guilabel:`Total` above the job position rows to collapse the
information. Next, click :icon:`fa-plus-square` :guilabel:`Total` again, revealing a drop-down menu.
Click :guilabel:`Add Custom Group` :icon:`fa-caret-down` at the bottom of the list, revealing
further grouping options. Click :guilabel:`Start Date` from the expanded list.
After doing so, the data presented is grouped with the various months from the previous 365 days for
the rows, leaving the :guilabel:`Days In Stage` as the columns.
.. image:: time_in_stage/time-dates.png
:align: center
:alt: The pivot table showing the months averages for times in stage.
In this example, :guilabel:`July 2024` had the longest time that applicants spent in each stage, on
average. In addition, the :guilabel:`Contract Proposal` stage had the longest wait time in July,
with an average of :guilabel:`31.62` days in that stage.
While this report does not display the reasons applicants stayed in the various stages for these
lengths of time, it can be helpful to know when delays occur.
.. seealso::
:doc:`Essentials reporting documentation <../../essentials/reporting>`
Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

+3 -33
View File
@@ -18,7 +18,7 @@ related to the :doc:`rewards <referrals/rewards>`; everything else is pre-config
Users with either :guilabel:`Referral User`, :guilabel:`Officer`, or :guilabel:`Administrator`
access rights for the *Recruitment* application have access to the *Referrals* application. Only
users with :guilabel:`Administrator` access rights for the *Recruitment* application have access to
the :ref:`reporting <referrals/reporting>` and configurations menus. For more information on users
the :doc:`reporting <referrals/reporting>` and configurations menus. For more information on users
and access rights, refer to these documents: :doc:`../general/users` and
:doc:`../general/users/access_rights`.
@@ -255,46 +255,16 @@ points required.
can be redeemed for rewards, but they are no longer able to level up. The ring around their photo
remains solid cyan.
.. _referrals/reporting:
Reporting
=========
Only users with :guilabel:`Administrator` rights for the *Recruitment* application have access to
the Reporting feature in *Referrals*. To access the reports, click :menuselection:`Referrals
application --> Reporting`. The main view is the Reporting Dashboard view, which contains three
sections.
In the top portion of the window, the report displays a bar chart of how many referred candidates
are hired, and how many are still in the hiring pipeline. The candidates are further divided by
channel, showing specifically where the referral came from, such as a direct referral, Facebook,
etc. If a channel does not appear on the report, that indicates there are no referrals from that
particular channel.
The middle third provides all the specific data that has been tracked. This includes how many total
points have been earned across all referrals, how many applicants were referred, hired, or refused,
how many applicants the current logged-in user referred, how many total points were earned, and how
many points were given for refused applicants.
The bottom third displays a pivot table. This table can be inserted into a new or existing
spreadsheet. To do so, click the :guilabel:`Insert in Spreadsheet` button right above the chart. A
pop-up appears, asking which spreadsheet to insert the pivot chart into. Select the desired
spreadsheet from the drop-down menu, or select :guilabel:`New Spreadsheet`. Click
:guilabel:`Confirm` and the selected spreadsheet loads, with the new table in it.
.. note::
The spreadsheet is stored in the *Documents* application. This application needs to be installed
to use the :guilabel:`Insert in Spreadsheet` option.
.. seealso::
- :doc:`referrals/share_jobs`
- :doc:`referrals/points`
- :doc:`referrals/rewards`
- :doc:`referrals/alerts`
- :doc:`referrals/reporting`
.. toctree::
referrals/share_jobs
referrals/points
referrals/rewards
referrals/alerts
referrals/reporting
@@ -0,0 +1,87 @@
=========
Reporting
=========
The reporting function in the **Referrals** app helps recruiters and managers learn where applicants
are applying from, when referred by a current employee. Additionally, the reporting feature shows
the number of applicants hired, refused, and still in the recruitment pipeline, for each medium.
.. important::
Only users with *Administrator* rights for the **Recruitment** app have access to the reporting
feature in the **Referrals** app.
Employees referral analysis report
==================================
To access the *Employees Referral Analysis* report, navigate to :menuselection:`Referrals app -->
Reporting`. This loads the :guilabel:`Employees Referral Analysis` report, in a default
:icon:`fa-bar-chart` :guilabel:`Bar Chart`.
The graph is presented in a :icon:`fa-database` :guilabel:`Stacked` view, with the number of
referrals on the y-axis, and the source, referred to as the :guilabel:`Medium`, of the applicant
(e.g.: *Facebook*, *LinkedIn*, *Email*, etc.) on the x-axis. If a medium does **not** appear on the
report, that indicates there are no referrals from that particular medium.
Referral amounts for all stages are displayed, including :guilabel:`Not Hired` (refused),
:guilabel:`In Progress`, and :guilabel:`Hired`. The default filter is set to the current month.
Hover over any bar to view a popover containing specific data for that particular bar.
In this view, it is easy to see which :guilabel:`Medium` is the most successful.
.. example::
In this example, both :guilabel:`Email` and :guilabel:`LinkedIn` are the mediums with the most
referrals, but :guilabel:`Email` has the most referrals that were hired.
.. image:: reporting/employee-report.png
:align: center
:alt: The default report in the Referrals app.
Use case: hired referrals
-------------------------
One way to use the reporting feature is to assess which employees are referring the highest quality
applicants. This is done by examining how many of their referrals go on to become employees.
In this example, data is examined to determined which employee has the highest number of hired
referrals for the current year.
To view this information, first click the :icon:`oi-view-pivot` :guilabel:`(Pivot)` icon in the
upper-right corner. Next, remove the current filter in the search bar.
Click the :icon:`fa-caret-down` :guilabel:`(down arrow)` in the search bar to reveal a drop-down
menu. Click :guilabel:`Date` in the :icon:`fa-filter` :guilabel:`Filters` column, revealing a
drop-down menu of available time periods, and click the current year (in this example,
:guilabel:`2024`).
Next, click :guilabel:`Measures` :icon:`fa-caret-down`, then deselect :guilabel:`Earned Points` and
:guilabel:`Employee Referral Refused` to hide those metrics. Click anywhere on the screen to close
the drop-down menu.
The information displayed shows how many total applicants each employee referred, and how many of
those applicants were hired, for the current year.
In this example, it can be determined that :guilabel:`Bob Wilson` is the most successful referrer,
with three hired referrals, and nine total referred applicants. Additionally, :guilabel:`Mitchell
Admin` has the lowest performance in terms of referrals, as he has only one applicant, and no hires.
This information can be helpful to the recruitment team, so they can determine the most active
referrers in the company, and who is the most successful in terms of hires.
.. image:: reporting/employee-counts.png
:align: center
:alt: The customized report showing which employees have the most referrals and hires.
.. tip::
The pivot table can be inserted into a new or existing :doc:`spreadsheet
<../../productivity/spreadsheet/insert>`, if desired.
To do so, click the :guilabel:`Insert in Spreadsheet` button right above the chart. A pop-up
window appears, asking which spreadsheet to insert the pivot chart into. Select the desired
spreadsheet or dashboard from the presented options. Alternatively, select :guilabel:`Blank
Spreadsheet` to create a new one.
Click :guilabel:`Confirm`, and the selected spreadsheet loads, with the new table in it.
The spreadsheet is stored in the *Documents* application. This application **must** be installed
to use the :guilabel:`Insert in Spreadsheet` option.
Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

+17
View File
@@ -237,6 +237,23 @@ Enter the following information on the form:
- :guilabel:`Based on worked time`: Enable this option if time off accrual is determined by the
employee's worked hours. Days **not** considered as worked time do **not** contribute to the
accrual plan in Odoo.
.. example::
An employee is granted time off from an accrual plan configured to accrue one day of vacation
for every five days worked. The accrual plan is based on the employee's worked time (the
:guilabel:`Based on worked time` checkbox is ticked).
The employee works standard 40-hour weeks. According to the accrual plan, they should earn
four vacation days per month.
The employee takes five days off. The :ref:`time off type <time_off/time-off-types>` the
employee has taken has the :guilabel:`Kind of Time Off` configured as an :guilabel:`Absence`.
Since the accrual plan only grants time off based on the worked time, the employee does **not**
accrue a vacation day for the five days of time off that is considered an absence.
At the end of the month, the employee accrues only three days, instead of four.
- :guilabel:`Milestone Transition`: This field is **only** visible after a minimum of two
:ref:`rules <time_off/rules>` have been configured on the accrual plan. This selection determines
when employees move up to a new milestone. If they qualify to change milestones in the middle of a
@@ -10,3 +10,4 @@ Inventory valuation
inventory_valuation/inventory_valuation_config
inventory_valuation/using_inventory_valuation
inventory_valuation/integrating_landed_costs
inventory_valuation/valuation_by_lots
@@ -108,6 +108,8 @@ available during a prior specified date can be seen and selected.
the teal :guilabel:`➡️ (right arrow)` button to the right of the :guilabel:`Reference` column
value.
.. _inventory/product_management/update-unit-price:
Update product unit price
-------------------------

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