Compare commits
122 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| fe91538771 | |||
| 5965bad8ea | |||
| ee8aed02c8 | |||
| 17787e62c3 | |||
| 7ecaf74124 | |||
| afbc491940 | |||
| b3e2b51a6a | |||
| acf8d5e4a7 | |||
| 916b185065 | |||
| 93a0f41756 | |||
| bf9bbff058 | |||
| 32976cdd84 | |||
| 00e96e5635 | |||
| c4fd10f94e | |||
| 10a92e66cf | |||
| 634a5af824 | |||
| 53f8dcd991 | |||
| a535d2fe9d | |||
| cb51299cf1 | |||
| a42a88bf7c | |||
| 8cea31c24d | |||
| d03b45c6f9 | |||
| e238e63240 | |||
| e14c53b60c | |||
| d1398e5889 | |||
| c226214530 | |||
| c6e7dba0bd | |||
| 79745b702f | |||
| baf1e9b464 | |||
| 26e296e1a7 | |||
| 11a2af286d | |||
| 7c10386675 | |||
| a00fa1c997 | |||
| 1f88f9dd67 | |||
| 7598c57f48 | |||
| da17cb4fef | |||
| bb1322131d | |||
| 3b573b0e60 | |||
| d4f2a2768c | |||
| d4fe1eb4d1 | |||
| 9af6b453fe | |||
| 11ef368a58 | |||
| 60d6f7ee59 | |||
| ba86ed096a | |||
| 6e18b6f7de | |||
| 2de0593eb7 | |||
| 6b17ed5052 | |||
| 9d228fc301 | |||
| f56dce3a15 | |||
| 6263eea056 | |||
| 5738af24c6 | |||
| 5a151eafd5 | |||
| 18ca6d9f80 | |||
| c8555a7e1a | |||
| 9c5cee3f96 | |||
| 4072bf6ece | |||
| 0e82e60673 | |||
| 18c7aa4c47 | |||
| 5938ac0931 | |||
| c44d4dfcab | |||
| dd5f46d011 | |||
| 0752255be8 | |||
| 35500f8035 | |||
| fc144a96fd | |||
| 9ae3ffc925 | |||
| 8ca247d9dd | |||
| 9ed575b01e | |||
| 4e5ae3ea87 | |||
| 6d74ff585b | |||
| d383da505d | |||
| 8f5909a0cb | |||
| 9584fed709 | |||
| e79a2e674d | |||
| 217ca237bf | |||
| 6495e78998 | |||
| cac8d8a558 | |||
| 0d28e54c4a | |||
| 3acda8ef04 | |||
| 06b380921b | |||
| 15b741e785 | |||
| 1bad5cebaf | |||
| 4537468fc1 | |||
| 957adbea2c | |||
| 54de7881a2 | |||
| 2ed1db8304 | |||
| d31b997900 | |||
| 701b8437aa | |||
| 2ae0e15982 | |||
| da4186c1c2 | |||
| 7dfcac709d | |||
| e612b445b9 | |||
| d25d62d1c0 | |||
| 55f2d86800 | |||
| 14a91520df | |||
| 3b92fc672a | |||
| 4975afda0d | |||
| 62bc2eda35 | |||
| d506554ed0 | |||
| 594f3573d9 | |||
| d21e9d8c12 | |||
| 68ecabb435 | |||
| 886e1dc19c | |||
| 8beae0b9e5 | |||
| 636441b94c | |||
| 9aa160f042 | |||
| 118e31d96a | |||
| 5d87049d92 | |||
| d39beb75ae | |||
| 6fe36eacc4 | |||
| 3320f52cdd | |||
| d9e7d86532 | |||
| 9feca1b4e4 | |||
| d42810f05d | |||
| d77c24d556 | |||
| 6366c20ffa | |||
| 43426fa893 | |||
| 3c9ea881a9 | |||
| 928e3bb43e | |||
| 57212a6798 | |||
| cd32574f88 | |||
| f6994a1047 | |||
| 55d3d59a64 |
@@ -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
|
||||
|
||||
@@ -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
|
||||
|
||||
@@ -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,3 +1,5 @@
|
||||
:show-content:
|
||||
|
||||
========
|
||||
Contacts
|
||||
========
|
||||
@@ -175,15 +177,33 @@ 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 *Enterprise Resellers* module is
|
||||
installed.
|
||||
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, 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* applications is installed.
|
||||
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
|
||||
=============
|
||||
@@ -236,3 +256,8 @@ in the main contacts page, but they can still be searched for with the :guilabel
|
||||
- :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
|
||||
|
||||
@@ -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>`.
|
||||
|
After Width: | Height: | Size: 25 KiB |
|
After Width: | Height: | Size: 20 KiB |
@@ -181,6 +181,75 @@ It is possible to *customize groups* by using a field present on the model. To d
|
||||
cluster, the next one that is added further divides the main group's categories, and so on.
|
||||
Furthermore, filters and groups can be used together to refine the view even more.
|
||||
|
||||
.. _search/comparison:
|
||||
|
||||
Comparison
|
||||
==========
|
||||
|
||||
Certain reporting dashboards include a :guilabel:`Comparison` section in the drop-down menus of
|
||||
their :guilabel:`Search...` bars. This includes the :doc:`Overall Equipment Effectiveness
|
||||
<../inventory_and_mrp/manufacturing/workflows/oee>` report for the *Manufacturing* app, and the
|
||||
:doc:`Purchase <../inventory_and_mrp/purchase/advanced/analyze>` report for the *Purchase* app,
|
||||
among others.
|
||||
|
||||
The options in the :icon:`fa-adjust` :guilabel:`Comparison` section are used to compare data from
|
||||
two different time periods. There are two comparison options to choose from: :guilabel:`(Time
|
||||
Filter): Previous Period` and :guilabel:`(Time Filter): Previous Year`.
|
||||
|
||||
.. important::
|
||||
For some reports, the :guilabel:`Comparison` section **only** appears in the
|
||||
:guilabel:`Search...` bar drop-down menu if one (or more) time periods have been selected in the
|
||||
:guilabel:`Filters` column. This is because, if no time period is specified, there is nothing to
|
||||
compare.
|
||||
|
||||
Additionally, some reports only allow use of the :guilabel:`Comparison` feature when the
|
||||
:icon:`fa-pie-chart` :guilabel:`(pie chart)` graph type, or the :icon:`oi-view-pivot`
|
||||
:guilabel:`(pivot)` view, is selected. A :guilabel:`Comparison` option can be selected even if
|
||||
another view is enabled, but doing so does **not** change the way data is displayed on the
|
||||
report.
|
||||
|
||||
.. image:: search/comparison-section.png
|
||||
:align: center
|
||||
:alt: The Search... bar for the production analysis report.
|
||||
|
||||
To view data using one of the two comparisons, begin by selecting a time period in the
|
||||
:guilabel:`Filters` column of the :guilabel:`Search...` bar drop-down menu. Then, select either
|
||||
:guilabel:`(Time Filter): Previous Period` or :guilabel:`(Time Filter): Previous Year` in the
|
||||
:guilabel:`Comparison` section.
|
||||
|
||||
With one of the :guilabel:`Comparison` options enabled, the report compares the data for the
|
||||
selected period, with the data for the same unit of time (month, quarter, year), one period or year
|
||||
prior. The way the data is displayed depends on the selected view:
|
||||
|
||||
- The :icon:`fa-bar-chart` :guilabel:`(bar chart)` shows two bars, side-by-side, for each unit of
|
||||
time for the selected time period. The left bar represents the selected time period, while the
|
||||
right bar represents the previous time period.
|
||||
- The :icon:`fa-line-chart` :guilabel:`(line chart)` is displayed with two lines, one representing
|
||||
the selected time period, and the other representing the previous time period.
|
||||
- The :icon:`fa-pie-chart` :guilabel:`(pie chart)` appears as a large circle with a smaller circle
|
||||
inside. The larger circle represents the selected time period, while the smaller circle represents
|
||||
the previous time period.
|
||||
- The :icon:`oi-view-pivot` :guilabel:`(pivot table)` is displayed with each column split into two
|
||||
smaller columns. The right column represents the selected time period, while the left column
|
||||
represents the previous time period.
|
||||
|
||||
.. example::
|
||||
In the :guilabel:`Production Analysis` report of the :menuselection:`Manufacturing` app, data for
|
||||
the second quarter of 2024 is compared to data for the second quarter of 2023. :guilabel:`Q2` is
|
||||
selected in the :guilabel:`End Date` filter section of the :guilabel:`Search...` bar drop-down
|
||||
menu. In the :guilabel:`Comparison` section, :guilabel:`End Date: Previous Year` is selected.
|
||||
|
||||
The current year is 2024, so the larger circle shows data for the second quarter (Q2) of 2024.
|
||||
The smaller circle shows data for the second quarter (Q2) of 2023, which is the same time period,
|
||||
but one *year* prior.
|
||||
|
||||
If :guilabel:`End Date: Previous Period` is selected instead, the smaller circle shows data for
|
||||
the first quarter (Q1) of 2024, which is the same time period, but one *period* prior.
|
||||
|
||||
.. image:: search/comparison.png
|
||||
:align: center
|
||||
:alt: The comparison view of the Production Analysis report.
|
||||
|
||||
.. _search/favorites:
|
||||
|
||||
Favorites
|
||||
|
||||
|
After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 31 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
|
||||
=============
|
||||
|
||||
|
||||
@@ -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
|
||||
-------------------
|
||||
|
||||
|
||||
|
After Width: | Height: | Size: 2.9 KiB |
@@ -121,7 +121,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>`
|
||||
@@ -159,3 +159,4 @@ available on Odoo.
|
||||
fiscal_localizations/vietnam
|
||||
fiscal_localizations/united_arab_emirates
|
||||
fiscal_localizations/united_kingdom
|
||||
fiscal_localizations/united_states
|
||||
|
||||
@@ -1018,69 +1018,37 @@ specific product.
|
||||
Reports
|
||||
=======
|
||||
|
||||
As part of the localization installation, financial reporting for Argentina was added to the
|
||||
:guilabel:`Accounting` dashboard. Access these reports by navigating to :menuselection:`Accounting
|
||||
--> Reporting --> Argentinean Reports`
|
||||
As part of the localization installation, financial reporting for Argentina is available in the
|
||||
:guilabel:`Accounting` dashboard. To access these reports, navigate to :menuselection:`Accounting
|
||||
--> Reporting --> Argentinean Statements`.
|
||||
|
||||
.. image:: argentina/argentinian-reports.png
|
||||
:align: center
|
||||
:alt: Argentinean reports.
|
||||
To access the VAT book report, go to :menuselection:`Accounting --> Reporting --> Tax Report`, click
|
||||
the :icon:`fa-book` (:guilabel:`book`), and select :guilabel:`Argentinean VAT book (AR)`.
|
||||
|
||||
VAT reports
|
||||
-----------
|
||||
|
||||
Sales VAT book
|
||||
~~~~~~~~~~~~~~
|
||||
|
||||
This report records all the sales, which are taken as the basis for the accounting records
|
||||
to determine the VAT (Tax Debit). The :guilabel:`Sales VAT` book report can be exported as a `.zip`
|
||||
file using the :guilabel:`VAT BOOK (ZIP)` button at the top left, containing `.txt` files to upload
|
||||
to the AFIP portal.
|
||||
|
||||
.. image:: argentina/sales-vat-book.png
|
||||
:align: center
|
||||
:alt: Sales VAT book.
|
||||
|
||||
Purchases VAT book
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
The :guilabel:`Purchases VAT` book report can be exported as a `.zip` file using the
|
||||
:guilabel:`VAT BOOK (ZIP)` button at the top left, which contains `.txt` files to upload to the AFIP
|
||||
portal.
|
||||
|
||||
.. image:: argentina/purchases-vat-book.png
|
||||
:align: center
|
||||
:alt: Purchases VAT book.
|
||||
.. note::
|
||||
The VAT book report can be exported as a `.zip` file by selecting it in the dropdown menu in the
|
||||
top-left corner.
|
||||
|
||||
VAT summary
|
||||
~~~~~~~~~~~
|
||||
-----------
|
||||
|
||||
Pivot table designed to check the monthly VAT totals. This report is for internal use and is not
|
||||
sent to the AFIP.
|
||||
|
||||
.. image:: argentina/vat-summary.png
|
||||
:align: center
|
||||
:alt: VAT Summary.
|
||||
|
||||
IIBB - Reports
|
||||
--------------
|
||||
This pivot table is designed to check the monthly VAT totals. This report is for internal use and is
|
||||
not sent to the AFIP.
|
||||
|
||||
IIBB - Sales by jurisdiction
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
----------------------------
|
||||
|
||||
Pivot table where you can validate the gross income in each jurisdiction. Affidavit for the
|
||||
corresponding taxes to pay; and therefore, it is not sent to the AFIP.
|
||||
This pivot table allows you to validate the gross income in each jurisdiction. It serves as an
|
||||
affidavit for the corresponding taxes due but is not submitted to the AFIP.
|
||||
|
||||
.. image:: argentina/iibb-sales-jurisdiction.png
|
||||
:align: center
|
||||
:alt: IIBB Sales by jurisdiction.
|
||||
|
||||
IIBB - Purchases by jurisdiction
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
--------------------------------
|
||||
|
||||
Pivot table where you can validate the gross purchases in each jurisdiction. Affidavit for the
|
||||
corresponding taxes to pay; and therefore, it is not sent to the AFIP.
|
||||
This pivot table allows you to validate the gross purchases in each jurisdiction. It serves as an
|
||||
affidavit for the corresponding taxes due but is not submitted to the AFIP.
|
||||
|
||||
.. image:: argentina/iibb-purchases-jurisdiction.png
|
||||
:align: center
|
||||
:alt: IIBB Purchases by jurisdiction.
|
||||
|
||||
|
Before Width: | Height: | Size: 54 KiB |
|
Before Width: | Height: | Size: 25 KiB |
|
Before Width: | Height: | Size: 52 KiB |
|
Before Width: | Height: | Size: 56 KiB |
@@ -33,6 +33,8 @@ Here are some terms that are essential on the Ecuadorian localization:
|
||||
Configuration
|
||||
=============
|
||||
|
||||
.. _l10n_ec/module-installation:
|
||||
|
||||
Modules installation
|
||||
--------------------
|
||||
|
||||
@@ -75,7 +77,7 @@ localization:
|
||||
* - :guilabel:`Ecuadorian Point of Sale`
|
||||
- `l10n_ec_edi_pos`
|
||||
- Includes all the technical and functional requirements to generate automatic electronic
|
||||
invoices from a PoS sale.
|
||||
invoices from a POS sale.
|
||||
|
||||
.. note::
|
||||
When you install a database from scratch selecting `Ecuador` as the country, Odoo automatically
|
||||
@@ -631,7 +633,7 @@ time.
|
||||
eCommerce workflow
|
||||
~~~~~~~~~~~~~~~~~~
|
||||
|
||||
Type and identification number
|
||||
Identification type and number
|
||||
******************************
|
||||
|
||||
The client who is making a purchase will have the option to indicate their identification type and
|
||||
@@ -639,18 +641,74 @@ number during the checkout process. This information is required to correctly ge
|
||||
electronic invoice after the checkout is completed.
|
||||
|
||||
.. image:: ecuador/website-checkout-form.png
|
||||
:align: center
|
||||
:alt: Website checkout form.
|
||||
|
||||
.. note::
|
||||
Verification is done to ensure the *Identification Number* field is completed and has the correct
|
||||
number of digits. For RUC identification, 13 digits are required. For Cédula, 9 digits are
|
||||
required.
|
||||
Verification is done to ensure the :guilabel:`Identification Number` field is completed and has
|
||||
the correct number of digits. For RUC identification, 13 digits are required. For Cédula,
|
||||
9 digits are required.
|
||||
|
||||
After finishing the checkout process, a confirmed invoice is generated, ready to be sent manually or
|
||||
asynchronously to the SRI.
|
||||
|
||||
Financial Reports
|
||||
Point of Sale electronic invoicing
|
||||
----------------------------------
|
||||
|
||||
Make sure the *Ecuadorian module for Point of Sale* (`l10n_ec_edi_pos`) is :ref:`installed
|
||||
<l10n_ec/module-installation>` to enable the following features and configurations:
|
||||
|
||||
- Choose the SRI payment method in each payment method configuration.
|
||||
- Manually input the customer's identification type and identification number when creating a
|
||||
new contact on *POS*.
|
||||
- Automatically generate a valid electronic invoice for Ecuador at the end of the checkout process.
|
||||
|
||||
Payment method configuration
|
||||
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
|
||||
|
||||
To :doc:`create a payment method for a point of sale <../../sales/point_of_sale/payment_methods>`,
|
||||
go to :menuselection:`Point of Sale --> Configuration --> Payment Methods`. Then, set the
|
||||
:guilabel:`SRI Payment Method` in the payment method form.
|
||||
|
||||
Invoicing flows
|
||||
~~~~~~~~~~~~~~~
|
||||
|
||||
Identification type and number
|
||||
******************************
|
||||
|
||||
The POS cashier can :ref:`create a new contact for a customer <pos/customers>` who requests an
|
||||
invoice from an open POS session.
|
||||
|
||||
The *Ecuadorian Module for Point of Sale* adds two new fields to the contact creation form:
|
||||
:guilabel:`Identification Type` and :guilabel:`Tax ID`.
|
||||
|
||||
.. note::
|
||||
As the identification number length differs depending on the identification type, Odoo
|
||||
automatically checks the :guilabel:`Tax ID` field upon saving the contact form. To manually
|
||||
ensure the length is correct, know that the :guilabel:`RUC` and :guilabel:`Citizenship` types
|
||||
require 13 and 10 digits, respectively.
|
||||
|
||||
Electronic invoice: anonymous end consumer
|
||||
******************************************
|
||||
|
||||
When clients do not request an electronic invoice for their purchase, Odoo automatically sets the
|
||||
customer as :guilabel:`Consumidor Final` and generates an electronic invoice anyway.
|
||||
|
||||
.. note::
|
||||
If the client requests a credit note due to a return of this type of purchase, the credit note
|
||||
should be made using the client's real contact information. Credit notes cannot be created to
|
||||
*Consumidor Final* and can be managed :ref:`directly from the POS session <pos/refund>`.
|
||||
|
||||
Electronic invoice: specific customer
|
||||
*************************************
|
||||
|
||||
If a customer requests an invoice for their purchase, it is possible to select or create a contact
|
||||
with their fiscal information. This ensures the invoice is generated with accurate customer details.
|
||||
|
||||
.. note::
|
||||
If the client requests a credit note due to a return of this type of purchase, the credit note
|
||||
and return process can be managed :ref:`directly from the POS session <pos/refund>`.
|
||||
|
||||
Financial reports
|
||||
=================
|
||||
|
||||
In Ecuador, there are fiscal reports that the company presents to SRI. Odoo supports two of the main
|
||||
|
||||
@@ -2,6 +2,11 @@
|
||||
France
|
||||
======
|
||||
|
||||
.. important::
|
||||
You must :doc:`install <../../general/apps_modules>` the **France - Adding Mandatory Invoice
|
||||
Mentions (Decree no. 2022-1299)** (`l10n_fr_invoice_addr`) module to comply with the `local
|
||||
legislation <https://www.legifrance.gouv.fr/jorf/id/JORFTEXT000046383394>`_.
|
||||
|
||||
.. _france/fec:
|
||||
|
||||
FEC - Fichier des Écritures Comptables
|
||||
|
||||
@@ -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.
|
||||
|
||||
@@ -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.
|
||||
|
||||
|
Before Width: | Height: | Size: 16 KiB |
|
Before Width: | Height: | Size: 27 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 42 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
After Width: | Height: | Size: 42 KiB |
@@ -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>`
|
||||
|
After Width: | Height: | Size: 4.2 KiB |
|
After Width: | Height: | Size: 65 KiB |
|
After Width: | Height: | Size: 31 KiB |
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 19 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 8.2 KiB |
|
After Width: | Height: | Size: 19 KiB |
@@ -50,6 +50,8 @@ customer's card, but not charged yet.
|
||||
.. seealso::
|
||||
- :doc:`../payment_providers`
|
||||
|
||||
.. _authorize/ach_payments:
|
||||
|
||||
ACH payments (USA only)
|
||||
=======================
|
||||
|
||||
|
||||
@@ -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
|
||||
==========================
|
||||
|
||||
|
||||
@@ -34,14 +34,14 @@ registration`. On the :guilabel:`Register an application` screen, rename the :gu
|
||||
and personal Microsoft accounts (e.g. Skype, Xbox)`.
|
||||
|
||||
Under the :guilabel:`Redirect URL` section, select :guilabel:`Web` as the platform, and then input
|
||||
`https://<odoo base url>/microsoft_outlook/confirm` in the :guilabel:`URL` field. The Odoo base URL
|
||||
is the canonical domain at which your Odoo instance can be reached in the URL field.
|
||||
`https://<web base url>/microsoft_outlook/confirm` in the :guilabel:`URL` field. The `web.base.url`
|
||||
is subject to change depending on the URL used to log in to the database.
|
||||
|
||||
.. example::
|
||||
*mydatabase.odoo.com*, where *mydatabase* is the actual prefix of the database's subdomain,
|
||||
assuming it's hosted on Odoo.com
|
||||
.. note::
|
||||
The documentation about the :ref:`web.base.url <domain-name/web-base-url>` explains how to freeze
|
||||
a unique URL. It is also possible to add different redirect URLs on the Microsoft app.
|
||||
|
||||
After the URL has been added to the field, :guilabel:`Register` the application so it is created.
|
||||
After the URL has been added to the field, :guilabel:`Register` the application, so it is created.
|
||||
|
||||
API permissions
|
||||
---------------
|
||||
|
||||
@@ -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`
|
||||
|
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.
|
||||
|
||||
|
After Width: | Height: | Size: 9.9 KiB |
|
Before Width: | Height: | Size: 5.4 KiB After Width: | Height: | Size: 11 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
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.
|
||||
|
After Width: | Height: | Size: 23 KiB |
@@ -254,6 +254,7 @@ company.
|
||||
users/2fa
|
||||
users/access_rights
|
||||
users/portal
|
||||
users/facebook
|
||||
users/google
|
||||
users/azure
|
||||
users/ldap
|
||||
|
||||
@@ -1,127 +1,125 @@
|
||||
=========================
|
||||
Two-factor Authentication
|
||||
Two-factor authentication
|
||||
=========================
|
||||
|
||||
Two-factor authentication ("2FA") is a good way to improve the
|
||||
security of an account, to make it less likely that an other person
|
||||
will manage to log in instead of you.
|
||||
.. |2fa| replace:: :abbr:`2FA (two-factor authentication)`
|
||||
.. |QR| replace:: :abbr:`QR (Quick Response)` code
|
||||
|
||||
Practically, it means storing a secret inside an *authenticator*
|
||||
(usually your cell phone) and exchanging a code from the authenticator
|
||||
when you try to log in.
|
||||
*Two-factor authentication (2FA)* is a way to improve security, and prevent unauthorized persons
|
||||
from accessing user accounts.
|
||||
|
||||
This means an attacker needs *both* to have guessed (or found) your
|
||||
password and to access (or steal) your authenticator, a more difficult
|
||||
proposition than either one or the other.
|
||||
Practically, |2fa| means storing a secret inside an *authenticator*, usually on a mobile phone, and
|
||||
exchanging a code from the authenticator when trying to log in.
|
||||
|
||||
This means an unauthorized user would need to guess the account password *and* have access to the
|
||||
authenticator, which is a more difficult proposition.
|
||||
|
||||
Requirements
|
||||
============
|
||||
|
||||
.. note:: These lists are just examples, they are not endorsements of
|
||||
any specific software.
|
||||
.. important::
|
||||
These lists are just examples. They are **not** endorsements of any specific software.
|
||||
|
||||
If you don't already have one, you will need to choose an
|
||||
authenticator.
|
||||
Phone-based authenticators are the easiest and most commonly used. Examples include:
|
||||
|
||||
Phone-based authenticators are the easiest and most common so we will
|
||||
assume you'll pick and install one on your phone, examples include
|
||||
`Authy <https://authy.com/>`_, `FreeOTP
|
||||
<https://freeotp.github.io/>`_, `Google Authenticator
|
||||
<https://support.google.com/accounts/answer/1066447?hl=en>`_,
|
||||
`LastPass Authenticator <https://lastpass.com/auth/>`_, `Microsoft
|
||||
Authenticator
|
||||
<https://www.microsoft.com/en-gb/account/authenticator?cmp=h66ftb_42hbak>`_,
|
||||
...; password managers also commonly include :abbr:`2FA (two-factor
|
||||
authentication)` support e.g. `1Password
|
||||
<https://support.1password.com/one-time-passwords/>`_, `Bitwarden
|
||||
<https://bitwarden.com/help/article/authenticator-keys/>`_, ...
|
||||
- `Authy <https://authy.com/>`_
|
||||
- `FreeOTP <https://freeotp.github.io/>`_
|
||||
- `Google Authenticator <https://support.google.com/accounts/answer/1066447?hl=en>`_
|
||||
- `LastPass Authenticator <https://lastpass.com/auth/>`_
|
||||
- `Microsoft Authenticator
|
||||
<https://www.microsoft.com/en-gb/account/authenticator?cmp=h66ftb_42hbak>`_
|
||||
|
||||
For the sake of demonstration we will be using Google Authenticator
|
||||
(not because it is any good but because it is quite common).
|
||||
Password managers are another option. Common examples include:
|
||||
|
||||
Setting up two-factor authentication
|
||||
====================================
|
||||
|
||||
Once you have your authenticator of choice, go to the Odoo instance
|
||||
you want to setup :abbr:`2FA (two-factor authentication)`, then open
|
||||
:guilabel:`Preferences` (or :guilabel:`My Profile`):
|
||||
|
||||
.. figure:: 2fa/preferences.png
|
||||
:align: center
|
||||
|
||||
Open the :guilabel:`Account Security` tab, then click the
|
||||
:guilabel:`Enable two-factor authentication` button:
|
||||
|
||||
.. figure:: 2fa/sec_tab.png
|
||||
:align: center
|
||||
|
||||
Because this is a security-sensitive action, you will need to input
|
||||
your password:
|
||||
|
||||
.. figure:: 2fa/sec_enhanced.png
|
||||
:align: center
|
||||
|
||||
After which you will see this screen with a barcode:
|
||||
|
||||
.. figure:: 2fa/totp_scan.png
|
||||
:align: center
|
||||
|
||||
In most applications, you can simply *scan the barcode* via the
|
||||
authenticator of your choice, the authenticator will then take care of
|
||||
all the setup:
|
||||
|
||||
.. figure:: 2fa/scan_barcode.jpg
|
||||
:align: center
|
||||
- `1Password <https://support.1password.com/one-time-passwords/>`_
|
||||
- `Bitwarden <https://bitwarden.com/help/article/authenticator-keys/>`_,
|
||||
|
||||
.. note::
|
||||
The remainder of this document uses Google Authenticator as an example, as it is one of the most
|
||||
commonly used. This is **not** an endorsement of the product.
|
||||
|
||||
If you can not scan the screen (e.g. because you are doing this
|
||||
set-up on the same phone as the authenticator application), you can
|
||||
click the provided link, or copy the secret to manually set-up your
|
||||
authenticator:
|
||||
Two-factor authentication setup
|
||||
===============================
|
||||
|
||||
.. figure:: 2fa/secret_visible.png
|
||||
After selecting an authenticator, log in to Odoo, then click the profile avatar in the upper-right
|
||||
corner, and select :guilabel:`My Profile` from the resulting drop-down menu.
|
||||
|
||||
Click the :guilabel:`Account Security` tab, then slide the :guilabel:`Two-Factor Authentication`
|
||||
toggle to *active*.
|
||||
|
||||
.. figure:: 2fa/account-security.png
|
||||
:align: center
|
||||
|
||||
This generates a :guilabel:`Security Control` pop-up window that requires password confirmation to
|
||||
continue. Enter the appropriate password, then click :guilabel:`Confirm Password`. Next, a
|
||||
:guilabel:`Two-Factor Authentication Activation` pop-up window appears, with a |QR|.
|
||||
|
||||
|
||||
.. figure:: 2fa/qr-code.png
|
||||
:align: center
|
||||
|
||||
Using the desired authenticator application, scan the |QR| when prompted.
|
||||
|
||||
.. tip::
|
||||
If scanning the screen is not possible (e.g. the setup is being completed on the *same* device as
|
||||
the authenticator application), clicking the provided :guilabel:`Cannot scan it?` link, or
|
||||
copying the secret to manually set up the authenticator, is an alternative.
|
||||
|
||||
.. figure:: 2fa/secret-visible.png
|
||||
:align: center
|
||||
|
||||
.. figure:: 2fa/input_secret.png
|
||||
.. figure:: 2fa/input-secret.png
|
||||
:align: center
|
||||
|
||||
Once this is done, the authenticator should display a *verification
|
||||
code* with some useful identifying information (e.g. the domain and
|
||||
login for which the code is):
|
||||
Afterwards, the authenticator should display a *verification code*.
|
||||
|
||||
.. figure:: 2fa/authenticator.png
|
||||
:align: center
|
||||
|
||||
You can now input the code into the :guilabel:`Verification Code`
|
||||
field, then click the :guilabel:`Enable two-factor authentication`
|
||||
button.
|
||||
Enter the code into the :guilabel:`Verification Code` field, then click :guilabel:`Activate`.
|
||||
|
||||
Congratulation, your account is now protected by two-factor
|
||||
authentication!
|
||||
|
||||
.. figure:: 2fa/totp_enabled.png
|
||||
.. figure:: 2fa/2fa-enabled.png
|
||||
:align: center
|
||||
|
||||
Logging in
|
||||
==========
|
||||
|
||||
You should now :guilabel:`Log out` to follow along.
|
||||
To confirm |2fa| setup is complete, log out of Odoo.
|
||||
|
||||
On the login page, input the username and password of the account for
|
||||
which you set up :abbr:`2FA (two-factor authentication)`, rather than
|
||||
immediately enter Odoo you will now get a second log-in screen:
|
||||
On the login page, input the username and password, then click :guilabel:`Log in`. On the
|
||||
:guilabel:`Two-factor Authentication` page, input the code provided by the chosen authenticator in
|
||||
the :guilabel:`Authentication Code` field, then click :guilabel:`Log in`.
|
||||
|
||||
.. figure:: 2fa/2fa_input.png
|
||||
.. image:: 2fa/2fa-login.png
|
||||
:align: center
|
||||
:alt: The login page with 2fa enabled.
|
||||
|
||||
Get your authenticator, input the code it provides for the domain and
|
||||
account, validate, and you're now in.
|
||||
.. danger::
|
||||
If a user loses access to their authenticator, an administrator **must** deactivate |2fa| on the
|
||||
account before the user can log in.
|
||||
|
||||
And that's it. From now on, unless you disable :abbr:`2FA (two-factor
|
||||
authentication)` you will have a two-step log-in process rather than
|
||||
the old one-step process.
|
||||
Enforce two-factor authentication
|
||||
=================================
|
||||
|
||||
.. danger:: Don't lose your authenticator, if you do, you will need an
|
||||
*Odoo Administrator* to disable :abbr:`2FA (two-factor
|
||||
authentication)` on the account.
|
||||
To enforce the use of |2fa| for all users, first navigate to :menuselection:`Main Odoo Dashboard -->
|
||||
Apps`. Remove the :guilabel:`Apps` filter from the :guilabel:`Search...` bar, then search for `2FA
|
||||
by mail`.
|
||||
|
||||
Click :guilabel:`Install` on the Kanban card for the :guilabel:`2FA by mail` module.
|
||||
|
||||
.. image:: 2fa/2FA-by-mail.png
|
||||
:align: center
|
||||
:alt: The 2FA by mail module in the Apps directory.
|
||||
|
||||
After installation is complete, go to :guilabel:`Settings app: Permissions`. Tick the checkbox
|
||||
labeled, :guilabel:`Enforce two-factor authentication`. Then, use the radio buttons to choose
|
||||
whether to apply this setting to :guilabel:`Employees only`, or :guilabel:`All users`.
|
||||
|
||||
.. note::
|
||||
Selecting :guilabel:`All users` applies the setting to portal users, in addition to employees.
|
||||
|
||||
.. image:: 2fa/enforce-settings.png
|
||||
:align: center
|
||||
:alt: The enforce two factor setting in the Settings application.
|
||||
|
||||
Click :guilabel:`Save` to commit any unsaved changes.
|
||||
|
||||
|
After Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 5.3 KiB |
|
After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 6.7 KiB |
|
After Width: | Height: | Size: 29 KiB |
|
After Width: | Height: | Size: 37 KiB |
|
Before Width: | Height: | Size: 14 KiB After Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 13 KiB |
|
After Width: | Height: | Size: 33 KiB |
|
Before Width: | Height: | Size: 98 KiB |
|
Before Width: | Height: | Size: 6.3 KiB |
|
Before Width: | Height: | Size: 18 KiB |
|
Before Width: | Height: | Size: 12 KiB After Width: | Height: | Size: 12 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 22 KiB |
@@ -0,0 +1,132 @@
|
||||
===============================
|
||||
Facebook sign-in authentication
|
||||
===============================
|
||||
|
||||
The *Facebook* OAuth sign-in function allows Odoo users to sign in to their database with their
|
||||
Facebook account.
|
||||
|
||||
.. danger::
|
||||
Databases housed on Odoo.com should **not** use OAuth login for the owner or administrator of the
|
||||
database, as it would unlink the database from their Odoo.com account. If OAuth is setup for
|
||||
that user, the database can no longer be duplicated, renamed, or otherwise managed from the
|
||||
Odoo.com portal.
|
||||
|
||||
Meta for Developers setup
|
||||
=========================
|
||||
|
||||
Go to `Meta for Developers <https://developers.facebook.com/>`_ and log in. Click :guilabel:`My
|
||||
Apps`. On the :guilabel:`Apps` page, click :guilabel:`Create App`.
|
||||
|
||||
On the :guilabel:`Use cases` page, select :guilabel:`Authenticate and request data from users with
|
||||
Facebook Login`, then click :guilabel:`Next`.
|
||||
|
||||
In the :guilabel:`Add an app name` field, enter `Odoo Login OAuth`, or a similar title.
|
||||
|
||||
.. note::
|
||||
The :guilabel:`App contact email` automatically defaults to the email address associated with the
|
||||
Meta account. If this email address is not regularly monitored, it may be wise to use another
|
||||
email address.
|
||||
|
||||
Click :guilabel:`Next`. Review the :guilabel:`Publishing requirements`, the :guilabel:`Meta
|
||||
Platform Terms`, and :guilabel:`Developer Policies`. Then, click :guilabel:`Create app`.
|
||||
|
||||
.. important::
|
||||
Clicking :guilabel:`Create app` may require password re-entry.
|
||||
|
||||
Customize app
|
||||
-------------
|
||||
|
||||
After the new app is created, the :guilabel:`Dashboard` page appears, with a list of steps to be
|
||||
completed before the app can be published. From here, click :guilabel:`Customize adding a Facebook
|
||||
Login button`.
|
||||
|
||||
.. image:: facebook/app-requirements.png
|
||||
:align: center
|
||||
:alt: The App Dashboard in the Meta for developers platform.
|
||||
|
||||
On the :guilabel:`Customize` page, click :guilabel:`Settings`.
|
||||
|
||||
In the :guilabel:`Valid OAuth Redirect URIs` field, enter `https://<odoo base
|
||||
url>/auth_oauth/signin`, replacing `<odoo base url>` with the URL of the applicable database.
|
||||
|
||||
.. example::
|
||||
If a database has the URL `https://example.odoo.com`, the URL
|
||||
`https://example.odoo.com/auth_oauth/signin` would be entered in the :guilabel:`Valid OAuth
|
||||
Redirect URIs` field.
|
||||
|
||||
Click :guilabel:`Save changes` when finished.
|
||||
|
||||
Configure settings
|
||||
------------------
|
||||
|
||||
At the far left of the page, click :menuselection:`App settings --> Basic`. This page contains
|
||||
additional settings that are required before the app can be submitted for approval.
|
||||
|
||||
In the :guilabel:`Privacy Policy URL` field, enter `https://www.odoo.com/privacy`.
|
||||
|
||||
.. note::
|
||||
`<https://www.odoo.com/privacy>`_ is the default privacy policy for databases hosted on Odoo.com.
|
||||
|
||||
Click the :guilabel:`App Icon` field to open a file upload window. From here, select and upload an
|
||||
app icon.
|
||||
|
||||
In the :guilabel:`User data deletion` field, enter
|
||||
`https://www.odoo.com/documentation/17.0/administration/odoo_accounts.html`.
|
||||
|
||||
.. note::
|
||||
This document provides instructions on how a user can delete their Odoo account.
|
||||
|
||||
Lastly, click the :guilabel:`Category` field, and select :guilabel:`Business and pages` from the
|
||||
drop-down menu.
|
||||
|
||||
Click :guilabel:`Save changes`.
|
||||
|
||||
.. image:: facebook/app-id.png
|
||||
:align: center
|
||||
:alt: An exampled of the Basic Settings page in the Meta for developers platform.
|
||||
|
||||
.. _users/app-id:
|
||||
|
||||
Capture app ID
|
||||
--------------
|
||||
|
||||
After the app is created, and approved, select and copy the :guilabel:`App ID`. Paste this
|
||||
information on a clipboard or notepad file, as it is needed in a later step to complete the setup.
|
||||
|
||||
Publish
|
||||
-------
|
||||
|
||||
On the left side of the page, click :guilabel:`Publish`. Depending on the status of the connected
|
||||
Facebook account, additional verification and testing steps may be required, and are listed on this
|
||||
page.
|
||||
|
||||
After reviewing the information, click :guilabel:`Publish`.
|
||||
|
||||
.. seealso::
|
||||
Additional information regarding Meta App Development, including further details on building,
|
||||
testing, and use cases, can be found in the `Meta for developers documentation
|
||||
<https://developers.facebook.com/docs/development>`_.
|
||||
|
||||
Odoo setup
|
||||
==========
|
||||
|
||||
First, activate :ref:`Developer mode <developer-mode/activation>`.
|
||||
|
||||
Navigate to the :menuselection:`Settings app`, and scroll down to the :guilabel:`Integrations`
|
||||
section. There, tick the checkbox labeled, :guilabel:`OAuth Authentication`. Click :guilabel:`Save`.
|
||||
|
||||
.. image:: facebook/enable-oauth.png
|
||||
:align: center
|
||||
:alt: The enable OAuth setting in the Settings app.
|
||||
|
||||
Then, sign in to the database once the login screen loads.
|
||||
|
||||
After successfully logging in, navigate to :menuselection:`Settings app --> Users & Companies -->
|
||||
OAuth Providers`. Click :guilabel:`Facebook Graph`.
|
||||
|
||||
In the :guilabel:`Client ID` field, enter the :ref:`App ID <users/app-id>` from the previous
|
||||
section, then tick the :guilabel:`Allowed` checkbox.
|
||||
|
||||
.. image:: facebook/facebook-graph.png
|
||||
:align: center
|
||||
:alt: The Facebook Graph record in Odoo.
|
||||
|
After Width: | Height: | Size: 22 KiB |
|
After Width: | Height: | Size: 20 KiB |
|
After Width: | Height: | Size: 14 KiB |
|
After Width: | Height: | Size: 26 KiB |
@@ -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.
|
||||
|
||||
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 14 KiB |
|
Before Width: | Height: | Size: 11 KiB |
|
Before Width: | Height: | Size: 13 KiB |
@@ -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 |
|
After Width: | Height: | Size: 8.4 KiB |
|
After Width: | Height: | Size: 24 KiB |
|
After Width: | Height: | Size: 23 KiB |
|
After Width: | Height: | Size: 7.4 KiB |