Compare commits

...

85 Commits

Author SHA1 Message Date
Alice Gaudon ef34b2d641 [IMP] tutorials: add example code for LazyComponent
js framework/Build a Dashboard/part 8 (LazyComponent)

There is no explicit instructions on how to use `LazyComponent`.

- add an example code snippet for minimal use of `LazyComponent`
- add the `.js` extension to the file you're supposed to create to make it a bit more intuitive
- fix `actions` registry name (missing an s)
- reword instructions in a more straightforward way
2024-05-31 13:41:44 +02:00
Felicious 05cd6af1ed [ADD] inventory: print delivery slip
closes odoo/documentation#9459

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-29 23:44:29 +00:00
Lara Martini (larm) cb644b0834 [ADD] Frontdesk: moving visitors section to new doc
closes odoo/documentation#9454

Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-05-29 21:52:54 +00:00
Felicious 6bfa0802c7 [ADD] inventory: locations dashboard
closes odoo/documentation#9458

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-05-29 19:28:02 +00:00
jero-odoo e59188d85b [REM] crm: generate leads
closes odoo/documentation#9510

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-28 19:46:24 +00:00
KC (ksc) fb2f1d5f8b [ADD] events: event templates doc
closes odoo/documentation#9076

Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-05-28 19:46:20 +00:00
Yaroslav Soroko (yaso) ed15f46531 [IMP] point_of_sale: Setup all Ingenico terminals
Currently we only tell how to setup Ingenico Lane/5000 terminal.
Actually, Lane/5000 and Move/5000 can be set up in almost the same way,
only the button to enter settings is different.

This PR adds a more generic configutation guide applicable  to all the
Ingenico Lane/Desk/Move terminals

Also, it replaces erroneous Worldline mention in the top by Ingenico

task-3879038

closes odoo/documentation#9495

X-original-commit: 23a1c496bf
Signed-off-by: Yaroslav Soroko (yaso) <yaso@odoo.com>
2024-05-28 12:31:24 +00:00
Donatienne (dopi) da6d3e6740 [IMP] website: multiple website
taskid- 3716945

closes odoo/documentation#9370

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-05-28 10:35:17 +00:00
Felicious fade821930 [IMP] inventory: sendcloud shipping info
closes odoo/documentation#9487

X-original-commit: 6305211a1e
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-27 00:42:41 +00:00
Odoo Translation Bot b94d534bae [I18N] Update translation terms from Transifex 2024-05-26 00:41:22 +02:00
Lara Martini (larm) 714b75ce3b [ADD] Employees: new departments doc
closes odoo/documentation#9442

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-24 19:13:00 +00:00
Lara Martini (larm) 59ba096ee2 [ADD] Time Off: Moving TO request to new doc
closes odoo/documentation#9431

Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-05-24 19:12:59 +00:00
Lara Martini (larm) 4e929b4ebc [ADD] referrals: moving share jobs section to new doc
closes odoo/documentation#9425

X-original-commit: 7ec544281b
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-24 19:12:58 +00:00
jero-odoo 905914c939 [ADD] crm: email and manual leads
closes odoo/documentation#9345

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-24 19:12:57 +00:00
Jonathan 801a165df4 [IMP] inventory-mrp: rename the category into Supply Chain
closes odoo/documentation#9464

X-original-commit: 9f279170a5
Signed-off-by: Jonathan Castillo (jcs) <jcs@odoo.com>
2024-05-24 17:40:01 +00:00
Donatienne (dopi) 693a48f150 [IMP] website: google search console
taskid-3932743

closes odoo/documentation#9399

X-original-commit: abf62125ea
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-05-24 12:49:04 +00:00
jero-odoo 5c781afe88 [MOV] helpdesk: move getting started, reorg toctree
closes odoo/documentation#9440

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-23 16:38:24 +00:00
Ray Carnes eca1b7ffd3 [IMP] eCommerce: fix digital file location on portal
Corrected the part of the Customer Portal where digital products can be found after purchase.

closes odoo/documentation#9437

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-05-23 06:09:53 +00:00
Felicious de7fd89137 [ADD] inventory: aging report
closes odoo/documentation#9433

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: Jess Rogers <104637850+jero-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-23 06:09:52 +00:00
Lara Martini (larm) 9fb69e4eaf [ADD] Appraisals: Moving goals to new doc
closes odoo/documentation#9429

Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-05-23 04:39:01 +00:00
Felicious 6920015971 [ADD] inventory: moves history report
closes odoo/documentation#9343

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-20 16:06:22 +00:00
Odoo Translation Bot 1a405b889a [I18N] Update translation terms from Transifex 2024-05-19 00:41:20 +02:00
Felicious 6738b2cbea [IMP] mrp: assign lot/serial number to manuf products
closes odoo/documentation#9253

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-17 20:00:58 +00:00
jero-odoo 430f7e2307 [IMP] CRM: lead mining 17
closes odoo/documentation#9315

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-05-17 20:00:58 +00:00
John Holton (hojo) 62b02031fa [ADD] Manufacturing: Dropship subcontracting lead times
closes odoo/documentation#9297

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-17 20:00:57 +00:00
John Holton (hojo) 1929185270 [ADD] Manufacturing: Resupply subcontracting lead times
closes odoo/documentation#9278

Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-05-17 20:00:56 +00:00
Valentino 20282cdb4c [IMP] accounting/l10n_br: electronic invoicing & tax computation flow
With the addition of l10n_br_{avatax,edi,edi_sale}_services to the previous modules, now electronic invoices and tax computation for services can be created from Odoo through Avalara.

PR that includes these features: https://github.com/odoo/enterprise/pull/57868

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

closes odoo/documentation#8784

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-17 18:01:53 +00:00
Felicious 4d211ed914 [IMP] mrp: overhaul bom basics 17.0
closes odoo/documentation#9239

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-17 16:26:41 +00:00
Sam Lieber (sali) a7ef06c1e5 [FIX] extensions: icon_role fa icons
closes odoo/documentation#9380

X-original-commit: d71c19b7be
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-17 14:19:54 +00:00
tong-odoo 50d983d48d [IMP] accounting: employment hero added taxes mapping descriptions
Impacted Versions:

- 17.0 and above

closes odoo/documentation#9339

Signed-off-by: Tommy Ng (tong) <tong@odoo.com>
2024-05-17 08:23:06 +00:00
tiku-odoo f80a74f460 [IMP] finance: avatax version 17 updates
closes odoo/documentation#9341

Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-05-16 22:46:46 +00:00
Felicious 7e37903b8f [IMP] inventory: fix lot assignment
closes odoo/documentation#9088

X-original-commit: 77d824bd67
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: Jess Rogers <104637850+jero-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-16 22:46:45 +00:00
jero-odoo 50b3852bab [ADD] CRM: contact form leads
jero edits

closes odoo/documentation#9318

Signed-off-by: Jessica Rogers (jero) <jero@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-05-16 20:44:10 +00:00
Brandon Seltenrich (BRSE) ba97b13527 [IMP] purchase: replace purchase uom screenshots
closes odoo/documentation#9317

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-15 23:44:57 +00:00
Lara Martini (larm) e8a260f20a [IMP] payroll: added needed module info
closes odoo/documentation#9316

Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-05-15 23:44:56 +00:00
Brandon Seltenrich (BRSE) e25de2b5b5 [IMP] purchase: replace vendor bills screenshots
closes odoo/documentation#9312

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-15 23:44:55 +00:00
jero-odoo 34598f13bf [ADD] Purchase: Vendor costs
closes odoo/documentation#9255

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: hojo-odoo <123424465+hojo-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-15 23:44:53 +00:00
KC (ksc) 6ebd27144b [ADD] events: adding create events doc
closes odoo/documentation#8929

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-15 23:44:50 +00:00
maya-odoo a08fc7db34 [IMP] accounting/l10n_hk: add Hong Kong payroll
Impacted Version:

- 17.0 and above

This commit improve below features:

- Add Hong Kong payroll documentation

closes odoo/documentation#8204

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-15 23:44:49 +00:00
Lara Martini (larm) 1f5a41a209 [IMP] Recruitment: instructions and images for 17
closes odoo/documentation#7869

Signed-off-by: Lara Martini (larm) <larm@odoo.com>
Co-authored-by: StraubCreative <zst@odoo.com>
2024-05-15 23:44:48 +00:00
Loan (LSE) a3ec00b836 [IMP] general: iot add payment terminals link
closes odoo/documentation#9326

X-original-commit: 258636564e
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-05-15 01:10:51 +00:00
KC (ksc) a5cb329f3f [FIX] sales: fixed a loyalty card specificity
closes odoo/documentation#9325

X-original-commit: 214fed5fdf
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-05-14 13:16:48 +00:00
KC (ksc) 9543b25714 [FIX] subscriptions: modified detail re: prorated warning
closes odoo/documentation#9085

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-05-13 23:40:37 +00:00
KC (ksc) d00c04e259 [FIX] sales: corrected pricelist configuration detail
closes odoo/documentation#9083

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-05-13 23:40:36 +00:00
Samuel Degueldre 489fe7d3ea [IMP] developer: add an article to explain error handling in JS
closes odoo/documentation#9240

Signed-off-by: Samuel Degueldre (sad) <sad@odoo.com>
2024-05-13 14:27:54 +00:00
Brandon Seltenrich (BRSE) 2d0f640223 [IMP] inventory: update scrap doc
closes odoo/documentation#9113

Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-05-13 14:27:53 +00:00
Odoo Translation Bot 1b85a45840 [I18N] Update translation terms from Transifex 2024-05-12 00:43:15 +02:00
Felicious d2aa8149df [ADD] inventory: stock report
closes odoo/documentation#9289

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-05-11 00:32:41 +00:00
Felicious 71577350e9 [IMP] inventory: purchase security lead time
closes odoo/documentation#9178

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-05-10 22:42:54 +00:00
Felicious 57de351036 [ADD] inventory: reassign lots/serial numbers
closes odoo/documentation#9227

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: Jess Rogers <104637850+jero-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-05-10 22:42:53 +00:00
tiku-odoo b7dd96b5b8 [ADD] finance: avalara portal
closes odoo/documentation#9293

X-original-commit: 38fa0d3a4e
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-05-10 18:57:40 +00:00
Felicious 3303571492 [IMP] inventory: stock input + output account fix
closes odoo/documentation#9284

X-original-commit: b5a80eed7b
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-10 16:07:48 +00:00
tiku-odoo 61901c5020 [IMP]accounting: avatax api integration rewrite
closes odoo/documentation#9277

X-original-commit: fe3cbf7231
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-05-10 12:09:41 +00:00
tiku-odoo 23a330ea6e [IMP] finance: avatax use add logging
closes odoo/documentation#9268

X-original-commit: 314ddb2de3
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-05-09 20:23:58 +00:00
jero-odoo 2a9bd10799 [REM] CRM: multi teams
closes odoo/documentation#9254

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-09 17:54:40 +00:00
jero-odoo f036553f5a [IMP] Helpdesk: Reporting 17
closes odoo/documentation#9209

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Felicia Kuan <feku@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-09 17:54:39 +00:00
John Holton (hojo) 788fc51ca6 [ADD] Manufacturing: Basic subcontracting lead times
closes odoo/documentation#9174

Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-05-09 17:54:38 +00:00
Brandon Seltenrich (BRSE) 5f5deac264 [IMP] inventory: update two step doc copy
closes odoo/documentation#9132

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-09 16:31:08 +00:00
Sam Lieber (sali) 50cf2f3063 [IMP] extensions: icon_role odoo ui
closes odoo/documentation#9247

X-original-commit: a39903ca12
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-08 19:48:26 +00:00
jero-odoo 25f44f7ac2 [ADD] CRM: manage sales teams 17
closes odoo/documentation#9207

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: brse-odoo <brse@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-08 15:22:29 +00:00
XPL e6d312f18d [IMP] settings: simplify the developer mode page
task-3849915

closes odoo/documentation#9235

X-original-commit: e16a66706a
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-05-07 23:12:12 +00:00
tiku-odoo 045cdbdbeb [IMP] sales: amazon connector add fba warning block
closes odoo/documentation#9229

X-original-commit: ee2b0e4a66
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-05-07 14:16:14 +00:00
tiku-odoo fd37b9af1c [ADD] finance: avatax tax calculation
closes odoo/documentation#9213

X-original-commit: 41b6e2f227
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-05-06 22:14:30 +00:00
Brandon Seltenrich (BRSE) 860befac4a [IMP] inventory: update create second warehouse doc
closes odoo/documentation#9064

Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-05-06 20:55:51 +00:00
Brandon Seltenrich (BRSE) 7cf04c1dba [IMP] inventory: update one step shipments doc
closes odoo/documentation#9120

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-05-06 19:24:23 +00:00
Samuel Degueldre 2354f0946e [FIX] developer: rewrite a bunch of outdated info in JS reference
Previously, a lot of information on the JavaScript reference page was
outdated.

This commit rewrites a bunch of sections to bring them up to date and
removes others that are no longer relevant. While a more profound rework
of the JS documentation is still needed, this commit at least reduces
the amount of outdated information significantly in the meantime.

closes odoo/documentation#9180

Signed-off-by: Samuel Degueldre (sad) <sad@odoo.com>
2024-05-06 14:59:41 +00:00
Brandon Seltenrich (BRSE) 4a066cb017 [FIX] inventory: fix manufacturing lead time section
closes odoo/documentation#9138

Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-05-06 14:59:39 +00:00
Brandon Seltenrich (BRSE) 66fc5639b6 [IMP] inventory: update wh/loc doc
closes odoo/documentation#9105

Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-05-06 14:59:38 +00:00
“Audrey 3140917a53 [IMP] Studio: update automation rules doc for v17
task-3745330

closes odoo/documentation#8062

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-05-06 14:59:37 +00:00
Antoine Vandevenne (anv) 298a222d00 [FIX] reference/view_architectures/*: remove nosearch meta directives
The `nosearch` meta directive is not fully supported in included files:
the generated file is excluded from search results, but the "nosearch"
term is present in the included content.

closes odoo/documentation#9185

Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-05-06 13:11:11 +00:00
XPL 8a6152f165 [IMP] website: warn about privacy regulations for recaptcha and gtm
task-3896553
task-3896425

closes odoo/documentation#9182

X-original-commit: 79b383ddcf
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-05-06 13:11:10 +00:00
Odoo Translation Bot e78be27fbf [I18N] Update translation terms from Transifex 2024-05-05 00:41:41 +02:00
XPL 888018e9e5 [IMP] accounting: change the lock date warning to an optional tip
task-3787113

closes odoo/documentation#9165

X-original-commit: 5c84c9fc7f
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-05-03 23:21:54 +00:00
jero-odoo c19f71fd4c [IMP] Helpdesk: customer ratings
closes odoo/documentation#9122

Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Timothy Kukulka <91896312+tiku-odoo@users.noreply.github.com>
2024-05-03 21:34:48 +00:00
jero-odoo 753d561fe8 [ADD] email marketing: analyze metrics
closes odoo/documentation#9025

Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
2024-05-03 19:47:42 +00:00
Donatienne (dopi) 9e6572ad08 [ADD] Website: features blocks
task-3733828

closes odoo/documentation#8173

Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-05-03 13:38:03 +00:00
Donatienne (dopi) de9e726858 [IMP] Documents: updating documentation
taskid-3778148

closes odoo/documentation#8072

Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-05-03 11:45:14 +00:00
Lara Martini (larm) acb0a1cc5f [IMP] referrals: update pics and remove save button
closes odoo/documentation#8686

Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-05-02 21:40:09 +00:00
jero-odoo fd17dcef90 [IMP] CRM: rewrite gamification config section
closes odoo/documentation#9061

Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-05-02 19:14:42 +00:00
Xavier-Do f73bf36e6d [FIX] adapt requirements to ubuntu Jammy
The docutils is pinned to 0.16.0 while the Jammy version should be 0.17

This is the case for a compatibility issue with sphinx-tabs==3.2.0
also official versions in ubuntu Jammy.

The odoo.requirements package contains already a docutils 0.17.0
creating some downgrade when installing requirements, this commit
upgrade both dependency to a compatible version.

This should avoid installing requirements in all documentation build
and hopefully avoid some random errors.

closes odoo/documentation#9115

Signed-off-by: Christophe Monniez (moc) <moc@odoo.com>
2024-05-02 16:28:58 +00:00
tiku-odoo 7d627adb35 [IMP] admin: onprem password reset
closes odoo/documentation#9109

X-original-commit: ad3343d158
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-05-02 16:28:56 +00:00
tiku-odoo eff413bfb7 [IMP] general: iot windows iot revise version
closes odoo/documentation#9094

X-original-commit: fcd9b40293
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Timothy Kukulka (tiku) <tiku@odoo.com>
2024-05-02 16:28:55 +00:00
Felicious 12c82cabbe [IMP] inventory: multi-step label section
closes odoo/documentation#9007

Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-05-02 14:36:56 +00:00
Brandon Seltenrich (BRSE) 5d735775b6 [IMP] inventory: update locations doc
closes odoo/documentation#8906

Signed-off-by: Brandon Seltenrich (brse) <brse@odoo.com>
2024-05-02 14:36:51 +00:00
Donatienne (dopi) d2ba715df8 [IMP] website: redirects
taskid-3667291

closes odoo/documentation#8741

Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-05-02 14:36:48 +00:00
681 changed files with 700891 additions and 277762 deletions
+2
View File
@@ -30,6 +30,8 @@ confirmation for the account deletion.
To confirm the deletion, enter the :guilabel:`Password` and the :guilabel:`Login` for the account
being deleted. Then, click the :guilabel:`Delete Account` button to confirm the deletion.
.. _odoocom/change_password:
Odoo.com account password change
================================
+137 -1
View File
@@ -740,7 +740,143 @@ It should be stored securely, and should be generated randomly e.g.
$ python3 -c 'import base64, os; print(base64.b64encode(os.urandom(24)))'
which will generate a 32 characters pseudorandom printable string.
which generates a 32-character pseudorandom printable string.
Reset the master password
-------------------------
There may be instances where the master password is misplaced, or compromised, and needs to be
reset. The following process is for system administrators of an Odoo on-premise database detailing
how to manually reset and re-encrypt the master password.
.. seealso::
For more information about changing an Odoo.com account password, see this documentation:
:ref:`odoocom/change_password`.
When creating a new on-premise database, a random master password is generated. Odoo recommends
using this password to secure the database. This password is implemented by default, so there is a
secure master password for any Odoo on-premise deployment.
.. warning::
When creating an Odoo on-premise database the installation is accessible to anyone on the
internet, until this password is set to secure the database.
The master password is specified in the Odoo configuration file (`odoo.conf` or `odoorc` (hidden
file)). The Odoo master password is needed to modify, create, or delete a database through the
graphical user interface (GUI).
Locate configuration file
~~~~~~~~~~~~~~~~~~~~~~~~~
First, open the Odoo configuration file (`odoo.conf` or `odoorc` (hidden file)).
.. tabs::
.. tab:: Windows
The configuration file is located at: `c:\\ProgramFiles\\Odoo{VERSION}\\server\\odoo.conf`
.. tab:: Linux
Depending on how Odoo is installed on the Linux machine, the configuration file is located in
one of two different places:
- Package installation: `/etc/odoo.conf`
- Source installation: `~/.odoorc`
Change old password
~~~~~~~~~~~~~~~~~~~
Once the appropriate file has been opened, proceed to modify the old password in the configuration
file to a temporary password.
.. tabs::
.. group-tab:: Graphical user interface
After locating the configuration file, open it using a (:abbr:`GUI (graphical user
interface)`). This can be achieved by simply double clicking on the file. Then, the device
should have a default :abbr:`GUI (graphical user interface)` to open the file with.
Next, modify the master password line `admin_passwd = $pbkdf2-sha…` to `admin_passwd =
newpassword1234`, for example. This password can be anything, as long as it is saved
temporarily. Make sure to modify all characters after the `=`.
.. example::
The line appears like this:
`admin_passwd =
$pbkdf2-sh39dji295.59mptrfW.9z6HkA$w9j9AMVmKAP17OosCqDxDv2hjsvzlLpF8Rra8I7p/b573hji540mk/.3ek0lg%kvkol6k983mkf/40fjki79m`
The modified line appears like this: `admin_passwd = newpassword1234`
.. group-tab:: Command-line interface
Modify the master password line using the following Unix command detailed below.
Connect to the Odoo server's terminal via Secure Shell (SSH) protocol, and edit the
configuration file. To modify the configuration file, enter the following command:
:command:`sudo nano /etc/odoo.conf`
After opening the configuration file, modify the master password line `admin_passwd =
$pbkdf2-sha…` to `admin_passwd = newpassword1234`. This password can be anything, as long as
it is saved temporarily. Make sure to modify all characters after the `=`.
.. example::
The line appears like this:
`admin_passwd =
$pbkdf2-sh39dji295.59mptrfW.9z6HkA$w9j9AMVmKAP17OosCqDxDv2hjsvzlLpF8Rra8I7p/b573hji540mk/.3ek0lg%kvkol6k983mkf/40fjki79m`
The modified line appears like this: `admin_passwd = newpassword1234`
.. important::
It is essential that the password is changed to something else, rather than triggering a new
password reset by adding a semicolon `;` at the beginning of the line. This ensures the database
is secure throughout the entire password reset process.
Restart Odoo server
~~~~~~~~~~~~~~~~~~~
After setting the temporary password, a restart of the Odoo server is **required**.
.. tabs::
.. group-tab:: Graphical user interface
To restart the Odoo server, first, type `services` into the Windows :guilabel:`Search` bar.
Then, select the :guilabel:`Services` application, and scroll down to the :guilabel:`Odoo`
service.
Next, right click on :guilabel:`Odoo`, and select :guilabel:`Start` or :guilabel:`Restart`.
This action manually restarts the Odoo server.
.. group-tab:: Command-line interface
Restart the Odoo server by typing the command: :command:`sudo service odoo15 restart`
.. note::
Change the number after `odoo` to fit the specific version the server is running on.
Use web interface to re-encrypt password
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
First, navigate to `/web/database/manager` or `http://server_ip:port/web/database/manager` in a
browser.
.. note::
Replace `server_ip` with the IP address of the database. Replace `port` with the numbered port
the database is accessible from.
Next, click :guilabel:`Set Master Password`, and type in the previously-selected temporary password
into the :guilabel:`Master Password` field. Following this step, type in a :guilabel:`New Master
Password`. The :guilabel:`New Master Password` is hashed (or encrypted), once the
:guilabel:`Continue` button is clicked.
At this point, the password has been successfully reset, and a hashed version of the new password
now appears in the configuration file.
.. seealso::
For more information on Odoo database security, see this documentation:
:ref:`db_manager_security`.
Supported Browsers
==================
@@ -24,12 +24,14 @@ to reflect the change in inventory valuation. However, Odoo does **not** automat
valuation <inventory/avg_price/leaving_inventory>`.
.. note::
This document addresses a specific use case for theoretical purposes. Navigate :ref:`here
<inventory/management/inventory_valuation_config>` for instructions on how to set up and use
|AVCO| in Odoo.
This document addresses a specific use case for theoretical purposes. For instructions on how to
set up and use |AVCO|, refer to the :doc:`inventory valuation configuration
<../../../inventory_and_mrp/inventory/warehouses_storage/inventory_valuation/inventory_valuation_config>`
doc.
.. seealso::
- :ref:`Using inventory valuation <inventory/reporting/using_inventory_val>`
- :doc:`Using inventory valuation
<../../../inventory_and_mrp/inventory/warehouses_storage/inventory_valuation/using_inventory_valuation>`
- :ref:`Other inventory valuation methods <inventory/inventory_valuation_config/costing_methods>`
Configuration
@@ -41,7 +43,8 @@ product category page, set :guilabel:`Costing Method` to `Average Cost (AVCO)` a
:guilabel:`Inventory Valuation` to `Automated`.
.. seealso::
:ref:`Inventory valuation configuration <inventory/management/inventory_valuation_config>`
:doc:`Inventory valuation configuration
<../../../inventory_and_mrp/inventory/warehouses_storage/inventory_valuation/inventory_valuation_config>`
Using average cost valuation
============================
@@ -101,8 +101,9 @@ correctly reporting a balance of zero. If that is the case, set an :guilabel:`Al
to the last day of the fiscal year by going to :menuselection:`Accounting --> Accounting --> Lock
Dates`.
.. warning::
Setting an :guilabel:`All Users Lock Date` is **irreversible** and cannot be removed.
.. tip::
Install the :guilabel:`Irreversible Lock Date` (`account_lock`) module to make the :guilabel:`All
Users Lock Date` *irreversible* once set.
.. note::
A specific year-end closing entry is **optional** in order to close out the **profit and loss
@@ -1,74 +1,440 @@
:show-content:
==================
Avatax integration
AvaTax integration
==================
Avatax is a tax calculation provider that can be integrated in Odoo.
Avalara's *AvaTax* is a cloud-based tax software. Integrating *AvaTax* with Odoo provides real-time
and region-specific tax calculations when users sell, purchase, and invoice items in Odoo. *AvaTax*
tax calculation is supported with every United Nations charted country, including inter-border
transactions.
.. important::
*AvaTax* is only available for integration with databases/companies that have locations in the
United States, Canada, and Brazil. This means the fiscal position/country of a database can only
be set to the United States, Canada, or Brazil. For more information, reference this
documentation: :ref:`avatax/fiscal_country`.
*AvaTax* accounts for location-based tax rates for each state, county, and city. It improves
remittance accuracy by paying close attention to laws, rules, jurisdiction boundaries, and special
circumstances (like, tax holidays, and product exemptions). Companies who integrate with *AvaTax*
can maintain control of tax-calculations in-house with this simple :abbr:`API (application
programming interface)` integration.
.. important::
Some limitations exist in Odoo while using *AvaTax* for tax calculation:
- *AvaTax* is **not** supported in Odoo's *Point of Sale* app, because a dynamic tax calculation
model is excessive for transactions within a single delivery address, such as stores or
restaurants.
- *AvaTax* and Odoo use the company address and **not** the warehouse address.
- Exercise tax is **not** supported. This includes tobacco/vape taxes, fuel taxes, and other
specific industries.
.. seealso::
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>`_
Set up on AvaTax
================
To use *AvaTax*, an account with Avalara is required for the setup. If one has not been set up yet,
connect with Avalara to purchase a license: `Avalara: Let's Talk
<https://www.avalara.com/us/en/get-started.html>`_.
.. tip::
Upon account setup, take note of the *AvaTax* :guilabel:`Account ID`. This will be needed in the
:ref:`Odoo setup <avatax/credentials>`. In Odoo, this number is the :guilabel:`API ID`.
Then, `create a basic company profile
<https://community.avalara.com/support/s/document-item?bundleId=dqa1657870670369_dqa1657870670369&topicId=Create_a_Basic_company_profile.html&_LANG=enus>`_.
Create basic company profile
----------------------------
Collect essential business details for the next step: locations where tax is collected,
products/services sold (and their sales locations), and customer tax exemptions, if applicable.
Follow the Avalara documentation for creating a basic company profile:
#. `Add company information
<https://community.avalara.com/support/s/document-item?bundleId=dqa1657870670369_dqa1657870670369&topicId=Add_your_company_information.html&_LANG=enus>`_.
#. `Tell us where the company collects and pays tax
<https://community.avalara.com/support/s/document-item?bundleId=dqa1657870670369_dqa1657870670369&topicId=Tell_us_where_you_collect_and_pay_tax.html&_LANG=enus>`_.
#. `Verify jurisdictions and activate the company
<https://community.avalara.com/support/s/document-item?bundleId=dqa1657870670369_dqa1657870670369&topicId=Verify_your_jurisdictions_and_activate_your_company.html&_LANG=enus>`_.
#. `Add other company locations for location-based filing
<https://community.avalara.com/support/s/document-item?bundleId=dqa1657870670369_dqa1657870670369&topicId=Add_other_company_locations_for_location-based_filing.html&_LANG=enus>`_.
#. `Add a marketplace to the company profile
<https://community.avalara.com/support/s/document-item?bundleId=dqa1657870670369_dqa1657870670369&topicId=Add_marketplace_transactions_to_your_company_profile.html&_LANG=enus>`_.
.. _avatax/create_avalara_credentials:
Connect to AvaTax
-----------------
After creating the basic company profile in Avalara, connect to *AvaTax*. This step links Odoo and
*AvaTax* bidirectionally.
Navigate to either Avalara's `sandbox <https://sandbox.admin.avalara.com/>`_ or `production
<https://admin.avalara.com/>`_ environment. This will depend on which type of Avalara account the
company would like to integrate.
.. seealso::
`Sandbox vs production environments in Avalara
<https://knowledge.avalara.com/bundle/fzc1692293626742/page/sandbox-vs-production.html>`_.
Log in to create the :guilabel:`License Key`. Go to :menuselection:`Settings --> License and API
Keys`. Click :guilabel:`Generate License Key`.
.. note::
A warning appears stating: `If your business app is connected to Avalara solutions, the
connection will be broken until you update the app with the new license key. This action cannot
be undone.`
Generating a new license key breaks the connection with existing business apps using the *AvaTax*
integration. Make sure to update these apps with the new license key.
If this will be the first :abbr:`API (application programming interface)` integration being made
with *AvaTax* and Odoo, then click :guilabel:`Generate license key`.
If this is an additional license key, ensure the previous connection can be broken. There is
**only** one license key associated with each of the Avalara sandbox and production accounts.
.. important::
Copy this key to a safe place. It is **strongly encouraged** to backup the license key for future
reference. This key cannot be retrieved after leaving this screen.
Odoo configuration
==================
Before using *AvaTax*, there are some additional configurations in Odoo to ensure tax calculations
are made accurately.
Verify that the Odoo database contains necessary data. The country initially set up in the database
determines the fiscal position, and aids *AvaTax* in calculating accurate tax rates.
.. _avatax/fiscal_country:
Fiscal country
--------------
To set the :guilabel:`Fiscal Country`, navigate to :menuselection:`Accounting app --> Configuration
--> Settings`.
.. seealso::
:doc:`../../fiscal_localizations`
Under the :guilabel:`Taxes` section, set the :guilabel:`Fiscal Country` feature to :guilabel:`United
States`, :guilabel:`Canada`, or :guilabel:`Brazil`. Then, click :guilabel:`Save`.
Company settings
----------------
All companies operating under the Odoo database should have a full and complete address listed in
the settings. Navigate to the :menuselection:`Settings app`, and under the :guilabel:`Companies`
section, ensure there is only one company operating the Odoo database. Click :guilabel:`Update Info`
to open a separate page to update company details.
If there are multiple companies operating in the database, click :guilabel:`Manage Companies` to
load a list of companies to select from. Update company information by clicking into the specific
company.
Database administrators should ensure that the :guilabel:`Street...`, :guilabel:`Street2...`,
:guilabel:`City`, :guilabel:`State`, :guilabel:`ZIP`, and :guilabel:`Country` are all updated for
the companies.
This ensures accurate tax calculations and smooth end-of-year accounting operations.
.. seealso::
- :doc:`../../../general/companies`
- :doc:`../get_started`
Module installation
-------------------
Next, ensure that the Odoo *AvaTax* module is installed. To do so, navigate to the
:menuselection:`Apps application`. In the :guilabel:`Search...` bar, type in `avatax`, and press
:kbd:`Enter`. The following results populate:
.. list-table::
:header-rows: 1
:widths: 25 25 50
* - Name
- Technical name
- Description
* - :guilabel:`Avatax`
- `account_avatax`
- Default *AvaTax* module. This module adds the base *AvaTax* features for tax calculation.
* - :guilabel:`Avatax for geo localization`
- `account_avatax_geolocalize`
- This module includes the features required for integration of *AvaTax* into geo-localization
in Odoo.
* - :guilabel:`Avatax for SO`
- `account_avatax_sale`
- Includes the information needed for tax calculation on sales orders in Odoo.
* - :guilabel:`Avatax for Inventory`
- `account_avatax_stock`
- Includes tax calculation in Odoo Inventory.
* - :guilabel:`Amazon/Avatax Bridge`
- `sale_amazon_avatax`
- Includes tax calculation features between the *Amazon Connector* and Odoo.
* - :guilabel:`Avatax Brazil`
- `l10n_br_avatax`
- Includes information for tax calculation in the Brazil localization.
* - :guilabel:`Avatax Brazil for Services`
- `l10n_br_avatax_services`
- This module includes the required features for tax calculation for services in the Brazil
localization.
* - :guilabel:`Avatax Brazil Sale for Services`
- `l10n_br_edi_sale_services`
- This module includes the required features for tax calculation for the sale of services in
the Brazil localization. This includes electronic data interchange (EDI).
* - :guilabel:`Test SOs for the Brazilian AvaTax`
- `l10n_br_test_avatax_sale`
- This module includes the required features for test sales orders in the Brazil localization.
Click the :guilabel:`Install` button on the module labeled, :guilabel:`Avatax`: `account_avatax`.
Doing so installs the following modules:
- :guilabel:`Avatax`: `account_avatax`
- :guilabel:`Avatax for SO`: `account_avatax_sale`
- :guilabel:`Avatax for Inventory`: `account_avatax_stock`
Should *AvaTax* be needed for geo-localization, or with the *Amazon Connector*, then install those
modules individually by clicking on :guilabel:`Install` on :guilabel:`Avatax for geo localization`
and :guilabel:`Amazon/Avatax Bridge`, respectively.
.. seealso::
For localization specific *AvaTax* instructions, view the following :doc:`fiscal localization
<../../fiscal_localizations>` documentation:
- :doc:`../../fiscal_localizations/brazil`
.. _avatax/credentials:
Credential configuration
========================
Odoo AvaTax settings
--------------------
To integrate Avatax with Odoo, go to :menuselection:`Accounting --> Configuration --> Settings -->
Taxes` and add your Avatax credentials in the :guilabel:`Avatax` section.
To integrate the *AvaTax* :abbr:`API (application programming interface)` with Odoo, go to
:menuselection:`Accounting app --> Configuration --> Settings` section. The :guilabel:`AvaTax`
fields in the :guilabel:`Taxes` section is where the *AvaTax* configurations are made, and the
credentials are entered in.
.. tip::
If you do not yet have credentials, click on :guilabel:`How to Get Credentials`.
First, tick the checkbox to the left of the :guilabel:`AvaTax` settings, to activate *AvaTax* on the
database. This is a quick, convenient way to activate and deactivate *AvaTax* tax calculation on the
Odoo database.
.. image:: avatax/avatax-configuration-settings.png
:align: center
:alt: Configure Avatax settings
:alt: Configure AvaTax settings
.. _avatax/tax-mapping:
Prerequisites
~~~~~~~~~~~~~
First, select the :guilabel:`Environment` in which the company wishes to use *AvaTax* in. It can
either be :guilabel:`Sandbox` or :guilabel:`Production`.
.. seealso::
For help determining which *AvaTax* environment to use (either :guilabel:`Production` or
:guilabel:`Sandbox`), visit: `Sandbox vs Production environments
<https://knowledge.avalara.com/bundle/fzc1692293626742/page/sandbox-vs-production.html>`_.
Credentials
~~~~~~~~~~~
Now, the credentials can be entered in. The *AvaTax* :guilabel:`Account ID` should be entered in the
:guilabel:`API ID` field, and the :guilabel:`License Key` should be entered in the :guilabel:`API
Key` field.
.. important::
The :guilabel:`Account ID` can be found by logging into the *AvaTax* portal (`sandbox
<https://sandbox.admin.avalara.com/>`_ or `production <https://admin.avalara.com/>`_). In the
upper-right corner, click on the initials of the user and :guilabel:`Account`. The
:guilabel:`Account ID` is listed first.
To access the :guilabel:`License Key` see this documentation:
:ref:`avatax/create_avalara_credentials`.
For the :guilabel:`Company Code` field, enter the Avalara company code for the company being
configured. Avalara interprets this as `DEFAULT`, if it is not set. The :guilabel:`Company Code` can
be accessed in the Avalara management portal.
First, log into the *AvaTax* portal (`sandbox <https://sandbox.admin.avalara.com/>`_ or `production
<https://admin.avalara.com/>`_). Then, navigate to :menuselection:`Settings --> Manage Companies`.
The :guilabel:`Company Code` value is located in the row of the :guilabel:`Company` in the
:guilabel:`Company Code` column.
.. image:: avatax/company-code.png
:align: center
:alt: AvaTax company code highlighted on the company details page.
Transaction options
~~~~~~~~~~~~~~~~~~~
There are two transactional settings in the Odoo *AvaTax* settings that can be configured:
:guilabel:`Use UPC` and :guilabel:`Commit Transactions`.
If the checkbox next to :guilabel:`Use UPC` is ticked, the transactions will use Universal Product
Codes (UPC), instead of custom defined codes in Avalara. Consult a certified public accountant (CPA)
for specific guidance.
Should the :guilabel:`Commit Transactions` checkbox be ticked, then, the transactions in the Odoo
database will be committed for reporting in *AvaTax*.
Address validation
~~~~~~~~~~~~~~~~~~
The *Address Validation* feature ensures that the most up-to-date address by postal standards is set
on a contact in Odoo. This is important to provide accurate tax calculations for customers.
.. important::
The :guilabel:`Address Validation` feature only works with partners/customers in North America.
Additionally, tick the checkbox next to the :guilabel:`Address validation` field.
.. important::
For accurate tax calculations, it is best practice to enter a complete address for the contacts
saved in the database. However, *AvaTax* can still function by implementing a best effort attempt
using only the :guilabel:`Country`, :guilabel:`State`, and :guilabel:`Zip code`. These are the
three minimum required fields.
:guilabel:`Save` the settings to implement the configuration.
.. tip::
Manually :guilabel:`Validate` the address by navigating to the :menuselection:`Contacts app`, and
selecting a contact. Now that the *AvaTax* module has been configured on the database, a
:guilabel:`Validate` button appears directly below the :guilabel:`Address`.
Click :guilabel:`Validate`, and a pop-up window appears with a :guilabel:`Validated Address` and
:guilabel:`Original Address` listed. If the :guilabel:`Validated Address` is the correct mailing
address for tax purposes, click :guilabel:`Save Validated`.
.. image:: avatax/validate-address.png
:align: center
:alt: Validate address pop-up window in Odoo with "Save Validated" button and "Validated
Address" highlighted.
.. warning::
All previously-entered addresses for contacts in the Odoo database will need to be validated
using the manually validate process outlined above. Addresses are not automatically validated if
they were entered previously. This only occurs upon tax calculation.
Test connection
~~~~~~~~~~~~~~~
After entering all the above information into the *AvaTax* setup on Odoo, click :guilabel:`Test
connection`. This ensures the :guilabel:`API ID` and :guilabel:`API KEY` are correct, and a
connection is made between Odoo and the *AvaTax* application programming interface (API).
Sync parameters
~~~~~~~~~~~~~~~
Upon finishing the configuration and settings of the *AvaTax* section, click the :guilabel:`Sync
Parameters` button. This action synchronizes the exemption codes from *AvaTax*.
.. _avatax/fiscal_positions:
Fiscal position
---------------
Next, navigate to :menuselection:`Accounting app --> Configuration --> Accounting: Fiscal
Positions`. A :guilabel:`Fiscal Position` is listed named, :guilabel:`Automatic Tax Mapping
(AvaTax)`. Click it to open *AvaTax's* fiscal position configuration page.
Here, ensure that the :guilabel:`Use AvaTax API` checkbox is ticked.
Optionally, tick the checkbox next to the field labeled: :guilabel:`Detect Automatically`. Should
this option be ticked, then, Odoo will automatically apply this :guilabel:`Fiscal Position` for
transactions in Odoo.
Enabling :guilabel:`Detect Automatically` also makes specific parameters, such as :guilabel:`VAT
required`, :guilabel:`Foreign Tax ID`, :guilabel:`Country Group`, :guilabel:`Country`,
:guilabel:`Federal States`, or :guilabel:`Zip Range` appear. Filling these parameters filters the
:guilabel:`Fiscal Position` usage. Leaving them blank ensures all calculations are made using this
:guilabel:`Fiscal Position`.
.. warning::
Should the :guilabel:`Detect Automatically` checkbox not be ticked, each customer will need to
have the :guilabel:`Fiscal Position` set on their :guilabel:`Sales and Purchase` tab of the
contact record. To do so, navigate to :menuselection:`Sales app --> Order --> Customers`, or
:menuselection:`Contacts app --> Contacts`. Then, select a customer or contact to set the fiscal
position on.
Navigate to the :guilabel:`Sales and Purchase` tab, and down to the section labeled,
:guilabel:`Fiscal Position`. Set the :guilabel:`Fiscal Position` field to the fiscal position
for the customer.
.. seealso::
:doc:`fiscal_positions`
AvaTax accounts
~~~~~~~~~~~~~~~
Upon selecting the checkbox option for :guilabel:`Use AvaTax API` a new :guilabel:`AvaTax` tab
appears. Click into this tab to reveal two different settings.
The first setting is the :guilabel:`AvaTax Invoice Account`, while the second is, :guilabel:`AvaTax
Refund Account`. Ensure both accounts are set for smooth end-of-year record keeping. Consult a
certified public accountant (CPA) for specific guidance on setting both accounts.
Click :guilabel:`Save` to implement the changes.
Tax mapping
===========
-----------
The Avatax integration is available on Sale Orders and Invoices with the included Avatax fiscal
The *AvaTax* integration is available on sale orders and invoices with the included *AvaTax* fiscal
position.
.. tip::
Additionally, there is a :guilabel:`Tax Mapping` tab and :guilabel:`Account Mapping` tab in the
:guilabel:`Automatic Tax Mapping (AvaTax)` fiscal position, where mapping for products can also
be configured. To access :guilabel:`Fiscal Positions` navigate to :menuselection:`Accounting app
--> Configuration --> Accounting: Fiscal Positions`.
Product category mapping
~~~~~~~~~~~~~~~~~~~~~~~~
Before using the integration, specify an :guilabel:`Avatax Category` on the product categories.
Navigate to :menuselection:`Inventory app --> Configuration --> Product Categories`. Select the
product category to add the :guilabel:`AvaTax Category` to. In the :guilabel:`AvaTax Category`
field, select a category from the drop-down menu, or :guilabel:`Search More...` to open the complete
list of options.
.. image:: avatax/avatax-category.png
:align: center
:alt: Specify Avatax Category on products
:alt: Specify AvaTax Category on products.
Avatax Categories may be overridden or set on individual products as well.
Product mapping
~~~~~~~~~~~~~~~
*AvaTax* Categories may be set on individual products, as well. To set the :guilabel:`Avatax
Category` navigate to :menuselection:`Inventory app --> Products --> Products`. Select the product
to add the :guilabel:`Avatax Category` to. Under the :guilabel:`General Information` tab, on the
far-right, is a selector field labeled: :guilabel:`Avatax Category`. Finally, click the drop-down
menu, and select a category, or :guilabel:`Search More...` to find one that is not listed.
.. note::
If both the product, and its category, have an :guilabel:`AvaTax Category` set, the product's
:guilabel:`AvaTax Category` takes precedence.
.. image:: avatax/override-avatax-product-category.png
:align: center
:alt: Override product categories as needed
:alt: Override product categories as needed.
.. _avatax/address-mapping:
Address validation
==================
Manually validate customer addresses by clicking the :guilabel:`Validate address` link in the
customer form view.
.. image:: avatax/validate-customer-address.png
:align: center
:alt: Validate customer addresses
If preferred, choose to keep the newly validated address or the original address in the wizard that
pops up.
.. image:: avatax/choose-customer-address.png
:align: center
:alt: Address validation wizard
.. _avatax/tax-calculation:
Tax calculation
===============
Automatically calculate taxes on Odoo quotations and invoices with Avatax by confirming the
documents. Alternatively, calculate the taxes manually by clicking the :guilabel:`Compute taxes
using Avatax` button while these documents are in draft mode.
Use the :guilabel:`Avalara Code` field that's available on customers, quotations, and invoices to
cross-reference data in Odoo and Avatax.
.. important::
Mapping an :guilabel:`AvaTax Category` on either the *Product* or *Product Category* should be
completed for every *Product* or *Product Category*, depending the route that is chosen.
.. seealso::
- :doc:`fiscal_positions`
- :doc:`avatax/avatax_use`
- :doc:`avatax/avalara_portal`
- `US Tax Compliance: Avatax elearning video
<https://www.odoo.com/slides/slide/us-tax-compliance-avatax-2858?fullscreen=1>`_
.. toctree::
:titlesonly:
avatax/avatax_use
avatax/avalara_portal
@@ -0,0 +1,259 @@
.. _avatax/portal:
=======================
Avalara (Avatax) portal
=======================
Avalara's (*AvaTax*) management console offers account management options including: viewing/editing
the transactions sent from Odoo to *AvaTax*, details on how the taxes are calculated, tax reporting,
tax exemption management, and tax return resources.
.. tip::
Avalara is the software developer of the tax software, *AvaTax*.
To access the console, first, navigate to either Avalara's `sandbox
<https://sandbox.admin.avalara.com/>`_ or `production <https://admin.avalara.com/>`_ environment.
This will depend on which type of account was set in the :doc:`integration <../avatax>`. Log in to
the management console.
.. image:: avalara_portal/avalara-portal.png
:align: center
:alt: Avalara dashboard after logging into management portal.
.. seealso::
For more information see Avalara's documentation: `Activate your Communications Customer Portal
account
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=qvv1656594440497&topicId=Activate_your_Communications_Customer_Portal_account.html&_LANG=enus>`_.
.. _avalara/portal-transactions:
Transactions
============
To access transactions, click in the :guilabel:`Transactions` link on the main dashboard upon
logging into the :ref:`avatax/portal`. To manually access the *Transactions* page, while logged into
the Avalara console, navigate to :menuselection:`Transactions --> Transactions`.
.. image:: avalara_portal/avalara-transactions.png
:align: center
:alt: Avalara portal with the transactions shortcut highlighted.
Edit transaction
----------------
Click into a transaction to reveal more details about the transaction. These details include
sections on :guilabel:`Invoice detail`, :guilabel:`Additional info`, and :guilabel:`Customer info`.
Click :icon:`fa-pencil` :guilabel:`Edit document details` to make changes to the transaction.
A :guilabel:`Discount` can be added to adjust the invoice. This is especially useful in cases where
the transaction has already synced with Avalara / *AvaTax*, and changes need to be made afterward.
.. _avalara/portal-filter:
Filter
------
Filter transactions on the :guilabel:`Transactions` page, by setting the :guilabel:`From` and
:guilabel:`To` fields, and configuring other fields to filter by, including:
- :guilabel:`Document Status`: any of the following options, :guilabel:`All`, :guilabel:`Voided`,
:guilabel:`Committed`, :guilabel:`Uncommitted`, or :guilabel:`Locked`.
- :guilabel:`Document Code`: any of the following options, :guilabel:`Exactly match`,
:guilabel:`Starts with`, or :guilabel:`Contains`.
- :guilabel:`Customer/Vendor Code`: the customer/vendor code in Odoo (e.g. `Contact18`).
- :guilabel:`Country`: the country this tax was calculated in; this is a text field.
- :guilabel:`Region`: the region of the country, which varies based on the :guilabel:`Country`
selection.
Click :icon:`fa-plus` :guilabel:`Filters` to access the following filter conditions:
- :guilabel:`Document Type`: any of the following selections, :guilabel:`All`, :guilabel:`Sales
Invoice`, :guilabel:`Purchase Invoice`, :guilabel:`Return Invoice`, :guilabel:`Inventory Transfer
Inbound Invoice`, :guilabel:`Inventory Transfer Outbound Invoice`, or :guilabel:`Customs
Invoice`.
- :guilabel:`Import ID`: represents the import ID of the document.
Sort by
-------
On the :guilabel:`Transactions` page, transactions will be listed below, according to the set
:ref:`avalara/portal-filter`, located in the top half of the page. The following columns are
available by default, to sort by ascending or descending order:
- :guilabel:`Doc Code`: either of the following options, :guilabel:`Exactly match`,
:guilabel:`Starts with`, or :guilabel:`Contains`.
- :guilabel:`Doc Status`: either of the following options, :guilabel:`All`, :guilabel:`Voided`,
:guilabel:`Committed`, :guilabel:`Uncommitted`, or :guilabel:`Locked`.
- :guilabel:`Cust/Vendor Code` : this is the customer/vendor code in Odoo (e.g. Contact18).
- :guilabel:`Region`: this is the region of the country, this will vary based on the
:guilabel:`Country` selection.
- :guilabel:`Amount`: the numeric amount of the total amount on the Odoo document.
- :guilabel:`Tax`: the numeric amount of the tax applied to the total.
.. image:: avalara_portal/transactions.png
:align: center
:alt: Transactions page on the Avalara portal with the filter and sort-by options highlighted.
Customize columns
~~~~~~~~~~~~~~~~~
Additional columns can be added by clicking the :icon:`fa-cog` :guilabel:`Customize columns`. On the
resulting popover window, click the drop-down menu for the :guilabel:`column` that should be
changed.
The following columns can be added for additional transactional information:
- :guilabel:`AvaTax calculated`: the amount of tax calculated by *AvaTax*.
- :guilabel:`Country`: the country this tax was calculated in; this is a text field.
- :guilabel:`Cust/vendor code`: the customer/vendor code in Odoo (e.g. `Contact18`).
- :guilabel:`Currency`: the standardized abbreviation for the currency the amount total is in.
- :guilabel:`Doc date`: the document's date of creation.
- :guilabel:`Doc status`: any of the following options, :guilabel:`All`, :guilabel:`Voided`,
:guilabel:`Committed`, :guilabel:`Uncommitted`, or :guilabel:`Locked`.
- :guilabel:`Doc type`: any of the following selections, :guilabel:`All`, :guilabel:`Sales
Invoice`, :guilabel:`Purchase Invoice`, :guilabel:`Return Invoice`, :guilabel:`Inventory Transfer
Inbound Invoice`, :guilabel:`Inventory Transfer Outbound Invoice`, or :guilabel:`Customs
Invoice`.
- :guilabel:`Import ID`: represents the import ID of the document.
- :guilabel:`Last modified`: timestamp of the last time the document was modified.
- :guilabel:`Location code`: the location code used to calculate the tax, based on the delivery
address.
- :guilabel:`PO number`: the purchase order number.
- :guilabel:`Reference code`: the Odoo reference code (e.g. NV/2024/00003)
- :guilabel:`Region`: the region of the country,which varies based on the :guilabel:`Country`
selection.
- :guilabel:`Salesperson code`: the numeric ID of the user assigned to the sales order in Odoo.
- :guilabel:`Tax date`: the month/day/year of the tax calculation.
- :guilabel:`Tax override type`: where an exemption would appear, should there be none, the field
populates with :guilabel:`None`.
To add a new column click the :icon:`fa-plus` :guilabel:`Column`.
.. seealso::
For more information on *AvaTax* transactions, refer to this Avalara documentation: `Transactions
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=qvv1656594440497&topicId=transactions.html&_LANG=enus>`_.
Import-export
-------------
While on the :ref:`avalara/portal-transactions`, click :icon:`fa-download` :guilabel:`Import
transactions` or :icon:`fa-upload` :guilabel:`Export transactions` to import or export transactions.
Reports
-------
To access reporting, navigate to the :menuselection:`Reports` link in the top menu of the Avalara
management console. Next, select from one of the available reporting tabs: :guilabel:`Transactions
reports`, :guilabel:`Liability & tax return reports`, or :guilabel:`Exemption reports`.
.. tip::
Additionally, there is a :guilabel:`Favorites` tab and :guilabel:`Downloads` tab. The
:guilabel:`Favorites` tab contains any favorited report configurations for the Avalara user. The
:guilabel:`Downloads` tab contains a list view where the user can download the high-volume
transaction reports created in the last 30 days.
Make a selection for the :guilabel:`Report Category`, and the :guilabel:`Report Name`, under the
:guilabel:`Select a report` section.
Next, fill out the :guilabel:`Select report details` section. These options will vary based on the
tab selected above.
Depending on the report size, the following two options are available in the section labeled,
:guilabel:`Select the approximate number of transactions for your report`: :guilabel:`Create and
download the report instantly` (for small reports) and :guilabel:`Create and download the report in
the background` (for larger reports). Select one or the other depending on the volume of
transactions in this report.
Finally, under the section labeled, :guilabel:`Report preview and export` make a selection of the
file type to download. Either a :guilabel:`.PDF` or :guilabel:`.XLS` can be chosen. Alternatively,
the file can be previewed by selecting the :guilabel:`Preview` option.
After making all the configurations, click :guilabel:`Create report` to download the report. Click
:icon:`fa-star-o` :guilabel:`Make this report a favorite` to save the report configuration to the
user's favorites.
After the report is created, click :icon:`fa-download` :guilabel:`Download` to download the file to
the device.
.. tip::
Select a pre-configured report from the :guilabel:`Frequently used reports` section of the
reporting dashboard.
Access this list by clicking on the :guilabel:`Reports` option in the top menu of the Avalara
management console, and scroll to the bottom of the page.
.. seealso::
`See Avalara's documentation: Reports in AvaTax
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=rjq1671176624730&topicId=Reports_in_AvaTax.html&_LANG=enus>`_.
Add more jurisdictions
======================
Additional jurisdictions (tax locations) can be added in the Avalara management console. Navigate to
either Avalara's `sandbox <https://sandbox.admin.avalara.com/>`_ or `production
<https://admin.avalara.com/>`_ environment. This will depend on which type of account was set in the
:doc:`integration <../avatax>`.
Next, navigate to :menuselection:`Settings --> Where you collect tax`. Choose between the three
different tabs, depending on the business need. The first tab is :guilabel:`Sales and use tax`,
where tax can be collected for the United States. Click the :icon:`fa-plus` :guilabel:`Add to where
you collect sales and use tax` to add another location where the company collects sales and use tax.
The second option, is the :guilabel:`VAT/GST` tab where the :icon:`fa-plus` :guilabel:`Add a country
or territory where you collect VAT/GST` can be selected to add another country or territory where
the company collects VAT/GST.
Finally, on the far-right, is the :guilabel:`Customs duty` tab, where a country can be added where
the company collects customs duty. Simply click on the :icon:`fa-plus` :guilabel:`Add a country
where you calculate customs duty` icon below the tab.
.. image:: avalara_portal/where-you-collect-tax.png
:align: center
:alt: AvaTax management console, on the Where you collect tax page, with the add button and
sales and use tax tab highlighted.
.. seealso::
`See Avalara's documentation: Add local jurisdiction taxes
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=bla1700809896571_bla1700809896571&topicId=nbw1698727575499.html&_LANG=enus>`_.
Tax exemption certificate
=========================
Tax exemption certificates for customers can be added into the Avalara management console, so that
*AvaTax* is aware of which customers may be exempt from paying certain taxes. To add an *exception
certificate* navigate to :menuselection:`Exemptions --> Customer certificates`. From there, click on
the :icon:`fa-plus` :guilabel:`Add a certificate` to configure an exemption.
.. warning::
An Avalara subscription to Exemption Certificate Management (ECM) is required in order to attach
certificate images, and to be ready for an audit. For more on subscribing to this add-on, visit
`Avalara
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=hff1682048150115_hff1682048150115&topicId=fol1682356576230.html&_LANG=enus>`_.
End-of-year operations
======================
Avalara's services include tax return services, for when it is time to file taxes at the end of the
year. To access Avalara's tax services log, into the `management portal
<https://admin.avalara.com/>`_. Then, from the main dashboard, click :guilabel:`Returns`. Avalara
will prompt the Avalara user to log in for security purposes, and redirect the user to the *Returns*
portal.
.. image:: avalara_portal/avalara-returns.png
:align: center
:alt: Avalara portal with the returns shortcut highlighted.
Click :guilabel:`Get started` to begin the tax return process. For more information, refer to this
Avalara documentation: `About Managed Returns
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=hps1656397152776_hps1656397152776&topicId=Learn_about_Managed_Returns.html&_LANG=enus>`_.
.. tip::
Alternatively, click on the :menuselection:`Returns` button in the top menu of the Avalara
management console.
.. seealso::
- :doc:`../avatax`
- :doc:`avatax_use`
- `US Tax Compliance: Avatax elearning video
<https://www.odoo.com/slides/slide/us-tax-compliance-avatax-2858?fullscreen=1>`_
Binary file not shown.

After

Width:  |  Height:  |  Size: 40 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 29 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 13 KiB

@@ -0,0 +1,166 @@
==========
AvaTax use
==========
AvaTax is a tax calculation software that can be integrated with Odoo in the United States and
Canada. Once the :doc:`integration setup <../avatax>` is complete, the calculated tax is simple and
automatic.
Tax calculation
===============
Automatically calculate taxes on Odoo quotations and invoices with AvaTax by confirming the
documents during the sales flow. Alternatively, calculate the taxes manually by clicking the
:guilabel:`Compute Taxes` button, while these documents are in draft stage.
.. tip::
Clicking the :guilabel:`Compute Taxes` button recalculates taxes, if any product lines are edited
on the invoice.
.. image:: avatax_use/calculate-avatax.png
:align: center
:alt: Sales quotation with the confirm and compute taxes button highlighted.
The tax calculation is triggered during the following :ref:`automatic trigger
<avatax/automatic-triggers>` and :ref:`manual trigger <avatax/manual-triggers>` circumstances.
.. _avatax/automatic-triggers:
Automatic triggers
------------------
- When the sales rep sends the quote by email with :guilabel:`Send by email` button (pop-up).
- When the customer views the online quote on the portal.
- When a quote is confirmed and becomes a sales order.
- When the customer views the invoice on the portal.
- When a draft invoice is validated.
- When the customer views the subscription in the portal.
- When a subscription generates an invoice.
- When the customer gets to the last screen of the eCommerce checkout.
.. _avatax/manual-triggers:
Manual triggers
---------------
- :guilabel:`Compute Taxes` button at the bottom of the quote.
- :guilabel:`Compute Taxes` button at the top of the invoice.
Use each of these buttons to manually re-calculate the sales tax.
.. tip::
Use the :guilabel:`Avalara Partner Code` field that is available on customer records, quotations,
and invoices to cross-reference data in Odoo and AvaTax. This field is located under the
:menuselection:`Other info` tab of the sales order or quotation in the :guilabel:`Sales` section.
On the customer record, navigate to *Contacts app* and select a contact. Then open the
:guilabel:`Sales & Purchase` tab and the :guilabel:`Avalara Partner Code` under the
:guilabel:`Sales` section.
.. important::
The :guilabel:`Automatic Tax Mapping (AvaTax)` fiscal position is also applied on those Odoo
documents, like subscriptions.
.. seealso::
- :doc:`../fiscal_positions`
AvaTax synchronization
======================
Synchronization occurs with AvaTax, when the *invoice* is created in Odoo. This means the sales tax
is recorded with Avalara (AvaTax software developer).
To do so, navigate to :menuselection:`Sales app --> Orders --> Quotations`. Select a quotation from
the list.
After confirming a quotation and validating the delivery, click :guilabel:`Create Invoice`. Indicate
whether it is a :guilabel:`Regular invoice`, :guilabel:`Down payment (percentage)`, or
:guilabel:`Down payment (fixed amount)`.
Then click :guilabel:`Create and view invoice`. The recorded taxes can be seen in the
:guilabel:`Journal Items` tab of the invoice. There will be different taxes depending on the
location of the :guilabel:`Delivery Address`.
.. image:: avatax_use/journal-items.png
:align: center
:alt: Journal items highlighted on a invoice in Odoo.
Finally, press the :guilabel:`Confirm` button to complete the invoice and synchronize with the
AvaTax portal.
.. warning::
An invoice cannot be :guilabel:`Reset to draft` because this causes de-synchronization with the
AvaTax Portal. Instead, click :guilabel:`Add credit note` and state: `Sync with AvaTax Portal`.
See this documentation: :doc:`../../../accounting/customer_invoices/credit_notes`.
Fixed price discounts
=====================
Add a fixed price discount to a valuable customer, by clicking :guilabel:`Add a line` on the
customer's invoice. Add the product discount, and set the :guilabel:`Price` to either a positive or
negative value. To recalculate the taxes, click :guilabel:`Compute Taxes`.
.. tip::
Tax calculation can even be done on negative subtotals and credit notes.
Logging
=======
It is possible to log Avalara/*AvaTax* actions in Odoo for further analysis, or verification of
functionality. Logging is accessible through the *AvaTax* settings.
To start logging *AvaTax* actions, first, navigate to the :menuselection:`Accounting app -->
Configuration --> Settings`.
Then, in the :guilabel:`Taxes` section, under the :guilabel:`AvaTax` settings, click
:guilabel:`Start logging for 30 minutes`.
Upon starting the log process, Odoo will log all Avalara/*AvaTax* actions performed in the database.
To view the logs, click on :guilabel:`Show logs` to the right of the :guilabel:`Start logging for 30
minutes`. This reveals a detailed list of Avalara/*AvaTax* actions. This list is sortable by the
following columns:
- :guilabel:`Created on`: timestamp of the *AvaTax* calculation.
- :guilabel:`Created by`: numeric value of the user in the database.
- :guilabel:`Database name`: name of the database.
- :guilabel:`Type`: two values can be chosen for this field, :guilabel:`Server` or
:guilabel:`Client`.
- :guilabel:`Name`: Avalara service name. In this case, it will be *AvaTax*.
- :guilabel:`Level`: by default, this will be `INFO`.
- :guilabel:`Path`: indicates the path taken to make the calculation.
- :guilabel:`Line`: indicates the line the calculation is made on.
- :guilabel:`Function`: indicates the calculation taken on the line.
.. image:: avatax_use/logging.png
:align: center
:alt: Avalara logging page with top row of list highlighted.
Click into the log line to reveal another field, called :guilabel:`Message`.
This field populates a raw transcription of the transaction, which involves the creation (or
adjustment) of a sales invoice using the Avalara *AvaTax* API.
The transaction includes details, such as addresses for shipping from and to, line items describing
the products or services, tax codes, tax amounts, and other relevant information.
The :guilabel:`Message` contains the calculated taxes for different jurisdictions and confirms the
creation (or adjustment) of the transaction.
.. tip::
Custom fields can be made using Odoo *Studio*. Click the :icon:`fa-ellipsis-v`
:guilabel:`(ellipsis)` menu to the far-right of the header row. Then click :icon:`fa-plus`
:guilabel:`Add custom field`. This action opens Odoo *Studio*.
.. important::
Odoo *Studio* requires a *custom* pricing plan. Consult the database's customer success manager
for more information on switching plans. Or to see if Odoo *Studio* is included in the database's
current pricing plan. See this documentation: :doc:`../../../../studio`.
.. seealso::
- :doc:`../avatax`
- :doc:`avalara_portal`
- `US Tax Compliance: Avatax elearning video
<https://www.odoo.com/slides/slide/us-tax-compliance-avatax-2858?fullscreen=1>`_
- :doc:`../fiscal_positions`
Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 34 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 35 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

@@ -903,6 +903,9 @@ Configuration
:alt: The Employment Hero "Business ID" number is in the URL
- You can choose any Odoo journal to post the payslip entries.
#. Configure the tax by going to :menuselection:`Accounting --> Configuration --> Taxes`. Create the
necessary taxes for the Employment Hero payslip entries. Fill in the tax code from
**Employment Hero** in the :guilabel:`Matching Employment Hero Tax` field.
How does the API work?
----------------------
@@ -10,12 +10,12 @@ Introduction
============
With the Brazilian localization, sales taxes can be automatically computed and electronic invoices
(NF-e) for goods can be sent using AvaTax (Avalara) through |API| calls. Moreover, taxes for
services can be configured.
for goods (NF-e) and services (NFS-e) can be sent using AvaTax (Avalara) through |API| calls.
Moreover, taxes for services can be configured.
For the goods tax computation and electronic invoicing process, you need to configure the
:ref:`contacts <brazil/contacts>`, :ref:`company <brazil/company>`, :ref:`products
<brazil/products>`, and :ref:`create an account in Avatax <brazil/avatax-account>` need to be
For the goods and services tax computation and electronic invoicing process, you need to configure
the :ref:`contacts <brazil/contacts>`, :ref:`company <brazil/company>`, :ref:`products
<brazil/products>`, and :ref:`create an account in AvaTax <brazil/avatax-account>` which needs to be
configured in the general settings.
For the services taxes, you can create and configure them from Odoo directly without computing them
@@ -27,9 +27,36 @@ needed.
Configuration
=============
Install the :guilabel:`🇧🇷 Brazil` :ref:`fiscal localization package
<fiscal_localizations/packages>` to get all the default accounting features of the Brazilian
localization, following the :abbr:`IFRS (International Financial Reporting Standards)` rules.
Modules installation
--------------------
:ref:`Install <general/install>` the following modules to get all the features of the Brazilian
localization:
.. list-table::
:header-rows: 1
:widths: 25 25 50
* - Name
- Technical name
- Description
* - :guilabel:`Brazilian - Accounting`
- `l10n_br`
- Default :ref:`fiscal localization package <fiscal_localizations/packages>`, which represents
having the Generic Brazilian chart of accounts and Taxes, together with document types and
identification types.
* - :guilabel:`Brazil - Accounting Reports`
- `l10n_br_reports`
- Accounting reports for Brazil.
* - :guilabel:`AvaTax Brazil` & :guilabel:`AvaTax Brazil for Services`
- `l10n_br_avatax` & `l10n_br_avatax_services`
- Goods and Services tax computation through Avalara.
* - :guilabel:`Brazilian Accounting EDI` & :guilabel:`Brazilian Accounting EDI for services`
- `l10n_br_edi` & `l10n_br_edi_services`
- Provides electronic invoicing for goods and services for Brazil through AvaTax.
* - :guilabel:`Brazil Pix QR codes`
- `l10n_br_pix`
- Implements Pix QR codes for Brazil.
.. _brazil/company:
@@ -42,40 +69,53 @@ given to your company.
#. Select the :guilabel:`Company` option at the top of the page. Then, configure the following
fields:
- :guilabel:`Name`.
- :guilabel:`Address` (add :guilabel:`City`, :guilabel:`State`, :guilabel:`Zip Code`,
:guilabel:`Country`).
- :guilabel:`Name`
- :guilabel:`Address`: add :guilabel:`City`, :guilabel:`State`, :guilabel:`Zip Code`,
:guilabel:`Country`
- In the :guilabel:`Street` field, enter the street name, number, and any additional address
information.
- In the :guilabel:`Street 2` field, enter the neighborhood.
- :guilabel:`Identification Number` (:guilabel:`CNPJ`, :guilabel:`CPF`).
- :guilabel:`Tax ID` (associated with the identification type).
- :guilabel:`IE` (State registration).
- :guilabel:`IM` (Municipal registration).
- :guilabel:`SUFRAMA code` (Superintendence of the Manaus Free Trade Zone - add if applicable).
- :guilabel:`Phone`.
- :guilabel:`Email`.
- :guilabel:`Identification Number`: :guilabel:`CNPJ` or :guilabel:`CPF`
- :guilabel:`Tax ID`: associated with the identification type
- :guilabel:`IE`: State registration
- :guilabel:`IM`: Municipal registration
- :guilabel:`SUFRAMA code`: Superintendence of the Manaus Free Trade Zone - add if applicable
- :guilabel:`Phone`
- :guilabel:`Email`
.. image:: brazil/contact-configuration.png
:alt: Company configuration.
#. Configure the :guilabel:`Fiscal Information` within the :guilabel:`Sales and Purchase` tab:
- Add the :guilabel:`Fiscal Position` for :ref:`Avatax Brazil <brazil/fiscal-positions>`.
- :guilabel:`Tax Regime` (Federal Tax Regime).
- :guilabel:`ICMS Taxpayer Type` (indicates ICMS regime, Exempt status, or Non-Taxpayer).
- :guilabel:`Main Activity Sector`.
- Add the :guilabel:`Fiscal Position` for :ref:`AvaTax Brazil <brazil/fiscal-positions>`.
- :guilabel:`Tax Regime`: Federal Tax Regime
- :guilabel:`ICMS Taxpayer Type`: indicates :guilabel:`ICMS regime`, :guilabel:`Exempt status`,
or :guilabel:`Non-Taxpayer`
- :guilabel:`Main Activity Sector`
.. image:: brazil/contact-fiscal-configuration.png
:alt: Company fiscal configuration.
#. Finally, upload a company logo and save the contact
#. Configure the following extra :guilabel:`Fiscal Information` if you are going to issue NFS-e:
- Add the :guilabel:`Fiscal Position` for :ref:`AvaTax Brazil <brazil/fiscal-positions>`.
- :guilabel:`COFINS Details`: :guilabel:`Taxable, Not Taxable, Taxable with rate 0%, Exempt,
Suspended`
- :guilabel:`PIS Details` :guilabel:`Taxable, Not Taxable, Taxable with rate 0%, Exempt,
Suspended`
- :guilabel:`CSLL Taxable` If the company is subject to CSLL or not
.. image:: brazil/contact-fiscal-configuration-nfse.png
:alt: Company fiscal configuration for NFSe.
#. Finally, upload a company logo and save the contact.
.. note::
If you are a simplified regime, you need to configure the ICMS rate under
:menuselection:`Accounting --> Configuration --> Settings --> Taxes --> Avatax Brazil`.
:menuselection:`Accounting --> Configuration --> Settings --> Taxes --> AvaTax Brazil`.
.. _brazil/avatax-account:
@@ -88,11 +128,14 @@ transaction information to retrieve the correct tax to be used and process the e
with the government.
Using this integration requires :doc:`In-App-Purchases (IAPs) <../../essentials/in_app_purchase>` to
compute the taxes and to send the electronic invoices. Whenever you compute taxes, an |API| call is
made using credits from your |IAP| credits balance.
compute the taxes and to send the electronic invoices. Whenever you compute taxes, send an
electronic document (NF-e, NFS-e, etc), or perform any electronic flow (NF-e Cancellation,
Correction letter, Invalidate invoice number range), an API call is made using credits from your
`IAP credits balance <https://iap.odoo.com/iap/in-app-services/819>`_.
.. note::
Odoo is a certified partner of Avalara Brazil.
- Odoo is a certified partner of Avalara Brazil.
- You can `buy IAP credit on odoo.com <https://iap.odoo.com/iap/in-app-services/819>`_.
Credential configuration
~~~~~~~~~~~~~~~~~~~~~~~~
@@ -100,19 +143,31 @@ Credential configuration
To activate AvaTax in Odoo, you need to create an account. To do so, go to
:menuselection:`Accounting --> Configuration --> Settings --> Taxes`, and in the :guilabel:`AvaTax
Brazil` section, add the administration email address to be used for the AvaTax portal in the
:guilabel:`Avatax Portal Email`, and then click on :guilabel:`Create account`.
:guilabel:`AvaTax Portal Email`, and then click on :guilabel:`Create account`.
.. warning::
When **testing** an :guilabel:`Avatax Portal Email` integration in a testing or sandbox database,
use an alternate email address. It is **not** possible to re-use the same email address on the
production database.
When **testing** or **creating a production** :guilabel:`AvaTax Portal Email` integration in a
sandbox or production database, use a real email address, as it is needed to log in to the
Avalara Portal and set up the certificates, whether you want to test or use it on production.
There are two different Avalara Portals, one for testing and one for production:
- Sandbox: https://portal.sandbox.avalarabrasil.com.br/
- Production: https://portal.avalarabrasil.com.br/
When you create the account from Odoo, be sure to select the right environment. Moreover, the
email used to open the account cannot be used to open another account. Save your :guilabel:`API
ID` and :guilabel:`API Key` when you create the account from Odoo.
.. image:: brazil/transfer-api-credentials.png
:alt: Transfer API Credentials.
After you create the account from Odoo, you need to go to the Avalara Portal to set up your
password:
#. Access the `Avalara portal <https://portal.avalarabrasil.com.br/Login>`_.
#. Click on :guilabel:`Meu primeiro acesso`.
#. Add the email address you used in Odoo to create the Avalara/Avatax account, and then click
#. Add the email address you used in Odoo to create the Avalara/AvaTax account, and then click
:guilabel:`Solicitar Senha`.
#. You will receive an email with a token and a link to create your password. Click on this link and
copy-paste the token to allocate your desired password.
@@ -123,7 +178,7 @@ password:
invoice service, you **must** access the AvaTax portal and upload your certificate there.
.. image:: brazil/avatax-account-configuration.png
:alt: Avatax account configuration.
:alt: AvaTax account configuration.
.. note::
You can transfer |API| credentials. Use this only when you have already created an account in
@@ -139,6 +194,13 @@ The certificate will be synchronized with Odoo, as long as the external identifi
AvaTax portal matches - without special characters - with the CNPJ number, and the identification
number (CNPJ) in Odoo matches with the CNPJ in AvaTax.
.. important::
To issue NFS-e, some cities require that you link the certificate within the City Portal system
before issuing NFS-e from Odoo.
If you receive an error message from the city that says :guilabel:`Your certificate is not linked
to the user`, that means this process needs to be done in the city portal.
Configure master data
---------------------
@@ -187,15 +249,8 @@ be manually added and configured, as the rate may differ depending on the city w
offering the service.
.. important::
Taxes attached to services are not computed by AvaTax. Only goods taxes are computed.
When configuring a tax used for a service that is included in the final price (when the tax is not
added or subtracted on top of the product price), set the :guilabel:`Tax Computation` to
:guilabel:`Percentage of Price Tax Included`, and, on the :guilabel:`Advanced Options` tab, check
the :guilabel:`Included in Price` option.
.. image:: brazil/tax-configuration.png
:alt: Tax configuration.
If you decide to do service taxes manually, you won't be able to issue an NFS-e. To
electronically send an NFS-e, you need to compute taxes using Avalara.
.. warning::
Do not delete taxes, as they are used for the AvaTax tax computation. If deleted, Odoo creates
@@ -212,14 +267,17 @@ Products
~~~~~~~~
To use the AvaTax integration on sale orders and invoices, first specify the following information
on the product:
on the product depending on its intended use:
- :guilabel:`CEST Code` (Code for products subject to ICMS tax substitution).
- :guilabel:`Mercosul NCM Code` (Mercosur Common Nomenclature Product Code).
- :guilabel:`Source of Origin` (Indicates the origin of the product, which can be foreign or
domestic, among other possible options depending on the specific use case).
- :guilabel:`SPED Fiscal Product Type` (Fiscal product type according to SPED list table).
- :guilabel:`Purpose of Use` (Specify the intended purpose of use for this product).
E-Invoice for goods (NF-e)
**************************
- :guilabel:`CEST Code`: Code for products subject to ICMS tax substitution
- :guilabel:`Mercosul NCM Code`: Mercosur Common Nomenclature Product Code
- :guilabel:`Source of Origin`: Indicates the origin of the product, which can be foreign or
domestic, among other possible options depending on the specific use case
- :guilabel:`SPED Fiscal Product Type`: Fiscal product type according to SPED list table
- :guilabel:`Purpose of Use`: Specify the intended purpose of use for this product
.. image:: brazil/product-configuration.png
:alt: Product configuration.
@@ -231,6 +289,16 @@ on the product:
:guilabel:`Product Type` `Service`, :guilabel:`Transportation Cost Type` `Insurance`, `Freight`,
or `Other Costs`).
E-Invoice for services (NFS-e)
******************************
- :guilabel:`Mercosul NCM Code`: Mercosur Common Nomenclature Product Code
- :guilabel:`Purpose of Use`: Specify the intended purpose of use for this product
- :guilabel:`Service Code Origin`: City Service Code where the provider is registered
- :guilabel:`Service Codes`: City Service Code where the service will be provided, if no
code is added, the Origin City Code will be used
- :guilabel:`Labor Assignment`: Defines if your services includes labor
.. _brazil/contacts:
Contacts
@@ -242,23 +310,23 @@ Before using the integration, specify the following information on the contact:
- Select the :guilabel:`Company` option for a contact with a tax ID (CNPJ), or check
:guilabel:`Individual` for a contact with a CPF.
- :guilabel:`Name`.
- :guilabel:`Address` (add :guilabel:`City`, :guilabel:`State`, :guilabel:`Zip Code`,
:guilabel:`Country`).
- :guilabel:`Name`
- :guilabel:`Address`: add :guilabel:`City`, :guilabel:`State`, :guilabel:`Zip Code`,
:guilabel:`Country`
- In the :guilabel:`Street` field, enter the street, number, and any extra address information.
- In the :guilabel:`Street 2` field, enter the neighborhood.
- :guilabel:`Identification Number` (:guilabel:`CNPJ`, :guilabel:`CPF`).
- :guilabel:`Tax ID` (associated with the identification type).
- :guilabel:`IE`: state tax identification number.
- :guilabel:`IM`: municipal tax identification number.
- :guilabel:`SUFRAMA code`: SUFRAMA registration number.
- :guilabel:`Phone`.
- :guilabel:`Email`.
- :guilabel:`Identification Number`: :guilabel:`CNPJ` or :guilabel:`CPF`
- :guilabel:`Tax ID`: associated with the identification type
- :guilabel:`IE`: state tax identification number
- :guilabel:`IM`: municipal tax identification number
- :guilabel:`SUFRAMA code`: SUFRAMA registration number
- :guilabel:`Phone`
- :guilabel:`Email`
.. image:: brazil/contact-configuration.png
:alt: Contact configuration.
:alt: Contact configuration.
.. note::
The :guilabel:`CPF`, :guilabel:`IE`, :guilabel:`IM`, and :guilabel:`SUFRAMA code` fields are
@@ -269,13 +337,25 @@ Before using the integration, specify the following information on the contact:
- :guilabel:`Fiscal Position`: add the AvaTax fiscal position to automatically compute taxes on
sale orders and invoices automatically
- :guilabel:`Tax Regime`: federal tax regime
- :guilabel:`ICMS Taxpayer Type`: taxpayer type determines if the contact is within the ICMS
regime, if it is exempt, or if it is a non-taxpayer
- :guilabel:`ICMS Taxpayer Type`: taxpayer type determines if the contact is within the
:guilabel:`ICMS regime`, :guilabel:`Exempt status`, or :guilabel:`Non-taxpayer`
- :guilabel:`Main Activity Sector`: list of main activity sectors of the contact
.. image:: brazil/contact-fiscal-configuration.png
:alt: Contact fiscal configuration.
#. Configure the following extra :guilabel:`Fiscal Information` if you are going to issue NFS-e:
- Add the :guilabel:`Fiscal Position` for :ref:`AvaTax Brazil <brazil/fiscal-positions>`
- :guilabel:`COFINS Details`: :guilabel:`Taxable, Not Taxable, Taxable with rate 0%, Exempt,
Suspended`
- :guilabel:`PIS Details`: :guilabel:`Taxable, Not Taxable, Taxable with rate 0%, Exempt,
Suspended`
- :guilabel:`CSLL Taxable`: If the company is subject to CSLL or not
.. image:: brazil/contact-fiscal-configuration-nfse.png
:alt: Contact fiscal configuration for NFSe.
.. _brazil/fiscal-positions:
Fiscal positions
@@ -285,8 +365,8 @@ To compute taxes and send electronic invoices on sale orders and invoices, both
:guilabel:`Detect Automatically` and the :guilabel:`Use AvaTax API` options need to be enabled in
the :guilabel:`Fiscal Position`.
The :guilabel:`Fiscal Position` can be configured on the contact or selected when creating a sales
order or an invoice.
The :guilabel:`Fiscal Position` can be configured on the :ref:`contact <brazil/contacts>` or
selected when creating a sales order or an invoice.
.. image:: brazil/fiscal-position-configuration.png
:alt: Fiscal position configuration
@@ -295,8 +375,8 @@ Workflows
=========
This section provides an overview of the actions that trigger `API calls
<https://en.wikipedia.org/wiki/API>`_ for tax computation, and how to send an electronic invoice for
goods (NF-e) for government validation.
<https://en.wikipedia.org/wiki/API>`_ for tax computation, along with instructions on how to send
electronic invoices for goods (NF-e) and services (NFS-e) for government validation.
.. warning::
Please note that each |API| call incurs a cost. Be mindful of the actions that trigger these
@@ -314,7 +394,7 @@ any of the following ways:
- **Quotation confirmation**
Confirm a quotation into a sales order.
- **Manual trigger**
Click on :guilabel:`Compute Taxes Using Avatax`.
Click on :guilabel:`Compute Taxes Using AvaTax`.
- **Preview**
Click on the :guilabel:`Preview` button.
- **Email a quotation / sales order**
@@ -326,8 +406,8 @@ any of the following ways:
Tax calculations on invoices
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Trigger an |API| call to calculate taxes on a customer invoice automatically with AvaTax any of the
following ways:
Trigger an |API| call to calculate taxes on a customer invoice automatically with AvaTax in any of
the following ways:
- **Manual trigger**
Click on :guilabel:`Compute Taxes Using AvaTax`.
@@ -351,21 +431,21 @@ Electronic documents
Customer invoices
~~~~~~~~~~~~~~~~~
To process an electronic invoice for goods (NF-e), the invoice needs to be confirmed and taxes need
to be computed by Avalara. Once that step is done, click on the :guilabel:`Send \& Print` button in
the upper left corner, and a pop-up will appear. Then click on :guilabel:`Process e-invoice` and any
of the other options - :guilabel:`Download` or :guilabel:`Email`. Finally, click on :guilabel:`Send
\& Print` to process the invoice against the government.
To process an electronic invoice for goods (NF-e) or services (NFS-e), the invoice needs to be
confirmed and taxes need to be computed by Avalara. Once that step is done, click on the
:guilabel:`Send & Print` button in the upper left corner. In the pop-up that appears, click on
:guilabel:`Process e-invoice` and any of the other options - :guilabel:`Download` or
:guilabel:`Email`. Finally, click on :guilabel:`Send & Print` to process the invoice with the
government.
Before sending the electronic invoice for goods (NF-e) some fields need to be filled out on the
invoice:
Before sending the electronic invoice for goods (NF-e) or services (NFS-e), some fields need to be
filled out on the invoice:
- :guilabel:`Customer` with all the customer information
- :guilabel:`Payment Method: Brazil` (how the invoice is planned to be paid)
- :guilabel:`Customer`, with all the customer information
- :guilabel:`Payment Method: Brazil`: how the invoice is planned to be paid
- :guilabel:`Fiscal Position` set as the :guilabel:`Automatic Tax Mapping (Avalara Brazil)`
- :guilabel:`Document Type` set as :guilabel:`(55) Electronic Invoice (NF-e)`. This is the only
electronic document supported at the moment. Non-electronic invoices can be registered, and other
document types can be activated if needed
- :guilabel:`Document Type` set as :guilabel:`(55) Electronic Invoice (NF-e)` or :guilabel:`(SE)
Electronic Service Invoice (NFS-e)`
There are some other optional fields that depend on the nature of the transaction. These fields are
not required, so no errors will appear from the government if these optional fields are not
@@ -392,6 +472,9 @@ Credit notes
If a sales return needs to be registered, then a credit note can be created in Odoo to be sent to
the government for validation.
.. note::
Credit notes are only available for electronic invoices for goods (NF-e).
.. seealso::
:ref:`Issue a credit note <accounting/issue-credit-note>`
@@ -401,7 +484,9 @@ Debit Notes
If additional information needs to be included, or values need to be corrected that were not
accurately provided in the original invoice, a debit note can be issued.
.. important::
.. note::
Debit notes are only available for electronic invoices for goods (NF-e).
Only the products included in the original invoice can be part of the debit note. While changes
can be made to the product's unit price or quantity, products **cannot** be added to the debit
note. The purpose of this document is only to declare the amount that you want to add to the
@@ -415,22 +500,37 @@ Invoice cancellation
It is possible to cancel an electronic invoice that was validated by the government.
.. important::
.. note::
Check whether the electronic invoice is still within the cancellation deadline, which may vary
according to the legislation of each state.
This can be done in Odoo by clicking :guilabel:`Request Cancel` and adding a cancellation
:guilabel:`Reason` on the pop-up that appears. If you want to send this cancellation reason to the
customer via email, activate the :guilabel:`E-mail` checkbox.
E-invoices for goods (NF-e)
***************************
Cancel an e-invoice for goods (NF-e) in Odoo by clicking :guilabel:`Request Cancel` and adding a
cancellation :guilabel:`Reason` on the pop-up that appears. If you want to send this cancellation
reason to the customer via email, activate the :guilabel:`E-mail` checkbox.
.. image:: brazil/invoice-cancellation.png
:alt: Invoice cancellation reason in Odoo.
.. note::
This is an electronic cancellation, which means that Odoo will send a request to the government
to cancel the NF-e, and it will then consume one |IAP| credit, as an |API| call occurs.
E-invoices for services (NFS-e)
*******************************
Cancel an e-invoice for services (NFS-e) in Odoo by clicking :guilabel:`Request Cancel`. In this
case, there is no electronic cancellation process, as not every city has this service available. The
user needs to manually cancel this NFS-e on the city portal. Once that step is completed, they can
request the cancellation in Odoo, which will cancel the invoice.
Correction letter
~~~~~~~~~~~~~~~~~
A correction letter can be created and linked to an electronic invoice that was validated by the
government.
A correction letter can be created and linked to an electronic invoice for goods (NF-e) that was
validated by the government.
This can be done in Odoo by clicking :guilabel:`Correction Letter` and adding a correction
:guilabel:`Reason` on the pop-up that appears. To send this correction reason to a customer via
@@ -439,6 +539,9 @@ email, activate the :guilabel:`E-mail` checkbox.
.. image:: brazil/correction-letter.png
:alt: Correction letter reason in Odoo.
.. note::
Correction letters are only available for electronic invoices for goods (NF-e).
Invalidate invoice number range
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
@@ -455,6 +558,10 @@ journal, and click the :menuselection:`⚙️ (gear) icon --> Invalidate Number
.. image:: brazil/range-number-invalidation-wizard.png
:alt: Number range invalidation wizard in Odoo.
.. note::
Invalidate invoice number range documents are only available for electronic invoices for goods
(NF-e).
.. note::
The log of the canceled numbers along with the XML file are recorded in the chatter of the
journal.
@@ -468,8 +575,8 @@ is recorded on the :ref:`customer invoices <brazil/electronic-documents>`.
These Brazilian specific fields are:
- :guilabel:`Payment Method: Brazil` (how the invoice is planned to be paid).
- :guilabel:`Document Type` used by your vendor.
- :guilabel:`Document Number` (the invoice number from your supplier).
- :guilabel:`Freight Model` (how goods are planned to be transported - domestic).
- :guilabel:`Transporter Brazil` (who is doing the transportation).
- :guilabel:`Payment Method: Brazil`: how the invoice is planned to be paid
- :guilabel:`Document Type`: used by your vendor
- :guilabel:`Document Number`: the invoice number from your supplier
- :guilabel:`Freight Model`: **NF-e specific** how goods are planned to be transported - domestic
- :guilabel:`Transporter Brazil`: **NF-e specific** who is doing the transportation.
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 10 KiB

@@ -2,8 +2,35 @@
Hong Kong
=========
Add FPS QR codes to invoices
============================
Configuration
=============
:ref:`Install <general/install>` the following modules to get the latest features of the Hong Kong
localization:
.. list-table::
:header-rows: 1
* - Name
- Technical name
- Description
* - :guilabel:`Hong Kong - Accounting`
- `l10n_hk`
- The base module to manage chart of accounting and localization for Hong Kong.
* - :guilabel:`Hong Kong - Payroll`
- `l10n_hk_hr_payroll`
- Enables :ref:`payroll <hong_kong/payroll>` specific localization features for Odoo *Payroll*
app. This module also installs :guilabel:`Hong Kong - Payroll with Accounting` and
:guilabel:`Documents - Hong Kong Payroll`.
* - :guilabel:`Hong Kong - Payroll with Accounting`
- `l10n_hk_hr_payroll_account`
- Installs the link between Hong Kong payroll and accounting.
* - :guilabel:`Documents - Hong Kong Payroll`
- `documents_l10n_hk_hr_payroll`
- Integrates employee ir56 forms in the Odoo *Documents* app.
FPS QR codes on invoices
========================
:abbr:`FPS (Faster Payment System)` is a payment service platform that allows customers to make
instant domestic payments to individuals and merchants in Hong Kong dollars or Renminbi via online
@@ -12,23 +39,26 @@ and mobile banking.
Activate QR codes
-----------------
Go to :menuselection:`Accounting --> Configuration --> Settings`. Under the :guilabel:`Customer
Payments` section, activate the :guilabel:`QR Codes` feature.
Go to :menuselection:`Accounting app --> Configuration --> Settings`. Under the :guilabel:`Customer
Payments` section, tick the checkbox beside the :guilabel:`QR Codes` feature. Then, click
:guilabel:`Save`.
FPS bank account configuration
------------------------------
Go to :menuselection:`Contacts --> Configuration --> Bank Accounts` and select the bank account for
which you want to activate FPS. Set the :guilabel:`Proxy Type` and fill in the :guilabel:`Proxy
Value` field depending on the type you chose.
Go to :menuselection:`Contacts app --> Configuration --> Bank Accounts section --> Bank Accounts`.
Then select the bank account for FPS activation. Proceed to set the :guilabel:`Proxy Type` and fill
in the :guilabel:`Proxy Value` field, depending on the type chosen.
.. important::
- The account holder's country must be set to Hong Kong on its contact form.
- You could also include the invoice number in the QR code by checking the :guilabel:`Include
Reference` checkbox.
Remember to include the invoice number in the QR code, by ticking the :guilabel:`Include Reference`
checkbox.
.. image:: hong_kong/hk-fps-bank-setting.png
:alt: FPS bank account configuration
:align: center
:alt: FPS bank account configuration.
.. important::
The account holder's country **must** be set to `Hong Kong` on their contact form.
.. seealso::
:doc:`../accounting/bank`
@@ -36,20 +66,475 @@ Value` field depending on the type you chose.
Bank journal configuration
--------------------------
Go to :menuselection:`Accounting --> Configuration --> Journals`, open the bank journal, then fill
out the :guilabel:`Account Number` and :guilabel:`Bank` under the :guilabel:`Journal Entries` tab.
Go to :menuselection:`Accounting app --> Configuration --> Journals` and open the bank journal.
Then, fill out the :guilabel:`Account Number` and :guilabel:`Bank` fields, located in the
:guilabel:`Journal Entries` tab.
.. image:: hong_kong/hk-bank-account-journal-setting.png
:alt: Bank Account's journal configuration
:align: center
:alt: Bank Account's journal configuration.
Issue invoices with FPS QR codes
--------------------------------
When creating a new invoice, open the :guilabel:`Other Info` tab and set the :guilabel:`Payment
QR-code` option to *EMV Merchant-Presented QR-code*.
QR-code` option to :guilabel:`EMV Merchant-Presented QR-code`.
.. image:: hong_kong/hk-qr-code-invoice-setting.png
:alt: Select EMV Merchant-Presented QR-code option
:align: center
:alt: Select EMV Merchant-Presented QR-code option.
Ensure that the :guilabel:`Recipient Bank` is the one you configured, as Odoo uses this field to
generate the FPS QR code.
Ensure that the :guilabel:`Recipient Bank` is configured, as Odoo uses this field to generate the
FPS QR code.
.. _hong_kong/payroll:
Payroll
=======
.. important::
Ensure the :guilabel:`Hong Kong - Payroll` (`l10n_hk_hr_payroll`) module is installed before
proceeding.
Create employees
----------------
Go to the :menuselection:`Employees` app and click :guilabel:`New`. Then, configure the following
fields:
- Under the :guilabel:`Work Information` tab
- :guilabel:`Working Hours`: :guilabel:`HK Standard 40 hours/week` option **must** be selected.
- Under the :guilabel:`Private Information` tab
- :guilabel:`Surname, Given Name, Name in Chinese`: name of the employee.
- :guilabel:`Private Address`: address of the employee.
- :guilabel:`Bank Account Number`: employee's bank account number.
- :guilabel:`Current Rental`: employee's rental records (if rental allowance is applicable).
- :guilabel:`Autopay Type`: :guilabel:`BBAN`, :guilabel:`SVID`, :guilabel:`EMAL`, etc.
- :guilabel:`Autopay Reference`: autopay reference number.
- :guilabel:`Identification No`: HKID of the employee.
- :guilabel:`Gender`: gender of the employee.
.. important::
For the :guilabel:`Bank Account Number`, this account should be set as :guilabel:`Trusted`
before further processing.
To achieve this, click on the right-arrow button next to :guilabel:`Bank Account Number` field.
Set the :guilabel:`Send Money` to :guilabel:`Trusted` by clicking on the toggle.
.. note::
To populate the :guilabel:`Current Rental`, click on the :guilabel:`History` button.
Then, click on :guilabel:`New`. Fill in the relevant details and save the rental record. Upon
saving the record, the rental contract :guilabel:`state` will be visible (at the top-right
corner) and can be set to :guilabel:`Running`.
- Under the :guilabel:`HR Settings` tab:
- :guilabel:`Volunteer Contribution Option`: select either :guilabel:`Only Mandatory
Contribution`, :guilabel:`With Fixed %VC`, or :guilabel:`Cap 5% VC`.
- :guilabel:`MPF Manulife Account`: account number, if applicable.
.. _hong_kong/manage_contracts:
Manage contracts
----------------
Once the new employee has been created, click the :guilabel:`Contracts` smart button on the
employee record, or navigate to :menuselection:`Employees app --> Employees --> Contracts`.
.. note::
Only **one** contract can be active simultaneously per employee, but an employee can be assigned
consecutive contracts during their employment.
The following are critical for setting up a contract:
- :guilabel:`Salary Structure Type`: set as :guilabel:`CAP57: Hong Kong Employee`.
- :guilabel:`Contract Start Date`: start date of employment.
- :guilabel:`Working Schedule`: set as :guilabel:`HK Standard 40 hours/week` (from employee record).
- :guilabel:`Work Entry Source`: select either :guilabel:`Working Schedule`, :guilabel:`Attendances`
or :guilabel:`Planning`. This field determines how the work entries are accounted for in the
payslip.
- :guilabel:`Working Schedule`: the work entries are generated automatically based on the
employee's working schedule.
- :guilabel:`Attendances`: the work entries are generated based on the check-in/out period logged
in the *Attendances*.
- :guilabel:`Planning`: the work entries are generated from planning shifts only.
- Under the :guilabel:`Salary Information` tab
- :guilabel:`Wage Type`: select :guilabel:`Fixed Wage` for Full-time or Part-time employees, or
:guilabel:`Hourly Wage` for employees who are paid hourly.
- :guilabel:`Schedule Pay`: the frequency of payslip issuance.
- :guilabel:`Wage`: :guilabel:`Monthly` or :guilabel:`Hourly` depending on the :guilabel:`Wage
Type`.
- :guilabel:`Internet Subscription`: this is an **optional** field to provide additional internet
allowance on top of the current salary package.
.. important::
Timesheets do **not** impact work entries in Odoo.
Once all information has been setup, set the contract status to :guilabel:`Running` by clicking the
:guilabel:`Running` button in the top-right of the page.
.. image:: hong_kong/hk-contract.png
:align: center
:alt: Hong Kong employment contract.
.. _hong_kong/running_payslips:
Generate payslips
-----------------
Once the employees, and their contracts, are configured, payslips can be generated in the *Payroll*
app.
Odoo provides **four** different salary structures under CAP57 regulation:
#. :guilabel:`CAP57: Employees Monthly Pay`: to process the monthly employee salary.
#. :guilabel:`CAP57: Payment in Lieu of Notice`: to process final payment upon contract termination
using :abbr:`ADW (Average Daily Wage)`.
#. :guilabel:`CAP57: Long Service Payment`: applicable to employees with more than five years of
service upon contract termination.
#. :guilabel:`CAP57: Severance Payment`: applicable to employees with more than two years of service
upon contract termination.
Before running the payslips, the accounts used in the salary rule can be adjusted by navigating to
:menuselection:`Payroll app --> Configuration --> Rules`.
.. image:: hong_kong/hk-salary-rules.png
:align: center
:alt: Hong Kong Salary Rules.
Odoo can create pay runs in two ways: via :ref:`batch <hong_kong/batch_payslips>` or
:ref:`individual <hong_kong/individual_payslips>` payslips.
.. _hong_kong/batch_payslips:
Batch payslips
~~~~~~~~~~~~~~
This method of payslip generation is used for recurring payments, since multiple employee payslips
can be managed at once. Go to :menuselection:`Payroll app --> Payslips --> Batches`.
#. Click on :guilabel:`New`.
#. Enter a :guilabel:`Batch Name` (e.g. `2024 - Jan`) and :guilabel:`Period` (e.g. `01/01/2024` -
`01/31/2024`).
#. Click on :guilabel:`Generate Payslips`.
#. Choose which :guilabel:`Salary Structure` to use for this batch. The department filter allows the
batch to only apply to a specific group of employees.
#. Click on :guilabel:`Generate`.
#. A :guilabel:`Payslips` smart button is created automatically.
Next, click :guilabel:`Create Draft Entry` to generate a draft journal entry found in the
:guilabel:`Other Info` tab of each payslip. A :guilabel:`Confirmation` pop-up window appears asking
:guilabel:`Are you sure you want to proceed?`. Click :guilabel:`Ok` to create the journal entries.
.. _hong_kong/individual_payslips:
Individual payslips
~~~~~~~~~~~~~~~~~~~
Go to :menuselection:`Payroll app --> Payslips --> All Payslips`.
This method of payslip generation is commonly used to handle non-recurring payments (e.g.
:guilabel:`CAP57: Payment in Lieu of Notice`, :guilabel:`CAP57: Long Service Payment` or
:guilabel:`CAP57: Severance Payment`).
#. Click on :guilabel:`New`.
#. Select an :guilabel:`Employee`. When selected, the :guilabel:`Contract` is filled out
automatically.
#. Add a pay :guilabel:`Period`.
#. Select a salary :guilabel:`Structure` (e.g. :guilabel:`CAP57: Employees Monthly Pay`).
#. The :guilabel:`Worked Days & Inputs` tab automatically compute the worked days/hours and time off
leaves that are applicable.
#. Additional payslip items can be added at this time (e.g. :guilabel:`Commissions`,
:guilabel:`Deductions`) under the :guilabel:`Other Inputs` section.
#. Click on :guilabel:`Compute Sheet` button to generate the payslip lines. This button updates
the :guilabel:`Salary Computation` tab.
.. note::
If the work entry for an employee was amended, click the :icon:`fa-cog` :guilabel:`(gear)` icon,
then click :guilabel:`Recompute Whole Sheet` to refresh the payslip's :guilabel:`Worked Days &
Inputs` tab.
The :guilabel:`Salary Computation` tab shows the detailed breakdown of the computation, based on
the salary rules configured for each structure type.
#. :guilabel:`Rent Allowance`: amount derived from the employee's active rental record.
#. :guilabel:`Basic Salary`: amount of base salary provided (after rent allowance deduction).
#. :guilabel:`713 Gross`: net payable amount considering *Commission*, *Internet Allowance*,
*Reimbursements*, *Back-pay*, *Deduction*, etc.
#. :guilabel:`MPF Gross`: net payable amount from 713 gross after consideration of additional
allowances, deductions, and end-of-year payment.
#. :guilabel:`Employee Mandatory Contribution`: employee MPF Contribution.
#. :guilabel:`Employer Mandatory Contribution`: employer MPF Contribution.
#. :guilabel:`Gross`: net payable amount from MPF gross after consideration of MPF deductions.
#. :guilabel:`Net Salary`: final payable amount to be paid to the employee.
.. important::
There are no MPF contributions for the first month. Both employee and employer contribution
starts on second month.
.. image:: hong_kong/hk-salary-computation.png
:align: center
:alt: Hong Kong Salary computation.
Under the :guilabel:`Other Inputs` section in :guilabel:`Worked Days & Inputs` tab, there are
additional manual input types:
- :guilabel:`Back Pay`: additional salary payout can be included under this category.
- :guilabel:`Commission`: the commission earned during the period can be manually entered here.
- :guilabel:`Global Deduction`: a lump-sum deduction from the entire payslip.
- :guilabel:`Global Reimbursement`: a lump-sum reimbursement to the entire payslip.
- :guilabel:`Referral Fee`: the additional bonus offered for any form of business-related referral.
- :guilabel:`Moving Daily Wage`: to override the :abbr:`ADW (Average Daily Wage)` value used for
leaves computation.
- :guilabel:`Skip Rent Allowance`: if set, the rental allowance is excluded from the current
payslip.
- :guilabel:`Custom Average Monthly Salary`: to override the average monthly salary used for
end-of-year payment (rule is only applicable to payslips generated in December).
- :guilabel:`Lieu of Notice Period (Months)`: only applicable to :guilabel:`CAP57: Payment in Lieu
of Notice` salary structure. By default, the final payout is set as 1-month. Use the
:guilabel:`Count` field under the :guilabel:`Other Inputs` section to set a different notice
period duration.
Once the payslips are ready, click on :guilabel:`Compute Sheet`, followed by :guilabel:`Create Draft
entry` to generate a draft journal entry found in the :guilabel:`Other Info` tab of the payslip.
Pay employees
-------------
Once the draft journal entries have been posted, the company can now pay the employees. The user can
choose between **two** different *payment methods*:
- From the employee's payslip (:menuselection:`Payroll app --> Payslips --> All Payslips`), once the
payslip's journal entry has been posted, click :guilabel:`Register Payment`. The process is the
same as :doc:`paying vendor bills <../accounting/payments>`. Select the desired bank journal and
payment method, then later reconcile the payment with the corresponding bank statement.
- For batch payments (:menuselection:`Payroll app --> Payslips --> Batches`), once all draft journal
entries from the batch are confirmed, click :guilabel:`Mark as Paid` to post the payment journal
entry. Then :doc:`create a payment <../accounting/payments>` in the *Accounting* app, and
reconcile accordingly.
Attendances and hourly wage
---------------------------
To configure the contract for an employee paid hourly using the *Attendances* app for hours
tracking, navigate to :menuselection:`Payroll app --> Contracts --> Contracts`.
Create a new :ref:`contract <hong_kong/manage_contracts>`. It is important to remember to set the
:guilabel:`Work Entry Source` as :guilabel:`Attendances`, and :guilabel:`Wage Type` as
:guilabel:`Hourly Wage`.
To record the hours logged by the employee using *Attendances* app:
#. Go to :menuselection:`Attendances app`.
#. The employee can check-in/out, via the kiosk mode and the time will be logged automatically.
#. In the :menuselection:`Payroll app`, review the attendance work entries generated from
:menuselection:`Payroll app --> Work Entries --> Work Entries`.
#. Next, generate the :ref:`payslips <hong_kong/running_payslips>` and process the payment.
.. image:: hong_kong/hk-attendance-work-entry.png
:align: center
:alt: Hong Kong Attendance Work Entry.
.. image:: hong_kong/hk-attendance-payslip.png
:align: center
:alt: Hong Kong Attendance Payslip.
Time Off with Payroll
---------------------
The work entry types and time off types are fully integrated between the *Time Off* and
*Payroll* apps. There are several default time off types and work entry types specific to
Hong Kong which are installed automatically along with the *Hong Kong - Payroll* module.
Go to :menuselection:`Payroll app --> Configuration --> Work Entry Types` and click :guilabel:`New`.
There are two checkboxes to be considered when setting up the work entry type:
- :guilabel:`Use 713`: Include this leave type as part of 713 computation.
- :guilabel:`Non-full pay`: 80% of the :abbr:`ADW (Average Daily Wage)`.
.. image:: hong_kong/hk-work-entry-type.png
:align: center
:alt: Hong Kong Work Entry Type.
.. seealso::
:ref:`Creating and configuring work entry types <payroll/work-entries>`
Understanding 713 Ordinance
---------------------------
The *Hong Kong - Payroll* module is compliant with 713 Ordinance which relates to the
:abbr:`ADW (Average Daily Wage)` computation to ensure fair compensation for employees.
The ADW computation is as follows:
.. figure:: hong_kong/hk-adw.png
:alt: Hong Kong ADW Formula.
:abbr:`ADW (Average Daily Wage)` equals the total wage in a 12-month period, minus the wages of
non-full pay, divided by the total days in a 12-month period minus the days of non-full pay.
.. note::
For 418 compliance, there is no automated allocation of the *Statutory Holiday* entitlement to
the employees. As soon as 418 requirements are met, manually allocate the leaves, via the *Time
Off* app.
.. note::
Before generating payslips, ensure the statuses are :guilabel:`Done` to validate the outcome.
.. list-table::
:header-rows: 1
* - Period
- Days
- Wage
- Commission
- Total
- ADW
- Leave Value
* - Jan
- 31
- $20200
- $0
- $20200
- $651.61 ($20200/31)
- N/A
* - Feb
- 28
- $20200
- $5000
- $25200
- $769.49 ($45400/59)
- N/A
* - Mar (One Day Annual Leave)
- 31
- $20324.33
- $0
- $20324.33
- $730.27 ($65724.33/90)
- $769.49
* - Apr (One Day 80% Sick Leave)
- 30
- $20117.56
- $0
-
-
- $584.22 ($730.27*0.8)
.. example::
Here is an example demonstrating the 713 logic:
- **Jan**: Generate a payslip with a monthly wage of $20200. The :abbr:`ADW (Average Daily Wage)`
is always computed on a cumulative basis of the trailing 12-months.
- **Feb**: Generate a similar payslip, but add an :guilabel:`Other Input Type` for the
:guilabel:`Commission`.
- **Mar**: Apply for **one** full-paid annual leave in March. The salary compensation for the
leave taken is based on :abbr:`ADW (Average Daily Wage)` thus far.
.. image:: hong_kong/hk-march-713.png
:align: center
:alt: Hong Kong March 713.
- **Apr**: Apply for a 1-day non-full pay leave in April. Since this is a non-full pay leave, the
:abbr:`ADW (Average Daily Wage)` is computed accordingly.
.. image:: hong_kong/hk-apr-713.png
:align: center
:alt: Hong Kong April 713.
.. note::
The value of :abbr:`ADW (Average Daily Wage)` is computed in the backend, and not be visible to
the user.
.. seealso::
- `HK 713 Ordinance <https://www.labour.gov.hk/eng/public/wcp/ConciseGuide/Appendix1.pdf>`_
- `HK 418 Ordinance <https://www.workstem.com/hk/en/blog/418-regulations/>`_
Generate reports
----------------
Before generating the below reports, setup the following in :menuselection:`Settings app -->
Payroll`.
Configure the following in the :guilabel:`Accounting` section:
- Tick the :guilabel:`Payroll HSBC Autopay` checkbox.
- :guilabel:`Autopay Type`: Set as :guilabel:`H2H Submission`.
- Select the :guilabel:`Bank Account` to use.
Configure the following in the :guilabel:`HK Localization` section:
- :guilabel:`Employer's Name shows on reports`
- :guilabel:`Employer's File Number`
- :guilabel:`Manulife MPF Scheme`
.. image:: hong_kong/hk-report-setup.png
:align: center
:alt: Hong Kong Payroll Settings.
IRD report
~~~~~~~~~~
There are a total of **four** IRD reports available:
- :guilabel:`IR56B`: employer's Return of Remuneration and Pensions.
- :guilabel:`IR56E`: notification of Commencement of Employment.
- :guilabel:`IR56F`: notification of Ceasation of Employment (remaining in HK).
- :guilabel:`IR56G`: notification of Ceasation of Employment (departing from HK permanently).
Go to :menuselection:`Payroll app --> Reporting`, and select one of the :guilabel:`IR56B/E/F/G
Sheet` options:
#. Click on :guilabel:`New`.
#. Fill in the relevant information for the IRD report.
#. Click on :guilabel:`Populate`, and the :guilabel:`Eligible Employees` smart button appears.
#. The :guilabel:`Employee Declarations` status is :guilabel:`Draft` and changed to
:guilabel:`Generated PDF` status once the schedule runs.
#. Once the PDF is generated, the IRD form may be downloaded.
.. image:: hong_kong/hk-ir56b.png
:align: center
:alt: Hong Kong IR56B report.
.. note::
The scheduled action called *Payroll: Generate pdfs* can be manually triggered. It is set by
default to run the PDF generation monthly.
Manulife MPF sheet
~~~~~~~~~~~~~~~~~~
Go to :menuselection:`Payroll app --> Reporting --> Manulife MPF Sheet`.
#. Click on :guilabel:`New`.
#. Select the relevant :guilabel:`Year`, :guilabel:`Month`, and :guilabel:`Sequence No.`.
#. Click on :guilabel:`Create XLSX`.
#. The *Manulife MPF XLSX* file is then generated, and available for download.
.. image:: hong_kong/hk-manulife-sheet.png
:align: center
:alt: Hong Kong Manulife Sheet.
.. note::
Odoo will not be developing further reports for other MPF trustee as there will soon be an
eMPF platform setup by the local government.
.. seealso::
`eMPF <https://www.mpfa.org.hk/en/empf/overview>`_
HSBC autopay report
~~~~~~~~~~~~~~~~~~~
If *HSBC Autopay* is selected as the batch payment method, click on :guilabel:`Create HSBC Autopay
Report`, and fill in the mandatory fields:
.. image:: hong_kong/hk-generate-autopay.png
:align: center
:alt: Hong Kong HSBC Autopay wizard.
This creates an :file:`.apc` file format which can be uploaded to the HSCB portal for processing.
Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 4.0 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 17 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 50 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

+47 -81
View File
@@ -1,102 +1,68 @@
.. _developer-mode:
===========================
Developer Mode (debug mode)
Developer mode (debug mode)
===========================
The developer mode (or debug mode) unlocks access to extra and advanced tools in Odoo. There are
several ways to activate the developer mode: through the
:ref:`settings <general/developer_mode/settings>`, the
:ref:`browser extension <general/developer_mode/browser-extension>`, through
the :ref:`command palette <general/developer_mode/command-palette>` or the
:ref:`URL <general/developer_mode/url>`.
The developer mode, also known as debug mode, unlocks access to advanced :ref:`tools and settings
<developer-mode/tools>` in Odoo.
.. _general/developer_mode/settings:
Activate through the Settings
=============================
The debug mode can be activated in the Odoo database settings. Go to :menuselection:`Settings -->
General Settings --> Developer Tools` and click on :guilabel:`Activate the developer mode`. At
least one application needs to be installed for the :guilabel:`Developer Tools` section to appear
in the :guilabel:`Settings` module.
.. image:: developer_mode/settings.png
:align: center
:alt: Overview of the debug options under settings in Odoo.
.. warning::
Proceed with caution, as some developer tools and technical settings are considered advanced and
may have associated risks. Only use them if you understand the implications and are confident in
your actions.
.. note::
:guilabel:`Activate the developer mode (with assets)` is used by developers; :guilabel:`Activate
the developer mode (with tests assets)` is used by developers and testers.
The developer mode is also available with :ref:`assets <frontend/framework/assets_debug_mode>`,
which are used to debug JavaScript code, and with :ref:`tests assets
<frontend/framework/tests_debug_mode>`, which are used to run test tours.
.. _developer-mode/activation:
Activation
==========
To activate it, open the :guilabel:`Settings` app, scroll down to the :guilabel:`Developer Tools`
section, and click :guilabel:`Activate the developer mode`.
Once activated, the :guilabel:`Deactivate the developer mode` option becomes available.
.. _general/developer_mode/browser-extension:
.. image:: developer_mode/settings.png
:alt: Activating the developer mode in the Settings app
Activate through the browser extension
======================================
To activate the developer mode **from anywhere in the database**, add `?debug=1` to the URL after
`/web` (e.g., `https://example.odoo.com/web?debug=1#action=menu&cids=1`). To deactivate it, use
`?debug=0` instead.
Within a web browser, navigate to the browser settings and extensions and search for the `Odoo
Debug` extension. Once the extension is installed, a new icon will be shown on the browser's
toolbar.
For the *Odoo Debug* extension, a single click enables a normal version of the mode, while a
double click enables it with assets. To deactivate it, use a single click.
.. image:: developer_mode/developer-mode-monkey.png
:align: center
:alt: View of Odoo's debug icon in a Google Chrome toolbar.
.. _general/developer_mode/command-palette:
Activate through the command palette
====================================
In Odoo, the command palette tool has a command to activate the debug mode. First, open the command
palette tool with the keyboard shortcut `ctrl+k` and then type `debug`. A command will show up to
activate the debug mode.
.. image:: developer_mode/command-palette.png
:align: center
:alt: Command palette with debug command.
.. _general/developer_mode/url:
.. _developer-mode/url:
Activate through the URL
========================
The debug mode can also be activated by adding an extra query string to the database's URL. In the
URL, add `?debug=1` or `?debug=true` after `/web`. To deactivate the debug mode, change the
value to `?debug=0` instead.
.. image:: developer_mode/url.png
:align: center
:alt: Overview of a URL with the debug mode command added.
Use `?debug=assets` to activate the developer mode with assets and `?debug=tests` to activate it
with tests assets.
.. tip::
Additional modes are available for developers: `?debug=assets` enables the
:ref:`assets mode <frontend/framework/assets_debug_mode>`, and `?debug=tests` enables
the :ref:`tests mode <frontend/framework/tests_debug_mode>`.
Open the **command palette** by pressing `Ctrl + K` or `Cmd ⌘ + K`, then type `debug` to
activate the developer mode with assets or deactivate it.
.. _developer-mode/mode-tools:
.. admonition:: Browser extension
Locate the developer mode tools
===============================
The `Odoo Debug <https://github.com/Droggol/OdooDebug>`_ browser extension adds an icon to toggle
developer mode on or off from the browser's toolbar. It is available on the `Chrome Web Store
<https://chromewebstore.google.com/detail/odoo-debug/hmdmhilocobgohohpdpolmibjklfgkbi>`_ and
`Firefox Add-ons <https://addons.mozilla.org/firefox/addon/odoo-debug/>`_.
Once developer mode is activated, the developer mode tools can be accessed from the :guilabel:`Open
Developer Tools` button, the bug icon located in the header of the Odoo database.
.. _developer-mode/tools:
.. image:: developer_mode/button-location.png
:align: center
:alt: Overview of a console page and the debug icon being shown in Odoo.
Developer tools and technical menu
==================================
This menu contains additional tools that are useful to understand or edit technical data, such as
the views or actions of a page. On a page that has filters, actions, and view options, the
developer mode tools contain some useful menu items such as:
Once the developer mode is activated, the developer tools can be accessed by clicking the
:icon:`fa-bug` :guilabel:`(bug)` icon. The menu contains tools useful for understanding or editing
technical data, such as a view's field, filters, or actions. The options available depend on where
the menu is accessed from.
- :guilabel:`Edit Action`
- :guilabel:`Manage Filters`
- Edit the current view (e.g. Kanban, List, Graph, etc.)
- See the :guilabel:`Fields View Get`
.. image:: developer_mode/tools.png
:alt: Accessing the developer tools
Database administrators can access the technical menu from the :guilabel:`Settings` app. It contains
advanced database settings, such as ones related to the database structure, security, actions, etc.
.. image:: developer_mode/technical.png
:alt: Accessing the technical menu
Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 37 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 25 KiB

After

Width:  |  Height:  |  Size: 6.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

@@ -96,6 +96,8 @@ the :abbr:`DNS (Domain Name System)` zone of the domain name. The most common pr
Check if the :abbr:`DKIM (DomainKeys Identified Mail)` record is valid with a free tool like `DKIM
Core <https://dkimcore.org/tools/>`_. If a selector is asked, enter `odoo`.
.. _email_communication/DMARC_compliant:
Check the DMARC policy
======================
@@ -38,10 +38,10 @@ installing the Windows virtual IoT software for the first time.
Download and initial installation
---------------------------------
To begin the installation, navigate to the Odoo 16 or higher installation package for Enterprise or
Community - Windows edition at `Odoo's download page <https://odoo.com/download>`_. Next, install
and setup the Odoo :file:`.exe` file. After the instructions screen, click :guilabel:`Next` to start
the installation and agree to the :abbr:`TOS (Terms of Service)`.
To begin the installation, navigate to the Odoo 16 or higher installation package for Community -
Windows edition at `Odoo's download page <https://odoo.com/download>`_. Next, install and setup the
Odoo :file:`.exe` file. After the instructions screen, click :guilabel:`Next` to start the
installation and agree to the :abbr:`TOS (Terms of Service)`.
During the next step of the installation, select :guilabel:`Odoo IoT` from the :guilabel:`Select the
type of install` drop-down menu.
@@ -1,4 +1,6 @@
:nosearch:
:show-content:
:show-toc:
=======
Devices
@@ -14,3 +16,8 @@ Devices
devices/footswitch
devices/printer
devices/scale
.. seealso::
- :doc:`Worldline payment terminal
<../../sales/point_of_sale/payment_methods/terminals/worldline>`
- :doc:`Ingenico payment terminal <../../sales/point_of_sale/payment_methods/terminals/ingenico>`
+11 -96
View File
@@ -1,3 +1,5 @@
:show-content:
==========
Appraisals
==========
@@ -168,29 +170,6 @@ document.
.. note::
In previous versions of Odoo, this section was referred to as :guilabel:`Surveys`.
Tags
----
An additional feature of the *Appraisals* application is the ability to set :ref:`goals
<appraisals/goals>` for employees. On each goal form, there is a field to add tags. The available
tags are pulled from a list that is configured from the settings.
To view a list of all existing goal tags, and to create new tags, go to the :guilabel:`Goal Tags`
page, by navigating to :menuselection:`Appraisals application --> Configuration --> Tags`.
All currently configured tags are presented in a list view.
The *Appraisals* application does **not** have any pre-configured tags, so all tags need to be added
from this list, or directly from the goal form.
To create a new tag from the :guilabel:`Goal Tags` page, click the :guilabel:`New` button, and a
blank line appears.
Enter the name of the tag on the line. Then, press the enter key to save the tag, and create a new
blank line. Repeat this for all tags that need to be added.
The list of tags is automatically arranged in alphabetical order.
Appraisals
==========
@@ -455,79 +434,7 @@ Next, click on the :guilabel:`Meeting` smart button, and the calendar loads. Fol
directions above to create the meeting.
.. note::
If no meetings are scheduled, the :guilabel:`Meeting` smart button says :guilabel:`No Meeting`.
.. _appraisals/goals:
Goals
=====
The ability to set goals for employees to work toward is an important feature of Odoo *Appraisals*.
Goals are typically set during an appraisal, so the employee knows what they need to work toward
before their next appraisal.
To view all goals, navigate to :menuselection:`Appraisals application --> Goals`. This presents all
the goals for every employee, in a default Kanban view.
Each goal card contains the following information:
- :guilabel:`Skill`: the name of the goal.
- :guilabel:`Name`: the employee the goal is assigned to.
- :guilabel:`Deadline`: the due date for the goal.
- :guilabel:`Progress`: the percentage of competency set for the goal.
- :guilabel:`Employee`: the profile icon of the employee the goal is assigned to.
If a goal is completed, a :guilabel:`Done` banner appears in the top-right corner of the goal card.
.. image:: appraisals/goals.png
:align: center
:alt: The goals Kanban view, with nine goal cards.
.. note::
Every individual goal requires its own entry for each employee. If employees have the same goal,
a goal card for each employee appears on the list. For example, if both Bob and Sara have the
same goal of `Typing`, two cards appear in the Kanban view: one `Typing` goal for Bob, and
another `Typing` goal for Sara.
New goal
--------
To create a new goal, navigate to :menuselection:`Appraisals application --> Goals`, and click
:guilabel:`New` to open a blank goal form.
Enter the information on the card. The information requested is all the same information that
appears on the :ref:`goal card <appraisals/goals>` in the Kanban view, with the addition of a
:guilabel:`Tags` field and a :guilabel:`Description` tab.
The current user populates the :guilabel:`Employee` field by default, and the :guilabel:`Manager`
field populates with the manager set on the employee profile.
Make any necessary changes to the form, and add any notes that might be useful to clarify the goal
in the :guilabel:`Description` tab.
.. image:: appraisals/new-goal.png
:align: center
:alt: A goal form filled out for a Python skill, set to 50% proficiency.
Completed goals
---------------
When a goal has been met, it is important to update the record. A goal can be marked as `Done` in
one of two ways: from the main :guilabel:`Goals` dashboard, or from the individual goal card.
To mark a goal as `Done` from the main :guilabel:`Goals` dashboard, click on the :guilabel:`⋮ (three
dots)` icon in the top-right of a goal card.
.. important::
The :guilabel:`⋮ (three dots)` icon **only** appears when the mouse hovers over the corner of a
goal card.
Then, click :guilabel:`Mark as Done` from the resulting drop-down menu. A green :guilabel:`Done`
banner appears in the top-right corner of the goal card.
To mark a goal as `Done` from the goal card itself, click on a goal card to open that goal's form.
Then, click the :guilabel:`Mark as Done` button in the top-left of the form. When clicked, a green
:guilabel:`Done` banner appears in the top-right corner of the goal form.
If no meetings are scheduled, the :guilabel:`Meeting` smart button reads :guilabel:`No Meeting`.
Reporting
=========
@@ -589,3 +496,11 @@ Each skill has the following information listed:
.. image:: appraisals/skills-report.png
:align: center
:alt: A report showing all the skills grouped by employee.
.. seealso::
:doc:`appraisals/goals`
.. toctree::
:titlesonly:
appraisals/goals
@@ -0,0 +1,85 @@
=====
Goals
=====
The Odoo *Appraisals* application allows managers to set goals for their employees. That way,
employees know what to work toward before their next review.
To view all goals, navigate to :menuselection:`Appraisals app --> Goals`. This presents all the
goals for every employee, in a default Kanban view.
.. _appraisals/goal-card:
Each goal card contains the following information:
- :guilabel:`Goal`: the name of the goal.
- :guilabel:`Employee`: the employee the goal is assigned to.
- :icon:`fa-clock-o` :guilabel:`(clock)` icon: displays the corresponding :doc:`activity icon
<../../essentials/activities>` for the record. If no activities are scheduled, the default icon is
the :icon:`fa-clock-o` :guilabel:`(clock)`. If any activities have been scheduled, the icon
represents the activity scheduled soonest.
- :guilabel:`Deadline`: the due date for the goal.
- :guilabel:`Progress`: the percentage of competency set for the goal. The options are
:guilabel:`0%`, :guilabel:`25%`, :guilabel:`50%`, :guilabel:`75%`, or :guilabel:`100%`.
- :guilabel:`Employee Icon`: the profile icon of the employee the goal is assigned to.
If a goal is completed, a :guilabel:`Done` banner appears in the top-right corner of the goal card.
.. image:: goals/goals.png
:align: center
:alt: The goals Kanban view, with nine goal cards.
.. note::
Every individual goal requires its own record for each employee. If multiple employees have the
same goal, a goal card for each employee appears on the list.
For example, if Bob and Sara have the same goal of `Typing`, two cards appear in the Kanban view:
one `Typing` goal for Bob, and another `Typing` goal for Sara.
New goal
========
To create a new goal, navigate to :menuselection:`Appraisals app --> Goals`, and click
:guilabel:`New` top-left corner to open a blank goal form.
Input the :guilabel:`Goal`, :guilabel:`Employee`, :guilabel:`Progress`, and :guilabel:`Deadline`,
information on the goal card, as discussed in the :ref:`goal card <appraisals/goal-card>` section of
this document.
The information requested is all the same information that appears on the goal card in the Kanban
view, with the addition of a :guilabel:`Tags` field and a :guilabel:`Description` tab.
.. tip::
The *Appraisals* application does **not** have any pre-configured tags, so all tags need to be
added. To add a tag, enter the name of the tag on the line, then click :guilabel:`Create
"(tag)"`. Repeat this for all tags that need to be added.
The current user populates the :guilabel:`Employee` field, by default, and the :guilabel:`Manager`
field populates with the manager set on the employee profile.
Make any necessary changes to the form, and add any notes that might be useful to clarify the goal
in the :guilabel:`Description` tab.
.. image:: goals/new-goal.png
:align: center
:alt: A goal form filled out for a Python skill, set to 50% proficiency.
Completed goals
===============
When a goal has been met, it is important to update the record. A goal can be marked as `Done` in
one of two ways: from the main :guilabel:`Goals` dashboard, or from the individual goal card.
To mark a goal as `Done` from the main :guilabel:`Goals` dashboard, click on the
:icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` icon in the top-right of a goal card.
.. note::
The :icon:`fa-ellipsis-v` :guilabel:`(vertical ellipsis)` icon **only** appears when the mouse
hovers over the top-right corner of a goal card.
Then, click :guilabel:`Mark as Done` from the resulting drop-down menu. A green :guilabel:`Done`
banner appears in the top-right corner of the goal card.
To mark a goal as `Done` from the goal card itself, click on a goal card to open that goal's form.
Then, click the :guilabel:`Mark as Done` button in the top-left of the form. When clicked, a green
:guilabel:`Done` banner appears in the top-right corner of the goal form.

Before

Width:  |  Height:  |  Size: 21 KiB

After

Width:  |  Height:  |  Size: 21 KiB

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 17 KiB

+1
View File
@@ -12,3 +12,4 @@ Odoo *Employees* organizes a company's employee records, contracts, and departme
:titlesonly:
employees/new_employee
employees/departments
@@ -0,0 +1,151 @@
===========
Departments
===========
All employees in the *Employees* app fall under specific departments within a company.
Create new departments
======================
To make a new department, navigate to :menuselection:`Employees app --> Departments`, then click
:guilabel:`New` in the top-left to reveal a blank department form. Fill out the following
information on the department form:
.. image:: departments/department-form.png
:align: center
:alt: The department for with all fields filled out.
- :guilabel:`Department Name`: enter a name for the department.
- :guilabel:`Manager`: using the drop-down menu, select the department manager.
- :guilabel:`Parent Department`: if the new department is housed within another department (has a
parent department), select the parent department using the drop-down menu.
- :guilabel:`Custom Appraisal Templates`: if employees in this department require a specific
appraisal form that is different from the default appraisal form, tick the checkbox. If this
option is activated, an :guilabel:`Appraisal Templates` tab appears below the form. This field
**only** appears if the *Appraisals* app is installed.
- :guilabel:`Company`: using the drop-down menu, select the company the department is part of.
- :guilabel:`Appraisal Survey`: using the drop-down menu, select the default survey to use for the
department when requesting feedback from employees. This field **only** appears if the
*Appraisals* app is installed, **and** the *360 Feedback* option is enabled in the settings.
- :guilabel:`Color`: select a color for the department. Click the default white color box to display
all the color options. Click on a color to select it.
- :guilabel:`Appraisal Templates` tab: this tab **only** appears if the :guilabel:`Custom Appraisal
Templates` options is activated on the form. Make any desired edits to the appraisal form. The
appraisal form is used for appraisals for all employees within this department.
After the form is completed, click the :icon:`fa-cloud-upload` :guilabel:`(cloud upload)` icon to
manually save the changes. When saved, a :guilabel:`Department Organization` chart appears in the
top-right of the department card.
.. note::
The form auto-saves while data is entered, however the :guilabel:`Department Organization` chart
does **not** appear until the form is manually saved. If the form is not saved, the
:guilabel:`Department Organization` chart is visible upon opening the department card from the
:guilabel:`Departments` dashboard.
.. seealso::
Refer to the :doc:`../appraisals` documentation for more information.
Departments dashboard
=====================
To view the currently configured departments, navigate to :menuselection:`Employees app -->
Departments`. All departments appear in a Kanban view, by default, and are listed in alphabetical
order.
.. image:: departments/departments.png
:align: center
:alt: The departments dashboard view with all the department cards in a Kanban view.
Kanban view
-----------
Each department has its own Kanban card on the main :guilabel:`Departments` :icon:`oi-view-kanban`
:guilabel:`(Kanban)` dashboard view, that can display the following information:
- Department name: the name of the department.
- Company: the company the department is part of.
- :guilabel:`Employees`: the number of employees within the department.
- :guilabel:`Appraisals`: the number of appraisals scheduled for employees in the department.
- :guilabel:`Time Off Requests`: the number of unapproved time off requests for employees in the
department :ref:`awaiting approval <time_off/manage-time-off>` . This **only** appears if there
are requests to approve.
- :guilabel:`Allocation Requests`: the number of unapproved allocation requests for employees in the
department :ref:`awaiting approval <time_off/manage-allocations>`. This **only** appears if there
are requests to approve.
- :guilabel:`New Applicants`: the number of :ref:`new applicants <recruitment/new>` for a position
in this department. This **only** appears if there are new applicants.
- :guilabel:`Expense Reports`: the number of employees in the department with :ref:`open expense
reports to approve <expenses/approve>`. This **only** appears if there are any expense reports
waiting for approval.
- :guilabel:`Absence`: the number of absences for the current day.
- Color bar: the selected color for the department appears as a vertical bar on the left side of the
department card.
.. note::
Click on an alert in a department card, such as :guilabel:`Time Off Requests`, to reveal a list
view of the requests to approve. This list includes **all** open requests to approve, not just
from the specific department.
The default view for the :guilabel:`Departments` dashboard is a Kanban view. It is possible to view
the departments in two other forms: a list view and a hierarchy view.
List view
---------
To view the departments in a list view, click the :icon:`fa-align-justify` :guilabel:`(list)` icon
in the top-right corner. The departments appear in a list view, which displays the
:guilabel:`Department Name`, :guilabel:`Company`, :guilabel:`Manager`, :guilabel:`Employees`,
:guilabel:`Parent Department`, and :guilabel:`Color` for each department.
The departments are sorted alphabetically by :guilabel:`Department Name`, by default.
.. image:: departments/list.png
:align: center
:alt: The departments presented in a list view.
.. tip::
When in list view, departments can be managed in batch by selecting one or multiple record's
checkbox, then select the :icon:`fa-cog` :guilabel:`Actions` button to reveal a drop-down menu of
actions.
Hierarchy view
--------------
To view the departments in a hierarchy view, click the :icon:`fa-share-alt fa-rotate-90`
:guilabel:`(hierarchy)` icon in the top-right corner. The departments appear in an organizational
chart format, with the highest-level department at the top (typically :guilabel:`Management`), and
all other departments beneath it. All child departments of the first-level child departments are
folded.
Each department card displays the :guilabel:`Department Name`, the :guilabel:`Manager` (and their
profile image), the :guilabel:`Number of Employees` in the department, and the ability to expand the
department (:guilabel:`Unfold`) if there are child departments beneath it.
Click the :guilabel:`Unfold` button on a department card to expand it. Once expanded, the
:guilabel:`Unfold` button changes to a :guilabel:`Fold` button. To collapse the department, click
the :guilabel:`Fold` button. Only **one** department *per row* can be unfolded at a time.
Click anywhere on a department card to open the department form. Click the :guilabel:`(#) Employees`
smart button to view a list of all the employees in that department, including all employees in the
child departments beneath it, organized by individual department.
.. example::
In the hierarchy view, if the :guilabel:`(2) Employees` button on the :guilabel:`Management` card
is clicked (the highest-level department card), **all** employees appear in a list view, grouped
by department. This is because **all** departments are children of the :guilabel:`Management`
department.
If the :guilabel:`(3) Employees` button in the :guilabel:`Sales` department card is clicked, the
employees from the :guilabel:`Sales` department, as well as its two child departments
(:guilabel:`East Coast Territory` and :guilabel:`West Coat Territory`), appear in the list.
.. image:: departments/hierarchy.png
:align: center
:alt: The departments presented in a hierarchy view.
.. image:: departments/employee-list.png
:align: center
:alt: The list view of employees for the department that was clicked, including all child
departments.
Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 15 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: 28 KiB

+13 -146
View File
@@ -1,3 +1,5 @@
:show-content:
=========
Frontdesk
=========
@@ -184,94 +186,10 @@ Station dashboard
The image selected now appears in the picture field, and is set as the image for the drink.
.. _frontdesk/kiosk:
.. _frontdesk/visitors:
Visitors
========
To access a complete list of visitors that are currently checked in, navigate to
:menuselection:`Frontdesk app --> Visitors`.
The visitors are listed in a list view, with the following details that were entered when they
checked in:
.. note::
By default, the :guilabel:`Planned or Checked-In` and :guilabel:`Today` filters appear in the
:guilabel:`Search...` bar.
- :guilabel:`Name`: the guest's name.
- :guilabel:`Visitor Company`: the company the guest represents.
- :guilabel:`Phone`: the guest's phone number.
- :guilabel:`Drinks`: the drink the guest requested.
- :guilabel:`Host`: who the guest is waiting to see.
- :guilabel:`CheckIn`: the date and time the guest checked in.
- :guilabel:`Checkout`: the date and time the guest checked out. As mentioned, in the default view,
only guests with a :guilabel:`Checked-In` or :guilabel:`Planned` status are visible. Guests with
check-out times are only visible if the :guilabel:`Today` filter is not active.
- :guilabel:`Duration`: the amount of time the guest has been checked in for.
- :guilabel:`Station`: the location of where the guest checked in.
- :guilabel:`Status`: the status of the guest. The options are :guilabel:`Checked-In`,
:guilabel:`Planned`, :guilabel:`Checked-Out`, or :guilabel:`Canceled`. In the default view, only
guests with a :guilabel:`Checked-In` or :guilabel:`Planned` status are visible.
- :guilabel:`Email`: the guest's email address.
To the far right of the titled columns on the :guilabel:`Visitors` page is an untitled column,
where a guest's status can be updated.
When a guest leaves, click the available :guilabel:`Check out` button to update the guest's record,
and log the date and time they left.
If a scheduled guest arrives, and they did not check in using the *Frontdesk* kiosk, they can be
checked in here, by clicking the available :guilabel:`Check in` button to log the date and time they
arrived.
Beside the untitled status column a :guilabel:`Drink Served` button appears, but only if that
particular visitor requested a drink.
When their drink has been served, click the :guilabel:`Drink Served` button to indicate the drink
has been delivered to the guest. Once clicked, that button disappears.
.. image:: frontdesk/visitors.png
:align: center
:alt: The full list of currently checked in visitors, with the drinks to be served highlighted.
If any column is not visible, or if a visible column is preferred to be hidden, click the
:guilabel:`Additional Options (two horizontal lines with dots)` icon, located at the end of the
column name list.
Clicking that reveals a drop-down menu of column options to enable or disable. A :guilabel:`✅
(checkmark)` icon indicates the column is visible.
Planned visitors
----------------
If a guest is expected to arrive at a future date and time, it is possible to enter their
information into the *Frontdesk* application in advance.
To create a planned guest, navigate to :menuselection:`Frontdesk app --> Visitors --> New`. Then,
enter the same information as any other :ref:`visitor <frontdesk/visitors>`. The only required
fields are the visitor's :guilabel:`Name` and the :guilabel:`Station` at which they are expected to
arrive.
.. important::
If a guest is planned in advance, they must be checked in from the list on the
:guilabel:`Visitors` page in the *Frontdesk* application (:menuselection:`Frontdesk app -->
Visitors`). If a planned guest checks in using a kiosk, they will be checked in separately, and
their planned visitor entry remains listed as :guilabel:`Planned`.
Only when a planned guest is checked in inside the application's visitor list, their
:guilabel:`Planned` status changes to :guilabel:`Checked-In`.
If a guest does check in using a kiosk, ensure all records are current, and the list of
currently on-site guests is correct. Be sure to check in and/or check out the correct entries, so
the visitors list correctly reflects who is currently on the premises.
Ensure planned guests are informed that they should **not** check in using the kiosk if they are
listed as a planned guest in advance.
Frontdesk flow
==============
Kiosk setup
===========
Set up each kiosk for use after configuring the various stations. It is recommended to use a
dedicated device for each frontdesk kiosk, such as a tablet.
@@ -288,65 +206,6 @@ Navigate to the kiosk in one of two ways:
It is recommended to log out of the database, and close the tab, after navigating to the kiosk.
That way, there is no possibility of a visitor accessing the database when checking-in.
Visitor flow
------------
When a visitor arrives at a facility, they approach a frontdesk kiosk, and enter their information.
The information requested is what was configured for that specific frontdesk station. If any
information is required, the field displays a red asterisk (*). The visitor must enter the required
information in order to check in.
Once all the information is entered, the visitor taps the :guilabel:`Check In` button.
If drinks were configured for the station, after tapping :guilabel:`Check In`, a registration
confirmation screen loads, along with the question: `Do you want something to drink?`
The visitor can tap either :guilabel:`Yes, please`, or :guilabel:`No, thank you`.
If they select :guilabel:`Yes, please`, a drink selection screen appears, and the pre-configured
options are listed. The visitor then taps the desired selection, or, if they do not want anything,
they can tap the :guilabel:`Nothing, thanks` button at the bottom of the screen.
If a drink selection was made, a `Thank you for registering! Your drink is on the way.` message
appears.
At any point in the check-in process, if ten seconds pass with no selection, the kiosk returns to
the main welcome screen.
Once the visitor has checked in, the person they are visiting, and any other users who were
configured to be notified when checks ins occur at the kiosk, are notified. The notification is
either by email, SMS message, a *Discuss* chat, or any combination of those three options.
If the visitor requested a drink, the user(s) configured as the :guilabel:`People to Notify` on the
drink form, are notified via the *Discuss* application. The message that appears is: `(Visitor Name)
just checked-in. They requested (Drink Name).`
Once the drink has been delivered to the guest, the person who delivered the drink is responsible
for marking the drink as delivered.
To mark a drink as delivered, navigate to :menuselection:`Frontdesk app --> Stations --> (#) Drinks
to serve` on the desired station card.
This opens a list of all the visitors checked in at that station, and are waiting for a drink. Click
the :guilabel:`Drink Served` button at the end of the line for the visitor who was served. Once they
are marked as having their drink served, the visitor disappears from the list.
Once the visitor has completed their business, and has left the premises, it is important to check
them out for accurate record keeping.
To check visitors out properly, navigate to :menuselection:`Frontdesk app --> Stations --> (#) On
Site`. Doing so opens a list of all the visitors who are currently checked-in at that station.
Click the :guilabel:`Check Out` button near the end of the line for the visitor who left. Once they
are marked as checked-out, the visitor disappears from the list.
.. important::
Visitors do **not** check themselves out when they leave. It is important to check out visitors
for accurate record keeping.
Always have an accurate list of who is on the premises at any given time. This is important for
security purposes, and in the case of an emergency.
Reporting
=========
@@ -359,3 +218,11 @@ The :guilabel:`Visitors` report displays the number of visitors by month, for th
:guilabel:`Drinks` report shows how many total requests were made for each drink.
As with all reports in Odoo, the filters and groups can be modified to show other metrics, as well.
.. seealso::
- :doc:`frontdesk/visitors`
.. toctree::
:titlesonly:
frontdesk/visitors
@@ -0,0 +1,165 @@
========
Visitors
========
In the Odoo *Frontdesk* application, a *visitor* is defined as any non-employee (e.g., repair
person, job candidate, etc.). These visitors can be logged upon arrival and departure for security
purposes. This ensures an accurate list of people on the premises.
.. _frontdesk/list:
Visitor list
============
To access a complete list of checked-in visitors, navigate to :menuselection:`Frontdesk app -->
Visitors`.
.. note::
By default, the :guilabel:`Planned or Checked-In` and :guilabel:`Today` filters appear in the
:guilabel:`Search...` bar.
All visitors are presented in a list view, with the following details that were entered upon check
in:
- :guilabel:`Name`: the guest's name.
- :guilabel:`Visitor Company`: the company the guest represents.
- :guilabel:`Phone`: the guest's phone number.
- :guilabel:`Drinks`\*: the drink the guest requested.
- :guilabel:`Host`: who the guest is waiting to see.
- :guilabel:`CheckIn`: the date and time the guest checked in.
- :guilabel:`Checkout`\*: the date and time the guest checked out. In the default view, only guests
with a :guilabel:`Checked-In` or :guilabel:`Planned` status are visible. Guests with check-out
times are only visible if the :guilabel:`Today` filter is not active.
- :guilabel:`Duration`: the amount of time the guest has been checked in for.
- :guilabel:`Station`: the location of where the guest checked in.
- :guilabel:`Status`: the status of the guest. The options are :guilabel:`Checked-In`,
:guilabel:`Planned`, :guilabel:`Checked-Out`, or :guilabel:`Canceled`.
- :guilabel:`Email`\*: the guest's email address.
\* These fields are not visible in the default :guilabel:`Visitor` list. These must be enabled
using the :icon:`oi-settings-adjust` :guilabel:`(settings adjust)` icon in the top-right of the
list.
To the far-right of the titled columns on the :guilabel:`Visitors` page, there is an untitled
column, where a guest's status can be updated.
When a guest leaves, click the available :guilabel:`Check out` button to update the guest's record,
and log the date and time they left.
If a scheduled guest arrives, and they did not check in using the *Frontdesk* kiosk, they can be
checked in here, by clicking the available :guilabel:`Check in` button to log the date and time they
arrived.
Beside the untitled status column, a :guilabel:`Drink Served` button appears, but only if that
particular visitor requested a drink.
When their drink has been served, click the :guilabel:`Drink Served` button to indicate the drink
has been delivered to the guest. Once clicked, that button disappears.
.. image:: visitors/visitors.png
:align: center
:alt: The full list of currently checked in visitors, with the drinks to be served highlighted.
If any column is not visible, or if a visible column is preferred to be hidden, click the
:icon:`oi-settings-adjust` :guilabel:`(additional options)` icon, located at the end of the column
name list. Doing so, reveals a reveals a drop-down menu of column options to enable or disable. A
:icon:`fa-check` :guilabel:`(check)` icon indicates the column is visible.
Planned visitors
================
Enter expected guest information in advance by creating a planned guest in the *Frontdesk* app.
To create a planned guest, navigate to :menuselection:`Frontdesk app --> Visitors`, and click
:guilabel:`New`. Then, enter the same information as any other :ref:`visitor <frontdesk/list>` on
the guest form that appears. The only required fields are the visitor's :guilabel:`Name` and the
:guilabel:`Station` at which they are expected to arrive.
.. important::
If a guest is planned in advance, they must be checked in from the list on the
:guilabel:`Visitors` page in the *Frontdesk* application (:menuselection:`Frontdesk app -->
Visitors`). If a planned guest checks in using a kiosk, they will be checked in separately, and
their planned visitor entry remains listed as :guilabel:`Planned`.
The :guilabel:`Planned` status of a planned guest **only** changes to :guilabel:`Checked-In` when
they are checked in *inside* the application's :guilabel:`Visitors` list.
If a guest does check in using a kiosk, ensure all records are current, and the list of guests
that are currently on-site is correct. Be sure to check in and/or check out the correct entries,
so the visitors list correctly reflects who is currently on the premises.
Ensure planned guests are informed that they should **not** check in using the kiosk if they are
listed as a planned guest in advance.
Visitor flow
============
Visitor check in
----------------
When a visitor arrives at a facility, they approach a :ref:`Frontdesk kiosk <frontdesk/kiosk>`, and
click :guilabel:`Check in`. The information requested from the visitor is what was configured for
that specific *Frontdesk* station. If any information is required, the field displays a red asterisk
(\*). The visitor **must** enter the required information in order to check in.
Once all the information is entered, the visitor taps the :guilabel:`Check In` button.
.. note::
At any point in the check-in process, if ten seconds pass with no selection, the kiosk returns to
the main welcome screen.
Drinks
------
If drinks were configured for the station, after tapping :guilabel:`Check In`, a registration
confirmation screen loads, along with the question: :guilabel:`Do you want something to drink?`
The visitor can tap either :guilabel:`Yes, please`, or :guilabel:`No, thank you`.
If they select :guilabel:`Yes, please`, a drink selection screen appears, and the pre-configured
options are listed. The visitor then taps the desired selection, or, if they do not want anything,
they can tap the :guilabel:`Nothing, thanks` button at the bottom of the screen.
If a drink selection was made, a :guilabel:`Thank you for registering! Your drink is on the way.`
message appears.
Notifications
-------------
Once the visitor has checked in, the person they are visiting, and any other users who were
configured to be notified when check-ins occur at the kiosk, are notified. The notification is
either by email, SMS message, a *Discuss* chat, or any combination of those three options.
If the visitor requested a drink, the user(s) configured as the :guilabel:`People to Notify` on the
drink form, are notified, via the *Discuss* application. The message that appears is:
:guilabel:`(Visitor Name) just checked-in. They requested (Drink Name).`
Once the drink has been delivered to the guest, the person who delivered the drink is responsible
for marking the drink as delivered.
To mark a drink as delivered, navigate to :menuselection:`Frontdesk app --> Stations`, and choose
the desired station card displaying :guilabel:`(#) Drinks to serve`.
This opens a list of all the visitors checked in at that station, and are waiting for a drink. Click
the :guilabel:`Drink Served` button at the end of the line for the visitor who was served. Once they
are marked as having their drink served, the visitor disappears from the list.
Check out
---------
Once the visitor has completed their business, and has left the premises, it is important to check
them out for accurate record keeping.
To check visitors out properly, navigate to :menuselection:`Frontdesk app --> Stations`, and choose
the desired station card displaying :guilabel:`(#) Drinks to serve`. Doing so opens a list of all
the visitors who are currently checked-in at that station.
Click the :guilabel:`Check out` button near the end of the line for the visitor who left. Once they
are marked as checked-out, the visitor disappears from the list.
.. important::
Visitors do **not** check themselves out when they leave. It is important for *Frontdesk* users
to check out visitors for accurate record keeping.
Always have an accurate list of who is on the premises at any given time. This is important for
security purposes, and in the case of an emergency.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

+11 -6
View File
@@ -108,6 +108,10 @@ The contract template forms the basis of an offer, and can be modified for speci
employees, when necessary. If a contract template is created or modified in the *Payroll*
application, the changes are also reflected in the *Recruitment* application.
.. important::
To access contract templates, the *Salary Configurator* (`hr_contract_salary`) module **must** be
:ref:`installed <general/install>`.
To view all the current contract templates in the database, navigate to :menuselection:`Payroll app
--> Configuration --> Contracts: Templates`.
@@ -383,7 +387,7 @@ by typing in the time.
`2:00 PM` would be entered as `14:00`.
If the working time should be in a two-week configuration, click the :guilabel:`Switch to 2 weeks
calendar` button in the top left. This creates entries for an :guilabel:`Even week` and an
calendar` button in the top-left. This creates entries for an :guilabel:`Even week` and an
:guilabel:`Odd week`.
.. image:: payroll/new-working-schedule.png
@@ -411,12 +415,13 @@ end of year bonus. Both the `Regular Pay` structure and `End of Year Bonus` stru
within the `Employee` structure type.
The different :guilabel:`Structure Types` can be seen by navigating to :menuselection:`Payroll app
--> Configuration --> Salary --> Structure Types`.
--> Configuration --> Salary: Structure Types`.
There are two default structure types configured in Odoo: :guilabel:`Employee` and
:guilabel:`Worker`. Typically, :guilabel:`Employee` is used for salaried employees, which is why the
wage type is :guilabel:`Monthly Fixed Wage`, and :guilabel:`Worker` is typically used for employees
paid by the hour, so the wage type is :guilabel:`Hourly Wage`.
Two default structure types are configured in Odoo: :guilabel:`Employee` and :guilabel:`Worker`.
Typically, :guilabel:`Employee` is used for salaried employees, which is why the wage type is
:guilabel:`Monthly Fixed Wage`, and :guilabel:`Worker` is typically used for employees paid by the
hour, so the wage type is :guilabel:`Hourly Wage`.
.. image:: payroll/structure-type.png
:align: center
File diff suppressed because it is too large Load Diff
Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 31 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 17 KiB

After

Width:  |  Height:  |  Size: 20 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 19 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 43 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 39 KiB

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 36 KiB

After

Width:  |  Height:  |  Size: 36 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

After

Width:  |  Height:  |  Size: 30 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

After

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.0 KiB

After

Width:  |  Height:  |  Size: 9.0 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 15 KiB

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 35 KiB

+124 -425
View File
@@ -1,29 +1,32 @@
:show-content:
=========
Referrals
=========
Odoo's *Referrals* application is a centralized place where all information regarding referrals is
housed, from points earned, coworkers hired, and rewards selected. Users can recommend people they
know for job positions, then earn referral points as those people progress through the recruitment
pipeline. Once enough referral points are earned, they can be exchanged for prizes. The Referrals
application integrates with the *Employees*, *Recruitment*, and *Website* applications, all of which
must be installed in order for the *Referrals* application to function.
housed - from points earned, coworkers hired, and rewards selected. Users can recommend people they
know for job positions, and then earn referral points as those people progress through the
recruitment pipeline. Once enough referral points are earned, they can be exchanged for prizes. The
*Referrals* application integrates with the *Employees*, *Recruitment*, and *Website* applications,
all of which must be installed in order for the *Referrals* application to function.
The only configuration needed for the Referrals application after it is installed are the
:ref:`rewards <referrals/rewards>`; everything else is pre-configured when Odoo Referrals is
The only configurations needed for the *Referrals* application *after* installation are related to
the :ref:`rewards <referrals/rewards>`; everything else is pre-configured when Odoo *Referrals* is
installed.
Any user with either :guilabel:`Referral User`, :guilabel:`Officer`, or :guilabel:`Administrator`
rights for the Recruitment application has access to the Referrals application. Only user's with
:guilabel:`Administrator` rights for the Recruitment application have access to the :ref:`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`.
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
and access rights, refer to these documents: :doc:`../general/users` and
:doc:`../general/users/access_rights`.
Onboarding
==========
When opening the *Referrals* application for the first time, a pre-configured onboarding script
appears. This is in the form of four slides, each explaining the different parts of the Referrals
appears. This is in the form of four slides, each explaining the different parts of the *Referrals*
application. At the top of the dashboard, the following message is displayed throughout all the
onboarding slides: :guilabel:`GATHER YOUR TEAM! Job Referral Program`. Behind this main message is
an image, and beneath it some more explanatory text.
@@ -40,16 +43,16 @@ The text that appears on each slide is as follows:
#. :guilabel:`Compete against your colleagues to build the best justice league!`
.. note::
The onboarding slides will appear every time the Referrals application is opened, until all the
The onboarding slides will appear every time the *Referrals* application is opened, until all the
slides have been viewed and the :guilabel:`Start Now` button has been clicked. If the onboarding
is exited at any point, or if the :guilabel:`Start Now` button has *not* been clicked, the
onboarding slides will begin again when the Referrals application is opened. Once the
onboarding slides will begin again when the *Referrals* application is opened. Once the
:guilabel:`Start Now` button has been clicked, the onboarding slides will not be seen again, and
the main dashboard will load when the Referrals application is opened from that point on.
the main dashboard will load when the *Referrals* application is opened from that point on.
At any point during onboarding, the :guilabel:`Skip` button may be clicked. This exits the
onboarding, and the main Referrals dashboard loads. If :guilabel:`Skip` is clicked, onboarding
slides will not load anymore when opening the Referrals application.
onboarding, and the main *Referrals* dashboard loads. If :guilabel:`Skip` is clicked, onboarding
slides will not load anymore when opening the *Referrals* application.
.. image:: referrals/onboarding.png
:align: center
@@ -65,361 +68,37 @@ Modifying onboarding slides
---------------------------
Onboarding slides can be modified if desired. Only users with :guilabel:`Administrator` rights for
the Recruitment application can modify onboarding slides. To edit a slide, navigate to
the *Recruitment* application can modify onboarding slides. To edit a slide, navigate to
:menuselection:`Referrals app --> Configuration --> Onboarding.` Each line displays the text for the
individual onboarding slide. To edit an onboarding slide, click on an individual slide line to open
the slide's onboarding form, then click :guilabel:`Edit`.
the slide's onboarding form.
Make any changes to the message in the :guilabel:`Text` box. To change the order the slide appear in
the onboarding, the :guilabel:`Sequence` can be modified. Type in the corresponding number to
indicate the order in which the slides should be displayed. A :guilabel:`Company` may be selected,
however, if this field is populated, that slide will only be displayed for that particular company.
Make any changes to the message in the :guilabel:`Text` field. A :guilabel:`Company` may be
selected, as well. However, if this field is populated, that slide is *only* displayed for that
particular company.
The image can be modified as well. Hover over the image thumbnail in the top right corner of the
.. note::
The :guilabel:`Company` field only appears when in a multi-company database.
The image can be modified, as well. Hover over the image thumbnail in the top-right corner of the
form. A :guilabel:`✏️ (pencil)` icon and :guilabel:`🗑️ (garbage can)` icon appear. Click the
:guilabel:`✏️ (pencil)` icon to change the image. A file navigator window loads. Navigate to the
desired image, select it, then click :guilabel:`Open`. The new image appears in the thumbnail. To
delete an image, click the :guilabel:`🗑️ (garbage can)` icon, then select a new image using the
:guilabel:`✏️ (pencil)` icon.
To save any changes, click :guilabel:`Save`, or click :guilabel:`Discard` to delete any changes and
revert to the original content.
.. image:: referrals/edit-onboarding.png
:align: center
:alt: An onboarding slide in edit mode, with the main fields highlighted.
The order of the slides can also be changed directly in the Onboarding dashboard, without having to
edit an individual onboarding slide. Click the up and down arrow symbol that appears after the
checkbox and before the slide text, and drag the slide to the desired position. The
:guilabel:`Sequence` automatically changes on all the slide's onboarding forms, reflecting the new
sequence.
The sequence in which the slides appear can be changed from the *Onboarding* dashboard. Click the
:guilabel:`(six small gray boxes)` icon to the left of the the slide text, and drag the slide to the
desired position.
.. image:: referrals/onboarding-reorder.png
:align: center
:alt: The onboarding slides in a list, with the drag and drop arrows highlighted.
Share job positions
===================
In order to earn referral points, a user must first share a job position so the applicant can apply
for the position. There are several ways to share job positions within the Referrals application,
through the :ref:`View Jobs <referrals/view-jobs>` button and the :ref:`Email A Friend
<referrals/email-jobs>` button.
.. _referrals/view-jobs:
View Jobs
---------
To see all job positions that are actively recruiting candidates, click the :guilabel:`View Jobs`
button on the main Referrals dashboard. This presents all job positions, with each individual job
presented in its own card.
.. image:: referrals/jobs.png
:align: center
:alt: The 'View Jobs' screen, displaying all current open job positions. All information is
displayed on the card.
Each job position card contains the following information:
- The title of the job position. This information is taken from the :guilabel:`Job Position` field
of the job form.
- The number of positions being recruited. This information is taken from the :guilabel:`Expected
New Employees` field of the :guilabel:`Recruitment` tab of the job form.
- The points a user will earn when an applicant applies for the position.
- The job description detailing the job position. This information is taken from the :guilabel:`Job
Position` tab of the job form.
To see all the details for a job position, click the :guilabel:`More Info` button on the specific
card. This opens the job position webpage in a new browser tab. This is what an applicant sees
before applying for a position.
.. note::
Only published job positions will be visible in the Referrals app. To check which job positions
are published or not, refer to the :doc:`recruitment/new_job` documentation.
Refer friends
-------------
To share a job position with someone, click the :guilabel:`Refer Friend` button on the specific job
position card. A pre-configured :guilabel:`Send Job Offer by Mail` email pop-up window appears.
Enter the recipient's email address in the :guilabel:`Email` field.
The subject and body are populated using a default template. The subject `Job for you` appears, and
can be modified if desired.
The specific title of the job position will populate the :guilabel:`Job Position` placeholder in the
email body. The `See Job Offer` text in the email body is an individualized tracking link to the
specific job position listed on the website. When the prospective employee receives the email, the
link will send them to the job position page, where they can apply for the position, and the person
who referred them is tracked in the Referrals application.
If desired, add any text or closing salutation to the email body. When all edits have been made,
click :guilabel:`Send Email` to send the email, or click :guilabel:`Cancel` to close the email
pop-up window.
.. image:: referrals/email.png
:align: center
:alt: Referral email pop-up window with the email message inside it.
Share a job
-----------
There are several other ways to share a job position aside from sending an email, via social media
platforms and tracking links to the job position. At the bottom of each job position card are four
icons and corresponding tracking links that can be used to share the job position, keeping track of
applicants in the Referrals application.
.. image:: referrals/share.png
:align: center
:alt: The various sharing icons that appear for each job.
Link
~~~~
To share the job position with a customized tracking link, click the :guilabel:`Share Now` button
with the :guilabel:`🔗 (chain)` icon inside it. A :guilabel:`Link to Share` pop-up window appears
with the tracking link. Click :guilabel:`Copy` to copy the link. After the link is copied, click the
:guilabel:`Close` button to close the pop-up. Next, share the link with the prospective employee
however desired.
Facebook
~~~~~~~~
To share the job position using Facebook, click the :guilabel:`Share Now` button with the
:guilabel:`f (Facebook icon)` inside it. If the user is already logged into Facebook, when the
:guilabel:`f (Facebook icon)` is clicked, a :guilabel:`Share on Facebook` page loads in a new tab,
with the link populated in the main body of the new post. If the user is *not* already logged in, a
log-in screen loads instead, prompting the user to log-in to Facebook first.
Type in any additional information to add to the post, in the space directly below your name. If
desired, :guilabel:`tag` users, :guilabel:`check-in` at a location, or add a :guilabel:`status` to
the post. To tag a user, click the :guilabel:`Tag Friends` icon and select the people to tag to the
post. To add a check-in location, click the :guilabel:`Check in` icon, and select the location from
the pop-up of predetermined locations based on your current location. To add a :guilabel:`status`,
click the :guilabel:`Feeling/Activity` icon, then select either the feeling or the activity type,
and lastly, if an activity type was selected, select the specific activity.
There are five methods to share the job position, :guilabel:`Your Story`, :guilabel:`Share on a
Friend's Timeline`, :guilabel:`Share in a Group`, :guilabel:`Share in an Event`, and
:guilabel:`Share in a Private Message`. To select the sharing method, click the drop-down menu
located at the top of the page, directly beneath the :guilabel:`Share on Facebook` banner.
.. image:: referrals/facebook.png
:align: center
:alt: The view on Facebook when sharing a job description. All the various ways to share are
highlighted, as are all the required settings.
.. tabs::
.. tab:: Share to news feed or story
The default sharing method is through the :guilabel:`News Feed`, :guilabel:`Story`, or both.
At the lower portion of the form are radio buttons next to the two options, :guilabel:`Feed`
(for the News Feed) and :guilabel:`Your Story` for stories. When :guilabel:`Share to News Feed
or Story` is selected, these buttons are active, if another option is selected, these radio
buttons are greyed out. Activate the radio button(s) to indicate how the job position should
be shared, either in the news feed, the story, or both.
The :guilabel:`Share to news feed or story` option allows for specific privacy settings to be
selected. In the lower right corner of the screen, there are two drop-down menu options, one
for the :guilabel:`Feed` option, the other for the :guilabel:`Your story` option. Select the
posting parameters from the drop-down menus. The :guilabel:`Feed` ad :guilabel:`Your story`
options appear different from user to user, depending on what privacy settings have been
created in Facebook. :guilabel:`Public` and :guilabel:`Friends` are default options, but other
options that the user may have configured will appear as well, such as custom groups.
When the post and/or story is ready to be shared, click the blue :guilabel:`Post to Facebook`
button at the bottom of the screen.
.. tab:: Share on a friend's timeline
Instead of making a public post on the user's on Facebook page, the job position can be shared
directly on a friend's timeline. Click the :guilabel:`Share to News Feed or Story` drop-down
menu near the top of the page, and select :guilabel:`Share on a Fried's Timeline`.
When selected, a :guilabel:`Friend` field appears below the selection. Begin to type in the
friend's name. As the name is typed, a list appears, populated with names that match what is
entered. Select the friend from the list. **Only** one friend can be selected.
When the post is ready to be shared, click the blue :guilabel:`Post to Facebook` button at the
bottom of the screen.
.. tab:: Share in a group
To reach a specific audience and not share the job position publicly with everyone, a job can
be shared in a group. Click the :guilabel:`Share to News Feed or Story` drop-down menu near
the top of the page, and select :guilabel:`Share in a Group`.
When selected, a :guilabel:`Group` field appears below the selection. The available groups
that can be posted to are groups the user is currently a member of. Job positions cannot be
shared with groups the user has not joined. Begin to type in the name of the group. As the
group name is typed, a list appears, populated with the group names that match what is
entered. Select the group from the list. Only one group can be selected.
When the post is ready to be shared, click the blue :guilabel:`Post to Facebook` button at the
bottom of the screen.
.. tab:: Share in an event
A job position can also be shared on an event page. Click the :guilabel:`Share to News Feed or
Story` drop-down menu near the top of the page, and select :guilabel:`Share in an Event`.
When selected, an :guilabel:`Event` field appears below the selection. The available events
that can be posted to are events the user is invited to. This includes events that the user
has not responded to yet, and events that have occurred in the past. Begin to type in the name
of the event. As the event name is typed, a list appears, populated with the events that match
what is entered. Select the event from the list. Only one event can be selected.
When the post is ready to be shared, click the blue :guilabel:`Post to Facebook` button at the
bottom of the screen.
.. tab:: Share in a private message
The last option is to share a job position privately instead of publicly, in a Facebook
message. Click the :guilabel:`Share to News Feed or Story` drop-down menu near the top of the
page, and select :guilabel:`Share in an Private Message`.
When selected, a :guilabel:`To` field appears below the selection. Begin to type in the
friend's name. As the name is typed, a list appears, populated with names that match what is
entered. Select the friend from the list. Multiple friends can be selected and added to a
single message. Repeat this process for each friend to be added.
When the message is ready to be sent, click the blue :guilabel:`Send message` button at the
bottom of the screen.
X/Twitter
~~~~~~~~~
A job position can also be shared on X/Twitter. Click the :guilabel:`Share Now` button with the bird
icon inside it. If the user is already signed in to X/Twitter, when the :guilabel:`Share Now` icon
is clicked, an X/Twitter page loads in a new tab with a pre-populated message ready to post, in a
draft pop-up. If the user is *not* already signed in, a sign-in screen loads instead, prompting the
user to sign in to X/Twitter.
The default message is:
:guilabel:`Amazing job offer for (Job Position)! Check it live: (link to Job Position)`
Type in any additional information or make any edits to the message. If desired, click the
:guilabel:`X` in the top left corner of the thumbnail preview of the webpage to remove it. To adjust
the audience for the message, click the drop-down button labeled :guilabel:`Everyone`. Select the
preferred audience from the drop-down menu. The default option is :guilabel:`Everyone`, and the
other options is :guilabel:`Circle`. The :guilabel:`Circle` is a group of people that the user has
selected in X/Twitter.
The default setting is :guilabel:`🌎 (globe) Everyone can reply`, an allows everyone on X/Twitter to
reply to the message. To change this, click the :guilabel:`🌎 (globe) Everyone can reply` button in
the lower left section of the message. There are four options presented: :guilabel:`Everyone`,
:guilabel:`Accounts you follow`, :guilabel:`Verified accounts`, and :guilabel:`Only accounts you
mention`. Selecting one of the other options restricts who can reply to the message.
There are various other items that can be added to the message. Media (photos, videos, etc), GIF's,
polls, emojis, and a location may all be added. Click the corresponding icon in the bottom left of
the message and follow the prompts to add the desired additional elements.
To have the message posted at a future date and time, click the :guilabel:`Schedule` icon in the
lower left of the message window. It is the fifth icon from the left. Enter the date and time that
the message should be posted using the date and time selector presented. Click :guilabel:`Confirm`
to add the scheduled time to the message.
To post the message, click :guilabel:`Post`. The message will be immediately posted, or, if it was
scheduled, will be posted at the scheduled date and time.
.. image:: referrals/twitter.png
:align: center
:alt: The X/Twitter pop-up when sharing a job description. All the other items than can be added
to the message are highlighted, as is the visibility setting and the post button.
LinkedIn
~~~~~~~~
To share a job position on LinkedIn, click the :guilabel:`Share Now` button with the :guilabel:`in
(LinkedIn logo)` inside it. If the user is already logged into LinkedIn, when the :guilabel:`Share
Now` button is clicked, a new tab loads in LinkedIn, with a link to the job position at the top. If
the user is *not* already logged in, a log-in screen loads instead, prompting the user to log-in to
LinkedIn first.
The job position can be shared either in a public post, or in a private message to an individual or
group of individuals.
Share in a post
***************
To share the job position in a public post, click the :guilabel:`✏️ (pencil) Share in a post` button
in the lower-left corner of the screen. A :guilabel:`Create a post` window loads, with the job
position link populated. Enter any other information to the post in the field.
To change the audience that will see the post, click the :guilabel:`🌎 (globe) Anyone` drop-down,
located directly beneath the account name. Click on the desired selection, then click the
:guilabel:`Save` button on the far right side of the screen, beneath the last listed option.
:guilabel:`Anyone` allows anyone on LinkedIn to see the post. :guilabel:`Connections only` will
only share the post with people who are connected with the user, and will be hidden from everyone
else. :guilabel:`Group` shares the post with a specific group the user is a member of. The post can
only be shared with one group; posting to multiple groups at once is not available. If
:guilabel:`Group` is selected, a page loads with a list of all the groups the user is currently a
member of. Click on a group to select it, then click the :guilabel:`Save` button in the lower right
corner.
Next, select who can comment on the post. To change this setting, click on the :guilabel:`💬 (speech
bubble) Anyone` button located beneath the body of the post. A page loads with the various options.
Click on one of the three options to select it. The three options are :guilabel:`Anyone`,
:guilabel:`Connections only`, and :guilabel:`No one`. The default option is :guilabel:`Anyone`,
which allows anyone with a LinkedIn account to comment on the post. :guilabel:`Connections only`
will only allow people who are connected with the user to comment on the post. :guilabel:`No one`
turns off commenting. After making a selection, click the :guilabel:`Save` button in the far lower
right corner.
Finally, once the post is edited and the settings have been selected, click :guilabel:`Post` to
share the job position.
.. image:: referrals/linkedin.png
:align: center
:alt: A linkedIn post to share a job. The job position is highlighted as is the post button.
Send as private message
***********************
Instead of making a public post, the post can be sent to a connection in a private message. To do
so, click the :guilabel:`Send as private message` button in the lower left corner. A message window
loads with the link to the job description in the bottom of the window. First, select the
recipient(s) for the message. Type the name in the :guilabel:`Search for message recipients` field.
As the name is typed in, any matching connections appear. Click on a connection to add them. Repeat
this for all the recipients to send the message to. There is no limit on the number of connections
that can be messaged. Next, enter any additional text in the message body. Click :guilabel:`Send` in
the lower right corner to send the message. A :guilabel:`Message successfully sent!` screen loads.
Two options are presented, :guilabel:`View Message` and :guilabel:`Continue to LinkedIn`. Click on
the desired selection to navigate to that choice, or close the browser tab to exit.
.. _referrals/email-jobs:
Email a friend
--------------
Another way to share job opportunities is to share the entire current list of open job positions
instead of one job position at a time. To do this, navigate to the main *Referrals* app dashboard.
Click the :guilabel:`Email a friend` button at the bottom of the screen. A :guilabel:`Send Job Offer
by Mail` pop-up window appears.
Enter the email address(es) in the :guilabel:`Email` line. The email can be sent to multiple
recipients, simply enter a comma followed by a single space after each email address. The
:guilabel:`Subject` is pre-configured with `Job for you`, but can be edited.
The email body is also populated with pre-configured text. The text that appears is:
`Hello,`
`There are some amazing job offers in my company! Have a look, they can be interesting for you`
`See Job Offers`
The `See Job Offers` text is a tracking link to a complete list of all job positions currently being
recruited for, that are live on the company's website (published). Add any additional text and/or
make any edits to the message body, then click :guilabel:`Send Mail` to send the email. The message
will be sent and the window will close.
.. _referrals/hired:
Hired referrals
@@ -433,10 +112,10 @@ dashboard, a hired page loads. The text :guilabel:`(Referral Name) has been hire
for your new friend!` appears.
Below this message are five avatar thumbnails to choose from. If an avatar has already been assigned
to a referral, the thumbnail is greyed out, and the name the avatar has been chosen for appears
to a referral, the thumbnail is grayed out, and the name that the avatar has been chosen for appears
beneath the avatar. Click on an available avatar to select it.
If more than one referral was hired since opening the Referrals application, after selecting the
If more than one referral was hired since opening the *Referrals* application, after selecting the
first avatar, the user is prompted to select another avatar for the subsequent hired referral. Once
all avatars have been selected, the dashboard loads and all the avatars are now visible. Mouse over
each avatar and their name is displayed above them.
@@ -450,8 +129,8 @@ Modify friends
--------------
Friend avatars are able to be modified in the same manner that :ref:`levels <referrals/levels>` are
modified. Only users with :guilabel:`Administrator` rights for the Recruitment application can make
modifications to friends. The pre-configured friends can be seen and modified by navigating to
modified. Only users with :guilabel:`Administrator` rights for the *Recruitment* application can
make modifications to friends. The pre-configured friends can be seen and modified by navigating to
:menuselection:`Referrals app --> Configuration --> Friends`. Each friend avatar appears in the
:guilabel:`Dashboard Image` column, and the corresponding name appears in the :guilabel:`Friend
Name` column. The default images are a motley group of hero characters, ranging from robots to dogs.
@@ -459,7 +138,7 @@ Name` column. The default images are a motley group of hero characters, ranging
To modify a friend's dashboard image, thumbnail, name, or position, click on an individual friend to
open the referral friend form. Click :guilabel:`Edit` to make modifications. Type the name in the
:guilabel:`Friend Name` field. The name is solely to differentiate the friends in the configuration
menu; the friend's name is not visible anywhere else in the Referrals application.
menu; the friend's name is not visible anywhere else in the *Referrals* application.
The :guilabel:`Position` can be set to either :guilabel:`Front` or :guilabel:`Back`. This determines
the position of the friend in relation to the user's super hero avatar. Click the radio button next
@@ -468,11 +147,13 @@ when activated.
If desired, both the thumbnail :guilabel:`Image` and the :guilabel:`Dashboard Image` can be
modified. Hover over the image being replaced to reveal a :guilabel:`✏️ (pencil)` icon and
:guilabel:`🗑️ (garbage can)` icon. Click the :guilabel:`✏️ (pencil)` icon and a file explorer
window appears. Navigate to the desired image file then click :guilabel:`Open` to select it.
:guilabel:`🗑️ (garbage can)` icon. Click the :guilabel:`✏️ (pencil)` icon, and a file explorer
window appears. Navigate to the desired image file, then click :guilabel:`Open` to select it.
Once all changes have been made, click the :guilabel:`Save` button to save the changes, or click the
:guilabel:`Discard` button to revert to the original information.
The referral friend form automatically saves, but can be saved manually at any time by clicking the
*Save manually* option, represented by a :guilabel:`(cloud upload)` icon, located in the top-left
corner. To cancel any changes made, click the :guilabel:`✖️ (Discard all changes)` icon to delete
any changes, and revert to the original content.
.. image:: referrals/edit-friend.png
:align: center
@@ -481,17 +162,17 @@ Once all changes have been made, click the :guilabel:`Save` button to save the c
.. warning::
It is not advised to edit the images. An image file must have a transparent background in order
for it to render properly. Only users with knowledge about transparent images should attempt
adjusting any images in the Referrals application.
adjusting any images in the *Referrals* application.
Once an image is changed and the friend is saved, it is **not possible** to revert to the
original image. To revert to the original image, the Referrals application must be *uninstalled
original image. To revert to the original image, the *Referrals* application must be *uninstalled
then reinstalled.*
Referral points
===============
The referral program is based on earning points that are then exchanged for rewards. On the main
Referrals application dashboard, the top displays a summary of the user's current points. The left
*Referrals* application dashboard, the top displays a summary of the user's current points. The left
side of the summary displays the total points earned, and the right side displays the points that
are available to spend.
@@ -516,12 +197,18 @@ To see all the referrals (both ongoing and successful) click the :guilabel:`Refe
:guilabel:`My Referral` window loads. This screen displays all the referrals, with each referral in
its own referral card.
A successful referral has a green line down the left side of the card, and displays a
:guilabel:`✓ Hired` image in the top right corner of the card. Referrals that are in process display
an :guilabel:`In Progress` image in the top right corner.
A successful referral displays a green :guilabel:`Hired` banner in the top-right corner of the card.
Referrals that are in process display a purple :guilabel:`In Progress` banner in the top-right
corner.
Each referral card lists the name of the applicant, the department the job position is in, the name
of the job position, the person responsible for filling the role (recruiter), and the points earned.
Each referral card lists the name of the applicant, the subject/application title (as it appears on
the applicant card in the *Recruitment* app), the name of the job position, the person responsible
for filling the role (recruiter), and the points earned. For referrals that have been hired, the
selected avatar also appears on the card.
.. image:: referrals/referrals.png
:align: center
:alt: Two referral cards, one hired and one in-progress.
Points
~~~~~~
@@ -548,7 +235,7 @@ check mark appears next to the stage.
- :guilabel:`Contract Signed`: 50 points
The total points earned for a referral that is hired is 85 points. Modifications of the points
earned for each stage is done in the Recruitment application. Refer to the
earned for each stage are done in the *Recruitment* application. Refer to the
:ref:`Recruitment <recruitment/modify-stages>` documentation to modify the points for each stage.
.. _referrals/rewards:
@@ -559,27 +246,28 @@ Rewards
Create rewards
--------------
The rewards are the only configurations needed when setting up the Referrals application. Only users
with :guilabel:`Administrator` rights for the Recruitment application can create or modify rewards.
To add rewards, navigate to :menuselection:`Referrals app --> Configuration --> Rewards`. Click
:guilabel:`Create` and a reward form loads. Enter the following information on the form:
The rewards are the only configurations needed when setting up the *Referrals* application. Only
users with :guilabel:`Administrator` rights for the *Recruitment* application can create or modify
rewards. To add rewards, navigate to :menuselection:`Referrals app --> Configuration --> Rewards`.
Click :guilabel:`New`, and a reward form loads. Enter the following information on the form:
- :guilabel:`Product Name`: Enter the name as it should appear for the reward.
- :guilabel:`Cost`: Enter the amount of points required to redeem the reward.
- :guilabel:`Company`: Using the drop-down menu, select the company the reward will appear for. If a
- :guilabel:`Product Name`: enter the name as it should appear for the reward.
- :guilabel:`Cost`: enter the amount of points required to redeem the reward.
- :guilabel:`Company`: using the drop-down menu, select the company the reward appears for. If a
reward is to be used for several companies, each company needs to have a record of the reward,
with the company listed on the form.
- :guilabel:`Gift Responsible`: Select the person who will be responsible for procuring and
with the company listed on the form. This field only appears if in a multi-company environment.
- :guilabel:`Gift Responsible`: select the person who will be responsible for procuring and
delivering the reward to the recipient, using the drop-down menu. This person is alerted when the
reward is purchased, so they know when to deliver the reward to the recipient.
- :guilabel:`Description`: Type in the description for the reward. This will be visible on the
reward is bought in the *Referrals* application, so they know when to deliver the reward to the
recipient.
- :guilabel:`Description`: type in the description for the reward. This will be visible on the
reward card, beneath the title.
- :guilabel:`Photo`: Add a photo of the reward, which appears on the rewards page. Hover over the
- :guilabel:`Photo`: add a photo of the reward, which appears on the rewards page. Hover over the
image square, and two icons appear, a :guilabel:`✏️ (pencil)` and a :guilabel:`🗑️ (garbage can)`.
Click the :guilabel:`✏️ (pencil)` icon and a file explorer appears. Navigate to the photo file,
Click the :guilabel:`✏️ (pencil)` icon, and a file explorer appears. Navigate to the photo file,
then click :guilabel:`Open` to select it.
The only required fields are the :guilabel:`Product Name`, :guilabel:`Company`, and
The only required fields are the :guilabel:`Product Name`, :guilabel:`Company` (if applicable), and
:guilabel:`Description`.
.. image:: referrals/rewards.png
@@ -596,14 +284,15 @@ Redeem rewards
To redeem points for a reward, click the :guilabel:`Rewards` button on the main Referrals dashboard.
All the configured rewards are listed in individual reward cards. The points required to purchase
the reward is listed in the top right corner of the card. If the user has enough points to purchase
the reward is listed in the top-right corner of the card. If the user has enough points to purchase
a reward, a :guilabel:`🧺 (basket) Buy` button appears at the bottom of the reward card. If they do
not have enough points for a reward, the reward card displays :guilabel:`You need another (x) points
to buy this` instead of a buy button.
Click the :guilabel:`🧺 (basket) Buy` button on a reward to purchase it. A confirmation pop-up
appears, asking if the user is sure they want to purchase the reward. Click :guilabel:`OK` to
purchase the item, or :guilabel:`Cancel` to close the window and cancel the purchase.
Click the :guilabel:`🧺 (basket) Buy` button on a reward to purchase it. A :guilabel:`Confirmation`
pop-up window appears, asking if the user is sure they want to purchase the reward. Click
:guilabel:`OK` to purchase the item, or :guilabel:`Cancel` to close the window and cancel the
purchase.
After :guilabel:`OK` is clicked, the pop-up window closes, and the points used to purchase the
reward are subtracted from the user's available points. The rewards presented are now updated to
@@ -619,14 +308,14 @@ reflect the user's current available points.
Levels
======
The referrals application has pre-configured levels that are reflected in the user's avatar on the
The *Referrals* application has pre-configured levels that are reflected in the user's avatar on the
Referrals dashboard. As a user refers potential employees and earns points, they can *level up*,
much like in a video game.
Levels have no functional impact on the performance of the application. They are solely used for the
purpose of adding achievement tiers for participants to aim for, gamifying referrals for the user.
The user's current level is displayed at the top of the main Referrals application dashboard,
The user's current level is displayed at the top of the main *Referrals* application dashboard,
directly beneath their photo, in a :guilabel:`Level: X` format. In addition, a colored ring appears
around the user's photo, indicating how many points the user currently has, and how many additional
points they need to level up. The cyan colored portion of the ring represents points earned, while
@@ -635,17 +324,17 @@ the white colored portion represents the points still needed before they can lev
Modify levels
-------------
Only users with :guilabel:`Administrator` rights for the Recruitment application can modify levels.
The pre-configured levels can be seen and modified by navigating to :menuselection:`Referrals app
--> Configuration --> Levels`. Each avatar appears in the :guilabel:`Image` column, and the
corresponding level number appears in the :guilabel:`Level Name` column. The default images are of
Odoo superheroes, and each level adds an additional element to their avatar, such as capes and
shields.
Only users with :guilabel:`Administrator` rights for the *Recruitment* application can modify
levels. The pre-configured levels can be seen and modified by navigating to
:menuselection:`Referrals app --> Configuration --> Levels`. Each avatar appears in the
:guilabel:`Image` column, and the corresponding level number appears in the :guilabel:`Level Name`
column. The default images are of Odoo superheroes, and each level adds an additional element to
their avatar, such as capes and shields.
To modify a level's image, name, or points required to reach the level, click on an individual level
in the list to open the level form. Click :guilabel:`Edit` to make modifications.
in the list to open the level form, then make modifications.
Type in the name or number of the level in the :guilabel:`Level Name` field. What is entered is
Type in the name (or number) of the level in the :guilabel:`Level Name` field. What is entered is
displayed beneath the user's photo on the main dashboard when they reach that level. Enter the
number of referral points needed to reach that level in the :guilabel:`Requirements` field. The
points needed to level up are the total accumulated points earned over the lifetime of the employee,
@@ -653,11 +342,13 @@ not additional points from the previous level that must be earned.
If desired, the :guilabel:`Image` can also be modified. Hover over the image to reveal a
:guilabel:`✏️ (pencil)` icon and :guilabel:`🗑️ (garbage can)` icon. Click the :guilabel:`✏️
(pencil)` icon and a file explorer window appears. Navigate to the desired image file then click
(pencil)` icon, and a file explorer window appears. Navigate to the desired image file, then click
:guilabel:`Open` to select it.
Once all changes have been made, click the :guilabel:`Save` button to save the changes, or click the
:guilabel:`Discard` button to revert to the original information.
The level form saves automatically, but can be saved manually at any time by clicking the *save
manually* option, represented by a :guilabel:`(cloud upload)` icon, located in the top-left corner.
To cancel any changes made, click the :guilabel:`✖️ (Discard all changes)` icon to delete any
changes, and revert to the original content.
.. image:: referrals/levels.png
:align: center
@@ -666,10 +357,10 @@ Once all changes have been made, click the :guilabel:`Save` button to save the c
.. warning::
It is not advised to edit the images. An image file must have a transparent background in order
for it to render properly. Only users with knowledge about transparent images should attempt
adjusting any images in the Referrals application.
adjusting any images in the *Referrals* application.
Once an image is changed and the level is saved, it is **not possible** to revert to the original
image. To revert to the original image, the Referrals application must be *uninstalled then
image. To revert to the original image, the *Referrals* application must be *uninstalled then
reinstalled.*
Level up
@@ -700,7 +391,7 @@ points required.
Alerts
======
In the Referrals application, it is possible to post a message, also referred to as an *alert*, at
In the *Referrals* application, it is possible to post a message, also referred to as an *alert*, at
the top of the dashboard to share important information with users. These alerts appear as a thin
semi-transparent banner, with the word :guilabel:`New!` appearing on the far left. The text for the
alert is in the center of the banner, and on the far right side is an :guilabel:`X`.
@@ -708,7 +399,7 @@ alert is in the center of the banner, and on the far right side is an :guilabel:
Alerts appear on the main dashboard for the specified time configured on the individual alert. If a
user does not wish to see a specific alert again, click the :guilabel:`X` in the far right side of
the alert. This removes the alert from the dashboard and will not appear again, even when opening
the Referrals application for the first time in a new session.
the *Referrals* application for the first time in a new session.
.. image:: referrals/alerts.png
:align: center
@@ -717,29 +408,29 @@ the Referrals application for the first time in a new session.
Create an alert
---------------
Only users with :guilabel:`Administrator` rights for the Recruitment application can create alerts.
To add a new alert, navigate to the :menuselection:`Referrals application --> Configuration -->
Alerts`.
Only users with :guilabel:`Administrator` rights for the *Recruitment* application can create
alerts. To add a new alert, navigate to the :menuselection:`Referrals application --> Configuration
--> Alerts`.
Click :guilabel:`Create` and a blank alert form loads. Enter the following information on the form:
- :guilabel:`Date From`: The date the alert starts. On this date, the alert will be visible on the
- :guilabel:`Date From`: the date the alert starts. On this date, the alert will be visible on the
dashboard.
- :guilabel:`Date To`: The date the alert ends. After this date, the alert will be hidden from view.
- :guilabel:`Company`: The current company populates this field by default. To modify the company
- :guilabel:`Date To`: the date the alert ends. After this date, the alert will be hidden from view.
- :guilabel:`Company`: the current company populates this field by default. To modify the company
the alert should be displayed for, select the company from the drop-down menu. If this field
remains blank, the alert is visible to everyone with access to the Referrals application. If a
company is specified, only user's within that company (who also have access to the Referrals
application) will see the alert.
- :guilabel:`Alert`: Enter the text for the alert. This message appears inside the alert banner on
remains blank, the alert is visible to everyone with access to the *Referrals* application. If a
company is specified, only user's within that company (who also have access to the *Referrals*
application) will see the alert. This field only appears when in a multi-company database.
- :guilabel:`Alert`: enter the text for the alert. This message appears inside the alert banner on
the main dashboard.
- :guilabel:`On Click`: There are three options for the alert. Click the radio button next to the
- :guilabel:`On Click`: there are three options for the alert. Click the radio button next to the
desired selection. The options are:
- :guilabel:`Not Clickable`: The alert only displays text, there is no link to click.
- :guilabel:`Go to All Jobs`: The alert contains a link that when clicked, navigates to the
- :guilabel:`Not Clickable`: the alert only displays text, there is no link to click.
- :guilabel:`Go to All Jobs`: the alert contains a link that when clicked, navigates to the
website with all the currently posted job positions.
- :guilabel:`Specify URL`: The alert contains a link to a specific URL, that when clicked,
- :guilabel:`Specify URL`: the alert contains a link to a specific URL, that when clicked,
navigates to that URL. When selected, a :guilabel:`URL` field appears below the :guilabel:`On
Click` section. Enter the URL in the field.
@@ -752,9 +443,10 @@ Click :guilabel:`Create` and a blank alert form loads. Enter the following infor
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.
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
@@ -775,4 +467,11 @@ spreadsheet from the drop-down menu, or select :guilabel:`New Spreadsheet`. Clic
.. note::
The spreadsheet is stored in the *Documents* application. This application needs to be installed
in order to use the :guilabel:`Insert in Spreadsheet` option.
to use the :guilabel:`Insert in Spreadsheet` option.
.. seealso::
:doc:`referrals/share_jobs`
.. toctree::
referrals/share_jobs
Binary file not shown.

Before

Width:  |  Height:  |  Size: 10 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.2 KiB

After

Width:  |  Height:  |  Size: 8.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 9.6 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 24 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 56 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 61 KiB

After

Width:  |  Height:  |  Size: 62 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 26 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.1 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.4 KiB

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