Compare commits

...

122 Commits

Author SHA1 Message Date
nni-odoo 55f940d2d5 [IMP] payment_xendit: tokenization
Tokenization is introduced in https://github.com/odoo/odoo/pull/158445 and needs extra configuration to setup for credit card payment.
We require optional 3DS to be enabled and dynamic 3DS to be disabled
2024-07-18 14:49:18 +08:00
KC (ksc) 192cbbf168 [FIX] subscriptions: corrected invoicing info
closes odoo/documentation#10200

X-original-commit: 1f88f9dd67
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-07-17 17:30:50 +00:00
guillaume gallant (guga) f6586f4dbd [IMP] Field Service: Correction on Itinerary doc
task 4053589

closes odoo/documentation#10226

X-original-commit: 79745b702f
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Guillaume Gallant (guga) <guga@odoo.com>
2024-07-17 14:44:09 +00:00
Parish Bracha 1d25e55346 [IMP] sales: 100 percent down section
closes odoo/documentation#10168

X-original-commit: 9d228fc301
Signed-off-by: Parish Bracha (pabr) <pabr@odoo.com>
2024-07-16 19:19:39 +00:00
Parish Bracha 8a6dbe56c3 [IMP] crm: add quotation product catalog
closes odoo/documentation#10163

X-original-commit: 9af6b453fe
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Parish Bracha (pabr) <pabr@odoo.com>
2024-07-16 19:19:38 +00:00
Lara Martini (larm) f2f701dba6 [ADD] Recruitment: offer job positions
closes odoo/documentation#10211

X-original-commit: 11a2af286d
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-07-16 17:24:44 +00:00
Lara Martini (larm) 85ebf41d2c [ADD] Time off: new allocations doc
closes odoo/documentation#10206

X-original-commit: 7c10386675
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-07-16 17:24:43 +00:00
Parish Bracha 85c70cb544 [IMP] CRM: Inactive lost leads
closes odoo/documentation#10165

X-original-commit: 11ef368a58
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Parish Bracha (pabr) <pabr@odoo.com>
2024-07-16 17:24:42 +00:00
Donatienne (dopi) 0c30ca938e [IMP] Website: link to be updated
taskid-4047508

closes odoo/documentation#10222

X-original-commit: baf1e9b464
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-07-16 15:53:47 +00:00
Donatienne (dopi) 2f3d467dc8 [IMP] website: translations
taskid-3617120

closes odoo/documentation#10219

X-original-commit: fda2534a74
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-07-16 15:53:46 +00:00
“Audrey 3e853095d3 [ADD] Studio: approval rules
task-3553095

closes odoo/documentation#10164

X-original-commit: 28d5856640
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-07-16 10:07:42 +00:00
lejeune quentin 7467c92786 [ADD] point_of_sale: Documentation for Viva wallet
This PR add the documentation needed to use viva wallet payment method in Point Of Sale.
task-3667968

closes odoo/documentation#10187

X-original-commit: 7598c57f48
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
Signed-off-by: Quentin Lejeune (qle) <qle@odoo.com>
Co-authored-by: lejeune quentin <qle@odoo.com>
Co-authored-by: Perazzo Loredana <lrpz@odoo.com>
2024-07-16 06:57:37 +00:00
John Holton (hojo) e0269e2f11 [ADD] Manufacturing: MO costs
closes odoo/documentation#10167

X-original-commit: 2de0593eb7
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-07-15 18:05:09 +00:00
John Holton (hojo) 3323cfe8ab [ADD] Manufacturing: Continuous product improvement
closes odoo/documentation#10162

X-original-commit: d4fe1eb4d1
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-07-15 18:05:08 +00:00
Donatienne (dopi) 83d52c83fa [IMP] documents: new changes in V17
closes odoo/documentation#10180

Taskid: 3491654
X-original-commit: 3b573b0e60
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-07-12 14:24:01 +00:00
Christophe Monniez 520b6e296a [REL] saas-17.4 2024-07-11 14:21:13 +00:00
Zuzanna Luczynska 04aacf8863 [ADD] project: new task creation and statuses docs
task-4010729

closes odoo/documentation#10037

X-original-commit: 5938ac0931
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Zuzanna Luczynska (zulu) <zulu@odoo.com>
2024-07-11 06:49:02 +00:00
guillaume gallant (guga) e180e1066f [ADD] field_service: create new page about worksheet
task-3991994

closes odoo/documentation#10085

X-original-commit: 18ca6d9f80
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Guillaume Gallant (guga) <guga@odoo.com>
2024-07-09 15:53:40 +00:00
KC (ksc) 7f09bae364 [IMP] sales: added important admonition to amazon docs
closes odoo/documentation#10109

X-original-commit: 03f5c0660e
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-07-08 15:31:57 +00:00
jero-odoo ce069df416 [IMP] IoT: clear printer cache
closes odoo/documentation#10128

X-original-commit: 6e18b6f7de
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-07-08 12:10:00 +00:00
jero-odoo d55739b2c5 [IMP] Helpdesk: merge tickets
closes odoo/documentation#10111

X-original-commit: f56dce3a15
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>
2024-07-08 12:09:59 +00:00
Tom Aarab (toaa) 32c7993e1c [IMP] loca kenya: remove screenshot
Removing a leftover screenshot.

closes odoo/documentation#10089

X-original-commit: 5a151eafd5
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-07-08 07:41:49 +00:00
Felicious c1ea6d7a38 [FIX] inventory: UoM redirect rules
closes odoo/documentation#10094

X-original-commit: 58990cb4c6
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-07-05 10:53:44 +00:00
“Dallas” abb2e04f10 [FIX] german localization: Fixed broken GoBD link
If merged, this commit will replace the broken GoBD link with the correct link.

task ID: 4034487

closes odoo/documentation#10081

X-original-commit: 0e783b0dfa
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Dallas Dean (dade) <dade@odoo.com>
2024-07-05 06:51:03 +00:00
Krzysztof Magusiak (krma) 479ab2028e [IMP] core: remove 'inselect' operator
PR odoo/odoo#171371

closes odoo/documentation#10026

Related: odoo/enterprise#65796
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-07-05 05:39:11 +00:00
xpl-odoo e8c6f3421c [FIX] sign: line break after 100 characters
closes odoo/documentation#10073

X-original-commit: 50b8a2100d
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-07-05 04:25:38 +00:00
Lara Martini (larm) 54a9fedea2 [ADD] Appraisals: new appraisal doc
closes odoo/documentation#10060

X-original-commit: 9c5cee3f96
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-07-04 01:12:38 +00:00
Lara Martini (larm) 3806da48e7 [ADD] Lunch: new vendors doc
closes odoo/documentation#10056

X-original-commit: 4072bf6ece
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-07-03 17:37:02 +00:00
jero-odoo f836a2c5ad [ADD] General: Multi Company
closes odoo/documentation#10050

X-original-commit: 0e82e60673
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>
2024-07-03 17:37:00 +00:00
Audrey (auva) f7fd7b09df [IMP] payment_providers: availability report on payment form
task-3827488

closes odoo/documentation#10048

X-original-commit: 81d0fd06d4
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-07-03 15:31:52 +00:00
xpl-odoo 01f78636f8 [ADD] sign: legality
task-4008122

closes odoo/documentation#10044

X-original-commit: fa64368f21
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-07-03 08:48:13 +00:00
Tom Aarab (toaa) 54064a06ef [IMP] loca: Kenya menu update
Menus moved around since last PR. This updates it.

taskid-4028177

closes odoo/documentation#10038

X-original-commit: 18c7aa4c47
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-07-03 08:48:10 +00:00
John Holton (hojo) 7d92fb64f3 [IMP] Manufacturing: Update MPS
closes odoo/documentation#9979

X-original-commit: e79a2e674d
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-07-02 16:23:50 +00:00
Lara Martini (larm) 6435abfbad [ADD] Fleet: new models doc
closes odoo/documentation#10023

X-original-commit: 0752255be8
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-07-01 14:36:09 +00:00
jero-odoo 1ed9dd99d8 [ADD] Members: Overview
closes odoo/documentation#10022

X-original-commit: 35500f8035
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-07-01 13:06:04 +00:00
Donatienne (dopi) a04bb90354 [IMP] General: Change language
taskid-3964562

closes odoo/documentation#9985

X-original-commit: 8f5909a0cb
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-07-01 11:50:52 +00:00
jero-odoo 22c18c0165 [IMP] CRM: merge leads improvements
closes odoo/documentation#10014

X-original-commit: fc144a96fd
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-06-28 20:38:46 +00:00
Sam Lieber (sali) b8e1f50ea6 [ADD] data cleaning: overview
closes odoo/documentation#10013

X-original-commit: 8ca247d9dd
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-06-28 20:38:45 +00:00
Lara Martini (larm) 89a11e2e96 [IMP] Attendances: updating hardware to include badges
closes odoo/documentation#10012

X-original-commit: 9ae3ffc925
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-06-28 20:38:45 +00:00
jero-odoo 5df8a40c6e [IMP] Live Chat: Canned responses
closes odoo/documentation#10002

X-original-commit: 6d74ff585b
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Felicia Kuan <feku@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-06-28 19:23:51 +00:00
jero-odoo 07ac9eda1f [ADD] Live chat: participate
closes odoo/documentation#10001

X-original-commit: 9ed575b01e
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
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>
2024-06-28 19:23:50 +00:00
Lara Martini (larm) 27a3014633 [ADD] Attendances: new kiosk mode doc
closes odoo/documentation#10000

X-original-commit: d383da505d
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-06-28 19:23:49 +00:00
Rodrigo Alfaro Domínguez c94ab5301c [IMP] sales: market connectors eBay marketplace
Added how to configure the policies of the product in order to prevent the error ```Input data for tag <Item.SellerProfiles.SellerPaymentProfile.PaymentProfileID> is invalid or missing.````from appearing when the user is listing the product. Also changed the section of listing images to indicate that they are necessary to prevent error ```A description is required.(106)Add at least 1 photo. More photos are better! Show off your item from every angle and zoom in on details.(21919136)``` from appearing. The first error is really common when a user is listing products and there have been multiple help tickets opened for the same reason

closes odoo/documentation#9999

X-original-commit: 4e5ae3ea87
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-06-28 19:23:48 +00:00
Lara Martini (larm) b593192db4 [ADD] Recruitment: schedule interviews
closes odoo/documentation#9980

X-original-commit: 217ca237bf
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-06-28 15:38:55 +00:00
jero-odoo 4f198849bb [ADD] Contacts: Merge Contacts
closes odoo/documentation#9981

X-original-commit: 9584fed709
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: pabr-odoo <pabr@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-06-28 12:50:59 +00:00
jero-odoo 7a388707bc [ADD] IoT: SSH Connection
closes odoo/documentation#9968

X-original-commit: cac8d8a558
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: larm-odoo <121518652+larm-odoo@users.noreply.github.com>
2024-06-28 12:50:59 +00:00
Donatienne (dopi) 813dba5b92 [IMP] Documents: share section to be improved
taskid-3898917

closes odoo/documentation#9950

X-original-commit: 3acda8ef04
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-06-27 08:10:46 +00:00
Tom Aarab (toaa) 96f521a160 [IMP] Kenya loca: adding onboarding steps explanations
Adding a fews steps to sign up on eTIMS and link Odoo.

taskid-3835

closes odoo/documentation#9957

X-original-commit: 0d28e54c4a
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-06-26 15:51:11 +00:00
Lara Martini (larm) edffa80d3c [ADD] Referrals: new rewards doc
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
X-original-commit: 9feca1b4e4

[ADD] Referrals: new rewards doc

closes odoo/documentation#9615

closes odoo/documentation#9943

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

closes odoo/documentation#9934

X-original-commit: 06b380921b
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2024-06-24 17:47:46 +00:00
Donatienne (dopi) d9441dcf1c [ADD] wesbite: responsiveness
taskid-3725615

closes odoo/documentation#9929

X-original-commit: 1bad5cebaf
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-06-24 17:47:43 +00:00
John Holton (hojo) 8ad9f28f24 [ADD] Manufacturing: Allocation reports
closes odoo/documentation#9924

X-original-commit: 54de7881a2
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-06-24 17:47:34 +00:00
Lara Martini (larm) 80dbfbdd15 [ADD] Time off: new my time doc
closes odoo/documentation#9920

X-original-commit: 2ed1db8304
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-06-24 16:25:14 +00:00
John Holton (hojo) a6e04372a8 [IMP] Inventory: Reordering rules 001 update
closes odoo/documentation#9906

X-original-commit: da4186c1c2
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-06-24 16:25:11 +00:00
XPL dd93828247 [IMP] upgrade: remove ticket go-live mention
The phrase is confusing and leads customers to contact support to carry out
the upgrade for them.

closes odoo/documentation#9909

X-original-commit: 8e143196f1
Signed-off-by: Xavier Platteau (xpl) <xpl@odoo.com>
2024-06-24 10:09:54 +00:00
guillaume gallant (guga) baf256fc40 [IMP] point_of_sale: improve text and replace pictures for Vantiv
task-3005157

closes odoo/documentation#9865

X-original-commit: cc4aa47012
Signed-off-by: Loredana Perazzo (lrpz) <lrpz@odoo.com>
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-06-24 07:12:49 +00:00
Adrien Widart (awt) fbadb8cca0 [IMP] supported_versions: end of saas-16.4
closes odoo/documentation#9907

X-original-commit: 37ca3f1917
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
Signed-off-by: Adrien Widart (awt) <awt@odoo.com>
2024-06-22 09:26:48 +00:00
John Holton (hojo) 9f94e19837 [IMP] Maintenance: update add new equipment
closes odoo/documentation#9877

X-original-commit: d25d62d1c0
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-06-22 00:05:38 +00:00
Felicious 11f3f830a8 [IMP] inventory: automatic config instructions
closes odoo/documentation#9914

X-original-commit: d31b997900
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: toaa <104567387+toaa-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-06-21 19:58:21 +00:00
Lara Martini (larm) 19058c1876 [ADD] Lunch: New products doc
closes odoo/documentation#9905

X-original-commit: 2ae0e15982
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-06-21 18:31:09 +00:00
Lara Martini (larm) 33d781c5a5 [ADD] Time Off: New management doc
closes odoo/documentation#9889

X-original-commit: 7dfcac709d
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-06-21 17:12:09 +00:00
KC (ksc) 467e2f2550 [IMP] sales: add event prods to quote templates
closes odoo/documentation#9878

X-original-commit: 55f2d86800
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-06-21 15:54:53 +00:00
jero-odoo 0dadc8e580 [IMP] Contacts: partner webpage edit
closes odoo/documentation#9870

X-original-commit: 14a91520df
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-06-21 12:20:45 +00:00
Donatienne (dopi) 90bab61e66 [IMP] website: cookies bar
taskid-3961318

closes odoo/documentation#9857

X-original-commit: eb1eb38cce
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Donatienne Pirlot (dopi) <dopi@odoo.com>
2024-06-21 10:28:08 +00:00
aliya 862d07ba5b [IMP] accounting: peppol
Recently the Peppol registration flow has been updated and new features were added.
This commit:
- Updates the registration flow description in Peppol documentation
- Explains the decoupling between a sender and a receiver

task-3964853

closes odoo/documentation#9850

X-original-commit: 969a6d940a
Signed-off-by: Aliya Tastemirova (alta) <alta@odoo.com>
2024-06-18 17:10:46 +00:00
Lara Martini (larm) 757c4ec23e [ADD] Recruitment: new applicant doc
closes odoo/documentation#9846

X-original-commit: d83af483ba
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-06-18 14:12:00 +00:00
Lara Martini (larm) 47a9da91ac [ADD] Referrals: new rewards doc
closes odoo/documentation#9686

X-original-commit: 148549b3d0
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-06-18 02:24:51 +00:00
John Holton (hojo) b846ff3a57 [IMP] Inventory: Update dropshipping doc
closes odoo/documentation#9836

X-original-commit: 62bc2eda35
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-06-17 23:21:55 +00:00
John Holton (hojo) a0e0e994a6 [ADD] Manufacturing: By-Products
closes odoo/documentation#9842

X-original-commit: 4975afda0d
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-06-17 16:21:22 +00:00
Sam Lieber (sali) 03d435ea31 [IMP] reference/user_interface: 17.0 odoo ui icons
closes odoo/documentation#9830

X-original-commit: d506554ed0
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-06-17 14:46:20 +00:00
jero-odoo 201c82d9c9 [ADD] CRM: Resellers
closes odoo/documentation#9829

X-original-commit: 594f3573d9
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>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-06-17 14:46:19 +00:00
Aaron Bohy a164b8ab65 [IMP] reference/user interface: remove kanban-tooltip doc
This feature has been dropped.

(Part of) task `3650117`

closes odoo/documentation#9604

Related: odoo/odoo#167751
Related: odoo/enterprise#63714
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2024-06-17 11:35:45 +00:00
Aaron Bohy 05500b1416 [IMP] reference/user interface: kanban: color attribute
(Part of) task `3650117`

Part-of: odoo/documentation#9604
Related: odoo/odoo#167751
Related: odoo/enterprise#63714
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2024-06-17 11:35:45 +00:00
Aaron Bohy ce5a8d554d [IMP] reference/user interface: kanban: can_open attribute
(Part of) task `3650117`

Part-of: odoo/documentation#9604
Related: odoo/odoo#167751
Related: odoo/enterprise#63714
Signed-off-by: Aaron Bohy (aab) <aab@odoo.com>
2024-06-17 11:35:45 +00:00
Felicious 0d624f6c3e [ADD] inventory: bpost
closes odoo/documentation#9811

X-original-commit: 886e1dc19c
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-06-15 16:33:45 +00:00
KC (ksc) 93b07b8a25 [IMP] sales: add expense category context to reinvoice
closes odoo/documentation#9819

X-original-commit: 68ecabb435
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-06-14 14:31:03 +00:00
KC (ksc) b93a4f78dd [FIX] sales: corrected ecommerce category field issue
closes odoo/documentation#9818

X-original-commit: d21e9d8c12
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-06-14 14:31:02 +00:00
jero-odoo b774e6f99b [IMP] Contacts: memberships and partners tabs
closes odoo/documentation#9807

X-original-commit: 8beae0b9e5
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-06-13 19:07:52 +00:00
KC (ksc) 6cf5d44380 [IMP] events: added supplemental content to create events
closes odoo/documentation#9806

X-original-commit: 636441b94c
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-06-13 19:07:51 +00:00
jero-odoo 14a5b77169 [IMP] Discuss: Chatter icons
closes odoo/documentation#9799

X-original-commit: 9aa160f042
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
2024-06-13 17:47:09 +00:00
Brandon Seltenrich (BRSE) fff0e0f2a7 [IMP] purchase: update vendor bills copy
closes odoo/documentation#9794

X-original-commit: 118e31d96a
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-06-13 14:31:15 +00:00
Tom Aarab (toaa) e04e586ef4 [IMP] Localization: Kenya
Updating and expanding the Kenyan localization.

taskid-3794719

closes odoo/documentation#9787

X-original-commit: 5d87049d92
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Tom Aarab (toaa) <toaa@odoo.com>
2024-06-13 10:43:37 +00:00
Felicious 16d2e1582f [IMP] inventory: fix landed costs note
closes odoo/documentation#9777

X-original-commit: 6fe36eacc4
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
2024-06-12 23:40:43 +00:00
jero-odoo cbd8f2e8d9 [IMP] email faqs: email limit
closes odoo/documentation#9732

X-original-commit: 57212a6798
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
2024-06-12 13:49:47 +00:00
Lara Martini (larm) 410ee3fe39 [ADD] Appraisals: new reporting doc
closes odoo/documentation#9698

X-original-commit: 55d3d59a64
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-06-12 13:49:46 +00:00
KC (ksc) cd19ebd5ac [FIX] crm: typo in gamification doc
closes odoo/documentation#9625

X-original-commit: a99c1cd7e1
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
2024-06-12 13:49:45 +00:00
guillaume gallant (guga) 047cf49add [FIX] point_of_sale: replace receipt image
task-3834714

closes odoo/documentation#9772

X-original-commit: 3320f52cdd
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
Signed-off-by: Guillaume Gallant (guga) <guga@odoo.com>
2024-06-12 07:43:14 +00:00
Brandon Seltenrich (BRSE) c8f509746d [IMP] inventory: update 3 step delivery doc
closes odoo/documentation#9778

X-original-commit: a77f2cf3b1
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-06-11 18:54:57 +00:00
John Holton (hojo) c74b788b8f [ADD] Quality: Failure locations
closes odoo/documentation#9682

X-original-commit: 3b1f9f6df2
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-06-11 18:54:55 +00:00
Audrey (auva) 9b93e7788e [FIX] voip: broken contact link
Changed https://www.axivox.com/contact into https://www.axivox.com/en/contact
as it didn't exist (anymore).

closes odoo/documentation#9766

X-original-commit: f9ab7b716b
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-06-11 16:06:32 +00:00
Loredana Perazzo b306f91ed4 [IMP] pos: remove Epson TM-20 from list of compatible
task-3925551

closes odoo/documentation#9660

X-original-commit: 2e47b6a600
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-06-11 10:39:34 +00:00
Felicious ce5973e335 [MOV] inventory: shipping labels
closes odoo/documentation#9739

X-original-commit: 928e3bb43e
Signed-off-by: Felicia Kuan (feku) <feku@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-06-11 01:19:45 +00:00
Felicious e68deaf9d6 [IMP] inventory: reserve full vs partial packaging
closes odoo/documentation#9737

X-original-commit: dc0dec9d65
Signed-off-by: Felicia Kuan (feku) <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-06-10 23:40:13 +00:00
Sam Lieber (sali) a18a378a87 [ADD] accounting/l10n_us: usa accounting
closes odoo/documentation#9753

X-original-commit: 5272e38c26
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: StraubCreative <zst@odoo.com>
Co-authored-by: tiku-odoo <tiku@odoo.com>
Co-authored-by: larm-odoo <larm@odoo.com>
Co-authored-by: samueljlieber <sali@odoo.com>
2024-06-10 20:05:11 +00:00
Nguyen Minh Tran Manh Cuong 64db022a95 [FW][FIX] tutorials/server_framework_101: position of form's notebook element
The notebook element should be nested in the sheet element.

closes odoo/documentation#9748

Forward-port-of: odoo/documentation#9744
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-06-10 18:50:00 +00:00
Serge Bayet (seba) 48bc8793a3 [ADD] administration: neutralized databases doc
This commit updates the documentation for neutralized databases to
include information about how search engine indexing is prevented for
these databases.

task-3895772

closes odoo/documentation#9714

X-original-commit: c770eb5618
Signed-off-by: Serge Bayet (seba) <seba@odoo.com>
2024-06-10 08:10:26 +00:00
tong-odoo 1695ad998b [IMP] accounting: employment hero added taxes mapping descriptions
Impacted Versions:

- saas-17.1 and above

closes odoo/documentation#9722

X-original-commit: b9695b0e5d
Related: odoo/enterprise#64143
Signed-off-by: Tommy Ng (tong) <tong@odoo.com>
Signed-off-by: Xavier Morel (xmo) <xmo@odoo.com>
2024-06-10 06:51:14 +00:00
Lara Martini (larm) 0557514788 [ADD] Recruitment: New refuse applicants doc
closes odoo/documentation#9723

X-original-commit: cd32574f88
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-06-07 22:04:03 +00:00
jero-odoo 2e7f7b0dc5 [ADD] CRM: Forecast report
closes odoo/documentation#9716

X-original-commit: f6994a1047
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-06-07 22:04:00 +00:00
guillaume gallant (guga) 2b98d9c304 [ADD] Field service: adding itinerary planning page
Added a new page to plan itinerary maps

taskid-3959000

closes odoo/documentation#9630

X-original-commit: 4983adb63f
Signed-off-by: Guillaume Gallant (guga) <guga@odoo.com>
2024-06-07 08:20:07 +00:00
Parish Bracha b10d17af6a [IMP] sales: add discounts section to pricing doc
closes odoo/documentation#9697

X-original-commit: 6c74ac42f9
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Parish Bracha (pabr) <pabr@odoo.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-06-06 21:50:39 +00:00
Parish Bracha 11b77ac549 [IMP] crm: add equation explanation in leads doc
closes odoo/documentation#9690

X-original-commit: 96f3a3e846
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
Signed-off-by: Parish Bracha (pabr) <pabr@odoo.com>
2024-06-06 20:21:55 +00:00
Enmanuel Otero Montano f9f855cd2e [FW][FIX] howtos/javascript_view: fix typo
A typo was found. The word "customeKanbanView" is misspelled and should be "customKanbanView", which is the constant exported correctly in the code. Therefore, the corrected line would be:

closes odoo/documentation#9676

Forward-port-of: odoo/documentation#9661
Signed-off-by: Antoine Vandevenne (anv) <anv@odoo.com>
2024-06-06 16:27:19 +00:00
Sam Lieber (sali) 4734ddb7be [ADD] marketing automation: double opt-in template
closes odoo/documentation#9668

X-original-commit: 2341f42d4a
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Zachary Straub <zst@odoo.com>
2024-06-06 16:27:16 +00:00
Felicious 3606b35230 [IMP] inventory: carrier label and export doc
closes odoo/documentation#9650

X-original-commit: fe3281523c
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-06-05 18:55:20 +00:00
KC (ksc) 33244724b0 [MOV] surveys: rename time_random to questions
closes odoo/documentation#9645

X-original-commit: 011ef11978
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-06-05 12:50:12 +00:00
KC (ksc) 6535c1d587 [IMP] events: full rewrite of essentials
closes odoo/documentation#9644

X-original-commit: 184dd5f93f
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-06-05 12:50:11 +00:00
jero-odoo 99e8ebf5de [IMP] essentials: activities updates
closes odoo/documentation#9635

X-original-commit: 5f566009c7
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-06-04 19:06:06 +00:00
John Holton (hojo) f83fce2125 [ADD] Manufacturing: Basic subcontracting lead times
closes odoo/documentation#9519

X-original-commit: 36da7b90a4
Signed-off-by: John Holton (hojo) <hojo@odoo.com>
2024-06-04 16:29:27 +00:00
Ray Carnes 93e76fe08b [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#9452

X-original-commit: eca1b7ffd3
Signed-off-by: Zachary Straub (zst) <zst@odoo.com>
2024-06-04 16:29:26 +00:00
Donatienne (dopi) 4ee7077ac8 [IMP] website: multiple website
taskid- 3716945

closes odoo/documentation#9503

X-original-commit: da6d3e6740
Signed-off-by: Audrey Vandromme (auva) <auva@odoo.com>
2024-06-04 13:22:32 +00:00
Naman Shah e9b1f18822 [ADD] accounting/l10n: add section in GSTR-1 report (India)
In this commit added the flow of generate spreadsheet view of GSTR-1 report.

task-3884120

closes odoo/documentation#9613

X-original-commit: 90fe2b31b1
Signed-off-by: Naman Shah (nash) <nash@odoo.com>
2024-06-04 04:39:43 +00:00
KC (ksc) f6107b4858 [IMP] events: full rewrite of sell tickets
closes odoo/documentation#9601

X-original-commit: 4d21807379
Signed-off-by: Kevin Scannell (ksc) <ksc@odoo.com>
2024-06-03 19:53:46 +00:00
Lara Martini (larm) dbf69f4019 [ADD] Attendances: moving check in section to new doc
closes odoo/documentation#9569

X-original-commit: aef490c600
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-06-03 19:53:43 +00:00
Alice Gaudon b0627464e5 [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

closes odoo/documentation#9596

X-original-commit: 15c6bb8b0e
Signed-off-by: Florent Dardenne (dafl) <dafl@odoo.com>
Signed-off-by: Alice Gaudon (agau) <agau@odoo.com>
2024-06-03 12:04:58 +00:00
Tiffany Chang (tic) 3bfd593757 [I18N] *: export latest terms
As per usual, leave off developer.pot and contributing.pot since we
don't translate them (not useful, can't really contribute to/dev in
Odoo without knowing English)

closes odoo/documentation#9587

X-original-commit: f1d8cb8f16
Signed-off-by: Louis Wicket (wil) <wil@odoo.com>
Signed-off-by: Tiffany Chang (tic) <tic@odoo.com>
2024-06-03 08:45:22 +00:00
Lara Martini (larm) 35931b493d [IMP] Payroll: add necessary contract modules
closes odoo/documentation#9595

X-original-commit: 9a0e87e861
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Signed-off-by: Lara Martini (larm) <larm@odoo.com>
2024-06-01 17:48:06 +00:00
jero-odoo 2c38a625e1 [ADD] Purchase: procurement expenses report
closes odoo/documentation#9565

X-original-commit: ab659db849
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
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>
2024-06-01 16:32:20 +00:00
tiku-odoo 9dac99024f [ADD] essentials: contacts
closes odoo/documentation#9562

X-original-commit: 3d5841894d
Signed-off-by: Samuel Lieber (sali) <sali@odoo.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: ksc-odoo <73958186+ksc-odoo@users.noreply.github.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-06-01 16:32:19 +00:00
Xavier-Do d11dcd33d1 [IMP] adapt documentation for new install script
closes odoo/documentation#9559

X-original-commit: f1bd4ec134
Related: odoo/odoo#167454
Signed-off-by: Xavier Dollé (xdo) <xdo@odoo.com>
2024-06-01 16:32:16 +00:00
Vincent Larcin 59afd5062d [IMP] *: standardize spelling of “cancelled” across documentation
In https://github.com/odoo/odoo/pull/129722, we settled on using the spelling “cancelled”,
and removed all occurrences of “canceled” from the codebase.

This commit does the same for the documentation.

Task-3951276

closes odoo/documentation#9494

Signed-off-by: Vincent Larcin (vila) <vila@odoo.com>
2024-06-01 16:32:07 +00:00
jero-odoo 88880b8915 [IMP] Purchase: vendor costs report 17.0
closes odoo/documentation#9554

X-original-commit: f46dda5e61
Signed-off-by: Jessica Rogers (jero) <jero@odoo.com>
Co-authored-by: Sam Lieber (sali) <36018073+samueljlieber@users.noreply.github.com>
2024-05-31 20:14:38 +00:00
516 changed files with 29591 additions and 13208 deletions
+1 -1
View File
@@ -27,7 +27,7 @@ SOURCE_DIR = content
HTML_BUILD_DIR = $(BUILD_DIR)/html
ifdef VERSIONS
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/master
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/saas-17.4
endif
ifneq ($(CURRENT_LANG),en)
HTML_BUILD_DIR := $(HTML_BUILD_DIR)/$(CURRENT_LANG)
+2 -1
View File
@@ -22,7 +22,7 @@ copyright = 'Odoo S.A.'
# `version` is the version info for the project being documented, acts as replacement for |version|,
# also used in various other places throughout the built documents.
# `release` is the full version, including alpha/beta/rc tags. Acts as replacement for |release|.
version = release = 'master'
version = release = 'saas-17.4'
# `current_branch` is the technical name of the current branch.
# E.g., saas-15.4 -> saas-15.4; 12.0 -> 12.0, master -> master (*).
@@ -231,6 +231,7 @@ sphinx.transforms.i18n.docname_to_domain = (
# is populated. If a version is passed to `versions` but is not listed here, it will not be shown.
versions_names = {
'master': "Master",
'saas-17.4': "Odoo Online",
'saas-17.2': "Odoo Online",
'saas-17.1': "Odoo Online",
'17.0': "Odoo 17",
@@ -21,7 +21,7 @@ turned into a testing environment.
Deactivated features
====================
Here is a non-exhaustive list of the deactivated parameters:
Here is a non-exhaustive list of the deactivated features:
- all planned actions (e.g., automatic invoicing of subscriptions, mass mailing, etc.)
- outgoing emails
@@ -29,6 +29,7 @@ Here is a non-exhaustive list of the deactivated parameters:
- payment providers
- delivery methods
- :abbr:`IAP (In-App Purchase)` tokens
- website visibility (prevent search engines from indexing your site)
.. note::
**A red banner at the top of the screen is displayed on the neutralized database so that it can
+9 -5
View File
@@ -277,18 +277,22 @@ Dependencies
.. tab:: Debian/Ubuntu
For Debian-based systems, the packages are listed in the `debian/control
<{GITHUB_PATH}/debian/control>`_ file of the Odoo sources.
On Debian/Ubuntu, the following commands should install the required packages:
.. code-block:: console
$ cd /CommunityPath
$ sed -n -e '/^Depends:/,/^Pre/ s/ python3-\(.*\),/python3-\1/p' debian/control | sudo xargs apt-get install -y
$ cd odoo #CommunityPath
$ sudo ./setup/debinstall.sh
The `setup/debinstall.sh` script will parse the `debian/control
<{GITHUB_PATH}/debian/control>`_ file and install the found packages.
.. tab:: Install with pip
.. warning::
Using pip may lead to security issues and broken dependencies; only do this if you
know what you are doing.
As some of the Python packages need a compilation step, they require system libraries to
be installed.
@@ -50,7 +50,7 @@ This matrix shows the support status of every version.
- November 2023
- October 2026 (planned)
* - Odoo saas~16.4
- |green|
- |red|
- N/A
- N/A
- August 2023
-3
View File
@@ -272,9 +272,6 @@ Upgrading the production database
Once the :ref:`tests <upgrade/test_your_db>` are completed and you are confident that the upgraded
database can be used as your main database without any issues, it is time to plan the go-live day.
It can be planned in coordination with Odoo's upgrade support analysts by `submitting a ticket for
an issue related to my future upgrade (I am testing an upgrade)
<https://odoo.com/help?stage=migration>`_.
Your production database will be unavailable during its upgrade. Therefore, we recommend planning
the upgrade at a time when the use of the database is minimal.
+1
View File
@@ -7,5 +7,6 @@ Odoo essentials
essentials/activities
essentials/reporting
essentials/search
essentials/contacts
essentials/export_import_data
essentials/in_app_purchase
+40 -44
View File
@@ -2,20 +2,22 @@
Activities
==========
.. |clock| replace:: :icon:`fa-clock-o` :guilabel:`(clock)` icon
*Activities* are follow-up tasks tied to a record in an Odoo database.
.. _activities/important:
The icon used to display activities varies depending on the :ref:`activity type <activities/types>`:
The icon used to display activities varies, depending on the :ref:`activity type
<activities/types>`:
- :guilabel:`🕘 (clock)`: the default icon, which appears if nothing is scheduled.
- :guilabel:`📞 (phone)`: this icon appears if a phone call is scheduled.
- :guilabel:`✉️ (envelope)`: this icon appears if an email is scheduled.
- :guilabel:`✔️ (checkmark)`: this icon appears if a to-do is scheduled.
- :guilabel:`(group of people)`: this icon appears if a meeting is scheduled.
- :guilabel:`(arrow pointing up above a line)`: this icon appears if a document is scheduled to be
uploaded.
- :guilabel:`(pencil in a box)`: this icon appears if a signature request is scheduled.
- :icon:`fa-clock-o` :guilabel:`(clock)` icon: the default activities icon.
- :icon:`fa-phone` :guilabel:`(phone)` icon: a phone call is scheduled.
- :icon:`fa-envelope` :guilabel:`(envelope)` icon: an email is scheduled.
- :icon:`fa-check` :guilabel:`(check)` icon: a "to-do" is scheduled.
- :icon:`fa-users` :guilabel:`(people)` icon: a meeting is scheduled.
- :icon:`fa-upload` :guilabel:`(upload)` icon: a document is scheduled to be uploaded.
- :icon:`fa-pencil-square-o` :guilabel:`(request signature)` icon: a signature request is scheduled.
Schedule activities
===================
@@ -44,13 +46,9 @@ Schedule Activity form <activities/form>`.
Kanban view
-----------
Another way that activities are created is from the Kanban view in an application.
Activities can also be created from the :icon:`oi-view-kanban` :guilabel:`(Kanban)` view.
.. image:: activities/kanban.png
:align: center
:alt: The Kanban icon in the top menu, highlighted.
To do so, click on the :guilabel:`🕘 (clock)` icon located at the bottom of an individual record.
To do so, click on the |clock| located at the bottom of an individual record.
Click :guilabel:`+ Schedule An Activity`, then proceed to :ref:`fill out the Schedule Activity form
<activities/form>`.
@@ -60,28 +58,26 @@ Click :guilabel:`+ Schedule An Activity`, then proceed to :ref:`fill out the Sch
:alt: Kanban view of the CRM pipeline and the option to schedule an activity.
.. note::
If a record already has a scheduled activity, the :guilabel:`🕘 (clock)` icon is replaced by the
icon that represents the existing scheduled activity. Click on the activity type's icon to
schedule another activity.
If a record already has a scheduled activity, the |clock| is replaced by the icon that represents
the existing scheduled activity. Click on the activity type's icon to schedule another activity.
.. _activities/list:
List view
---------
Activities can also be created from a list view.
Activities can also be created from a :icon:`oi-view-list` :guilabel:`(list)` view.
If the :guilabel:`Activities` column is hidden, reveal it using the :guilabel:`(additional options
toggle)` icon in the far-right of the top row, represented by two horizontal lines with two dots.
If the :guilabel:`Activities` column is hidden, reveal it using the :icon:`oi-settings-adjust`
:guilabel:`(settings adjust)` icon in the far-right of the top row.
Then, click on the :guilabel:`🕘 (clock)` icon for the record the activity is being added to, then
click :guilabel:`+ Schedule an activity`. Proceed to :ref:`fill out the Schedule Activity form
<activities/form>` that appears.
Then, click on the |clock| for the record the activity is being added to, and click :guilabel:`+
Schedule an activity`. Proceed to :ref:`fill out the Schedule Activity form <activities/form>` that
appears.
.. note::
If a record already has a scheduled activity, the :guilabel:`🕘 (clock)` icon is replaced by the
icon that represents the existing scheduled activity. Click on the activity type's icon to
schedule another activity.
If a record already has a scheduled activity, the |clock| is replaced by the icon that represents
the existing scheduled activity. Click on the activity type's icon to schedule another activity.
.. image:: activities/schedule-list-activity.png
:align: center
@@ -92,10 +88,10 @@ click :guilabel:`+ Schedule an activity`. Proceed to :ref:`fill out the Schedule
Activity view
-------------
Most applications in Odoo have an *Activity* view available. If available, a :guilabel:`🕘 (clock)`
activity icon is visible in the top-right of the main menu bar.
Most applications in Odoo have an *Activity* view available. If available, a |clock| is visible in
the top-right corner of the main menu bar, amongst the other view option icons.
To open the activity view, click the :guilabel:`🕘 (clock)` activity icon.
To open the activity view, click the |clock|.
.. image:: activities/activities.png
:align: center
@@ -114,12 +110,12 @@ If multiple activity types are scheduled for a record, a number appears in the b
total number of scheduled activities.
.. note::
Activity colors, and their relation to an activity's due date, is consistent throughout Odoo,
Activity colors, and their relation to an activity's due date, are consistent throughout Odoo,
regardless of the activity type, or the view.
To schedule an activity for a record, hover over the corresponding field, and a :guilabel:` (plus
sign)` appears. Click the :guilabel:` (plus sign)`, and then :ref:`fill out the Schedule Activity
form <activities/form>`.
To schedule an activity for a record, hover over the corresponding field. Click the :icon:`fa-plus`
:guilabel:`(plus)` icon that appears, and then :ref:`fill out the Schedule Activity form
<activities/form>`.
.. image:: activities/activity-view.png
:align: center
@@ -140,12 +136,6 @@ Enter the following information on the form:
- :guilabel:`Activity Type`: select the type of activity from the drop-down menu. The default
options are: :guilabel:`Email`, :guilabel:`Call`, :guilabel:`Meeting`, or :guilabel:`To-Do`.
Depending on what other applications are installed, additional options may be available.
.. note::
Individual applications have a list of dedicated :ref:`activity types <activities/types>`. For
example, installing the *Sales* application makes :guilabel:`Order Upsell` available, while
installing the *Sign* application makes :guilabel:`Request Signature` available.
- :guilabel:`Summary`: enter a short title for the activity, such as `Discuss Proposal`.
- :guilabel:`Due Date`: using the calendar popover, select the activity's deadline.
- :guilabel:`Assigned to`: by default, the current user populates this field. To assign a different
@@ -187,11 +177,11 @@ buttons:
All scheduled activities
========================
To view a consolidated list of activities, organized by application, click the :guilabel:`🕘
(clock)` icon in the header menu, located in the top-right.
To view a consolidated list of activities, organized by application, click the |clock| in the header
menu, located in the top-right corner.
If any activities are scheduled, the number of activities appear in a red bubble on the
:guilabel:`🕘 (clock)` icon.
|clock|.
All activities for each application are further divided into subsections, indicating where in the
application the activity is to be completed. Each sub-section lists the number of scheduled
@@ -252,6 +242,11 @@ To view the currently configured types of activities in the database, navigate t
Doing so reveals the :guilabel:`Activity Types` page, where the existing activity types are found.
.. tip::
Individual applications have a list of *Activity Types* dedicated to that application. For
example, to view and edit the activities available for the *CRM* application, go to
:menuselection:`CRM app --> Configuration --> Activity Types`.
.. image:: activities/activity-list.png
:align: center
:alt: The list of activity types already configured and available.
@@ -264,7 +259,7 @@ activity type form loads.
Make any desired changes to the activity type form. The form automatically saves, but it can be
saved manually at any time by clicking the :guilabel:`Save Manually` option, represented by a
:guilabel:`(cloud upload)` icon, located in the top-left corner of the page.
:icon:`fa-cloud-upload` :guilabel:`(cloud upload)` icon, located in the top-left corner of the page.
Create new activity types
-------------------------
@@ -347,3 +342,4 @@ It is possible to have another activity either suggested or triggered. To do so,
.. seealso::
- :doc:`../productivity/discuss`
- :doc:`../productivity/discuss/team_communication`
- :doc:`../sales/crm/optimize/utilize_activities`
Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.5 KiB

@@ -0,0 +1,263 @@
:show-content:
========
Contacts
========
The *Contacts* application comes installed on all Odoo databases. Contacts are created for customers
the company does business with through Odoo. A contact is a repository of vital business
information, facilitating communication and business transactions.
Contact form
============
To create a new contact, navigate to the :menuselection:`Contacts app`, and click
:guilabel:`Create`. A new form appears where various contact information can be added.
Contact type
------------
Odoo allows for both :guilabel:`Individual` and :guilabel:`Company` contacts. Select either
:guilabel:`Individual` or :guilabel:`Company`, depending on the type of contact that is being added.
Name
----
First, fill in the name of the :guilabel:`Individual` or :guilabel:`Company`. This is how the name
appears throughout the database. This field is **mandatory**.
.. tip::
:guilabel:`Individual` contacts can have a :guilabel:`Company` contact linked to it. After
selecting :guilabel:`Individual`, a new :guilabel:`Company Name...` field appears below the
first name field.
Address
-------
Next, enter the :guilabel:`Address` of the :guilabel:`Company` or :guilabel:`Individual`.
.. tip::
If the :guilabel:`Individual` option is chosen, then the *type of address* can be chosen from a
drop-down menu. Options for this drop-down menu include: :guilabel:`Contact`, :guilabel:`Invoice
Address`, :guilabel:`Delivery Address`, :guilabel:`Other Address`, and :guilabel:`Private
Address`.
Additional fields
-----------------
Additional details are included on the initial form. The following fields are available:
- :guilabel:`VAT`: Value Added Tax number.
- :guilabel:`Citizen Identification`: citizen or government identification number (only available
on :guilabel:`Individual`).
- :guilabel:`Job Position`: list the job position of the :guilabel:`Individual` (only available on
:guilabel:`Individual`).
- :guilabel:`Phone`: list phone number (with country code). Make a call, send an SMS, or WhatsApp
message by hovering over the field on the saved form, and clicking the desired option.
- :guilabel:`Mobile`: list mobile phone number (with country code). Make a call, send an SMS, or
WhatsApp message by hovering over the field on the saved form, and clicking on the desired option.
- :guilabel:`Email`: enter the email address with the domain.
- :guilabel:`Website`: enter the full website address, starting with `http` or `https`.
- :guilabel:`Title`: select :guilabel:`Doctor`, :guilabel:`Madam`, :guilabel:`Miss`,
:guilabel:`Mister`, :guilabel:`Professor`, or create a new one directly from this field.
- :guilabel:`Tags`: enter preconfigured tags by typing them in the field, or clicking the drop-down
menu, and selecting one. To create a new one, type the new tag in the field, and click
:guilabel:`Create` from the resulting drop-down menu.
Contacts & Addresses tab
------------------------
At the bottom of the contact form are several tabs. On the :guilabel:`Contacts & Addresses` tab,
contacts can be added that are associated with a :guilabel:`Company` and related addresses. For
example, a specific contact person for the company can be listed here.
Multiple addresses can be added on both :guilabel:`Individual` and :guilabel:`Company` contacts. To
do so, click :guilabel:`Add` in the :guilabel:`Contacts & Addresses` tab. Doing so reveals a
:guilabel:`Create Contact` pop-up form, in which additional addresses can be configured.
.. image:: contacts/contact-form-add-address.png
:align: center
:alt: Add a contact/address to the contact form.
On the :guilabel:`Create Contact` pop-up form, start by clicking the default :guilabel:`Other
Address` field at the top to reveal a drop-down menu of address-related options.
Select any of the following options:
- :guilabel:`Contact`: adds another contact to the existing contact form.
- :guilabel:`Invoice Address`: adds a specific invoice address to the existing contact form.
- :guilabel:`Delivery Address`: adds a specific delivery address to the existing contact form.
- :guilabel:`Other Address`: adds an alternate address to the existing contact form.
- :guilabel:`Private Address`: adds a private address to the existing contact form.
.. image:: contacts/create-contact-window.png
:align: center
:alt: Create a new contact/address on a contact form.
Once an option is selected, enter the corresponding contact information that should be used for the
specified address type.
Add the :guilabel:`Contact Name`, :guilabel:`Address`, :guilabel:`Email`, along with the
:guilabel:`Phone` and/or :guilabel:`Mobile` numbers below.
Set the :guilabel:`Job Position`, which appears if the :guilabel:`Contact` address type has been
selected. This is similar to the :guilabel:`Individual` contact.
To add a note, click on the text field next to :guilabel:`Notes`, and write anything that is
applicable to the customer or contact.
Then, click :guilabel:`Save & Close` to save the address, and close the :guilabel:`Create Contact`
window. Or, click :guilabel:`Save & New` to save the address, and immediately input another one.
Sales & Purchase tab
--------------------
Next, is the :guilabel:`Sales & Purchases` tab, which only appears when the *Sales*, *Purchase*,
**or** *Point of Sale* applications are installed.
The :guilabel:`Fiscal Position` can be set on the :guilabel:`Sales & Purchases` tab. Select a
:guilabel:`Fiscal Position` from the drop-down menu.
Sales section
~~~~~~~~~~~~~
Under the :guilabel:`Sales` heading, a specific :guilabel:`Salesperson` can be assigned to a
contact. To do that, click the :guilabel:`Salesperson` drop-down field, and select one. Create a new
:guilabel:`Salesperson` by typing the user's name, and making the appropriate selection.
Certain :guilabel:`Payment Terms`, or a certain :guilabel:`Pricelist`, can also be set, if needed.
Click the drop-down menu next to :guilabel:`Payment Terms`, and change it to one of the preselected
:guilabel:`Payment Terms`, or :guilabel:`Create` a new one. Select the :guilabel:`Pricelist`
drop-down menu to choose the appropriate :guilabel:`Pricelist`.
Click into the :guilabel:`Delivery Method` field to select an option from the drop-down menu.
Point Of Sale section
~~~~~~~~~~~~~~~~~~~~~
Under the :guilabel:`Point Of Sale` heading, enter a :guilabel:`Barcode` that can be used to
identify the contact. Use the :guilabel:`Loyalty Points` field to track points the user won as part
of a *Loyalty Program*.
Purchase section
~~~~~~~~~~~~~~~~
Specify :guilabel:`Payment Terms`, :guilabel:`1099 Box` information, and a preferred
:guilabel:`Payment Method` here. A :guilabel:`Receipt Reminder` can be set here, as well.
Misc section
~~~~~~~~~~~~
Under the :guilabel:`Misc.` heading, use :guilabel:`Reference` field to add any additional
information for this contact. If this contact should only be accessible for one company in a
multi-company database, select it from the :guilabel:`Company` field drop-down list. Use the
:guilabel:`Website` drop-down menu to restrict the publishing of this contact to one website (if
working on a database with multiple websites). Select one or more :guilabel:`Website Tags` to assist
in filtering published customers on the `/customers` website page. Select an :guilabel:`Industry`
for this contact from the drop-down menu. Use the :guilabel:`SLA Policies` field to assign a
*Helpdesk* SLA policy to this contact.
Accounting tab
--------------
The :guilabel:`Accounting` tab appears when the *Accounting* application is installed. Here, a user
can add any related :guilabel:`Bank Accounts`, or set default :guilabel:`Accounting entries`.
Under the :guilabel:`Miscellaneous` heading, use the :guilabel:`LEI` field to enter a Legal Entity
Identifier, if necessary.
Internal Notes tab
------------------
Following the :guilabel:`Accounting` tab is the :guilabel:`Internal Notes` tab, where notes can be
left on this contact form, just like on the contact form noted above.
Partner Assignment tab
----------------------
Next is the :guilabel:`Partner Assignment` tab, which by default, includes a :guilabel:`Geolocation`
section, and other partner options, including :guilabel:`Partner Activation` and :guilabel:`Partner
Review` configurations. These are **only** present when the *Resellers* module is installed.
.. seealso::
Follow the :doc:`Resellers documentation <../sales/crm/track_leads/resellers>` for more
information on publishing partners on the website.
Membership tab
--------------
Finally, there is the :guilabel:`Membership` tab on contact forms, which can help users manage any
memberships that are being offered to this specific contact. It should be noted that this tab
**only** appears when the *Members* application is installed.
Activate membership
~~~~~~~~~~~~~~~~~~~
To activate a contact's membership, click :guilabel:`Buy Membership` in the :guilabel:`Membership`
tab of a contact form. On the pop-up window that appears, select a :guilabel:`Membership` from the
drop-down menu. Then, configure a :guilabel:`Member Price`. Click :guilabel:`Invoice Membership`
when both fields are filled in.
Alternatively, to offer a free membership, tick the :guilabel:`Free Member` checkbox, in the
:guilabel:`Membership` tab of a contact form.
.. seealso::
Follow the :doc:`Members documentation <../sales/members>` for more information on publishing
members on the website.
Smart buttons
=============
At the top of the contact form, there are some additional options available, known as *smart
buttons*.
Here, Odoo displays a variety of records, related to this contact, that were created on other apps.
Odoo integrates information from every single app, so there are many smart buttons.
.. example::
For example, there is an :guilabel:`Opportunities` smart button, where all the opportunities
related to this customer from the *CRM* app are accessible.
.. tip::
If the corresponding applications are installed, their related smart buttons appear
automatically on a contact form.
A user can see any :guilabel:`Meetings`, :guilabel:`Sales`, :guilabel:`POS Orders`,
:guilabel:`Subscriptions`, project :guilabel:`Tasks`, and the :guilabel:`More` smart button reveals
additional options, via a drop-down menu. A user can even quickly access :guilabel:`Purchases`,
:guilabel:`Helpdesk` tasks, :guilabel:`On-time Rate` for deliveries, :guilabel:`Invoiced`
information, :guilabel:`Vendor Bills`, and the :guilabel:`Partner Ledger` connected to this contact.
Deliveries, documents, loyalty cards, and direct debits are *also* linked to smart buttons, like
this, should there be any outstanding/on-file for this contact.
If the contact is a partner, the user can visit their partner page on the Odoo-built website by
clicking the :guilabel:`Go to Website` smart button.
Archive contacts
----------------
If a user decides they no longer want to have this contact active, the record can be archived. To do
that, go to the :icon:`fa-cog` :guilabel:`Action` menu at the top of the contact form, and click
:guilabel:`Archive`.
Then, click :guilabel:`OK` from the resulting :guilabel:`Confirmation` pop-up window.
With this contact successfully archived, as indicated by a banner at the top, they do not show up
in the main contacts page, but they can still be searched for with the :guilabel:`Archived` filter.
.. tip::
A contact can be *unarchived*, if the user decides to work with them again. To do that, just
click the :icon:`fa-cog` :guilabel:`Action` menu again at the top of the archived contact form,
and click :guilabel:`Unarchive`. Upon doing so, the :guilabel:`Archived` banner is removed, and
the contact is restored.
.. seealso::
- :doc:`Add different addresses in CRM <../sales/sales/send_quotations/different_addresses>`
- `Odoo's eLearning Contacts tutorial
<https://www.odoo.com/slides/slide/contacts-2527?fullscreen=1>`_
.. toctree::
:titlesonly:
contacts/merge
Binary file not shown.

After

Width:  |  Height:  |  Size: 28 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

@@ -0,0 +1,78 @@
==============
Merge contacts
==============
Odoo's *Contacts* application allows user's to merge duplicate contacts, without losing any
information in the process. This keeps the database organized, and prevents contacts from being
contacted by more than one salesperson.
.. _contacts/merge-duplicate:
Merge duplicate contacts
========================
.. danger::
Merging is an irreversible action. Do **not** merge contacts unless absolutely certain they
should be combined.
Navigate to the :menuselection:`Contacts app`, and select the :icon:`oi-view-list`
:guilabel:`(list)` icon. Select two or more duplicate contacts from the list, and tick the checkbox
(on the far-left) for the contacts that should be merged. Then, click the :icon:`fa-cog`
:guilabel:`Actions` icon, and select :guilabel:`Merge` from the resulting drop-down menu.
.. image:: merge/merge-menu.png
:align: center
:alt: The merge contacts option in the Contacts application.
This opens the :guilabel:`Merge` pop-up window. From here, review the details of the contacts before
confirming they should be merged. If any contacts in the list should **not** be merged, click the
:icon:`fa-times` :guilabel:`(delete)` icon at the far right of the contact.
.. tip::
Click the individual contact to open the record for that contact, and view additional
information.
.. image:: merge/merge-window.png
:align: center
:alt: The merge pop-up window in the Contacts application.
Click the :guilabel:`Destination Contact` field, and select an option from the drop-down list. This
field defaults to the contact record that was created first in the system.
After confirming the information on the pop-up window, click :guilabel:`Merge Contacts`.
Deduplicate contacts
====================
After the merge is finished, a pop-up window appears confirming it is complete. This pop-up window
also contains a :guilabel:`Deduplicate the other Contacts` button. This feature searches for
duplicated records, based on selected criteria, and merges them automatically, or after manual
approval.
Click the :guilabel:`Deduplicate the other Contacts` button to open the :guilabel:`Deduplicate
Contacts` pop-up window.
Select one or more fields to be used in the search for duplicated records. Duplicated contacts can
be searched, based on the following criteria:
- :guilabel:`Email`
- :guilabel:`Name`
- :guilabel:`Is Company`
- :guilabel:`VAT`
- :guilabel:`Parent Company`
.. note::
If more than one field is selected, only records that have **all** fields in common are suggested
as duplicates.
If necessary, select criteria to be used to exclude potential duplicates from the search. Potential
duplicates can be excluded from the search, based on the following criteria:
- :guilabel:`A user associated to the contact`
- :guilabel:`Journal Items associated to the contact`
After confirming the search criteria, click either :guilabel:`Merge with Manual Check`,
:guilabel:`Merge Automatically`, or :guilabel:`Merge Automatically all process`.
If :guilabel:`Merge with Manual Check` is selected, complete the merge by following the :ref:`steps
above <contacts/merge-duplicate>`.
Binary file not shown.

After

Width:  |  Height:  |  Size: 25 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 20 KiB

@@ -76,6 +76,8 @@ expense either when the transaction occurs (accrual basis) or when the payment i
.. seealso::
:doc:`Cash basis <accounting/taxes/cash_basis>`
.. _accounting/multi-company:
Multi-company
=============
@@ -112,8 +112,8 @@ If not done yet, :ref:`install <general/install>` the :guilabel:`Peppol` module
- Peppol registration is **free** and available in Odoo Community
- You can send **Customer Invoices** and **Credit Notes** and receive **Vendor Bills** and
**Refunds** via Peppol.
- You can send in one of the following supported document formats: **BIS Billing 3.0, XRechnung
CIUS, NLCIUS**.
- You can send and receive in one of the following supported document formats:
**BIS Billing 3.0, XRechnung CIUS, NLCIUS**.
- | The following **countries** are eligible for **Peppol registration in Odoo**:
| Andorra, Albania, Austria, Bosnia and Herzegovina, Belgium, Bulgaria, Switzerland, Cyprus,
Czech Republic, Germany, Denmark, Estonia, Spain, Finland, France, United Kingdom, Greece,
@@ -126,79 +126,102 @@ Registration
Go to :menuselection:`Accounting --> Configuration --> Settings`. If you do not have the
Peppol module installed, first tick the :guilabel:`Enable PEPPOL` checkbox and then **manually
save**.
save**. Click :guilabel:`Start sending via Peppol` to open the registration form.
.. image:: electronic_invoicing/peppol-install.png
:alt: Peppol module installation
.. note::
This registration form also pops up if you choose to :guilabel:`Send & Print` an
invoice via Peppol without completing the registration process.
.. image:: electronic_invoicing/peppol-registration-settings.png
:alt: Peppol registration button
You can register either as a sender or a receiver. A sender can only send invoices and credit notes
on Odoo via Peppol, without ever registering as a Peppol participant on Odoo SMP. If you have an
existing Peppol registration elsewhere that you want to keep, but want to send invoices from your
Odoo database and receive other documents in another software, register as a **sender**.
.. tip::
- You can always register as a sender first and register to receive documents later.
- When registering, you can specify if you would also like to receive documents.
.. image:: electronic_invoicing/peppol-registration-wizard.png
:alt: Peppol registration form
Fill in the following information:
- :guilabel:`Peppol EAS`. This is the Peppol Electronic Address Scheme and usually depends on your
- Check the receiver box if you want to register on Odoo SMP. If you are migrating from another
service provider, insert the :guilabel:`Migration key` from the previous provider (the field
becomes visible after you tick the checkbox).
- :guilabel:`E-Address Scheme`: the Peppol Electronic Address Scheme usually depends on your
company's country. Odoo often prefills this with the most commonly used EAS code in your country.
For example, the preferred EAS code for most companies in Belgium is 0208.
- :guilabel:`Peppol Endpoint`. This is usually a Company Registry number or a VAT number.
- :guilabel:`Phone Number`, including the country code (e.g., `+32` in Belgium)
- :guilabel:`Primary contact email`
For example, the preferred EAS code for most companies in Belgium is `0208`.
- :guilabel:`Endpoint`: this is usually a Company Registry number or a VAT number.
- :guilabel:`Phone`: phone number including the country code (e.g., `+32` in Belgium).
- :guilabel:`Email`: this is the email Odoo can use to contact you regarding your Peppol
registration.
If you want to explore or demo Peppol, you can choose to register in :guilabel:`Demo` mode.
Otherwise, select :guilabel:`Live`.
.. tip::
- Selecting :guilabel:`Demo` simulates everything in Odoo. There is no sending, receiving, or
partner verification.
- For **advanced users only**, it is possible to run tests on Peppol's test network. The server
allows to register on Peppol and send/receive test invoices to/from other participants.
To do so, enable the :ref:`developer-mode`, open the **Settings** app, go to
:menuselection:`Technical --> System Parameters`, and search for `account_peppol.edi.mode`.
Click the parameter and change the :guilabel:`Value` to `test`. Go back to the Peppol setup
menu in the **Settings** app. The option :guilabel:`Test` is now available.
.. image:: electronic_invoicing/peppol-system-parameter.png
:alt: Peppol test mode parameter
.. seealso::
- `Peppol EAS - European Commision <https://ec.europa.eu/digital-building-blocks/wikis/display/DIGITAL/Code+lists/>`_
- `Peppol Endpoint - OpenPeppol eDEC Code Lists <https://docs.peppol.eu/edelivery/codelists/>`_
(open the "Participant Identifier Schemes" as HTML page)
If you are migrating from another access point, insert the :guilabel:`Migration key` from the
previous provider.
When set up, request a verification code to be sent to you by clicking :guilabel:`Send a
registration code by SMS`. A text message containing a code is sent to the phone number provided to
finalize the verification process.
.. image:: electronic_invoicing/peppol-settings.png
:alt: Configuration for peppol
Finally, click :guilabel:`Validate registration`. If you want to explore or demo Peppol, you can
choose to register in :guilabel:`Demo` mode. Otherwise, select :guilabel:`Live`.
.. image:: electronic_invoicing/peppol-demo-mode.png
:alt: Peppol demo mode selection
.. note::
When testing Peppol, the system parameter `account_peppol.edi.mode` can be changed to `test`.
Then, a radio button appears with the option to register on the test server.
.. image:: electronic_invoicing/peppol-system-parameter.png
:alt: Peppol test mode parameter
.. image:: electronic_invoicing/peppol-test-mode-settings.png
:alt: Peppol test mode selection
Now, you can request a verification code to be sent to you by clicking :guilabel:`Verify phone
number`.
.. image:: electronic_invoicing/peppol-registration-verify.png
:alt: phone validation request verification
A text message containing a code is sent to the phone number provided to finalize the verification
process.
.. image:: electronic_invoicing/phone-registration.png
.. image:: electronic_invoicing/peppol-phone-verification.png
:alt: phone validation
Once you enter the code and click :guilabel:`Confirm`, you can see that your registration is pending
activation. From this point onwards, the default journal for receiving Vendor Bills can be set.
Once you enter the code and click :guilabel:`Register`, your Peppol participant status is updated.
If you chose to only send documents, then the status changes to :guilabel:`Can send but
not receive`.
If you opted to receive documents as well, the status changes to :guilabel:`Can send, pending
registration to receive`. In that case, it should be automatically activated within a day.
.. image:: electronic_invoicing/peppol-registration-pending.png
:alt: pending application
It should be automatically activated within a day.
Then, set the default journal for receiving vendor bills in the :guilabel:`Incoming Invoices
Journal`.
.. tip::
It is also possible to manually trigger the cron that checks the registration status by going to
:menuselection:`Settings --> Technical --> Scheduled Actions --> PEPPOL\: update participant
status`.
To manually trigger the cron that checks the registration status, enable the
:ref:`developer-mode`, then go to :menuselection:`Settings --> Technical --> Scheduled Actions`,
and search for the :guilabel:`PEPPOL: update participant status` action.
Your application status should be updated soon after you are registered on the Peppol network.
Your receiver application status should be updated soon after you are registered on the Peppol
network.
.. image:: electronic_invoicing/peppol-registration-active.png
:alt: active application
.. image:: electronic_invoicing/peppol-receiver.png
:alt: receiver application
All invoices and vendor bills can now be sent directly using the Peppol network.
.. important::
To update the email that Odoo can use to contact you, modify the email and click
:guilabel:`Update contact details`.
Configure Peppol services
-------------------------
Once you are registered on Odoo SMP, the :guilabel:`Configure Peppol Services` button
becomes visible to allow you to enable or disable document formats that other participants
can send you via Peppol. By default, all document formats supported by Odoo are enabled (depending
on the installed modules).
Contact verification
--------------------
@@ -222,6 +245,13 @@ It is possible to verify the Peppol participant status of several customers at o
To do so, go to :menuselection:`Accounting --> Customers --> Customers` and switch to the list view.
Select the customers you want to verify and then click :menuselection:`Actions --> Verify Peppol`.
If the participant is registered on the Peppol network but cannot receive the format you selected
for them, the :guilabel:`Peppol endpoint validity` label changes to :guilabel:`Cannot
receive this format`.
.. image:: electronic_invoicing/peppol-participant-format.png
:alt: verify contact ubl format
Send invoices
-------------
Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

After

Width:  |  Height:  |  Size: 10 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 12 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 6.8 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.3 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.9 KiB

@@ -32,7 +32,7 @@ valuation <inventory/avg_price/leaving_inventory>`.
.. seealso::
- :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>`
- :ref:`Other inventory valuation methods <inventory/warehouses_storage/costing_methods>`
Configuration
=============
@@ -263,7 +263,7 @@ value** increases based on the vendor price of the products that have entered th
account (called **stock input**) is credited and only reconciled once the vendor bill is received.
.. seealso::
- :ref:`Anglo-Saxon vs. Continental <inventory/inventory_valuation_config/accounting>`
- :ref:`Anglo-Saxon vs. Continental <inventory/warehouses_storage/accounting-types>`
The table below reflects journal entries and accounts. The *stock input* account stores the money
intended to pay vendors when the vendor bill has not yet been received. To balance accounts when
@@ -15,6 +15,8 @@ When browsing your chart of accounts, you can sort the accounts by :guilabel:`Co
.. image:: chart_of_accounts/chart-of-accounts-sort.png
:alt: Group the accounts by type in Odoo Accounting
.. _chart-of-account/create:
Configuration of an account
===========================
@@ -20,6 +20,8 @@ for use at a later date:
- `Odoo Tutorials: Bank Configuration
<https://www.odoo.com/slides/slide/bank-configuration-1880>`_
.. _payments/register:
Registering payment from an invoice or bill
===========================================
@@ -40,6 +40,8 @@ of your organisation as at a particular date.
.. image:: reporting/main_reports09.png
.. _accounting/reporting/balance-sheet:
Profit and Loss
---------------
@@ -49,6 +51,8 @@ report period.
.. image:: reporting/main_reports10.png
.. _accounting/reporting/executive-summary:
Executive Summary
-----------------
@@ -126,6 +130,8 @@ payment during a selected month and several months prior.
.. image:: reporting/main_reports07.png
.. _accounting/reporting/cash-flow-statement:
Cash Flow Statement
-------------------
Binary file not shown.

After

Width:  |  Height:  |  Size: 2.9 KiB

@@ -122,7 +122,7 @@ available on Odoo.
- :doc:`United Arab Emirates - Accounting <fiscal_localizations/united_arab_emirates>`
- :doc:`UK - Accounting <fiscal_localizations/united_kingdom>`
- Ukraine - Accounting
- United States - Accounting
- :doc:`United States - Accounting <fiscal_localizations/united_states>`
- Uruguay - Accounting
- Venezuela - Accounting
- :doc:`Vietnam - Accounting <fiscal_localizations/vietnam>`
@@ -162,4 +162,5 @@ available on Odoo.
fiscal_localizations/vietnam
fiscal_localizations/united_arab_emirates
fiscal_localizations/united_kingdom
fiscal_localizations/united_states
fiscal_localizations/employment_hero
@@ -758,9 +758,9 @@ Cancel an own check
*******************
To cancel an own check created in Odoo, navigate to :menuselection:`Accounting --> Vendors --> Own
Checks` and select the check to be canceled, then click on the :guilabel:`Void Check` button. This
Checks` and select the check to be cancelled, then click on the :guilabel:`Void Check` button. This
will break the reconciliation with the vendor bills and the bank statements and leave the check in a
**canceled** state.
**cancelled** state.
.. image:: argentina/empty-check-button.png
:align: center
@@ -549,7 +549,7 @@ A range of sequences that are assigned to sales journals can be invalidated with
they are not currently used, **and** will not be used in the future. To do so, navigate to the
journal, and click the :menuselection:`⚙️ (gear) icon --> Invalidate Number Range (BR)`. On the
:guilabel:`Invalidate Number Range (BR)` wizard, add the :guilabel:`Initial Number` and
:guilabel:`End Number` of the range that should be canceled, and enter an invalidation
:guilabel:`End Number` of the range that should be cancelled, and enter an invalidation
:guilabel:`Reason`.
.. image:: brazil/range-number-invalidation.png
@@ -563,7 +563,7 @@ journal, and click the :menuselection:`⚙️ (gear) icon --> Invalidate Number
(NF-e).
.. note::
The log of the canceled numbers along with the XML file are recorded in the chatter of the
The log of the cancelled numbers along with the XML file are recorded in the chatter of the
journal.
Vendor bills
@@ -617,7 +617,7 @@ Note` and select :guilabel:`Full Refund`, in this case the :abbr:`SII (Servicio
Internos)` reference code is automatically set to :guilabel:`Anula Documento de referencia`.
.. image:: chile/credit-note-cancel-ref-doc.png
:alt: Credit note canceling the referenced document.
:alt: Credit note cancelling the referenced document.
:align: center
Correct referenced document
@@ -742,7 +742,7 @@ vendor.
:align: center
If you claim a vendor bill, the status changes from :guilabel:`Draft` to :guilabel:`Cancel`
automatically. Considering this as best practice, all the claimed documents should be canceled as
automatically. Considering this as best practice, all the claimed documents should be cancelled as
they won't be valid for your accounting records.
Electronic purchase invoice
@@ -1196,7 +1196,7 @@ on the client's original order.
:alt: Selection of order for the refund process.
When the return payment is validated, Odoo generates the necessary credit note, referencing the
original receipt or invoice, partially or fully canceling the document.
original receipt or invoice, partially or fully cancelling the document.
.. seealso::
`Smart tutorial - Electronic invoicing for point of sale
@@ -46,6 +46,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?
----------------------
@@ -172,7 +172,7 @@ German Tax Accounting Standards: Odoo's guide to GoBD Compliance
**GoBD** stands for `Grundsätze zur ordnungsmäßigen Führung und Aufbewahrung von Büchern,
Aufzeichnungen und Unterlagen in elektronischer Form sowie zum Datenzugriff
<https://www.bundesfinanzministerium.de/Content/DE/Downloads/BMF_Schreiben/Weitere_Steuerthemen/Abgabenordnung/2019-11-28-GoBD.pdf>`_.
<https://ao.bundesfinanzministerium.de/ao/2021/Anhaenge/BMF-Schreiben-und-gleichlautende-Laendererlasse/Anhang-64/anhang-64.html>`_.
In short, it is a **guideline for the proper management and storage of books, records, and documents
in electronic form, as well as for data access**, that is relevant for the German tax authority, tax
declaration, and balance sheet.
@@ -404,6 +404,16 @@ Send GSTR-1
#. The user can verify the :ref:`GSTR-1 <india/gstr-1_report>` report before uploading it to the
**GST portal** by clicking :guilabel:`GSTR-1 Report`;
#. The user can also get details to be submitted in **GSTR-1** in **Spreadsheet view** by clicking
on :guilabel:`Generate`;
.. image:: india/gst-gstr-1-generate.png
:alt: GSTR-1 generate
.. image:: india/gst-gstr-1-spreadsheet-view.png
:alt: GSTR-1 Spreadsheet View
#. If the **GSTR-1** report is correct, then click :guilabel:`Push to GSTN` to send it to the **GST
portal**. The status of the :guilabel:`GSTR-1` report changes to :guilabel:`Sending`;
Binary file not shown.

After

Width:  |  Height:  |  Size: 7.5 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 38 KiB

@@ -102,18 +102,17 @@ The following codes are available when generating an e-Faktur.
Correct an invoice that has been posted and downloaded: Replace Invoice feature
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#. Cancel the original wrong invoice in Odoo. For instance, we will change the Kode Transakski from 01
to 03 for the INV/2020/0001.
#. Create a new invoice and set the canceled invoice in the *Replace Invoice* field. In this field,
#. Cancel the original wrong invoice in Odoo. For instance, we will change the Kode Transakski from
01 to 03 for the INV/2020/0001.
#. Create a new invoice and set the cancelled invoice in the *Replace Invoice* field. In this field,
we can only select invoices in *Cancel* state from the same customer.
#. As you validate, Odoo will automatically use the same e-Faktur serial number as the canceled and
#. As you validate, Odoo will automatically use the same e-Faktur serial number as the cancelled and
replaced invoice replacing the third digit of the original serial number with *1* (as requested
to upload a replacement invoice in the e-Faktur app).
.. image:: indonesia/indonesia-replace-invoice.png
:align: center
.. _localization_indonesia/reset_e-faktur:
Correct an invoice that has been posted but not downloaded yet: Reset e-Faktur
@@ -379,7 +379,7 @@ TD04 - Credit notes
~~~~~~~~~~~~~~~~~~~
It is the standard scenario for all **credit notes** issued to **domestic** clients, when we need to
formally acknowledge that the seller is reducing or canceling a previously issued invoice, for
formally acknowledge that the seller is reducing or cancelling a previously issued invoice, for
example, in case of overbilling, incorrect items, or overpayment. Just like invoices, they must be
sent to the :abbr:`SdI (Sistema di Interscambio)`, their :guilabel:`Document Type` `TD04`
@@ -7,114 +7,369 @@ Kenya
Configuration
=============
:ref:`Install <general/install>` the following modules to get all the features of the Kenyan
localization:
Install the 🇰🇪 **Kenyan** :ref:`fiscal localization package <fiscal_localizations/packages>` to get
all the features of the Kenyan localization.
.. list-table::
:header-rows: 1
eTIMS
=====
* - Name
- Technical name
- Description
* - :guilabel:`Kenyan - Accounting`
- `l10n_ke`
- Installing this module grants you access to the list of accounts used in the local GAAP and
the list of common taxes (VAT, etc.).
* - :guilabel:`Kenyan - Accounting Reports`
- `l10n_ke_reports`
- Installing this module grants you access to improved accounting reports for Kenya, such as
Profit and Loss and Balance Sheets.
The `Kenya Revenue Authority (KRA) <https://www.kra.go.ke/>`_ has implemented the
`electronic Tax Invoice Management System (eTIMS) <https://www.kra.go.ke/online-services/etims>`_
for tax collection.
You also have to install the **Kenya Tremol Device EDI Integration** package to be able to report
your taxes to the **Kenya Revenue Authority (KRA)** using the Tremol G03 Control Unit:
.. list-table::
:header-rows: 1
* - Name
- Technical name
- Description
* - :guilabel:`Kenya Tremol Device EDI Integration`
- `l10n_ke_edi_tremol`
- Installing this module integrates with the Kenyan G03 Tremol control unit device to report
taxes to KRA through TIMS.
.. image:: kenya/modules.png
:align: center
:alt: The three modules for the Kenya Fiscal Localization Package on Odoo
Kenyan TIMS integration
=======================
The Kenya Revenue Authority (KRA) has decided to go digital for tax collection through the **Tax
Invoice Management System (TIMS)**. As of December 1st, 2022, all VAT-registered persons should
comply with TIMS. The goal is to reduce VAT fraud, increase tax revenue, and increase VAT compliance
through standardization, validation, and transmission of invoices to KRA on a real-time or near
real-time basis.
All VAT-registered taxpayers should use a **compliant tax register**. Odoo decided to develop the
integration of the **Tremol G03 Control Unit (type C)**, which can be run locally through USB. This
device validates invoices to ensure financial documents meet the new regulations and send the
validated tax invoices directly to KRA. Installing a proxy server that provides a gateway between
users and the internet is required.
Installing the proxy server on a Windows device
-----------------------------------------------
Go to `odoo.com/download <https://www.odoo.com/page/download>`_, fill out the required information
and click :guilabel:`Download`.
.. image:: kenya/download.png
:align: center
:alt: Install the Proxy Server on a Windows device
Once it is loaded on your computer, a wizard opens. You have to read and agree with the terms of the
agreement. On the next page, select the :guilabel:`type of install: Odoo IoT`. Then, click
:guilabel:`Next` and :guilabel:`Install`. Once completed, click :guilabel:`Next`. Check the
:guilabel:`Start Odoo` box to be redirected to Odoo automatically, and then click :guilabel:`Finish`.
A new page opens, confirming your :doc:`IoT Box <../../general/iot/config/connect>` is up and
running. Connect your physical device **Tremol G03 Control Unit (type C)** to your laptop via USB.
In the :guilabel:`IoT Device` section, check that your Tremol G03 Control Unit (type C) appears,
confirming the connection between the device and your computer.
.. image:: kenya/iot-box.png
:align: center
:alt: Your IoT box is up and running
To submit documents through eTIMS, you must use an :abbr:`OSCU (Online Sales Control Unit)` that
integrates with the existing **Trader Invoicing System (TIS)**, such as the one provided by Odoo.
The OSCU is used to validate, encrypt, sign, transmit, and store tax invoices.
.. note::
If the device is not detected, try to plug it in again or click on the :guilabel:`Restart` button
in the top right corner.
Make sure to :ref:`install <general/install>` the **Kenya eTIMS EDI** modules to use the OSCU
device fully.
.. _kenya/initialization:
OSCU device initialization
--------------------------
The OSCU must be initialized before use. To do so, navigate to :menuselection:`Settings --> General
Settings`, click :guilabel:`Update Info` in the :guilabel:`Companies` section, and enter your
:guilabel:`Tax ID`.
To initialize the OSCU:
#. Go to :menuselection:`Settings --> General Settings` and scroll down to the :guilabel:`Kenya
eTIMS Integration` section.
#. Set the :guilabel:`eTIMS Server Mode` to :guilabel:`Test` for the initialization.
#. Enter the :guilabel:`Serial Number` of the device and tick the two check boxes.
#. Click :guilabel:`Initialize OSCU`.
.. note::
Three server modes are available:
- :guilabel:`Demo`: Designed for demo purposes; it uses mock data and does not require an
initialized OSCU;
- :guilabel:`Test`: Used to test the connection to eTIMS;
- :guilabel:`Production`: Used for live databases that are ready to send data.
.. Important::
If your device has **already been initialized** (through another ERP, for example), enable the
:doc:`../../general/developer_mode`. Then, in the :guilabel:`Kenya eTIMS Integration` section,
enter the ID of the unit in the :guilabel:`Unit ID` field and the key obtained through a previous
initialization in the :guilabel:`CMC Key` field. Click :guilabel:`Save` when done.
Once the **OSCU module** has been :ref:`initialized <kenya/initialization>`, an OSCU serial number
is generated for each company on that database with its **country** set to :guilabel:`Kenya`. The
serial number is generated based on the VAT number of the company (regardless of its validity). It
is a unique and sequential serial number starting with the prefix `ODOO` followed by the company's
**VAT number** and a sequence of numbers.
Registering on eTIMS
--------------------
Taxpayers *must* sign up and create an account on the `KRA portal <https://etims.kra.go.ke/basic/login/indexLogin>`_.
If you do not have an account yet:
#. Sign up, enter your **PIN**, and verify that all information is correct, including your phone
number, email address, and postal address. Correct any errors on the `iTax page
<https://itax.kra.go.ke/KRA-Portal/>`_.
#. An :abbr:`OTP (One-time Password)` is sent to the phone number provided. Unblock promotional
messages if you do not receive it.
#. Upload the **business owner ID** *or* **director's ID** (as listed on iTax), along with the
filled-out and signed **commitment form** .
#. On the **eTIMS dashboard**, click :guilabel:`Service request` at the top of the page. Select
:guilabel:`OSCU` as the **eTIMS type**, enter `Odoo KE LTD` as the third-party integrator, and
enter your company's OSCU serial number retrieved earlier.
.. note::
Service request approvals are usually quick. If there's a delay, contact the eTIMS operation
or KRA office.
.. admonition:: Commitment form
- Part 1: Fill in the taxpayer's information.
- Part 2: Fill in the business owner's *or* director's information.
- Part 3: Fill in your unique serial number found in Odoo.
- Part 4: Tick **OSCU**, enter Odoo KE LTD PIN `PO52112956W`, and enter the Odoo version you're
using (17.0 or onwards).
- Part 5: Check the mandatory boxes, enter a date, and sign.
eTIMS codes
-----------
Common standard codes are **automatically** fetched from the KRA eTIMS API servers every two days.
To fetch them manually, proceed as follows:
#. Enable the :doc:`../../general/developer_mode`.
#. Go to :menuselection:`Settings --> Technical --> Automation: Scheduled Actions` and search for
:guilabel:`KE eTIMS: Fetch KRA standard codes`.
#. Click the action in the list, then click :guilabel:`Run Manually` to fetch the codes.
Go to :menuselection:`Accounting --> Configuration --> KE OSCU Codes` to view the complete list of
fetched OSCU codes.
.. image:: kenya/oscu-codes.png
:alt: List of fetched OSCU codes.
.. _etims/unspsc:
UNSPSC codes
------------
The KRA needs UNSPSC codes for a product to be **registered**. UNSPSC codes are **automatically**
fetched from the KRA eTIMS API servers every day. To fetch them manually, proceed as follows:
#. Enable the :doc:`../../general/developer_mode`.
#. Go to :menuselection:`Settings --> Technical --> Automation: Scheduled Actions` and search for
:guilabel:`KE eTIMS: Fetch UNSPSC codes from eTIMS`.
#. Click the action in the list, then click :guilabel:`Run Manually` to fetch the codes.
Go to the **product form**, and in the :guilabel:`Accounting` tab, click the :guilabel:`UNSPSC
Category` field to view the complete list of fetched UNSPSC codes.
Notices
-------
Notices are **automatically** fetched from the KRA eTIMS API servers every day. To fetch them
**manually**, proceed as follows:
#. Enable the :doc:`../../general/developer_mode`.
#. Go to :menuselection:`Settings --> Technical --> Automation: Scheduled Actions` and search for
:guilabel:`KE eTIMS: Fetch KRA notices from eTIMS`.
#. Click the action in the list, then click :guilabel:`Run Manually` to fetch the notices.
Go to :menuselection:`Accounting --> Configuration --> KE OSCU Notices` to view the complete list of
fetched notices.
Multi-company
-------------
.. _kenya/branch:
.. seealso::
:doc:`Connect an IoT box to your database <../../general/iot/config/connect>`
:doc:`../../general/companies`
Sending the data to KRA using the Tremol G03 Control Unit
---------------------------------------------------------
If you have :ref:`multiple companies <accounting/multi-company>`, you can centralize and manage them
all on a single Odoo database. The KRA identifies and differentiates the **main** company from
its **subsidiaries** by using IDs. Furthermore, subsidiaries are classified as **branches** of the
main company.
As a pre-requisite, check out that the :ref:`Kenyan Accounting modules
<localization/kenya/configuration>` are installed on your database. Then, go to
:menuselection:`Accounting --> Configuration --> Settings --> Kenya TIMS Integration section`, and
check that the :guilabel:`control Unit Proxy Address` matches the address of the IoT box.
To configure the company's ID, open the **Settings** app, click :guilabel:`Update Info` in the
:guilabel:`Companies` section, and search for the :guilabel:`eTIMS Branch Code` field. The **main
company** has a branch ID equal to `00` in a multi-company environment. Companies that are *not* the
main company have a branch ID other than `00` and are assigned an ID by the KRA.
To send data to KRA, create a new invoice by going to :menuselection:`Accounting Dashboard -->
Customer Invoice card` and clicking :guilabel:`New Invoice`. Upon confirmation of a new invoice, the
:guilabel:`Send invoice to Fiscal Device` button appears. Clicking on it sends the invoice details
to the device and from the device to the government. The :guilabel:`CU Invoice Number` field is now
completed in your invoice, confirming the information has been sent.
To add a branch, go to the :guilabel:`Branches` tab in the **company settings** and click
:guilabel:`Add a line`.
The :guilabel:`Tremol G03 Fiscal Device` tab contains fields that are automatically completed once
the invoice is sent to the government:
- :guilabel:`CU QR Code`: Url from the KRA portal which reflects a QR code.
- :guilabel:`CU Serial Number`: reflects the serial number of the device.
- :guilabel:`CU Signing Date and Time`: The date and time when the invoice has been sent to KRA.
If you click on :guilabel:`Send and Print`, a .pdf of the invoice is generated. The
:guilabel:`Kenyan Fiscal Device Info` is mentioned on the document.
To fetch the **branch ID** from the KRA for your non-main companies, ensure the main company has a
Kenyan :guilabel:`Tax ID` and the OSCU device has been :ref:`initialized <kenya/initialization>`.
Then, go to the :guilabel:`Branches` tab and click :guilabel:`Populate from KRA`.
.. note::
To verify KRA has received the invoice information, take the :guilabel:`CU Invoice Number` and
enter it in the :guilabel:`Invoice Number Checker` section on
`Kenya Revenue Authority website <https://itax.kra.go.ke/KRA-Portal>`_. Click
:guilabel:`Validate` and find the invoice details.
- The KRA considers each **place of supply** as a separate branch (ID).
- The **OSCU** device must be :ref:`initialized independently <kenya/initialization>` for each
branch.
Contact branch ID
-----------------
To attribute a branch ID to a contact, access the contact form, go to the :guilabel:`Accounting`
tab, and enter the branch code in the :guilabel:`eTIMS Branch Code` field.
.. note::
By default, contacts' branch IDs are set to `OO`.
KRA sequences
-------------
.. important::
Odoo invoice sequences and KRA sequences are **different**.
In Odoo, invoice sequences depend on the **main company**. Main companies can see the invoices of
branches, but branches **cannot** see the main company's invoices or those of other branches.
The KRA needs **independent** sequences per branch. Therefore, Odoo manages sequences individually
per branch.
.. example::
If you have a main company with two branches, the invoice sequence would be the following:
- Creating an invoice on **branch 1**: INV/2024/00001;
- Creating an invoice on **branch 2**: INV/2024/00002;
- Creating an invoice on the **main company**: INV/2024/00003.
This is how Odoo manages sequences to be compliant with the KRA regulations:
- Creating an invoice on **branch 1**: INV/2024/00001;
- Creating an invoice on **branch 2**: INV/2024/00001;
- Creating an invoice on the **main company**: INV/2024/00001.
Insurance
=========
For **health service providers**, you can send insurance information about the main and branch
companies and update it in eTIMS. To do so, go to :menuselection:`Accounting --> Configuration -->
Settings`, scroll to the :guilabel:`Kenya eTIMS Integration` section, and fill in the
:guilabel:`Code`, :guilabel:`Name`, and :guilabel:`Rate` fields. Click :guilabel:`Send Insurance
Details` when done.
.. _kenya/product-registration:
Product registration
====================
The KRA requires **products to be registered** first before conducting business operations (such as
stock movements, :abbr:`BOM (Bill of Materials)`, customer invoices, etc.). For a product to be
registered, the following fields must be defined on the product form:
- In the :guilabel:`General Information` tab: :guilabel:`Cost`.
- In the :guilabel:`Accounting` tab:
- :guilabel:`Packaging Unit`;
- :guilabel:`Packaging Quantity`;
- :guilabel:`Origin Country`;
- :guilabel:`eTIMS Product Type`;
- :guilabel:`Insurance Applicable`;
- :ref:`UNSPSC Category <etims/unspsc>`.
If the elements above are defined, the product is automatically registered while sending the
operation to the KRA. If not, you will be alerted by a yellow banner at the top of the screen
inviting you to check the missing elements.
.. image:: kenya/product-registration.png
:alt: Product registration template.
Stock movements
===============
All **stock movements** must be sent to the KRA. They do not require an invoice if they are
internal operations or stock adjustments; therefore, Odoo automatically sends them if at least one
of the following conditions are met:
#. No contact is set for the move;
#. The contact is your main company or a branch of the main company.
If the stock moves are **external operations** (e.g., to contacts that are not part of the main
company or its branches), the stock moves are automatically sent *after* the invoice is sent to
eTIMS.
.. note::
- The stock move must be confirmed before sending the invoice to eTIMS.
- The product(s) must be :ref:`registered <kenya/product-registration>` for the stock move to be
sent to eTIMS. If the product has not been registered yet, a yellow banner will prompt the
products' registration.
Purchases
=========
Odoo automatically fetches new vendor bills from eTIMS every day. You need to confirm the fetched
vendor bills and send the confirmation to the KRA. To confirm a vendor bill, it must be linked to
one or several confirmed purchase order line(s).
.. _kenya/purchases:
In the case of purchases (not customs imports), the steps to link purchase order lines with bills
are the following:
#. Go to :menuselection:`Accounting --> Vendors --> Bills`.
The vendor bill is fetched from the KRA servers. The JSON file is available in the chatter of the
vendor bill if needed.
#. Odoo looks at the :guilabel:`Tax ID` (PIN) of the vendor (partner);
- If it is unknown, a new contact (partner) is created.
- If it is known and the branch ID is the same, Odoo uses the known contact.
#. In the fetched bill from the KRA, select the :guilabel:`Product`. Each vendor bill *must* contain
a product to be confirmed and sent to eTIMS later on.
#. Odoo checks existing purchase order lines matching the product(s) entered at the previous step
and the partner (if any). Click the :guilabel:`Purchase Order Line` field, and select the correct
related purchase order line(s) matching the product(s). The quantities on the bill *must* be the
same as the received quantities indicated on the purchase order.
If no existing purchase order line matches the lines of the fetched bill, click
:guilabel:`Create Purchase Order` and create a purchase order based on the unmatched line(s).
:guilabel:`Validate` the resulting stock move and :guilabel:`Confirm` the bill.
#. Set a method in the :guilabel:`eTIMS Payment Method` field..
#. Once all steps are completed, click :guilabel:`Send to eTIMS` to send the vendor bill. When the
vendor bill has been confirmed on eTIMS, the **KRA invoice number** can be found in the
:guilabel:`eTIMS Details` tab.
.. image:: kenya/purchase-order-lines.png
:alt: Bill registration steps.
Invoicing
=========
.. note::
The KRA does *not* accept sales if the product is not in stock.
This is the **advised sales flow** in Odoo when selling:
#. Create a **sales order**.
#. :guilabel:`Validate` the delivery.
#. :guilabel:`Confirm` the invoice.
#. Click :guilabel:`Send and print`, and then enable :guilabel:`Send to eTIMS`.
#. Click :guilabel:`Send & print` to send the invoice.
Once the invoice has been sent and signed by the KRA, the following information can be found on
it:
- **KRA invoice number**;
- Mandatory KRA invoice fields, such as **SCU information**, **date**, **SCU ID**, **receipt
number**, **item count**, **internal date**, and **receipt signature**;
- The **KRA tax table**;
- A unique **KRA QR code** for the signed invoice.
Imports
=======
Customs import codes are **automatically** fetched from the KRA eTIMS API servers every day. To
fetch them manually, proceed as follows:
#. Enable the :doc:`../../general/developer_mode`.
#. Go to :menuselection:`Settings --> Technical --> Automation: Scheduled Actions` and search for
:guilabel:`KE eTIMS: Receive Customs Imports from the OSCU`.
#. Click the action in the list, then click :guilabel:`Run Manually` to fetch the codes.
Go to :menuselection:`Accounting --> Vendors --> Customs Imports` to view the imported codes.
The following steps are required to send and have **customs imports** signed by the KRA:
#. Go to :menuselection:`Accounting --> Vendors --> Customs Imports`; The customs import is fetched
automatically from the KRA.
#. Match the imported item with an existing registered product in the :guilabel:`Product` field (or
create a product if no related product exists).
#. Set a vendor in the :guilabel:`Partner` field.
#. Based on the partner, match the imported item with its related purchase order (see
:ref:`purchase steps <kenya/purchases>`). The stock must be correctly adjusted when the customs
import is approved.
If no related purchase order exists, create one and :guilabel:`Confirm` it. Then, confirm the
delivery by clicking :guilabel:`Receive Products`, then :guilabel:`Validate` on the purchase
order.
#. Click :guilabel:`Match and Approve` or :guilabel:`Match and Reject`, depending on the
situation of the goods.
.. note::
The JSON file received from the KRA is attached to the chatter of the customs import.
BOM
===
The KRA requires all BOMs to be sent to them. To send BOMs to eTIMS, the product and its components
*must* be :ref:`registered <kenya/product-registration>`. To access a product's BOM, click on the
product and then click the :guilabel:`Bill of Materials` smart button.
Make sure the :ref:`KRA's required fields <kenya/product-registration>` are filled in the
:guilabel:`KRA eTIMS details` section of the :guilabel:`Accounting` tab in the product form, and
click :guilabel:`Send to eTIMS`. The successful sending of the BOM is confirmed in the chatter,
where you can also find the sent information in an attached JSON file.
Credit notes
============
The KRA does not accept credit notes with quantities or prices higher than the initial invoice. When
creating a credit note, a KRA reason must be indicated: In the credit note form, go to the
:guilabel:`eTIMS Details` tab, select the :guilabel:`eTIMS Credit Note Reason`, and then select the
invoice number in the :guilabel:`Reversal of` field.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 27 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 33 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 42 KiB

@@ -467,11 +467,11 @@ there are two requirements for this:
There are four different cancellation reasons. In Odoo, you can cancel invoices with the reasons *01
Invoices sent with errors with a relation*, and *02 Invoices sent with errors without a relation*.
The following sections break down the process of canceling invoices for each cancellation reason in
The following sections break down the process of cancelling invoices for each cancellation reason in
Odoo.
.. important::
Odoo has certain limitations to canceling invoices in the |SAT|: The reasons 03 and 04
Odoo has certain limitations to cancelling invoices in the |SAT|: The reasons 03 and 04
(*Operation did not take place* and *Nominative transactions related to a global invoice*,
respectively) are not currently supported by Odoo. For this, you need to cancel the invoice
directly in the |SAT|, and press :guilabel:`Retry` in the :guilabel:`SAT Status field`.
@@ -490,12 +490,12 @@ of the old invoice after the value. Finally, sign the new document.
Next, navigate back to the old invoice, and notice the :guilabel:`Substituted By` field is now
available. Click the :guilabel:`Request EDI Cancellation` button on the old invoice, and then click
:guilabel:`Process Now` in the blue section that appears. The invoice status changes to
:guilabel:`Canceled`, and a confirmation is logged in the chatter.
:guilabel:`Cancelled`, and a confirmation is logged in the chatter.
Now, the invoice should be canceled in the |SAT| as well. You can confirm this was done correctly,
Now, the invoice should be cancelled in the |SAT| as well. You can confirm this was done correctly,
by pressing :guilabel:`Retry` in the |SAT| status field.
If the document was canceled more than 24 hours after its creation, you may need to ask the client
If the document was cancelled more than 24 hours after its creation, you may need to ask the client
to accept the cancellation in their “Buzón Tributario” directly from the `SAT website
<https://www.sat.gob.mx/home>`_.
@@ -0,0 +1,748 @@
=============
United States
=============
.. |GAAP| replace:: :abbr:`GAAP (Generally Acceptable Accounting Practices)`
.. |FASB| replace:: :abbr:`FASB (Financial Accounting Standards Board)`
.. |SEC| replace:: :abbr:`SEC (Securities and Exchange Commission)`
.. |COA| replace:: :abbr:`CoA (Chart of Accounts)`
.. |AR| replace:: :abbr:`AR (Accounts Receivable)`
.. |AP| replace:: :abbr:`AP (Accounts Payable)`
.. |CFS| replace:: :abbr:`CFS (Cash Flow Statement)`
.. |NACHA| replace:: :abbr:`NACHA (National Automated Clearing House Association)`
.. |ACH| replace:: :abbr:`ACH (Automated Clearing House)`
The Odoo fiscal localization package for the United States follows the Generally Acceptable
Accounting Principles (GAAP) accounting standards and rules used to prepare financial statements,
as outlined by the Financial Accounting Standards Board (FASB) and adopted by the Securities and
Exchange Commission (SEC).
.. seealso::
- `Financial Accounting Standards Board (FASB) <https://asc.fasb.org/Home>`_
- `Securities and Exchange Commission (SEC) <https://www.sec.gov/>`_
In addition, a series of videos on the subject of Accounting are available through Odoo's eLearning
platform. These videos cover how to start from scratch, set up configurations, complete common
workflows, and provide in-depth looks at some specific use cases, as well.
.. seealso::
- `Odoo Tutorials: Accounting & Invoicing
<https://www.odoo.com/slides/accounting-and-invoicing-19>`_
- `Odoo SmartClass: Accounting <https://www.odoo.com/slides/smartclass-accounting-121>`_
Configuration
=============
Below are the available modules in Odoo for accounting use in the United States.
.. note::
The modules listed below are either for reference only or are optional, as the core requirements
to operate under the US fiscal localization in Odoo are already included under the default
package that came installed during database initialization.
Verify the default package is in use by navigating to :menuselection:`Accounting App -->
Settings` and under the :guilabel:`Fiscal Localization` section at the top, look for the `Generic
Chart Template` selection to be listed next to the :guilabel:`Package` field label. This chart
template includes the necessary settings for the US localization for the Odoo *Accounting* app.
.. image:: united_states/us-l10n-generic-chart-template.png
:align: center
:alt: The Generic Chart Template comes pre-configured for the US localization.
Modules installation
--------------------
:ref:`Install <general/install>` the following modules to get all the features of the United States
localization:
.. list-table::
:header-rows: 1
:widths: 25 25 50
* - Name
- Technical name
- Description
* - :guilabel:`United States - Accounting`
- `l10n_us`
- Base accounting module for United States localization.
* - :ref:`US - Accounting Reports <l10n_us/reports>`
- `l10n_us_reports`
- Adds United States accounting reports.
* - :guilabel:`US Checks Layout`
- `l10n_us_check_printing`
- Enables the printing of payments on pre-printed check paper. Supports the three most common
check formats and will work out of the box with the linked checks from `checkdepot.net
<https://checkdepot.net/collections/computer-checks/Odoo>`_.
- `Check on top: Quicken / QuickBooks standard
<https://checkdepot.net/collections/computer-checks/odoo+top-check>`_
- `Check on middle: Peachtree standard
<https://checkdepot.net/collections/computer-checks/odoo+middle-check>`_
- `Check on bottom: ADP standard
<https://checkdepot.net/collections/computer-checks/odoo+Bottom-Check>`_
* - :ref:`NACHA Payments <l10n_us/nacha>`
- `l10n_us_payment_nacha`
- Export payments as NACHA files for use in the United States.
* - :ref:`1099 Reporting <l10n_us/1099-report>`
- `l10n_us_1099`
- Export 1099 data for e-filing with a 3rd party.
* - :ref:`Avatax <l10n_us/taxes-avatax>`
- `account_avatax`
- Module for the :doc:`AvaTax integration <../accounting/taxes/avatax>` with Odoo.
* - :ref:`United States - Payroll <l10n_us/payroll>`
- `l10n_us_hr_payroll`
- Includes the necessary rules for United States payroll, including:
- Employee Details
- Employee Contracts
- Passport-based Contracts
- Allowances/Deductions
- Allow Configurations for Basic/Gross/Net Salary
- Employee Payslip
- Integration with Leaves Management
* - :ref:`United States - Payroll with Accounting <l10n_us/payroll>`
- `l10n_us_hr_payroll_account`
- Contains the necessary accounting data for the United States payroll rules.
* - :ref:`United States - Payroll - Export to ADP <l10n_us/adp>`
- `l10n_us_hr_payroll_adp`
- Export Work Entries to the ADP payroll software.
.. _l10n_us/coa:
Chart of accounts
=================
The :doc:`chart of accounts (COA) <../accounting/get_started/chart_of_accounts>` for the United
States localization, in Odoo, follows the standard |GAAP| structure, with accounts grouped into
seven main categories, with corresponding numeric values that prefix individual journal entries:
- **Receivable**: the balance of money (or credit) due to the business for goods or services
delivered or used, but not yet paid for by customers. |AR| is indicated by the journal code
labeled (or beginning) with :guilabel:`1`.
- **Payable**: the business's short-term obligations owed to its creditors or suppliers, which have
not yet been paid. |AP| is indicated by the journal code labeled (or beginning) with
:guilabel:`2`.
- **Equity**: the amount of money that would be returned to a company's shareholders if all of the
assets were liquidated and all of the company's debt was paid off in the case of liquidation.
Equity is indicated by the journal code labeled (or beginning) with :guilabel:`3` or
:guilabel:`9`.
- **Assets**: items listed on the balance sheet that contains economic value or have the ability to
generate cash flows in the future, such as a piece of machinery, a financial security, or a
patent. Assets are indicated by the journal code labeled (or beginning) with :guilabel:`1`.
- **Liability**: refers to a company's financial debts or obligations that arise during the course
of business operations. Liabilities are indicated by the journal code labeled (or beginning) with
:guilabel:`2`.
- **Income**: synonymous with *net income*, this is the profit a company retains after paying off
all relevant expenses from sales revenue earned. Income is indicated by the journal code labeled
(or beginning) with :guilabel:`4` or :guilabel:`6`.
- **Expenses**: the cost of operations that a company incurs to generate revenue. Expenses are
indicated by the journal code labeled (or beginning) with a :guilabel:`6`.
.. tip::
Predefined accounts are included in Odoo, as part of the |CoA| that's installed with the US
localization package. The accounts listed below are preconfigured to perform certain operations
within Odoo. It is recommended to **not** delete these accounts; however, if changes are needed,
rename the accounts instead.
.. list-table::
:header-rows: 1
:stub-columns: 1
* - :guilabel:`Type`
- :guilabel:`Account Name`
* - :guilabel:`Current Assets`
- | :guilabel:`Bank Suspense Account`
| :guilabel:`Outstanding Receipts`
| :guilabel:`Outstanding Payments`
| :guilabel:`Liquidity Transfer`
| :guilabel:`Stock Valuation`
| :guilabel:`Stock Interim (Received)`
| :guilabel:`Stock Interim (Delivered)`
| :guilabel:`Cost of Production`
* - :guilabel:`Income`
- | :guilabel:`Foreign Exchange Gain`
| :guilabel:`Cash Difference Gain`
| :guilabel:`Cash Discount Gain`
* - :guilabel:`Expenses`
- | :guilabel:`Cash Discount Loss`
| :guilabel:`Foreign Exchange Loss`
| :guilabel:`Cash Difference Loss`
* - :guilabel:`Current Year Earnings`
- :guilabel:`Undistributed Profits/Losses`
* - :guilabel:`Receivable`
- :guilabel:`Account Receivable`
* - :guilabel:`Payable`
- :guilabel:`Account Payable`
.. seealso::
- :doc:`../accounting/get_started/chart_of_accounts`
- :doc:`../accounting/get_started/cheat_sheet`
View, edit, and sort accounts
-----------------------------
Access the *Chart of Accounts* dashboard in Odoo by navigating to :menuselection:`Accounting app
--> Configuration --> Accounting: Chart of Accounts`.
From the :guilabel:`Chart of Accounts` dashboard, create new accounts by clicking the purple
:guilabel:`New` button in the top-left corner of the dashboard and :ref:`filling in the
corresponding form <chart-of-account/create>`. Search and sort through existing accounts by using
specific :guilabel:`Filters` and :guilabel:`Group By` criteria, which are available in the mega menu
under the :guilabel:`Search...` bar.
To filter accounts by category, click the :icon:`fa-caret-down` :guilabel:`(caret down)` icon to
access the mega menu and look under the :guilabel:`Filters` column for individual selections.
Clicking on a specific category will only show accounts that match that particular filter.
To view all the available account types, remove all of the filters in the :guilabel:`Search...` bar,
and then click the :icon:`fa-caret-down` :guilabel:`(caret down)` icon to access the mega menu. From
there, select :guilabel:`Account Type` under the :guilabel:`Group By` column heading to list all of
the account types in the table.
.. image:: united_states/us-l10n-coa-account-types.png
:align: center
:alt: Chart of Accounts grouped by Account Type.
Besides structure, there are other key differences in the chart of accounts in the United States,
compared to other countries:
- **Specificity**: US |GAAP| often requires more detailed accounts compared to some other countries.
This can include separate accounts for various types of revenue, expenses, and assets, providing
more granular information in financial reports.
- **Regulatory Requirements**: In the United States, there are specific regulatory requirements set
by bodies such as the |SEC| for publicly traded companies. These requirements may influence the
structure and content of the |COA| to ensure compliance with reporting standards.
- **Industry Practices**: Certain industries in the United States may have unique accounting
requirements or specialized |COA| structures. For example, financial institutions often have
specific accounts related to loans, investments, and interest income.
- **Tax Considerations**: The |COA| may also reflect tax considerations, such as accounts for
deductible expenses, deferred tax assets, and liabilities, to ensure compliance with tax laws and
facilitate tax reporting.
These differences, ultimately, should be reflected in the |COA| structure itself, with the addition
of new accounts, as needed, in order to meet the demands of US accounting reporting requirements.
.. seealso::
- :ref:`Create a new account <chart-of-account/create>`
- :doc:`../../essentials/search`
.. _l10n_us/taxes:
Taxes
=====
In the United States, tax rates and what is considered taxable vary by jurisdiction. Default *Sales*
and *Purchase* taxes are created automatically when the Odoo *Accounting* application is installed.
To manage existing or configure additional taxes, navigate to :menuselection:`Accounting -->
Configuration --> Taxes`.
.. _l10n_us/taxes-avatax:
AvaTax
------
**Avalara AvaTax** is a cloud-based tax calculation and compliance software that integrates with
Odoo for the United States and Canadian accounting localizations. Integrating AvaTax with Odoo
provides real-time and region-specific tax calculations when items are sold, purchased, and invoiced
in the database.
.. important::
AvaTax is only available for integration with databases/companies that have locations in the
United States and Canada. This means the fiscal position/country of a database can only be set to
the United States or Canada. Reference this documentation for more information:
:ref:`avatax/fiscal_country`.
.. seealso::
Refer to the documentation articles below to integrate and configure an AvaTax account with an
Odoo database:
- :doc:`AvaTax integration <../accounting/taxes/avatax>`
- :doc:`Avalara management portal <../accounting/taxes/avatax/avalara_portal>`
- :doc:`Calculate taxes with AvaTax <../accounting/taxes/avatax/avatax_use>`
- `US Tax Compliance: AvaTax elearning video
<https://www.odoo.com/slides/slide/us-tax-compliance-avatax-2858?fullscreen=1>`_
- Avalara's support documents: `About AvaTax
<https://community.avalara.com/support/s/document-item?language=en_US&bundleId=dqa1657870670369_dqa1657870670369&topicId=About_AvaTax.html&_LANG=enus>`_
.. _l10n_us/reports:
Reports
=======
A number of :doc:`report selections <../accounting/reporting>` are readily available for the US
localization, under the :menuselection:`Accounting app --> Reporting` drop-down menu:
- :ref:`Balance Sheet <reporting/balance-sheet>`: a "snapshot" of a company's financial position at
a specific point in time, which contains an overview of a company's assets, liabilities, and
equity.
- :ref:`Profit & Loss <accounting/reporting/balance-sheet>`: otherwise known as a *P&L statement* or
*income statement*, provides a summary of a company's revenues, expenses, and profits/losses over
a given period of time.
- :ref:`Cash Flow Statement <l10n_us/cash-flow-statement>`: shows how much cash and cash equivalents
a company has received and spent in a given period.
- :ref:`Executive Summary <accounting/reporting/executive-summary>`: an overview report that covers
the key performance indicators of a company's financial position, such as revenue, profit, and
debt.
- :ref:`Tax Report <reporting/tax-report>`: an official form filed for a tax authority that reports
income, expenses, and other pertinent tax information. Tax reports allow taxpayers to calculate
their tax liability, schedule tax payments, or request refunds for the overpayment of taxes. In
Odoo, the tax report can be made monthly, every two months, quarterly, every 4 months,
semi-annually, and annually.
- :guilabel:`Check Register`: a report that displays cash transactions (regardless of the journal)
with their running balance after the transaction. Only visible with the *US - Accounting Reports*
(`l10n_us_reports`) module installed.
- :ref:`1099 Report <l10n_us/1099-report>`: a CSV download of payments made to non-employees in a
period to file electronically in a third-party service. Only visible with the *1099 Reporting*
(`l10n_us_1099`) module installed.
.. _l10n_us/report-filters:
Depending on the type of report, certain filters are available at the top of the dashboard:
- a *date* filter, indicated by a :icon:`fa-calendar` :guilabel:`(calendar)` icon that precedes a
date in *MM/DD/YYYY* format. Use this to select a specific date or date range for the report.
- a :icon:`fa-bar-chart` :guilabel:`Comparison` filter, to compare reporting periods against each
other
- a *journal* filter, as indicated by a :icon:`fa-book` :guilabel:`(book)` icon and the default
setting of :guilabel:`All Journals`. Use this filter to specify which journals should be included
in the report.
- an *entries type* filter, as indicated by a :icon:`fa-filter` :guilabel:`(filter)` icon, with the
default setting of :guilabel:`Posted Entries Only, Accrual Basis`. Use this filter to determine
which type of journal entries should be included in the report (e.g. posted or draft), along with
the type of accounting method (e.g. accrual or cash basis).
- There are view options in this filter, as well, one that will :guilabel:`Hide lines at 0` for
more relevant viewing, along with a :guilabel:`Split Horizontally` option to keep the report
above the screen's fold, removing the need to scroll.
.. image:: united_states/us-l1on-accounting-method-reporting-menu.png
:align: center
:alt: Accounting method filter menu for reports, covering accrual vs. cash basis methods.
- a *decimal* filter, that by default, includes figures with cents, as indicated by the
:guilabel:`In .$` setting. Use the other options in the drop-down menu to change figures in the
report to whole numbers (:guilabel:`In $`), thousands (:guilabel:`In K$`), or millions
(:guilabel:`In M$`) formats.
- a report *customization* filter, indicated by the :icon:`fa-cogs` :guilabel:`(gears)` icon. Use
this filter to customize the current report's sections and line items, or build new reports, as
desired.
.. seealso::
- :doc:`Accounting reporting <../accounting/reporting>`
- :doc:`../../essentials/search`
.. _l10n_us/1099-report:
1099 report
-----------
The 1099 report, available by :ref:`installing <general/install>` the *1099 Reporting*
(`l10n_us_1099`) module, includes payments that are made to non-employees across a given reporting
period. Use the available CSV download from the report in Odoo to file 1099 payments electronically
via a third-party service.
To generate a 1099 report, navigate to :menuselection:`Accounting app --> Reporting --> Management:
1099 Report` to open a :guilabel:`1099 Report` wizard.
First, enter the date range of the transactions to report in the :guilabel:`Start Date` and
:guilabel:`End Date` fields.
Then, edit the journal items that appear on the wizard. Click :guilabel:`Add a line` to add any
items that are missing. Be sure to remove any items that should not be included in the report by
clicking :icon:`fa-times` :guilabel:`(delete)` on the row.
Finally, once all necessary items are included in the 1099 report, click on the :guilabel:`Generate`
button. Doing so, downloads a CSV file that groups transactions by the partner that received the
payments.
.. _l10n_us/cash-flow-statement:
Cash flow statement
-------------------
Navigate to the *Cash Flow Statement* (CFS) dashboard by going to :menuselection:`Accounting app -->
Reporting --> Statement Reports: Cash Flow Statement`. From here, |CFS| reports can be generated
using the various :ref:`filters <l10n_us/report-filters>` that are available at the top of the
dashboard.
Odoo uses the *direct* cash flow method to compile cash flow statements, which measures actual cash
inflows and outflows from the company's operations, such as when cash is received from customers or
when cash payments are made to suppliers.
By default, an account labeled with any of the three default :guilabel:`Tags` on the
:guilabel:`Chart of Accounts` dashboard will be included in the report, which includes:
:guilabel:`Operating Activities`, :guilabel:`Financing Activities`, and :guilabel:`Investing &
Extraordinary Activities`.
.. image:: united_states/us-l10n-cash-flow-statement-tags.png
:align: center
:alt: Examples of tagged accounts that are included in the Cash Flow Statement in Odoo.
Additionally, the cash flow statement in Odoo:
- is limited to the *Bank* and *Cash* journals to reflect money coming in or out; and
- also contains *Expenses* accounts, to show the counterpart transactions versus *Bank* or *Cash*
journal entries, while excluding |AR| and |AP| activity.
.. example::
Create a vendor bill for $100, as an operating expense (not |AP|). Doing so will **not** reflect
a transaction on the cash flow statement. However, register a corresponding payment for $100,
and the transaction **will** reflect on the cash flow statement as :guilabel:`Cash paid for
operating activities`.
.. image:: united_states/us-l10n-operating-expenses-example.png
:align: center
:alt: Example of a bill registered as an operating expense as part of a cash flow statement.
.. _l10n_us/cash-discount:
Cash discount
=============
Cash discounts can be configured from :menuselection:`Accounting app --> Payment Terms`. Each
payment term can be set up with a cash discount and reduced tax.
.. seealso::
:doc:`../accounting/customer_invoices/cash_discounts`
.. _l10n_us/writing-checks:
Writing checks
==============
Using checks is still a common payment practice in the US. Be sure the *US Checks Layout*
(`l10n_us_check_printing`) module for the US localization is :ref:`installed <general/install>`.
To enable check printing from Odoo, navigate to :menuselection:`Accounting --> Configuration -->
Settings` and find the :guilabel:`Vendor Payments` section. From here, tick the :guilabel:`Checks`
checkbox to reveal several fields for check configuration.
Select a :guilabel:`Check Layout` from the drop-down menu:
- :guilabel:`Print Check (Top) - US`
- :guilabel:`Print Check (Middle) - US`
- :guilabel:`Print Check (Bottom) - US`
Next, choose whether or not to enable the :guilabel:`Multi-Pages Check Stub` checkbox.
Optionally set a :guilabel:`Check Top Margin` and :guilabel:`Check Left Margin`, if required.
Once all check configurations are complete, :guilabel:`Save` the settings.
.. tip::
Some of the check formats may require pre-printed paper from a third party vendor,
https://checkdepot.net/collections/odoo-checks is recommended.
.. seealso::
:doc:`../accounting/payments/pay_checks`
.. _l10n_us/payroll:
Payroll
=======
The *Payroll* application is responsible for calculating an employee's pay, taking into account all
work, vacation, and sick time, benefits, and deductions. The *Payroll* app pulls information from
the *Attendances*, *Timesheets*, *Time Off*, *Employees* and *Expenses* applications, to calculate
the worked hours and compensation for each employee.
When using an external payroll provider, such as *ADP*, it is necessary to export the various
payroll-related data, such as work entries, repayment of expenses, taxes, commissions, and any other
relevant data, so the data can be uploaded into the payroll provider, who then issues the actual
paychecks or directly deposits the funds into an employee's bank account.
In order to export the payroll data, the work entries must first be validated and correct. Refer to
the :doc:`work entries <../../hr/payroll/work_entries>` documentation for more information
regarding validating work entries.
Once work entries are validated, the information can be :ref:`exported to ADP <l10n_us/adp>`.
After payments have been issued to employees, payslips can be processed into batches, validated, and
posted to the corresponding accounting journals to keep all financial records in Odoo current.
Required information
--------------------
It is important to have the *Employees* application installed, and all employee information
populated. Several fields in both the :ref:`employee records <l10n_us/payroll-employee-records>`, as
well as in an :ref:`employee contracts <l10n_us/payroll-employee-contracts>`, are necessary to
properly process the employee's pay. Ensure the following fields are filled out in their respective
places.
.. _l10n_us/payroll-employee-records:
Employee records
~~~~~~~~~~~~~~~~
In each employee record, there is various information the *Payroll* application requires to properly
process payslips, including various banking, tax, and work information.
Navigate to the :menuselection:`Employees app` and select an employee record to view the sections of
the employee form that directly affect *Payroll*:
- :guilabel:`Work Information` tab:
- :guilabel:`Work Address`: indicates where the employee is located, including the state, which
affects the tax calculations.
- :guilabel:`Working Hours`: determines how pay is calculated, and determines if an employee earns
overtime.
- :guilabel:`Private Information` tab:
- :guilabel:`SSN No`: the last four digits of the employee's Social Security Number (SSN) appears
on payslips.
- :guilabel:`Bank Account Number`: the bank account associated with the NACHA payment file.
- :guilabel:`HR Settings` tab:
- :guilabel:`Federal Tax Filing Status`: the tax status an employee uses for Payroll tax
calculations, which can be different from their state status.
- :guilabel:`State Tax Filing Status`: the tax status an employee uses for their state portion of
the Payroll tax calculation.
- :guilabel:`W-2 Form`: a US tax form indicating the summary of wages, taxes, and benefits paid to
an employee during a tax period (typically one year).
- :guilabel:`W-4 Form`: an IRS form that helps outline the amount of federal taxes to withhold for
an employee, which is paid to the IRS by the company.
.. _l10n_us/payroll-employee-contracts:
Employee contracts
~~~~~~~~~~~~~~~~~~
Additionally, there is information that is found in an employee contract that also affects the
*Payroll* application.
Navigate to the :menuselection:`Employees app --> Employees --> Contracts` and select a contract
record to view the sections of a contract that directly affect *Payroll*:
- :guilabel:`General Information`:
- :guilabel:`Salary Structure Type: United States: Employee`: defines when the employee is paid,
their working schedule, and the work entry type.
- :guilabel:`Work Entry source`: determines how work entries are calculated.
- :guilabel:`Salary Information` tab:
- :guilabel:`SSN No`: the last four digits of the employee's Social Security Number (SSN) appears
on payslips.
- :guilabel:`Wage type`: determines how the employee is paid, wether a Fixed wage (salary) or
Hourly wage.
- :guilabel:`Schedule Pay`: defines how often the employee is paid, either :guilabel:`Annually`,
:guilabel:`Semi-annually`, :guilabel:`Quarterly`, :guilabel:`Bi-monthly`, :guilabel:`Monthly`,
:guilabel:`Semi-monthly`, :guilabel:`Bi-weekly`, :guilabel:`Weekly`, or :guilabel:`Daily`. In
the US, Semi-monthly (24 payments a year) or bi-weekly (26 payments a year) are the most common.
- :guilabel:`Wage, Yearly, and Monthly cost`: used to show the total cost of an employee. It is
recommended to populate the :guilabel:`Yearly` wage first, as it auto-populates the other
fields.
- :guilabel:`Pre-tax benefits`: populate this section according to the employee's selections.
Pre-tax benefits decrease the gross wage, which lowers the base amount that is taxed. These are
displayed at the beginning of the payslip.
- :guilabel:`Post-tax benefits`: these benefits are deductions made *after* taxes are calculated.
These appear towards the end of the payslip before the net amount is displayed.
.. seealso::
:doc:`Employees documentation <../../hr/employees/new_employee>`
.. _l10n_us/adp:
Export work entries to ADP
--------------------------
Requirements
~~~~~~~~~~~~
In order to create a report that can be uploaded to ADP, there are some initial configuration steps
that must be completed first.
First, ensure the *United States - Payroll - Export to ADP* (`l10n_us_hr_payroll_adp`) module is
:ref:`installed <general/install>`.
Then, the company **must** have an *ADP Code* entered in the company settings. To do so, navigate
to :menuselection:`Payroll app --> Configuration --> Settings`. Enter the :guilabel:`ADP Code` in
the :guilabel:`US Localization` section.
Next, work entry types **must** have the correct ADP code listed in the *External Code* field for
each work entry type that is being referenced.
Lastly, every employee **must** have an *ADP Code* entered on their employee form. To do so,
navigate to :menuselection:`Employees app`, select an employee record, and open the :guilabel:`HR
Settings` tab. Enter the :guilabel:`ADP Code` in the :guilabel:`ADP Information` section.
The :guilabel:`ADP Code` code is how ADP identifies that particular employee, and is typically a
six-digit number.
.. seealso::
- :ref:`payroll/new-work-entry`
- :doc:`../../hr/employees/new_employee`
Export data
~~~~~~~~~~~
Once :doc:`work entries <../../hr/payroll/work_entries>` have been verified, the information can be
exported to a CSV file, which can then be uploaded into ADP.
To export the data, navigate to :menuselection:`Payroll app --> Reporting --> United States: ADP
Export`, then click :guilabel:`New`. Next, enter the :guilabel:`Start Date` and :guilabel:`End Date`
for the work entries using the calendar pop-over.
Then, enter a :guilabel:`Batch ID` in the corresponding field. The recommendation for this field is
to enter the date in a `YY-MM-DD` format, followed by any other characters to distinguish that
specific batch, such as a department name, or any other defining characteristics for the batch.
Enter a :guilabel:`Batch Description` in the corresponding field. This should be short and
descriptive, but distinct from the :guilabel:`Batch Name`.
Ensure the correct company populates the :guilabel:`Company` field. Change the selected company with
the drop-down menu, if needed.
Lastly, add the employee's work entry information to the list. Click :guilabel:`Add a line` and an
:guilabel:`Add: Employee` pop-up window loads. The list can be :doc:`filtered
<../../essentials/search>` to more easily find the employees to add to the list.
.. tip::
Process the data export in multiple groups instead of in one large group that contains all
employees. This helps to meaningfully differentiate the batches and makes processing more
tenable, overall. The most common ways to group employees is by department, or by wage type
(hourly or salaried).
Select the employees to add to the list by ticking the box to the left of their name. Once all
desired employees have been selected, click the :guilabel:`Select` button in the lower-left corner,
and the employees appear in the list.
To create the CSV file, click the :guilabel:`Generate` button in the top-left corner.
.. _l10n_us/ach-electronic-transfers:
ACH - electronic transfers
==========================
Automated Clearing House (ACH) payments are a modern way to transfer funds electronically between
bank accounts, replacing traditional paper-based methods. |ACH| payments are commonly used for
direct deposits, bill payments, and business transactions.
Receive ACH payments: payment provider integration
--------------------------------------------------
|ACH| payments are supported by *Authorize.net* and *Stripe* payment integrations in Odoo.
.. seealso::
- :ref:`Setting up Authorize.net for ACH payments (Odoo) <authorize/ach_payments>`
- `Authorize.net's ACH payment processing for small businesses documentation
<https://www.authorize.net/resources/blog/2021/ach-payments-for-small-businesses.html>`_
- :doc:`Setting up Stripe for ACH payments (Odoo) <../payment_providers/stripe>`
- `Stripe's ACH Direct Debit documentation <https://docs.stripe.com/payments/ach-debit>`_
.. _l10n_us/nacha:
Send payments: NACHA files
--------------------------
Odoo can generate a National Automated Clearing House Association (NACHA) compatible |ACH| file to
send to a company's bank. For each individual *Bank* journal that the company wishes to pay vendors
with, a |NACHA| configuration section needs to be filled out on the Odoo database.
Configuration
~~~~~~~~~~~~~
First, navigate to the :menuselection:`Accounting app --> Configuration --> Journals`. Open the
bank journal and click into the :guilabel:`Outgoing Payments` tab.
.. image:: united_states/us-l10n-nacha-settings.png
:align: center
:alt: NACHA (National Automated Clearing House Association) configuration settings on Odoo.
.. note::
The following |NACHA| configuration information is normally provided by the company's financial
institution once they have been approved to send payments via their account.
Under the section labeled, :guilabel:`NACHA configuration` are the fields required to generate a
|NACHA| compatible |ACH| file to send to a company's bank. First, enter the routing number of the
financial institution in the field labeled, :guilabel:`Immediate Destination`. This information is
widely available on the Internet and generally varies by bank location. This number is usually
provided during the initial account setup.
Next, enter the registered name of the financial institution in the field called,
:guilabel:`Destination`. This information will be provided by the bank or credit union.
Following the :guilabel:`Destination` field is the :guilabel:`Immediate Origin` field. Enter the
9-digit company ID or Employer Identification Number (EIN) into this field. This information is
provided by the financial institution.
Next, enter the :guilabel:`Company Identification` number, which is a 10-digit number made from
combining the 9-digit company ID or Employer Identification Number (EIN), along with an additional
number at the start of the sequence. This number is often a `1`. Check with the financial
institution should this first number differ to verify that it is correct, as this number is provided
for |ACH| approved accounts.
Enter the :guilabel:`Originating DFI Identification` number next, which should contain an assigned
8-digit number from the financial institution.
.. important::
Enter the numerical values in this section *exactly* as the company's financial institution
(e.g. bank or credit union) has provided them, otherwise risk failing a successful |NACHA|
configuration in Odoo.
.. image:: united_states/us-l10n-nacha-dropdown.png
:align: center
:alt: NACHA settings with the standard entry class code drop-down menu highlighted.
There are two options for the next field: :guilabel:`Standard Entry Class Code`. Select the
drop-down menu to the right of the field and pick either :guilabel:`Corporate Credit or Debit (CCD)`
or :guilabel:`Prearranged Payment and Deposit (PPD)`. Again, this information will be provided by
the financial institution. By default :guilabel:`Corporate Credit or Debit (CCD)` is selected.
Finally, the last option is for :guilabel:`Generated Balanced Files`. Tick the checkbox to the right
of the field to enable :guilabel:`Generated Balanced Files`. Consult the company's accountant or
financial advisor to make an informed decision for this field.
Manually save the configuration by clicking the :icon:`fa-cloud-upload` :guilabel:`(cloud upload)`
icon, or navigate away from this screen to auto-save. The configuration is now complete.
.. _l10n_us/batch-payment:
Create batch payment
~~~~~~~~~~~~~~~~~~~~
Now, record each payment in Odoo using the |NACHA| payment method.
.. seealso::
:ref:`Register Payments in Odoo <payments/register>`
.. important::
Be aware of the cut-off time for same-day payments. Either the file needs to have a future date
associated with each payment or the file needs to be sent prior to the cut-off, if the dates
included in it match today's date. Consult the financial institution for the exact cut-off time
for their processing of same-day payments.
Once all the payments to be included in the |NACHA| |ACH| file have been made, a batch payment needs
to be made from the :icon:`fa-cog` :guilabel:`Action` menu.
To create the batch payments, access the payments page, by navigating to :menuselection:`Accounting
--> Vendors --> Payments`. Select all the payments that should be included in the |NACHA| |ACH|
file, by ticking the checkboxes to the far-left of the rows.
.. image:: united_states/us-l10n-create-batch-payments.png
:align: center
:alt: On the payments screen, the action menu is highlighted with create a batch payment
selected.
.. warning::
All payments in the batch must share the same payment method.
Next, navigate to the batched payment (:menuselection:`Accounting --> Vendors --> Batch Payments`).
Click into the payment just created and then click into the :guilabel:`Exported File` tab. The
generated file is listed with the :guilabel:`Generation Date`. Click the :icon:`fa-download`
:guilabel:`(download)` button to download the file.
.. image:: united_states/us-l10n-batch-file.png
:align: center
:alt: The exported file tab highlighted in the batch payment with the download circled.
If any adjustments need to be made, click the :guilabel:`Re-generate Export File` button to recreate
a new |NACHA| |ACH| file.
.. seealso::
- :doc:`../accounting/payments/batch`
- :doc:`Europe's direct debiting <../accounting/payments/batch_sdd>`
Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 65 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 31 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 13 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 22 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 19 KiB

@@ -243,13 +243,13 @@ themselves. To modify them, go to :menuselection:`Accounting --> Configuration -
Configuration --> Payment Methods`, then click on the payment method.
To modify a payment method's icon, hover your mouse over the image in the upper-right corner of the
payment method's form and click the pencil icon (:guilabel:`✎`).
payment method's form and click the :icon:`fa-pencil` (:guilabel:`pencil`) icon.
Select the :guilabel:`Brands` tab to view the brands that have been activated for the payment
method. The brands and their related icons are displayed based on their sequence order; to reorder
them, drag and drop them in the desired order. To modify a brand's icon, select the brand, then,
in the popup window that opens, hover the mouse over the image in the upper-right corner and click
the pencil icon (:guilabel:`✎`).
the :icon:`fa-pencil` (:guilabel:`pencil`) icon.
Advanced configuration
----------------------
@@ -367,6 +367,14 @@ You can adapt the payment provider's availability by specifying the :guilabel:`M
allowed and modifying the :guilabel:`Currencies` and :guilabel:`Countries` in the
:guilabel:`Configuration` tab.
.. tip::
To display an availability report for payment providers and payment methods, and to help diagnose
potential availability issues on the payment form, enable the :ref:`developer-mode`, then click
the :icon:`fa-bug` (:guilabel:`bug`) icon next to the :guilabel:`Choose a payment method`
heading on the payment form. The report includes a list of enabled payment providers and payment
methods, reasons for any payment providers or methods not being available, if applicable, and a
list of supported providers for each payment method.
.. _payment_providers/currencies_countries:
Currencies and countries
@@ -50,6 +50,8 @@ customer's card, but not charged yet.
.. seealso::
- :doc:`../payment_providers`
.. _authorize/ach_payments:
ACH payments (USA only)
=======================
@@ -32,7 +32,7 @@ If you selected :guilabel:`Pending` as **payment outcome**, you can change the s
transaction straight from its form view. To access a transaction's form view, activate the
:ref:`developer mode <developer-mode>`, and go to :menuselection:`Accounting / Website -->
Configuration --> Payment Transactions`. Then, change the status of a transaction by clicking on the
state bar (:guilabel:`Draft, Pending, Authorized, Confirmed, Canceled, Error`).
state bar (:guilabel:`Draft, Pending, Authorized, Confirmed, Cancelled, Error`).
.. image:: demo/demo-view-form.png
:align: center
@@ -33,6 +33,8 @@ Configuration on the Xendit Dashboard
#. In the :guilabel:`Webhook URL` section, enter your Odoo database's URL, followed by
`/payment/xendit/webhook` (e.g., `https://example.odoo.com/payment/xendit/webhook`) in the field
:guilabel:`Invoices paid` and click the :guilabel:`Test and save` button next to it.
#. Navigate to the `Card Settings page <https://dashboard.xendit.co/settings/payment-methods/cards-configuration>`_
and ensure that :guilabel:`Optional 3DS` is enabled while :guilabel:`Dynamic 3DS` is disabled.
Configuration on Odoo
=====================
+1
View File
@@ -7,6 +7,7 @@ General settings
general/apps_modules
general/users
general/companies
general/multi_company
general/iot
general/email_communication
general/integrations
@@ -133,6 +133,8 @@ appears.
For more information on pricing, see `Odoo's pricing <https://www.odoo.com/pricing-plan>`_ page.
.. _general/employee-access:
Employee access
===============
@@ -189,6 +191,8 @@ Document Layout` and edit the information as needed.
populated from the company information listed, when navigating here: :menuselection:`Settings app
--> Companies section --> Manage Companies`, and select a company from the list.
.. _general/inter-company:
Inter-company transactions
==========================
@@ -12,8 +12,9 @@ Outgoing emails
Email is not sent
-----------------
The first indicator showing that an email has not been sent is the presence of a red :guilabel:`✉️
(envelope)` icon, next to the date and time of the message, located in the chatter.
The first indicator showing that an email has not been sent is the presence of a red
:icon:`fa-envelope` :guilabel:`(envelope)` icon, next to the date and time of the message, located
in the chatter.
.. image:: faq/red-envelop.png
:align: center
@@ -42,13 +43,18 @@ Odoo's email servers from being blacklisted.
Here are the default limits for new databases:
- **200 emails per day** for Odoo Online and Odoo.sh databases with an active subscription.
- **20 emails per day** for one-app free databases.
- **50 emails per day** for trial databases.
- In the case of migration, the daily limit might be reset to 50 emails per day.
- **50 emails per day** for one-app free and trial databases.
.. important::
In a one-app free database, if the *Email Marketing* app is installed, the email limit is **20
emails per day**.
.. note::
In the case of migration, the daily limit might be reset to 50 emails per day.
If the daily limit is reached:
- Contact the Odoo support team, who may increase the daily limit depending on the following
- Contact the Odoo support team, who may increase the daily limit, depending on the following
factors:
#. How many users are in the database?
@@ -72,7 +78,7 @@ If the daily limit is reached:
SMTP error
**********
Simple Mail Transport Protocol (SMTP) error messages explain why an email wasn't transmitted
*Simple Mail Transport Protocol (SMTP)* error messages explain why an email was not transmitted
successfully. :abbr:`SMTP (Simple Mail Transport Protocol)` is a protocol to describe the email
structure, and transmits data from messages over the Internet. The error messages generated by email
services are helpful tools to diagnose and troubleshoot email problems.
@@ -83,9 +89,9 @@ services are helpful tools to diagnose and troubleshoot email problems.
mta4471.mail.bf1.yahoo.com --- Below this line is a copy of the message.`
The debug menu can be used to investigate SMTP sending issues from a database. To access the menu,
:ref:`developer mode <developer-mode>` must be activated. Once activated, navigate to the
:menuselection:`Debug Menu` in the top right of the menu bar (the :guilabel:`🐞 (bug)` icon),
:menuselection:`Debug Menu --> Manage Messages`
:ref:`developer mode <developer-mode>` **must** be activated. Once activated, navigate to the
:menuselection:`Debug Menu` in the top-right of the menu bar (the :icon:`fa-bug` :guilabel:`(bug)`
icon), and select :menuselection:`Debug Menu --> Manage Messages` from the resulting drop-down menu.
The :guilabel:`Manage Messages` menu opens a list of all the messages sent in a particular record.
Within each message there is information on sending, including the type, and subtype, of the
@@ -128,11 +134,10 @@ Email is sent late
Email campaigns send at a scheduled time, using a delay pre-programed in the database. Odoo uses a
delayed task to send emails that are considered "not urgent" (newsletter formats, such as: mass
mailing, marketing automation, and events). The system utility **cron** can be used to schedule
programs to run automatically at predetermined intervals. Odoo uses that policy in order to avoid
cluttering the mail servers and, instead, prioritizes individual communication. This **cron** is
called :guilabel:`Mail: Email Queue Manager`, and can be accessed in :ref:`developer mode
<developer-mode>` by going to :menuselection:`Settings app --> Technical menu --> Automation -->
Scheduled Actions`.
programs to run automatically at predetermined intervals. Odoo uses that policy to avoid cluttering
the mail servers and, instead, prioritizes individual communication. This **cron** is called
:guilabel:`Mail: Email Queue Manager`, and can be accessed in :ref:`developer mode <developer-mode>`
by going to :menuselection:`Settings app --> Technical menu --> Automation: Scheduled Actions`.
.. image:: faq/email-scheduled-later.png
:align: center
@@ -154,9 +159,9 @@ invoices, purchase orders, etc.) are sent immediately.
Incoming emails
===============
When there is an issue with incoming emails, there might not be an indication, per se, in Odoo. It
is the sending email client, who tries to contact a database, that will get a bounce-back message
(most of the time a :guilabel:`550: mailbox unavailable` error message).
When there is an issue with incoming emails, there might not be an indication in Odoo. It is the
sending email client, who tries to contact a database, that gets a bounce-back message (most of the
time it is a :guilabel:`550: mailbox unavailable` error message).
Email is not received
---------------------
@@ -229,5 +234,5 @@ of what can be helpful when reaching out to the Odoo Support team about an issue
.. note::
The bounce system parameter needs to be set in the technical settings in order for the database
to correctly receive bounce messages. To access this setting, go to :menuselection:`Settings app
--> Technical menu --> Parameters --> System Parameters`. Then select the parameter name
:guilabel:`mail.bounce.alias` and set the value to `bounce` if it isn't already set.
--> Technical menu --> Parameters: System Parameters`. Then, select the parameter name
:guilabel:`mail.bounce.alias` and set the value to `bounce` if it is not already set.
@@ -120,4 +120,4 @@ the right of the chatter. Then, select :guilabel:`Translate`. The content transl
:alt: Google Translate present in an Odoo database's chatter.
.. seealso::
:ref:`language/change-user-language`
:ref:`language/install`
@@ -14,3 +14,4 @@ Configuration
config/updating_iot
config/troubleshooting
config/windows_iot
config/ssh_connect
@@ -0,0 +1,46 @@
==========================
Connect an IoT box via SSH
==========================
.. |iot| replace:: :abbr:`IoT (Internet of Things)`
.. |SSH| replace:: :abbr:`SSH (secure shell protocol)`
To provide an |SSH| connection to an Internet of Things (IoT) box, a password needs to be generated.
.. warning::
This feature should **only** be utilized with trusted parties, as it provides administrative
access to the |iot| box, which can create security issues.
Managing an |SSH| connection is **not** covered under the standard scope of Odoo support. Visit
the `Odoo Support <https://www.odoo.com/help>`_ page for additional information about what is
covered.
First, navigate to the :menuselection:`IoT app --> IoT Boxes`. Click on the IP address of the
appropriate |iot| box.
.. note::
If the desired |iot| box does not appear, see :doc:`troubleshooting` for additional steps.
At the bottom of the |iot| box pop-up window, click :guilabel:`Remote Debug`. This opens the
:guilabel:`Remote Debugging` pop-up window.
.. image:: ssh_connect/ssh-generate-password.png
:align: center
:alt: The Remote Debugging password generation window.
Click :guilabel:`Generate password`.
.. warning::
After the password has been generated from the :guilabel:`Remote Debugging` pop-up window, the
information **must** be recorded immediately. Once this window is closed, there is no current
method for looking up this information.
Enter the :guilabel:`Authentication Token` provided by the user attempting to connect to the |iot|
box.
Click :guilabel:`Enable Remote Debugging`.
.. seealso::
- :doc:`connect`
- :doc:`troubleshooting`
- :doc:`updating_iot`
Binary file not shown.

After

Width:  |  Height:  |  Size: 27 KiB

@@ -2,6 +2,9 @@
Connect a printer
=================
.. |iot| replace:: :abbr:`IoT (Internet of Things)`
.. |usb| replace:: :abbr:`USB (Universal Serial Bus)`
Printer installation can be done in a few easy steps. The printer can be used to print receipts,
labels, orders, or even reports from the different Odoo apps. In addition, printer actions can be
assigned as an *action on a trigger* during the manufacturing process, or added onto a quality
@@ -10,17 +13,16 @@ control point or a quality check.
Connection
==========
The :abbr:`IoT (Internet of Things)` box supports printers connected through :abbr:`USB (Universal
Serial Bus)`, network connection, or Bluetooth. `Supported printers
<https://www.odoo.com/page/iot-hardware>`__ are detected automatically, and appear in the
:guilabel:`Devices` list of the *IoT app*.
The |iot| box supports printers connected through |usb|, network connection, or Bluetooth.
`Supported printers <https://www.odoo.com/page/iot-hardware>`__ are detected automatically, and
appear in the :guilabel:`Devices` list of the *IoT* app.
.. image:: printer/printer-detected.png
:align: center
:alt: The printer as it would appear in the IoT app devices list.
.. note::
The printer can take up to two minutes to appear in the *IoT app* devices list.
Printers can take up to two minutes to appear in the *IoT* app :guilabel:`Devices` list.
Link printer
============
@@ -63,15 +65,16 @@ specific product.
.. note::
On a quality check detail form, the :guilabel:`Type` of check can also be specified to
:guilabel:`Print Label`. To create new quality checks, navigate to :menuselection:`Quality app
--> Quality Control --> Quality Checks --> New`.
:guilabel:`Print Label`. To create :doc:`new quality checks
<../../../inventory_and_mrp/quality/quality_management/quality_checks>`, navigate to
:menuselection:`Quality app --> Quality Control --> Quality Checks --> New`.
.. seealso::
- :doc:`/applications/inventory_and_mrp/quality/quality_management/quality_control_points`
- :doc:`/applications/inventory_and_mrp/quality/quality_management/quality_alerts`
- :doc:`../../../inventory_and_mrp/quality/quality_management/quality_control_points`
- :doc:`../../../inventory_and_mrp/quality/quality_management/quality_alerts`
Link a printer to a work center in the Manufacturing app
--------------------------------------------------------
Link a printer to a work center
-------------------------------
To link a printer to an action, it first needs to be configured on a work center. To do that,
navigate to :menuselection:`Manufacturing app --> Configuration --> Work Centers`. From here, select
@@ -94,29 +97,52 @@ Slip`. A key can also be added to trigger the action.
.. seealso::
:ref:`workcenter_iot`
.. _iot/link-printer:
Link printer to reports
-----------------------
It's also possible to link a type of report to a certain printer. In the *IoT app*, go to the
:guilabel:`Devices` menu, and select the desired printer that needs to be configured.
It is possible to link report types to a specific printer. In the *IoT* app, go to the
:guilabel:`Devices` menu, and select the desired printer to be configured.
From here, click :guilabel:`Edit`, go to the :guilabel:`Printer Reports` tab, and select
:guilabel:`Add a line`. In the window that appears, check all the types of :guilabel:`Reports` that
should be linked to this printer.
From here, go to the :guilabel:`Printer Reports` tab, and click :guilabel:`Add a line`. In the
window that appears, check all the types of :guilabel:`Reports` that should be linked to this
printer.
.. image:: printer/printers-listed.png
.. image:: printer/printer-reports.png
:align: center
:alt: The printer devices listed in the IoT Devices menu.
:alt: The list of reports assigned to a printer in the IoT app.
Now, each time :guilabel:`Print` is selected in the control panel, instead of downloading a PDF, a
pop-up appears which displays all the printer(s) linked to the report. Then Odoo sends the report to
the selected printer(s), and automatically prints it.
.. tip::
Reports can also be configured in the *Technical* menu of the *Settings* app, while in
:ref:`debug mode <developer-mode>`. To do that, navigate to :menuselection:`Settings App -->
Technical --> Actions: Reports`. From here, select the desired report from the list. Then, an
:guilabel:`IoT Device` can be set on the report.
The first time a linked report is selected to print, a :guilabel:`Select Printers` pop-up window
appears. Tick the checkbox next to the correct printer for the report, and click :guilabel:`Print`.
At that point, the report is linked to the printer.
Clear device printer cache
~~~~~~~~~~~~~~~~~~~~~~~~~~
After a printer is linked to print a report, the setting is saved in a browser's cache. This means
a user can have different devices saved in their cache for different reports, based on the device
they use to access Odoo. It also means different users can have a report automatically printed from
different printers, based on their preferences.
To unlink a report from a printer, navigate to :menuselection:`IoT app --> Clear Selected Devices`.
This generates a list of reports that are linked to a printer on the current device. Click the
:guilabel:`Unlink` button next to each report to remove the link.
.. important::
This step **only** prevents the report from automatically printing to the listed printer from
the current browser. The report is still :ref:`linked <iot/link-printer>` on the device, under
the :guilabel:`Printer Reports` tab.
.. image:: printer/clear-reports.png
:align: center
:alt: A list of reports currently linked to a printer in the IoT app.
.. seealso::
:doc:`POS Order Printing <../../../sales/point_of_sale/restaurant/kitchen_printing>`
.. tip::
Reports can also be configured in the :guilabel:`Technical Menu` while in :ref:`debug mode
<developer-mode>`. To do that, navigate to :menuselection:`Settings App --> Technical Menu -->
Actions --> Reports`. From here, the individual report can be found in this list, where the
:guilabel:`IoT Device` can be set on the report.
Binary file not shown.

After

Width:  |  Height:  |  Size: 9.9 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.4 KiB

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 16 KiB

@@ -0,0 +1,115 @@
=============
Multi-company
=============
.. |mcd| replace:: multi-company database
In Odoo, multiple companies can exist within a single database. This allows for some data to be
shared among companies, while still maintaining some level of separation between entities.
Before deciding to use the multi-company feature, there are several factors to consider.
.. important::
Multi-company is **only** available in *One App Free* databases, or with `Custom
<https://www.odoo.com/pricing-plan>`_ plans.
Accessing multiple companies
============================
The list of :ref:`companies an employee has access to <general/employee-access>` in a |mcd| can be
found at the top-right of the main Odoo menu bar, where the active company is listed. Click on the
company name to reveal a list of all allowed companies. To switch to a different company, click on
the company name in the drop-down menu. To enable multiple companies at once, tick the checkbox next
to each desired company name.
.. figure:: multi_company/company-access.png
:align: center
:alt: An example of the list of companies a user has access to when logged into a database.
An example of a user with access to multiple companies. The current company is My Company (San
Francisco), while My Company (Chicago) is also active.
.. note::
The database may refresh after each checkbox is ticked.
.. _general/active-companies:
Multiple active companies
-------------------------
If more than one company is active at a time, one company is highlighted in purple, and is listed on
the menu bar. This is the considered the *current* company.
When creating a new record, the current company is added to the record in the *Company* field,
except under the following circumstances:
- The *Company* field for a new product, or a new contact, is left blank.
- If there is a related document already in the system, the *Company* field on the new record
defaults to the same company.
.. example::
Mitchell Admin has multiple companies enabled, but the current company is `My Company (Chicago)`.
When he creates a new product record, the :guilabel:`Company` field is left blank by default.
When he creates a new sales team, the :guilabel:`Company` field automatically defaults to `My
Company (Chicago)`.
Sharing data
============
In a |mcd|, certain records are able to be utilized by all of the companies (or several, based on
permissions).
Products
--------
In an |mcd|, new products are created with the :ref:`Company field <general/active-companies>`
blank, by default. If the *Company* field remains blank, the product is shared across all companies.
Contacts
--------
Similar to products, contact records are shared across companies, by default. To limit access to a
single company, click the :ref:`Company field <general/active-companies>` on a contact form, and
select a company to assign the contact to.
Inter-company transactions
==========================
The :ref:`Inter-Company Transactions <general/inter-company>` feature allows for one company in the
database to sell or purchase goods and services from another company within the same database.
Counterpart documents for orders and invoices can be automatically generated and synchronized,
depending on the configuration settings.
.. warning::
To ensure inter-company transactions are handled appropriately, certain configurations, such as
fiscal positions and localizations, need to be accurately assigned. See :ref:`Inter-Company
Transactions <general/inter-company>` for additional information.
Use cases
=========
Multinational companies
-----------------------
A multinational retail chain, which operates in the United States and Canada, needs to manage
transactions in both USD and CAD currencies.
Additionally, because both countries have different tax laws and regulations, it is in the best
interest of the customer to utilize the multi-company feature.
This allows for inter-company transactions they need to manage inventory moves across international
borders, while making it simple to sell to customers in both countries in their own currency.
Separate processes
------------------
A small furniture company is developing a new line of products that require a separate procurement,
inventory, and manufacturing process. The new products are drastically different from the existing
catalog. The company is considering utilizing the multi-company feature to treat this new line as a
different entity.
To keep their database from becoming overly complex, the furniture company does not need to add an
entirely new company. Instead, they can take advantage of existing features, such as :doc:`analytic
accounting <../finance/accounting/reporting/analytic_accounting>`, and multiple warehouses, to
manage the new product line, without having to overly complicate transactions.
Binary file not shown.

After

Width:  |  Height:  |  Size: 23 KiB

+41 -55
View File
@@ -1,63 +1,49 @@
===============
Change language
===============
================
Change languages
================
Odoo provides you with the option to manage Odoo in different languages,
and each user can use Odoo in his own language .
You select the language of your database upon its creation. However, you can
:ref:`add <language/add>` and :ref:`install <language/install>` additional languages to allow users
to manage the database in another language or to
:doc:`translate <../../websites/website/configuration/translate>` your website.
Load your desired language
==========================
.. _language/add:
The first thing to do is to load your desired language on your Odoo
instance.
Add languages
=============
From the general dashboard click on the **Settings** app; on the top
left of the page select :menuselection:`Translations --> Load a Translation`,
select a language to install and click on **LOAD.**
To download additional languages:
.. image:: language/choose_language01.png
:align: center
- either click the profile icon in the upper-right corner, select :menuselection:`My profile`, and
click the :icon:`fa-globe` (:guilabel:`globe`) icon next to the :guilabel:`Language` field;
- or go to the **Settings** app, and click :guilabel:`Add Languages` in the :guilabel:`Languages`
section.
.. note::
If you check the "Websites to translate" checkbox you will have the option
to change the navigation language on your website.
.. _language/change-user-language:
Change your language
====================
You can change the language to the installed language by going to the
drop-down menu at the top right side of the screen, choose
**Preferences**.
.. image:: language/choose_language02.png
:align: center
Then change the Language setting to your installed language and click
**SAVE.**
.. image:: language/choose_language03.png
:align: center
Open a new menu to view the changes.
Change another user's language
==============================
Odoo also gives you the possibility for each user to choose his
preferred language.
To change the language for a different user, choose :menuselection:`Users --> Users`
from the Settings app. Here you have a list of all users and you can
choose the user who you'd like to change the language for. Select the
user and click on **Edit** in the top left corner. Under Preferences you
can change the Language to any previously installed language and click
**SAVE.**
.. image:: language/choose_language04.png
:align: center
You can then select the languages you want from the dropdown menu and click :guilabel:`Add`.
.. seealso::
* :doc:`../../websites/website/configuration/translate`
:doc:`Translations <../../websites/website/configuration/translate>`
.. _language/install:
Change languages
================
To select their preferred language, users can click the profile icon in the upper-right corner, go
to :menuselection:`My profile`, and select a :guilabel:`Language` in the dropdown list.
Change another user's language
------------------------------
To change the database language for a user:
#. Go to the :guilabel:`Settings` app and click :guilabel:`Manage Users` in the :guilabel:`Users`
section.
#. Click on the user whose language you want to change.
#. Go to the :guilabel:`Preferences` tab and select a previously
:ref:`installed language <language/add>` from the :guilabel:`Language` dropdown menu.
.. note::
Emails and documents will be sent to the user in the selected language.
Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

Before

Width:  |  Height:  |  Size: 13 KiB

+5 -328
View File
@@ -170,337 +170,14 @@ document.
.. note::
In previous versions of Odoo, this section was referred to as :guilabel:`Surveys`.
Appraisals
==========
Navigate to the main *Appraisals* dashboard by opening the :guilabel:`Appraisals` application. The
:guilabel:`Appraisals` dashboard is the default view.
To view the dashboard at any point in the application, navigate to :menuselection:`Appraisals
application --> Appraisals`.
All appraisals are displayed on the dashboard in a Kanban view, by default, with a list of groupings
on the left side of the dashboard, including :guilabel:`Company`, :guilabel:`Department`, and
:guilabel:`Status`.
Click any grouping option to view appraisals for **only** the chosen selection.
.. note::
Only groupings with multiple selections appear in the list. For example, if a database only has
one company, the :guilabel:`Company` grouping does **not** appear, since there is no other
company to select.
Each appraisal card displays the following information:
- :guilabel:`Name`: the employee's name.
- :guilabel:`Department`: the department the employee is associated with.
- :guilabel:`Company`: the company the employee works for. This only appears in a multi-company
database.
- :guilabel:`Date`: the date the appraisal was requested, or is scheduled for in the future.
- :guilabel:`Activities`: any activities that are scheduled for the appraisal, such as
:guilabel:`Meetings` or :guilabel:`Phone Calls.` If no activities are scheduled, an activity can
be scheduled from the :guilabel:`🕘 (clock)` icon, located in the bottom-left corner of an
appraisal card.
- :guilabel:`Manager`: the employee's manager, indicated by the profile icon in the bottom-right
corner of an appraisal card.
- :guilabel:`Status banner`: the status of the appraisal. A banner appears if an appraisal is
marked as either :guilabel:`Canceled` or :guilabel:`Done`. If no banner is present, that means the
appraisal has not happened, or has not been scheduled yet.
To view the details of any appraisal, click on the card to open the appraisal form.
.. image:: appraisals/dashboard.png
:align: center
:alt: The Appraisals dashboard with each appraisal in its own box.
New appraisal
-------------
To create a new appraisal, click the :guilabel:`New` button at the top of the :guilabel:`Appraisals`
dashboard to load a blank appraisal form. Then, enter the following information on the form:
- :guilabel:`Name`: enter the employee's name.
- :guilabel:`Manager`: select the employee's manager from the drop-down menu. The manager is
responsible for completing the :guilabel:`Manager's Feedback` section of the appraisal. This field
auto-populates after the employee is selected, if they have a manager set on their employee
profile.
- :guilabel:`Appraisal Date`: the current date is automatically entered in this field. This field is
automatically updated once the appraisal is completed or canceled, with the corresponding date of
completion or cancellation.
- :guilabel:`Department`: select the employee's department from the drop-down menu. This field
auto-populates after the employee is selected, if they have a department set on their employee
profile.
- :guilabel:`Company`: select the employee's company from the drop-down menu. This field
auto-populates after the employee is selected, if they have a company set on their employee
profile.
.. note::
The only required fields for the appraisal form are the employee's :guilabel:`Name`, the
:guilabel:`Manager`, and the :guilabel:`Company`.
Once the form is complete, click the :guilabel:`Confirm` button to confirm the appraisal request.
Once confirmed, the employee receives an email stating that an appraisal was requested, and is then
prompted to schedule an appraisal date.
The status changes to :guilabel:`Confirmed`, and the :guilabel:`Employee's Feedback` section of the
:guilabel:`Appraisal` tab is grayed out. The information in that section only appears after the
self-assessment is published by the employee. The :guilabel:`Final Rating` field also appears once
the appraisal request is confirmed.
If there are any existing appraisals for the employee, an :guilabel:`Appraisal` smart button appears
at the top of the page, listing the total number of appraisals there are for the employee.
Ask for feedback
~~~~~~~~~~~~~~~~
As part of the appraisal process, the manager can request feedback on an employee from anyone in the
company. Feedback is usually requested from co-workers and other people who interact with, or work
with, the employee. This is to get a more well-rounded view of the employee, and aid in the
manager's overall assessment.
To request feedback, the appraisal **must** be confirmed. Once confirmed, an :guilabel:`Ask
Feedback` button appears at the top of the form.
When the :guilabel:`Ask Feedback` button is clicked, an :guilabel:`Ask Feedback` email pop-up form
appears, using the :guilabel:`Appraisal: Ask Feedback` email template, which sends the
:guilabel:`360 Feedback` survey.
Enter the employees being asked to complete the survey in the :guilabel:`Recipients` field. Multiple
employees may be selected.
The email template has dynamic placeholders to personalize the message. Add any additional text to
the email, if desired.
If required, an :guilabel:`Answer Deadline` can be added, as well.
If any attachments are needed, click the :guilabel:`Attachments` button, and a file explorer window
appears. Navigate to the file(s), select them, then click :guilabel:`Open`.
When the email is ready to send, click :guilabel:`Send.`
.. image:: appraisals/ask-feedback.png
:align: center
:alt: The email pop-up when requesting feedback from other employees.
Appraisal form
~~~~~~~~~~~~~~
Once an appraisal is confirmed, the next steps are for the employee to fill out the self-assessment,
after which the manager completes their assessment.
.. _appraisals/employee-feedback:
Employee's feedback
*******************
To complete their portion of feedback, employees should navigate to the main
:menuselection:`Appraisals application` dashboard, where the only entries visible are appraisals for
the employee, themselves, and/or anyone they manage and have to provide manager feedback for.
Click on the appraisal to open the appraisal form. Enter responses in the :guilabel:`Employee's
Feedback` section, under the :guilabel:`Appraisal` tab.
When completed, click the :guilabel:`Not Visible to Manager` toggle (the default setting once an
appraisal is confirmed). When clicked, the toggle changes to :guilabel:`Visible to Manager`.
.. image:: appraisals/employee-feedback.png
:align: center
:alt: The feedback section for the employee with the toggle button highlighted.
.. _appraisals/manager-feedback:
Manager's feedback
******************
After the employee has completed the :guilabel:`Employee's Feedback` section, under the
:guilabel:`Appraisal` tab, it is time for the manager to fill out the :guilabel:`Manager's Feedback`
section.
The manager enters their responses in the fields in the :ref:`same manner as the employee
<appraisals/employee-feedback>`.
When the feedback section is completed, click the :guilabel:`Not Visible to Employee` toggle (the
default setting once an appraisal is confirmed). When clicked, the toggle changes to
:guilabel:`Visible to Employee`.
.. image:: appraisals/manager-feedback.png
:align: center
:alt: The feedback section for both employees and managers. The toggle buttons are highlighted.
Skills tab
~~~~~~~~~~
Part of an appraisal is evaluating an employee's skills, and tracking their progress over time. The
:guilabel:`Skills` tab of the appraisal form auto-populates with the skills from the :doc:`employee
form <../hr/employees/new_employee>`, once an appraisal is confirmed.
Each skill is grouped with like skills, and the :guilabel:`Skill Level`, :guilabel:`Progress`, and
:guilabel:`Justification` are displayed for each skill.
Update any skills, or add any new skills to the :guilabel:`Skills` tab.
If a skill level has increased, a reason for the improved rating can be entered into the
:guilabel:`Justification` field, such as `took a fluency language test` or `received Javascript
certification`.
Refer to the :ref:`Create a new employee <employees/skills>` document for detailed instructions on
adding or updating a skill.
After an appraisal is completed, and the skills have been updated, the next time an appraisal is
confirmed, the updated skills populate the :guilabel:`Skills` tab.
.. image:: appraisals/skills.png
:align: center
:alt: The skills tab of an appraisal form, all filled out.
Private note tab
~~~~~~~~~~~~~~~~
If managers want to leave notes that are only visible to other managers, they can be entered in the
:guilabel:`Private Note` tab. The employee being evaluated does **not** have access to this tab, and
the tab does **not** appear on their appraisal.
Schedule a meeting
------------------
Once both portions of an appraisal are completed (the :ref:`employee <appraisals/employee-feedback>`
and :ref:`manager <appraisals/manager-feedback>` feedback sections), it is time for the employee and
manager to meet and discuss the appraisal.
A meeting can be scheduled in one of two ways: either from the *Appraisals* application dashboard,
or from an individual appraisal card.
To schedule an appraisal from the dashboard of the *Appraisals* application, first navigate to
:menuselection:`Appraisals application --> Appraisals`.
Click the :guilabel:`🕘 (clock)` icon, beneath the appraisal date on the desired appraisal card, and
a :guilabel:`Schedule Activity` pop-up window appears. Then, click :guilabel:`+ Schedule an
activity` to create a blank activity form.
Select :guilabel:`Meeting` for the :guilabel:`Activity Type` from the drop-down menu. Doing so
causes the form to change, so only the :guilabel:`Activity Type` and :guilabel:`Summary` fields
appear.
If scheduling an activity other than a meeting, such as a :guilabel:`Call` or a :guilabel:`To-Do`,
the fields that appear on the :guilabel:`Schedule Activity` pop-up form change, accordingly.
.. note::
The :guilabel:`🕘 (clock)` icon may appear as a number of different icons, depending on what, if
any, scheduled activities are in place, and the color represents their corresponding due dates.
If no activities are scheduled, that is represented by a gray :guilabel:`🕘 (clock)` icon.
However, if a specific activity is scheduled, the icon may appear as a :guilabel:`📞 (phone)`
icon for a phone call, a :guilabel:`👥 (group of people)` icon for a meeting, and so on.
The color of the icon indicates the status; a green icon means an activity is scheduled in the
future, and a red icon means the activity is past due.
For more details on activities, refer to the :doc:`../essentials/activities` document.
.. image:: appraisals/activity-icons.png
:align: center
:alt: The appraisal cards with the various activity icons highlighted.
Enter a brief description in the :guilabel:`Summary` field of the :guilabel:`Schedule Activity`
pop-up window, such as `Annual Appraisal for (Employee)`.
Next, click the :guilabel:`Open Calendar` button. From the calendar page that appears, navigate to,
and double-click on, the desired date and time for the meeting.
Doing so opens a :guilabel:`New Event` pop-up form. From this pop-up form, make any desired
modifications, such as designating a :guilabel:`Start` time, or giving a :guilabel:`Name` to the
meeting.
Add the appraisee in the :guilabel:`Attendees` section, and include anyone else who should be in the
meeting, if necessary.
To make the meeting a video call, instead of an in-person meeting, click :guilabel:`+ Odoo meeting`,
and a :guilabel:`Videocall URL` link appears in the field.
Once all the desired changes are complete, click :guilabel:`Save & Close`.
The meeting now appears on the calendar, and the invited parties are informed, via email.
.. image:: appraisals/meeting.png
:align: center
:alt: The meeting form with all information entered for Ronnie Hart's annual appraisal.
The other way to schedule a meeting is from the individual appraisal form. To do this, navigate to
the :menuselection:`Appraisal application` dashboard, then click on an appraisal card.
Next, click on the :guilabel:`Meeting` smart button, and the calendar loads. Follow the same
directions above to create the meeting.
.. note::
If no meetings are scheduled, the :guilabel:`Meeting` smart button reads :guilabel:`No Meeting`.
Reporting
=========
The *Appraisals* application tracks two metrics across two different reports: an :ref:`appraisal
analysis <appraisals/analysis>`, and a :ref:`skills evolution <appraisals/skills-report>`.
.. _appraisals/analysis:
Appraisal analysis
------------------
To access the *Appraisal Analysis* report, navigate to :menuselection:`Appraisals application -->
Reporting --> Appraisal Analysis`. This displays a report of all the appraisals in the database,
highlighted in different colors to represent their status.
Appraisals in yellow are completed, appraisals in orange are in-progress (the appraisal is
confirmed, but not completed), and appraisals in gray are scheduled (according to the
:ref:`appraisals/appraisal-plan`), but have not been confirmed yet.
The report displays the whole current year, by default, grouped by department.
To change the calendar view presented, change the date settings in the top-left of the report. The
options to display are :guilabel:`Day`, :guilabel:`Week`, :guilabel:`Month`, and :guilabel:`Year`.
Use the arrows to move forward or backward in time.
At any point, click the :guilabel:`Today` button to present the calendar to include today's date in
the view.
The report can have other filters and groupings set in the :guilabel:`Search...` bar at the top.
.. image:: appraisals/analysis.png
:align: center
:alt: A report showing all the appraisals for the Appraisal Analysis report.
.. _appraisals/skills-report:
Skills evolution
----------------
To access the *Skills Evolution* report, navigate to :menuselection:`Appraisals application -->
Reporting --> Skills Evolution`. This displays a report of all skills, grouped by employee.
All the lines of the report are collapsed, by default. To view the details of a line, click on a
line to expand the data.
Each skill has the following information listed:
- :guilabel:`Employee`: name of the employee.
- :guilabel:`Skill Type`: the category the skill falls under.
- :guilabel:`Skill`: the specific, individual skill.
- :guilabel:`Previous Skill Level`: the level the employee had previously achieved for the skill.
- :guilabel:`Previous Skill Progress`: the previous percentage of competency achieved for the skill
(based on the :guilabel:`Skill Level`).
- :guilabel:`Current Skill Level`: the current level the employee has achieved for the skill.
- :guilabel:`Current Skill Progress`: the current percentage of competency achieved for the skill.
- :guilabel:`Justification`: any notes entered on the skill explaining the progress.
.. image:: appraisals/skills-report.png
:align: center
:alt: A report showing all the skills grouped by employee.
.. seealso::
:doc:`appraisals/goals`
- :doc:`appraisals/new_appraisals`
- :doc:`appraisals/goals`
- :doc:`appraisals/reporting`
.. toctree::
:titlesonly:
appraisals/new_appraisals
appraisals/goals
appraisals/reporting
@@ -0,0 +1,281 @@
==============
New appraisals
==============
To create a new appraisal for an employee, first navigate to the main *Appraisals* dashboard by
opening the :menuselection:`Appraisals` app. The :guilabel:`Appraisals` dashboard is the default
view.
Appraisals dashboard
====================
All appraisals are displayed on the dashboard in a default Kanban view, with a list of groupings on
the left side of the dashboard, including :guilabel:`COMPANY`, :guilabel:`DEPARTMENT`, and
:guilabel:`STATUS`.
Click any grouping option to view appraisals for **only** the chosen selection.
.. note::
Only groupings with multiple selections appear in the list. For example, if a database only has
one company, the :guilabel:`COMPANY` grouping does **not** appear, since there is no other
company to select.
Each appraisal card displays the following information:
- **Name**: the employee's name.
- **Department**: the department the employee is associated with.
- **Company**: the company the employee works for. This only appears in a multi-company
database.
- **Date**: the date the appraisal was requested, or is scheduled for in the future.
- **Activities**: any :doc:`activities <../../essentials/activities>` that are scheduled for the
appraisal, such as *Meetings* or *Phone Calls*.
- **Manager**: the employee's manager, indicated by the profile icon in the bottom-right
corner of an appraisal card.
- **Status banner**: the status of the appraisal. A banner appears if an appraisal is marked as
either *Canceled* or *Done*. If no banner is present, that means the appraisal has not happened,
or has not been scheduled yet.
To view the details of any appraisal, click on the card to open the appraisal form.
.. image:: new_appraisals/dashboard.png
:align: center
:alt: The Appraisals dashboard with each appraisal in its own box.
Create an appraisal
===================
To create a new appraisal, click the :guilabel:`New` button in the upper-left corner of the
:guilabel:`Appraisals` dashboard. Doing so reveals a blank appraisal form. After entering a name in
the first blank field, proceed to enter the following information on the form:
- :guilabel:`Manager`: select the employee's manager from the drop-down menu. The manager is
responsible for completing the *Manager's Feedback* section of the appraisal. This field
auto-populates after the employee is selected, if they have a manager set on their employee
profile.
- :guilabel:`Appraisal Date`: the current date is automatically entered in this field. This field is
automatically updated once the appraisal is completed or cancelled, with the corresponding date of
completion or cancellation.
- :guilabel:`Department`: select the employee's department from the drop-down menu. This field
auto-populates after the employee is selected, if they have a department set on their employee
profile.
- :guilabel:`Company`: select the employee's company from the drop-down menu. This field
auto-populates after the employee is selected, if they have a company set on their employee
profile.
.. note::
The only required fields for the appraisal form are the employee's name, the :guilabel:`Manager`,
and the :guilabel:`Company`.
Once the form is complete, click the :guilabel:`Confirm` button to confirm the appraisal request.
Once confirmed, the employee receives an email stating that an appraisal was requested, and is then
prompted to schedule an appraisal date.
The status changes to :guilabel:`Confirmed`, and the :guilabel:`Employee's Feedback` section of the
:guilabel:`Appraisal` tab is grayed out. The information in that section only appears after the
self-assessment is published by the employee. The :guilabel:`Final Rating` field also appears once
the appraisal request is confirmed.
If there are any existing appraisals for the employee, an :guilabel:`Appraisal` smart button appears
at the top of the page, listing the total number of appraisals there are for the employee.
Ask for feedback
----------------
As part of the appraisal process, the manager can request feedback on an employee from anyone in the
company. Feedback is usually requested from co-workers and other people who interact with, or work
with, the employee. This is to get a more well-rounded view of the employee, and aid in the
manager's overall assessment.
To request feedback, the appraisal **must** be confirmed. Once confirmed, an :guilabel:`Ask
Feedback` button appears at the top of the form.
When the :guilabel:`Ask Feedback` button is clicked, an :guilabel:`Ask Feedback` email pop-up form
appears, using the :guilabel:`Appraisal: Ask Feedback` email template, which sends the
:guilabel:`360 Feedback` survey.
Enter the employees being asked to complete the survey in the :guilabel:`Recipients` field. Multiple
employees may be selected.
The email template has dynamic placeholders to personalize the message. Add any additional text to
the email, if desired.
If required, an :guilabel:`Answer Deadline` can be added, as well.
If any attachments are needed, click the :icon:`fa-paperclip` :guilabel:`Attachments` button, and a
file explorer window appears. Navigate to the file(s), select them, then click :guilabel:`Open`.
When the email is ready to send, click :guilabel:`Send.`
.. image:: new_appraisals/ask-feedback.png
:align: center
:alt: The email pop-up when requesting feedback from other employees.
Appraisal form
--------------
Once an appraisal is confirmed, the next steps require the employee to fill out the self-assessment,
after which the manager completes their assessment.
.. _appraisals/employee-feedback:
Employee's feedback
~~~~~~~~~~~~~~~~~~~
To complete their portion of feedback, employees should navigate to the main
:menuselection:`Appraisals application` dashboard, where the only entries visible are appraisals for
the employee, themselves, and/or anyone they manage and have to provide manager feedback for.
Click on the appraisal to open the appraisal form. Enter responses in the :guilabel:`Employee's
Feedback` section, under the :guilabel:`Appraisal` tab.
When completed, click the :guilabel:`Not Visible to Manager` toggle (the default setting once an
appraisal is confirmed). When clicked, the toggle changes to :guilabel:`Visible to Manager`.
.. image:: new_appraisals/employee-feedback.png
:align: center
:alt: The feedback section for the employee with the toggle button highlighted.
.. _appraisals/manager-feedback:
Manager's feedback
~~~~~~~~~~~~~~~~~~
After the employee has completed the :guilabel:`Employee's Feedback` section, under the
:guilabel:`Appraisal` tab, it is time for the manager to fill out the :guilabel:`Manager's Feedback`
section.
The manager enters their responses in the fields in the :ref:`same manner as the employee
<appraisals/employee-feedback>`.
When the feedback section is completed, click the :guilabel:`Not Visible to Employee` toggle (the
default setting once an appraisal is confirmed). When clicked, the toggle changes to
:guilabel:`Visible to Employee`.
.. image:: new_appraisals/manager-feedback.png
:align: center
:alt: The feedback section for both employees and managers. The toggle buttons are highlighted.
Skills tab
~~~~~~~~~~
Part of an appraisal is evaluating an employee's skills, and tracking their progress over time. The
:guilabel:`Skills` tab of the appraisal form auto-populates with the skills from the :ref:`employee
form <employees/skills>`, once an appraisal is confirmed.
Each skill is grouped with like skills, and the :guilabel:`Skill Level`, :guilabel:`Progress`, and
:guilabel:`Justification` are displayed for each skill.
Update any skills, or add any new skills to the :guilabel:`Skills` tab.
If a skill level has increased, a reason for the improved rating can be entered into the
:guilabel:`Justification` field, such as `took a fluency language test` or `received Javascript
certification`.
.. seealso::
Refer to the :ref:`Create a new employee <employees/skills>` document for detailed instructions
on adding or updating a skill.
After an appraisal is completed, and the skills have been updated, the next time an appraisal is
confirmed, the updated skills populate the :guilabel:`Skills` tab.
.. image:: new_appraisals/skills.png
:align: center
:alt: The skills tab of an appraisal form, all filled out.
.. note::
The :guilabel:`Skills` tab can be modified **after** the employee and their manager have met and
discussed the employee's appraisal.
This is a common situation as the manager may not have all the necessary information to properly
assess and update the employee's skills before meeting.
Private Note tab
~~~~~~~~~~~~~~~~
If managers want to leave notes that are only visible to other managers, they can be entered in the
:guilabel:`Private Note` tab. This can be done before or after meeting with the employee to discuss
the appraisal.
The employee being evaluated does **not** have access to this tab, and the tab does **not** appear
on their appraisal.
Schedule a meeting
------------------
Once both portions of an appraisal are completed (the :ref:`employee <appraisals/employee-feedback>`
and :ref:`manager <appraisals/manager-feedback>` feedback sections), it is time for the employee and
manager to meet and discuss the appraisal.
A meeting can be scheduled in one of two ways: either from the *Appraisals* application dashboard,
or from an individual appraisal card.
To schedule an appraisal from the dashboard of the *Appraisals* application, first navigate to
:menuselection:`Appraisals app --> Appraisals`.
Click the :icon:`fa-clock-o` :guilabel:`(clock)` icon, beneath the appraisal date on the desired
appraisal card, and a pop-up window appears. Then, click :icon:`fa-plus` :guilabel:`Schedule an
activity` to create an activity from a :guilabel:`Schedule Activity` pop-up form that appears.
Select :guilabel:`Meeting` for the :guilabel:`Activity Type` from the drop-down menu. Doing so
causes the form to change, so only the :guilabel:`Activity Type` and :guilabel:`Summary` fields
appear.
Enter a brief description in the :guilabel:`Summary` field of the :guilabel:`Schedule Activity`
pop-up form, such as `Annual Appraisal for (Employee)`.
Next, click the :guilabel:`Open Calendar` button. From the calendar page that appears, navigate to,
and double-click on, the desired date and time for the meeting.
Doing so opens a :guilabel:`New Event` pop-up form. From this pop-up form, make any desired
modifications, such as designating a :guilabel:`Start` time, or modifying the default
:guilabel:`Title` to the meeting.
Add the appraisee in the :guilabel:`Attendees` section, and include anyone else who should also be
in the meeting, if necessary.
To make the meeting a video call, instead of an in-person meeting, click :icon:`fa-plus`
:guilabel:`Odoo meeting`, and a :guilabel:`Videocall URL` link appears in the field.
Once all the desired changes are complete, click :guilabel:`Save & Close`.
The meeting now appears on the calendar, and the invited parties are informed, via email.
.. image:: new_appraisals/meeting.png
:align: center
:alt: The meeting form with all information entered for Ronnie Hart's annual appraisal.
The other way to schedule a meeting is from the individual appraisal form. To do this, navigate to
the :menuselection:`Appraisal app` dashboard, then click on an appraisal card.
Next, click on the :icon:`fa-calendar` :guilabel:`Meeting` smart button, and the calendar loads.
Follow the same directions above to create the meeting.
For more detailed information on how to schedule activities, refer to the :doc:`activities
<../../essentials/activities>` documentation.
.. note::
If no meetings are scheduled, the :guilabel:`Meeting` smart button reads :guilabel:`No Meeting`.
Complete an appraisal
=====================
After the appraisal is complete, and both the manager and employee have met to discuss the
appraisal, the appraisal can be marked as *Done*. When completed, click the :guilabel:`Mark as Done`
button on the appraisal form, located in the top-left corner.
Once the appraisal is marked as *Done*, the :guilabel:`Mark as Done` button disappears, and a
:guilabel:`Reopen` button appears.
.. tip::
Modifications are **not** possible once the appraisal is marked as done.
To make any changes to an appraisal that is marked as *Done*, click the :guilabel:`Reopen`
button.
Then, click the :guilabel:`Confirm` button that appears, and make any modifications needed. Once
all modifications are complete, click the the :guilabel:`Mark as Done` button again.
.. seealso::
- :doc:`../appraisals/goals`
- :doc:`../appraisals/reporting`

Before

Width:  |  Height:  |  Size: 51 KiB

After

Width:  |  Height:  |  Size: 51 KiB

Before

Width:  |  Height:  |  Size: 27 KiB

After

Width:  |  Height:  |  Size: 27 KiB

Before

Width:  |  Height:  |  Size: 67 KiB

After

Width:  |  Height:  |  Size: 67 KiB

Before

Width:  |  Height:  |  Size: 32 KiB

After

Width:  |  Height:  |  Size: 32 KiB

Before

Width:  |  Height:  |  Size: 47 KiB

After

Width:  |  Height:  |  Size: 47 KiB

Before

Width:  |  Height:  |  Size: 37 KiB

After

Width:  |  Height:  |  Size: 37 KiB

Before

Width:  |  Height:  |  Size: 11 KiB

After

Width:  |  Height:  |  Size: 11 KiB

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

Before

Width:  |  Height:  |  Size: 18 KiB

After

Width:  |  Height:  |  Size: 18 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.4 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 24 KiB

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